Programmer (hardware)
Device that installs firmware on a device

In the context of installing firmware onto a device, a programmer, device programmer, chip programmer, device burner, or PROM writer is a device that writes, a.k.a. burns, firmware to a target device's non-volatile memory.
Typically, the target programmable chip is one of the following types: PROM, EPROM, EEPROM, Flash memory, eMMC, MRAM, FeRAM, NVRAM, PLD, PLA, PAL, GAL, CPLD, FPGA, microcontroller.
01Connection
Generally, a programmer connects to a device in one of two ways.
Insertion
In some cases, the target device is inserted into a socket (usually ZIF) on the programmer. If the device is not a standard DIP packaging, a plug-in adapter board, which converts the footprint with another socket, is used.
Cable & port
In some cases, a programmer connects to a device via a cable to a connection port on the device. This is sometimes called on-board programming, in-circuit programming, or in-system programming.


02Transfer
Data is transferred from the programmer to the device as signals via connecting pins.
Some devices have a serial interface for receiving data (including JTAG interface). Other devices communicate on parallel pins, followed by a programming pulse with a higher voltage for programming the data into the device.
Usually, a programmer is controlled via a connected personal computer through a parallel port, USB port, or LAN interface. A program on the controlling computer interacts with the programmer to perform operations such as configure install parameters and program the device,

03Types
There are four general types of programmers:
- Automated programmers often have multiple programming sites/sockets for mass production. Sometimes used with robotic pick and place handlers with on-board sites to support high volume and complex output such as laser marking, 3D inspection, tape input/output, etc.
- Development programmers usually have a single programming site; used for first article development and small-series production.
- Pocket programmers for development and field service.
- Specialized programmers for certain circuit types only, such as FPGA, microcontroller, and EEPROM programmers.


04History
Regarding old PROM programmers, as the many programmable devices have different voltage requirements, every pin driver must be able to apply different voltages in a range of 0, 25 Volts. But according to the progress of memory device technology, recent flash memory programmers do not need high voltages.
In the early days of computing, booting mechanism was a mechanical device usually consisting of switches and LEDs. It means the programmer was not an equipment but a human, who entered machine codes one by one, by setting the switches in a series of "on" and "off" positions. These positions of switches corresponded to the machine codes, similar to today's assembly language. Nowadays, EEPROMs are used for bootstrapping mechanism as BIOS, without the need to operate mechanical switches for programming.

05Manufacturers
For each vendor's web site, refer to "External links" section.
- Batronix GmbH & Co. KG
- BPM Microsystems
- Conitec Datasystems
- Data I/O Corporation
- DediProg Technology Co., Ltd
- Elnec s.r.o
- Elprosys Sp. z o.o.
- halec
- Hi-Lo System Research
- MCUmall Electronics Inc.
- Minato Holdings
- Phyton, Inc.
- Xeltek Inc.

Sources and credits
This article is adapted from the Wikipedia article “Programmer (hardware)”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Images, from Wikimedia Commons:
- NuProg-E2-wsocket.png by DPJessie, CC BY-SA 4.0
- Programmer conitec galep5.jpg by Jcl365 (talk), Public domain
- NPP16-FrontSide-wso-wobg.png by DPJessie, CC BY-SA 4.0
- BPM 3928 Automated Programming System.jpg by Sbronstad, CC BY-SA 4.0
- Adafruit TinyISP AVR Programmer.jpg by oomlout, CC BY-SA 2.0
- Sp 5004gp transp.png by Xelteksuperpro, CC BY-SA 3.0
- Universal Prom Programmer.jpg by Christian Bassow, CC BY-SA 4.0
- 78K0R Cool-It.jpg by NobbiP, CC BY-SA 3.0
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.