Skip to content
AT28C EEPROM and ATTiny13 programmer using the Atmega 32u4. Intended for making homebrew VCS & NES game cartridges.
Python C++ C Batchfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
assets
avrciczz
hardware
.gitignore
32u4-programmer.ino
32u4-programmer.py
32u4_EEPROM.cpp
32u4_EEPROM.h
32u4_ISP.cpp
32u4_ISP.h
LICENSE
README.md

README.md

32u4 Programmer

32u4-based Eeprom and AVR Programmer
Created by D Cooper Dalrymple 2019 - dcdalrymple.com
Licensed under GNU GPL V3.0
Last revision on November 6th, 2019

Parallel EEPROM and ATtiny13A ISP programmer with native USB support using the Atmega32u4 microcontroller. Intended for making homebrew NES & VCS cartridges with easily rewritable EEPROM for prototyping.

Breadboard Prototype

Supported ICs

EEPROM

Intended for use with Atmel AT28Cxxx ICs, but other pin-compatible chips might work as well.

  • Atmel AT28C16 16Kb (2K x 8)
  • Atmel AT28C256 256Kb (32K x 8)

ISP

Intended for use with Atmel ATtiny13A for writing AVRCIC but other devices should be supported with no modifications or with jumper cables.

  • Atmel ATtiny13A
  • Atmel ATtiny25/45/85

Software Utility

The software for communicating with the 32u4 is written in Python 2.7 with PySerial and wxPython for cross platform support. With the correct packages, it should work on Linux, Windows, and macOS (currently not tested). You can run this program with the IDLE Python GUI or by running the command python ./32u4-programmer.py in the root directory of this project.

There are four main panels within the software, EEPROM, ISP, Hex, and Debug:

EEPROM

This page presents all of the options needed to configure the programmer and its serial connection and perform the full device read and write tasks. Currently, the software only supports raw .bin and .hex files for writing the entire device's memory contents.

Utility EEPROM Page

ISP

The ISP software functionality is still in development.

Hex Viewer

Whenever a hex file is imported manually, read from an EEPROM device, or written to an EEPROM by the programmer, the hex viewer is updated to display all addreses and values of the binary data. It groups addressed data into rows of 8 with a string characterization preview in the last column which is useful for reading rom header data. You cannot currently edit rom data on this page, but this feature may be implemented in the future.

Utility Hex Viewer Page

Command Debugger

This page gives you the ability to send commands directly to the programmer, specify each parameter with hexadecimal notation, and display the response from the programmer if applicable. This page is mostly useful for testing address and data lines on the programmer or reading and writing small sets of data to verify an eeprom device's functionality.

Utility Debug Page

Program Log

On all utility pages, the log is visible in the bottom of the software. This will display any informational, warning, error, or success messages in color coordinated fashion. This is useful for monitoring the progress of device programming.

Programmer Hardware

At the moment, hardware development is still in the prototyping phase. You can built your own breadboard prototype by following the Fritzing project wiring diagram with an Adafruit ItsyBitsy 32u4 5V microcontroller and 2 74HC595 ICs, but a more complete, alpha version of the hardware will be developed soon (and possibly distributed) based on the updated schematic. These KiCad project files are located in the /32u4-programmer/hardware/ directory.

Feature Requests

The hardware, firmware, and software for this project is still in active development. Follow this project if you would like to receive future updates or contact me at me@dcdalrymple.com to learn more about how you can contribute.

Hardware

  • EPROM device support (ie 27Cxxx) with Buck Boost circuit and relays
  • Standalone operation after being configured by the utility software
  • Automatic device hardware configuration for power and address lines
  • ATtiny24/44/84 ISP support
  • Complete ISP firmware

Software

  • Hex file editing and performance improvements
  • NES/VCS ROM file parsing
  • Global environment settings
  • ISP programming

License

This project is licensed under GNU GPL V3.0 - see the LICENSE file for details.

You can’t perform that action at this time.