Back to the Basics: Building Ben Eater’s 6502 Computer

Like many I have been avidly watching Ben Eater’s videos for some time since they tended to take deeper dives into digital electronics than is typically taught in school. The 8 bit computer project, though a very interesting series to watch, was a bit more than I was willing to invest in terms of time and desk space. However, the 6502 computer project seemed like a great way to further my understanding from a relatively reasonable starting point. Previously I have done many embedded projects utilizing Arduino and have since moved to bare AVR C programming. This movement to even lower level programming seemed to transition nicely to the vary bare bones that Ben’s 6502 series starts with.

In my typical process of starting a new project, I attempted to invest the bare minimum necessary to get the computer going. As much as I would like to support Ben, having nearly all components on hand minus the ICs, it didn’t really make sense to buy the kit. For the ICs I unfortunately opted to purchase them all off of Aliexpress; a choice that would bite me in the ass at more than one occasion further on. For those reading, the electronic supplier Jameco has all the necessary ICs and should probably be the go to for starting this project.

After ordering the parts I set out on creating the necessary tools to accompany the 6502 computer development, namely:

  • An EEPROM programmer for the AT28C256 based on Ben’s version
    • It seemed ridiculous to buy a universal programmer for $60 when one could be easily made using components I had on hand
  • A clock source that supports variable frequency and single stepping
    • Ben used his clock module from the 8 bit computer, however, I decided to implement the same functionality using an AVR ATTINY13A
    • The details and source code can be found on github
  • A serial monitor for the 6502 address bus, data bus, RWB, and clock signals
    • For this purpose Ben used an Arduino Mega due to it’s multiplicity of IOs
    • Not having a readily available Mega, I settled for redesigning the monitor to utilize a Arduino Nano with a 16 bit parallel in serial out shift register to handle all of the address lines
    • Since this would be built onto the breadboard next to the 6502, it made sense to merge the clock generator functionality into this monitor yielding a hybrid module that I called the 6502 Debugger

Since the EEPROM programmer and 6502 Debugger were fairly involved projects in themselves I’ve decided to create a dedicated post for each of them.

I am looking forward to detailing my journey with the 6502 and hopefully aspects of the experience will be helpful to those looking to get started as well. My ultimate goal is to solder up the entire computer to a large piece of perf board. This would include a ZIF socket for the EEPROM to allow for easy programming of the ROM.