“I have assembled many desktop computers over the years but it’s just not the same when you don’t use a soldering iron! I wanted to build a computer from scratch for a long long time because I find when you have a go at building something go gain a better knowledge of it’s inner workings. I have previously built homebrew computer variants using 6502 processors however these systems are not friendly for the novice or intermediate maker. I have also finally joined a hackspace (@NHackspace) so I wanted to put all my hacking skills to the test. This simple computer I built is based on an Arduino running TinyBASIC which has been done before but I wanted to do a complete build with homebuilt PCB, keyboard interface, monitor / tv output, sound and SD card storage. By day I am an industrial controls engineer and tend to use very robust proven modules in control systems rather than handmade parts. I build homebrew computers and electronics as a hobbyist and not a computer scientist or computer engineer so I am going to highlight all the “gotcha’s! I came across doing this build.
I decide to base this 8-bit computer on the ATMEGA1284P-PU chip as it has a high spec for an Arduino compatible 8-bit micro controller, the basic specification is as follows:
SRAM - 16kB
Max Clock Speed = 20 Mhz
Pins = 40 DIP (32 Programmable I/O)
Flash Memory = 128kB
EEPROM = 4 kB
If you compare this chip to an Arduino Mega and Uno the standout feature is the SRAM. The Mega has 8kB of SRAM, 4kB of EEPROM and 256kB of Flash Memory whereas the Uno has 2kB of SRAM, 1kB of EEPROM and 32KB of Flash memory. This gives an 8-bit computer using the Atmega1284P a better chance of successfully running the TinyBASIC compiler.
One of the big “gotcha’s” when using the Atmega1284 DIP is that it exists in two forms, the 1284p-pu and the 1284-pu. If you want to build this Instructable you will need the Atmega1284p-pu unless you want to spend hours finding the code in the Arduino Core files that needs to be changed….trust me I’ve been there!”