1
5
Fork
You've already forked steadyhand
0
Steady Hand EEPROM Programmer
2026年04月13日 05:04:02 -04:00
images Add files 2026年04月13日 03:33:14 -04:00
steadyhand-bb Add files 2026年04月13日 03:33:14 -04:00
.gitignore Initial commit 2026年04月11日 08:23:49 +02:00
LICENSE Initial commit 2026年04月11日 08:23:49 +02:00
README.md Remove "the" 2026年04月13日 05:04:02 -04:00

steadyhand

Steady Hand EEPROM Programmer

XKCD #378 panel 5

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:

Schematics

Schematic: Root

Schematic: User Input

Schematic: Address Counter

Schematic: Timing

Schematic: EEPROM

Schematic: Display

Schematic: Diode Matrix

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.

Breadboard layout

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