| images | Add files | |
| steadyhand-bb | Add files | |
| .gitignore | Initial commit | |
| LICENSE | Initial commit | |
| README.md | Remove "the" | |
steadyhand
Steady Hand EEPROM Programmer
Steady Hand is a digital circuit for programming EEPROMs by hand. It's inspired by this video by Ben Eater, where he creates a circuit for programming an EEPROM using DIP switches and jumper wires. Steady Hand is much more ergonomic than his design, though it is somewhat more complex.
While Ben Eater provides the "how" inspiration, the "why" inspiration comes from Jeremiah Orians' stage0 project, and the general concept of bootstrapping: creating a computer software environment from nothing. When building a homebrew computer, one would typically use a significantly more complex modern computer to write the homebrew computer's software to an EEPROM. I created Steady Hand as a first step towards resolving this problem.
Completed breadboard prototype
Features
-
No microprocessor
-
No programmable logic (except the EEPROM being programmed)
-
Tested with AT28C256 EEPROM
-
Should be usable with AT28C16 and AT28C64 EEPROMs by reconfiguring a few jumper wires (untested)
-
Hexadecimal keypad for data entry
-
Current address, current byte, and byte to be written are shown on 7-segment displays
-
Keys for moving to next or previous address
-
Auto-skip function for skipping over or skipping to a byte specified on DIP switches
-
Jump to address function, using DIP switches
-
Write mode can be toggled on and off to prevent accidental writes
Components
In addition to the logic ICs and passive components specified in the schematic, Steady Hand needs:
-
A 4x5 matrix keypad - I got mine as a kit from Digicool Things
-
A diode ROM for converting 4-bit binary input into 7-segment display output - I initially planned to do this on perfboard, but ended up designing a PCB for it instead
-
Optional: A breadboard-compatible ZIF socket to hold the EEPROM
Schematics
Breadboard Layout
The breadboard is represented as a 10-layer "circuit board". You'll want to make extensive use of KiCAD's net highlighting feature to make sense of this mess.
To Do
I consider this project complete enough for now, though I plan to revisit it eventually (sooner if I start having problems with loose connections on the breadboard).
-
Design a PCB version
-
Replace the obsolete MM74C923 with my own key matrix encoder made from non-obsolete parts
-
Reduce or eliminate the ghosting on the 7-segment displays