An
electronic device or
embedded system is said to be field-programmable or in-place programmable if its
firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
(stored in
non-volatile memory, such as
ROM) can be modified "in the field", without disassembling the device or returning it to its manufacturer.
This is often an extremely desirable feature, as it can reduce the cost and turnaround time for replacement of
buggy or obsolete firmware. For example, a
digital camera
A digital camera, also called a digicam, is a camera that captures photographs in Digital data storage, digital memory. Most cameras produced today are digital, largely replacing those that capture images on photographic film or film stock. Dig ...
vendor could distribute firmware supporting a new image
file format by instructing consumers to
download a new firmware
image
An image or picture is a visual representation. An image can be Two-dimensional space, two-dimensional, such as a drawing, painting, or photograph, or Three-dimensional space, three-dimensional, such as a carving or sculpture. Images may be di ...
to the camera via a
USB cable.
History
When a device's firmware is stored in
mask ROM or
one-time programmable PROM, it cannot be modified without physically replacing the
integrated circuit
An integrated circuit (IC), also known as a microchip or simply chip, is a set of electronic circuits, consisting of various electronic components (such as transistors, resistors, and capacitors) and their interconnections. These components a ...
, so such a device cannot be field-programmable in the modern sense.
Erasable PROM-based firmware can be erased and reprogrammed, but only after lengthy exposure to a high-intensity ultraviolet light source.
Thus, field-programmable devices were not practical until the invention of
EEPROM and
flash memory in the 1980s. Early EEPROMs could only be reprogrammed with expensive, dedicated
programmer hardware, since they required high voltages (10-20
V, compared to typical 3-5 V
logic levels) and there was no standard programming
protocol; as a result, field-programming was mostly performed by professional technicians and service engineers. However, as of the early 2000s, many devices were expressly designed to be field-programmed by ordinary consumers. Several developments have made this possible:
* Modern
EEPROM and
flash devices contain internal
charge pumps which eliminate the need for high voltages.
* Most consumers have access to
personal computers, which can perform arbitrary programming protocols.
* Ubiquitous
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
access provides a convenient means to rapidly distribute firmware images.
Standard protocols for programming non-volatile memory devices have emerged. For example,
JTAG may be used to read and program the EEPROM and Flash chips in many
consumer electronics devices. Many such devices include
JTAG headers internally for factory programming and
quality control
Quality control (QC) is a process by which entities review the quality of all factors involved in production. ISO 9000 defines quality control as "a part of quality management focused on fulfilling quality requirements".
This approach plac ...
, even though no external
connector is exposed in the finished product.
Programmable logic
The 1980s saw the introduction of
programmable logic devices (PLDs) such as
PALs,
PLAs, and
CPLDs. These are
integrated circuit
An integrated circuit (IC), also known as a microchip or simply chip, is a set of electronic circuits, consisting of various electronic components (such as transistors, resistors, and capacitors) and their interconnections. These components a ...
s which can implement nearly arbitrary
digital logic functions based on firmware-like information stored in non-volatile memory.
Thus, devices containing PLDs may be considered as field-programmable ''hardware'', while EEPROM and flash memory act as storage for field-programmable ''software''.
Field-programmable gate arrays (FPGAs) were invented in 1984, and are the most advanced kind of programmable logic available today. These high-capacity devices may implement extremely complex logic, such as
microprocessor
A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
s or
digital signal processors. Today, they are a great aid in the development and rapid deployment of digital electronic devices. FPGAs are often used for
prototyping hardware designs and
hardware acceleration.
Hobbyist opportunities
Many consumer electronic devices (including
MP3 players,
broadband routers,
cell phones, and digital cameras) contain embedded systems based on
general-purpose microprocessor
A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
s and
microcontrollers. Most of these devices contain field-programmable components which can be located and accessed by knowledgeable
hardware hackers. Field-programming allows hobbyists to replace a device's firmware with new code that can modify or extend its capabilities.
Numerous online communities have sprung up around devices found to be particularly conducive to such modification. For example, the
iPodLinux and
OpenWrt
OpenWrt (from ''open wireless router'') is an open-source project for embedded operating systems based on Linux kernel, Linux, primarily used on Embedded system, embedded devices to Router (computing), route network traffic. The main components ...
projects have enabled users to run full-featured Linux distributions on their MP3 players and wireless routers, respectively.
While hobbyist field-programming is theoretically possible in practically any embedded system today, in practice efforts to modify consumer devices are often hampered by lack of
documentation for the
hardware.
See also
*
Firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
*
JTAG
*
Field-programmable gate array (FPGA)
*
Field-programmable analog array (FPAA) - like FPGA but with
analog signals
**
Field-programmable radio frequency devices
References
{{Reflist
External links
UsbAudioHowTo a guide to converting a
wireless router into an
Internet radio player, from th
OpenWrtproject
Digital electronics