

Eeprom16
This project implements an EEPROM-based lookup table to convert an 8-bit value into decimal digits using a hardware-only decoding approach.
- Size
- 70 × 49.5 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 9
- Nets
- 47
- Pads
- 92
- Tracks, vias
- 255, 0
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 8 Apr 2026
- Updated
- 8 Apr 2026
Overview
Eeprom16 is an open-source printed circuit board by QuantDreamGit, from the QuantDreamGit/AT28C16-Programmer repository on GitHub, published under the MIT licence. It is a 2-layer board of 70 × 49.5 mm with 9 parts on 47 nets, routed with 255 tracks and 0 vias.
Its parts include 4 ICs, 2 resistors, 2 diodes and 1 capacitor. It belongs with the AVR (ATmega, ATtiny) boards of this library.
README
README.md🧠 8-bit EEPROM Programmer & Display Decoder
This project implements an EEPROM-based lookup table to convert an 8-bit value into decimal digits using a hardware-only decoding approach.
The EEPROM is programmed using an Arduino Nano Every and a shift-register-driven address bus.
📌 Overview
The system:
- Converts
0x00–0xFFinto decimal digits - Supports both unsigned and two’s complement signed formats
- Uses EEPROM as a hardware lookup table
- Drives a segmented display via precomputed values
⚙️ Architecture
- MCU: Arduino Nano Every (20 MHz)
- Shift Register: 74HC164 (serial → parallel address)
- EEPROM: AT28Cxx family
- Data bus: 8-bit parallel
- Control signals:
WE,OE,CLR
Addresses are shifted serially into the 74HC164, while data is written in parallel.
🧩 EEPROM Memory Map
Unsigned (0x00–0xFF)
| Address | Content |
|---|---|
0x000–0x0FF | Ones |
0x100–0x1FF | Tens |
0x200–0x2FF | Hundreds |
0x300–0x3FF | Sign (0x00) |
Signed (-128 → 127)
| Address | Content |
|---|---|
0x400–0x4FF | Ones |
0x500–0x5FF | Tens |
0x600–0x6FF | Hundreds |
0x700–0x7FF | Sign (0x00 / 0x80) |
- Digits use
abs(value) - Negative numbers use sign byte
0x80
🔢 Segment Encoding
| Digit | Hex |
|---|---|
| 0 | 0x7B |
| 1 | 0x12 |
| 2 | 0xB9 |
| 3 | 0xB3 |
| 4 | 0xD2 |
| 5 | 0xE3 |
| 6 | 0xEB |
| 7 | 0x32 |
| 8 | 0xFB |
| 9 | 0xF2 |
| - | 0x80 |
🛠️ Programming Flow
For each byte:
- Clear shift register
- Shift 11-bit address (MSB → LSB)
- Set data bus (
D0–D7) - Pulse
WE(write enable) - Wait for write cycle (~2 ms)
Readback uses the same address logic with OE enabled.
⚡ Timing Notes
- Arduino @ 20 MHz → ~50 ns per cycle
digitalWrite()already satisfies all timing constraints- EEPROM write cycle dominates (~1–2 ms)
- No latch in 74HC164 → register is cleared before each address load
🖼️ Assets
Schematic

PCB

3D View

Gerbers

📁 Structure
.
├── firmware/
├── hardware/
├── images/
└── README.mdParts
9| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 330 | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R3, R4 |
| 2 | 74164 | Package_DIP:DIP-14_W7.62mm_Socket | U4, U5 |
| 1 | 28C16 | Package_DIP:DIP-24_W15.24mm_Socket | U2 |
| 1 | ARDUINO_NANO | Module:Arduino_Nano | U1 |
| 1 | C_Polarized | Capacitor_THT:CP_Radial_D10.0mm_P3.50mm | C1 |
| 1 | RED LED | LED_THT:LED_D4.0mm | D1 |
| 1 | YELLOW LED | LED_THT:LED_D4.0mm | D2 |
Questions
How big is the Eeprom16 PCB?
It measures 70 × 49.5 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Eeprom16 use?
9 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Eeprom16 KiCad files?
From the QuantDreamGit/AT28C16-Programmer repository on GitHub, at the commit this page was made from: the board is hardware/eeprom16.kicad_pcb and its schematic hardware/eeprom16.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Eeprom16 design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers103 × 30.5 mm

- 2 layers31.8 × 47.6 mm

- 2 layers24 × 27.3 mm

Expansion Card Retrofit
FrameworkComputer/ExpansionCards
Reference designs and documentation to create Expansion Cards for the Framework Laptop
9 parts1.1kCC-BY-4.0 - 2 layers15.6 × 17.3 mm

SKR Mini TFT Thermistor Board
VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group
9 parts1.1kGPL-3.0 - 2 layers39.1 × 49.5 mm

Learnoliver
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
9 parts915 - 2 layers17.4 × 16.9 mm

- 2 layers9.8 × 108 mm

- 2 layers

Keyboard after
adamws/kicad-kbplacer
KiCad plugin for automatic keyboard's key placement and routing
9 parts547GPL-3.0