HOME

TheInfoList



OR:

{{References, date=September 2022 An electronic device or embedded system is said to be field-programmable or in-place programmable if its
firmware In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide ...
(stored in
non-volatile memory Non-volatile memory (NVM) or non-volatile storage is a type of computer memory that can retain stored information even after power is removed. In contrast, volatile memory needs constant power in order to retain data. Non-volatile memory typ ...
, 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 is a camera that captures photographs in digital memory. Most cameras produced today are digital, largely replacing those that capture images on photographic film. Digital cameras are now widely incorporated into mobile devic ...
vendor could distribute firmware supporting a new image file format by instructing consumers to download a new firmware image 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, 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 computer A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or tech ...
s, which can perform arbitrary programming protocols. * Ubiquitous
Internet The Internet (or internet) is the 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'' that consists ...
access Access may refer to: Companies and organizations * ACCESS (Australia), an Australian youth network * Access (credit card), a former credit card in the United Kingdom * Access Co., a Japanese software company * Access Healthcare, an Indian BPO ...
provides a convenient means to rapidly distribute firmware images. Standard protocols for programming non-volatile memory devices have emerged. For example,
JTAG JTAG (named after the Joint Test Action Group which codified it) is an Technical standard, industry standard for verifying designs and testing printed circuit boards after manufacture. JTAG implements standards for on-chip instrumentation in ele ...
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 Connector may refer to: Hardware *Plumbing * Electrical connector, a device for joining electrical circuits together (sometimes known as ports, plugs, or interfaces) ** Gender of connectors and fasteners ** AC power plugs and sockets, devices tha ...
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 circuits which can implement nearly arbitrary
digital logic A logic gate is an idealized or physical device implementing a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output. Depending on the context, the term may refer to an ideal logic ga ...
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 microprocessors 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 player A portable media player (PMP) (also including the related digital audio player (DAP)) is a portable consumer electronics device capable of storing and playing digital media such as audio, images, and video files. The data is typically stored o ...
s,
broadband router A residential gateway is a small consumer-grade gateway which bridges network access between connected local area network (LAN) hosts to a wide area network (WAN) (such as the Internet) via a modem, or directly connects to a WAN (as in EttH), whi ...
s, cell phones, and digital cameras) contain embedded systems based on general-purpose microprocessors and
microcontroller A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
s. Most of these devices contain field-programmable components which can be located and accessed by knowledgeable
hardware hacker The hacker culture is a subculture of individuals who enjoy—often in collective effort—the intellectual challenge of creatively overcoming the limitations of software systems or electronic hardware (mostly digital electronics), to a ...
s. 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 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, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide ...
*
JTAG JTAG (named after the Joint Test Action Group which codified it) is an Technical standard, industry standard for verifying designs and testing printed circuit boards after manufacture. JTAG implements standards for on-chip instrumentation in ele ...
* Field-programmable gate array (FPGA) * Field-programmable analog array (FPAA) - like FPGA but with analog signals ** Field-programmable radio frequency devices


External links


UsbAudioHowTo
a guide to converting a wireless router into an Internet radio player, from th
OpenWrt
project Digital electronics