Giter Site home page Giter Site logo

drkzrg / 32u4-programmer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dcooperdalrymple/32u4-programmer

0.0 0.0 0.0 1.08 MB

AT28C EEPROM and ATTiny13 programmer using the Atmega 32u4. Intended for making homebrew VCS & NES game cartridges.

Home Page: https://dcdalrymple.com/

License: GNU General Public License v3.0

C++ 21.52% Python 75.32% C 3.02% Batchfile 0.14%

32u4-programmer's Introduction

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 AT28C64 64Kb (8K 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 [email protected] 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.