Introduction - Updated version 1.1 . The 82s129, 82s126, 72s287, and 72s387 are PROM chips that were commonly used in older arcade games, vintage PCs, and equipment from the 1970s and 80s. Many modern programmers do not support these chips often making vintage electronics projects difficult to complete. This manual programmer can be used to read and write these chips. PROM chips are written by blowing tiny fuses inside the chip and can only be written once. If you mistakenly pulse the wrong bit on, you'll need to start over with a new chip. When completing this board, it is advisable to practice pulsing some blank locations on an already written "scratch" chip like I do in this video. Note: We also have an 82s123 version
Video
BOM - Excel BOM download
Reference | Qty | Value | Note | DigiKey or Ebay Part # | Footprint |
C1 | 1 | 100pF | Capacitor_THT:C_Disc_D9.0mm_W2.5mm_P5.00mm | ||
C2 | 1 | 33 uF | 63v | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | |
C3, C9 | 2 | 100 uF | 25v | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | |
C4 | 1 | 22 uF | 25v | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | |
C5 | 1 | 0.1 uF | Capacitor_THT:C_Disc_D9.0mm_W2.5mm_P5.00mm | ||
C6 | 1 | 0.01uF | Capacitor_THT:C_Disc_D9.0mm_W2.5mm_P5.00mm | ||
C7 | 1 | 220 uF | 10v | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | |
C8 | 1 | 330pF | Capacitor_THT:C_Disc_D9.0mm_W2.5mm_P5.00mm | ||
C10 | 1 | 10 uF | 25v | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | |
D1, D2, D3, D4, D95 | LED | 4 Green, 1 Red | LED_THT:LED_D5.0mm | ||
D10, D11 | 2 | 1N5821 | Diode_THT:D_DO-201AD_P15.24mm_Horizontal | ||
J1 | 1 | DIP 16 ZIF Socket | Ebay "dip 16 zif socket" | Socket:DIP_Socket-16_W4.3_W5.08_W7.62_W10.16_W10.9_3M_216-3340-00-0602J | |
J2 | 1 | Conn_01x03_Pin | 277-1578-ND | TerminalBlock:TerminalBlock_Altech_AK300-3_P5.00mm | |
L1 | 1 | 68 uH | Inductor_THT:L_Radial_D10.0mm_P5.00mm_Fastron_07P | ||
L2 | 1 | 15 uH | Inductor_THT:L_Radial_D10.0mm_P5.00mm_Fastron_07P | ||
Q1 | 1 | VP3203N3 | VP3203N3-G-ND | Package_TO_SOT_THT:TO-92 | |
R1 | 1 | 1.3K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R2 | 1 | 15K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R3, R9 | 2 | 0.5 Ohm | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R4 | 1 | 180 | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R5 | 1 | 470 | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R6 | 1 | 10K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R7 | 1 | 1.3K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R8, R12 | 2 | 1K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R10 | 1 | 13K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R11 | 1 | 82K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
R13, R14, R15, R16 | 4 | 1.5K | .25 watt | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | |
SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8 | 8 | SW_SPDT | 2449-ANT11SF1CQE-ND | PromFootprints:ANT11SF1CQE | |
SW11, SW12, SW13, SW14 | 4 | SW_Push_DPDT | 141-TL2202OAYA-ND | PromFootprints:TL2202OAYA | |
SW20 | 1 | SW_Push | Button_Switch_THT:SW_PUSH_6mm_H5mm | ||
SW21 | 1 | SW_DPDT | 2449-ANT21SECQE-ND | PromFootprints:ANT21SECQE | |
U1 | 1 | LM555xN | 555 Timer DIP8 | Package_DIP:DIP-8_W7.62mm | |
U2, U3 | 2 | MC34063AP | Package_DIP:DIP-8_W7.62mm | ||
U4 | 1 | TC4429 | Package_DIP:DIP-8_W7.62mm | ||
U1, U2, U3, U4 | 4 | DIP8 Sockets | (Optional) | ||
PC Power Supply Cable | 1 | Ebay item - 112095154991 | |||
Power Supply - 12v and 5v | 1 | PC or Arcade |
Pictures
Operation - How do I use it? This programmer is manual and requires understanding of both Binary and Hexadecimal numbers. These chips are made up of 256 addresses each which hold 4 bits of data. Both the addresses and the bits are just 1s and 0s, but often the data you need to write will be in hex format.
Example - Lets say you wanted to write the value "E" to address "100". To do this, we need to figure out the binary values for both E (hex) and 100 (decimal). There are many converters available online if you're unsure how to do this.
https://www.rapidtables.com/convert/number/hex-to-binary.html?x=E
E converts to 1110. This is the value we want to write to the chip to be shown in the LEDs. 1110 = On-On-On-Off
We need to write this to address 100. 100 is decimal, so lets covert that to binary too.
https://www.rapidtables.com/convert/number/decimal-to-binary.html?x=100
100 converted into binary is 1100100, but that is only 7 digits wide, so we need to add a leading 0. 1100100 = 01100100
01100100 is the address we want to write to. To get to this address, we need to set the switches to match this pattern.
01100100 = Down-Up-Up-Down-Down-Up-Down-Down.
We are at the correct address so pulse On-On-On-Off to the LEDs here.
Repeat for all 256 addresses.
Power - This board requires +5v, +12v, and G which can be tapped from a PC or arcade power supply. For PC power supply, you can use a standard hard drive power connector.
Assembly - Note orientation of blue push buttons. Don't accidentally install these backwards!
Buy the PCB
Available on this site and ebay
Digikey List (key parts)
https://www.digikey.com/en/mylists/list/JAWGCR5KV5
Schematics
V1.0 Board Error Fix - I have found an error in version 1.0 of this board. A small number of v1.0 boards were shipped with this error. If you have one, please contact me for a replacement. If you have already assembled one and want to fix it, you can cut these traces and add these jumpers. Version v1.1 boards being sold now do not have this issue.