

ATmega32 EEPROM Storage
Demonstrates internal EEPROM read/write on the ATmega32 by letting a user increment/decrement a value in RAM, save it to EEPROM, read it back, clear it, and recover it after reset or a power cycle.
- Size
- 100 × 80 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 26
- Nets
- 44
- Pads
- 118
- Tracks, vias
- 227, 5
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 28 Jun 2026
- Updated
- 18 Jul 2026
Overview
ATmega32 EEPROM Storage is an open-source printed circuit board by DINHO365, from the DINHO365/ATmega32_EEPROM_Data_Storage repository on GitHub. It is a 2-layer board of 100 × 80 mm with 26 parts on 44 nets, routed with 227 tracks and 5 vias.
It is built around the ATMEGA32-16PU. Its parts include 6 capacitors, 5 resistors, 1 IC, 1 diode and 1 transistor. It belongs with the AVR (ATmega, ATtiny) boards of this library.
Main components
1README
README.mdATmega32 EEPROM Data Logging and Configuration Storage System
Demonstrates internal EEPROM read/write on the ATmega32 by letting a user increment/decrement a value in RAM, save it to EEPROM, read it back, clear it, and recover it after reset or a power cycle.
Repository structure
ATmega32_EEPROM_Data_Storage/
├── README.md
├── firmware/
│ ├── src/ button.c, display.c, eeprom_storage.c, indicator.c, lcd.c, main.c, uart.c
│ ├── include/ matching headers + config.h
│ └── hex/ firmware.hex / firmware.elf
├── kicad/
│ ├── schematic/ ATmega32_EEPROM_Storage.kicad_sch (+ project files), rendered PDF
│ ├── pcb/ ATmega32_EEPROM_Storage.kicad_pcb (+ project files), rendered PDF
│ └── gerber/ Gerber + drill (.drl) output
├── simulide/
│ ├── circuit/ EEPROM_Storage.sim1
│ └── screenshots/ test-run screenshots
├── documentation/
│ ├── block_diagram.png
│ ├── flowchart.png
│ ├── pin_mapping_table.md
│ ├── eeprom_address_table.md
│ ├── test_results.md
│ ├── erc_report.txt
│ └── drc_report.txt
└── media/
└── demonstration_video.mp4The schematic and PCB are kept in separate kicad/schematic/ and
kicad/pcb/ folders, each with its own copy of the KiCad project file
so either one opens directly in KiCad.
Firmware
Source lives in firmware/, written in C for the ATmega32 at 8 MHz
(adjust F_CPU in firmware/include/config.h if a different clock is
used).
Build with avr-gcc:
cd firmware
make(or open the firmware/ folder as an MPLAB for VS Code project, using
the same source/include paths.)
Behavior
| Action | Result |
|---|---|
| Power ON / OFF | Last value loaded from EEPROM and shown as CURRENT |
| INC button (PA0) | CURRENT increases (clamped at 255) |
| DEC button (PA1) | CURRENT decreases (clamped at 0) |
| SAVE button (PA2) | CURRENT written to EEPROM; SAVE_LED + buzzer confirm |
| READ button (PA3) | SAVED re-read from EEPROM and displayed |
| CLEAR button (PA4) | EEPROM and CURRENT reset to default (0); both LEDs + buzzer confirm |
Display output is a 16x2 HD44780 LCD (RS=PD4, RW=PD5, EN=PD6, D4-D7=PC4-PC7 via the 16-pin header J1), showing:
CURRENT: 025
SAVED: 020DISPLAY_MODE in firmware/include/config.h can be switched to
DISPLAY_MODE_USART to print the same values over USART (9600 baud,
8N1, PD1/TXD) for bench testing without an LCD attached.
EEPROM layout
See documentation/eeprom_address_table.md.
Pin mapping
See documentation/pin_mapping_table.md.
SimulIDE simulation
simulide/circuit/EEPROM_Storage.sim1 mirrors the KiCad PCB wiring
(4-bit LCD interface, RS/RW/EN on PD4-PD6, data lines on PC4-PC7) so
the same firmware behaves identically in simulation and on hardware.
Test results and screenshots for all required test cases are in
documentation/test_results.md.
KiCad design
Schematic and PCB pass ERC and DRC with no violations (see
documentation/erc_report.txt and documentation/drc_report.txt).
Gerber and drill files are in kicad/gerber/.
Parts
26| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | SW_Push | Button_Switch_THT:SW_PUSH_6mm | CLEAR1, DEC1, INC1, READ1, SAVE1, SW6 |
| 3 | 100nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C1, C2, C6 |
| 2 | 220 Ω | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1, R2 |
| 2 | 22pF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C3, C4 |
| 2 | LED | LED_THT:LED_D5.0mm | ERROR_LED1, SAVE_LED1 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R3 |
| 1 | 10k | Potentiometer_THT:Potentiometer_Bourns_3296W_Vertical | RV1 |
| 1 | 10µF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C5 |
| 1 | 16MHz | Crystal:Crystal_HC49-U_Vertical | Y1 |
| 1 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R4 |
| 1 | 33 Ω | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R5 |
| 1 | ATmega32-16P | Package_DIP:DIP-40_W15.24mm | U1 |
| 1 | Buzzer | Buzzer_Beeper:Buzzer_12x9.5RM7.6 | BZ1 |
| 1 | Conn_01x16 | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Vertical | J1 |
| 1 | D | LED_THT:LED_D5.0mm | D1 |
| 1 | Q_NPN_BCE | Package_TO_SOT_THT:TO-92_Inline | Q1 |
Questions
How big is the ATmega32 EEPROM Storage PCB?
It measures 100 × 80 mm and has 2 copper layers, 1.6 mm thick.
What parts does the ATmega32 EEPROM Storage use?
26 parts, built around the ATMEGA32-16PU. 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 ATmega32 EEPROM Storage KiCad files?
From the DINHO365/ATmega32_EEPROM_Data_Storage repository on GitHub, at the commit this page was made from: the board is kicad/pcb/ATmega32_EEPROM_Storage.kicad_pcb and its schematic kicad/schematic/ATmega32_EEPROM_Storage.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ATmega32 EEPROM Storage design in my own project?
Its repository states no licence, so its author keeps all rights: ask DINHO365 before reusing the design.
Similar boards
- 2 layers73.7 × 83.8 mm

- 2 layers119.4 × 88.9 mm

USB MidiController
derrudi187/USB-MidiController
MidiController based on Atmel with V-USB powered by http://www.obdev.at/vusb/
31 partsGPL-3.0 - 2 layers189.2 × 124.5 mm

- 2 layers

ATMEGA 32 1
ernest-czachorowski/Flood-Sensors-KiCad-Files
This repository contains KiCad files for my master's thesis IoT infrastructure, which includes water leak detection sensors.
74 partsMIT - 2 layers89.5 × 56.5 mm

- 2 layers149.9 × 106.7 mm

- 2 layers168.5 × 160.6 mm

AUTOMATIC LIGHT SENSOR
josbertbaingana2002-bot/ATmega32_LDR_Automatic_Lighting
Automatic Lighting System using ATmega32, LDR, KiCad and SimulIDE
29 parts - 2 layers100 × 100 mm
