Skip to the content
PCBKitNew board
2 layers70 × 49.5 mmEeprom16, the printed circuit board in 3D

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–0xFF into 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)

AddressContent
0x000–0x0FFOnes
0x100–0x1FFTens
0x200–0x2FFHundreds
0x300–0x3FFSign (0x00)

Signed (-128 → 127)

AddressContent
0x400–0x4FFOnes
0x500–0x5FFTens
0x600–0x6FFHundreds
0x700–0x7FFSign (0x00 / 0x80)
  • Digits use abs(value)
  • Negative numbers use sign byte 0x80

🔢 Segment Encoding

DigitHex
00x7B
10x12
20xB9
30xB3
40xD2
50xE3
60xEB
70x32
80xFB
90xF2
-0x80

🛠️ Programming Flow

For each byte:

  1. Clear shift register
  2. Shift 11-bit address (MSB → LSB)
  3. Set data bus (D0–D7)
  4. Pulse WE (write enable)
  5. 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

Schematic

PCB

PCB

3D View

3D

Gerbers

Gerbers


📁 Structure

plaintext
.
├── firmware/
├── hardware/
├── images/
└── README.md

Parts

9
QtyValueFootprintReferences
2330Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR3, R4
274164Package_DIP:DIP-14_W7.62mm_SocketU4, U5
128C16Package_DIP:DIP-24_W15.24mm_SocketU2
1ARDUINO_NANOModule:Arduino_NanoU1
1C_PolarizedCapacitor_THT:CP_Radial_D10.0mm_P3.50mmC1
1RED LEDLED_THT:LED_D4.0mmD1
1YELLOW LEDLED_THT:LED_D4.0mmD2

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 mmTS Back Endcap, the printed circuit board in 3D

    TS Back Endcap

    EEVengers/ThunderScope

    ThunderScope GitHub Repo

    9 parts1.3kMIT
  • 2 layers31.8 × 47.6 mmNGC 38 connector, the printed circuit board in 3D

    NGC 38 connector

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    9 parts1.2k
  • 2 layers24 × 27.3 mmExpansion Card Retrofit, the printed circuit board in 3D

    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 mmSKR Mini TFT Thermistor Board, the printed circuit board in 3D

    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 mmLearnoliver, the printed circuit board in 3D

    Learnoliver

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    9 parts915
  • 2 layers17.4 × 16.9 mmToolhead, the printed circuit board in 3D

    Toolhead

    tanaes/whopping_Voron_mods

    9 parts787GPL-3.0
  • 2 layers9.8 × 108 mmExpander, the printed circuit board in 3D

    Expander

    wntrblm/Castor_and_Pollux

    A Juno-inspired dual oscillator

    9 parts587
  • 2 layersKeyboard after, the printed circuit board in 3D

    Keyboard after

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    9 parts547GPL-3.0