For years, I yearned to build my own computer and, recently, as I have written here, I did. Only, this time, the computer I built was not someone else’s design, but my own. Now, for some, that’s not a big deal. For me, not being an engineer, it is big.
Last fall, I had built an Arduino, copying someone’s schematic. It worked and worked well. I got to playing around with Arduino more and more, discovering the video and audio capability and the ability to code for this thing, rather easily, just got me more and more intrigued.
I worked on a port of Tiny Basic, nearly rewriting the wonderful Mike Field Tiny Basic for Arduino. I’ve added a ton of features-graphics, audio (ok, beeps), hardware support…etc. And I’ve optimized it to not only work with a PS/2 Keyboard and video, but it also gives you nearly 1k of RAM to use for your Tiny Basic programs. That may not sound like much, but there is a surprising amount of things you can with ‘only a k’ of RAM.
So, now I have this nifty little computer, that is not only a throwback to the home computers of the 1970’s, it is also fun to build and program.
As I am using the TVOut Arduino library un altered, pretty much any program or game that uses this library and a 328p compatible Arduino will work on the console.
So, how did I design this thing?
I downloaded the Fritzing schematic/pc board/breadboard designer package. It is free and you can generate industry acceptable ‘gerber’ files that can then be used to create a professional look printed circuit board.
I studied the basic circuitry for a 328p based Arduino compatible microcontroller. Turns out, it’s really simple. With encouragement from my wife, son and friends, I set out to design something and then turn into a product.
I had to decide what was going into the computer, what features. Well, the idea I had was that this be a fun project for parents and children to do together. Mom or Dad do the soldering and the kids help with inserting the parts and then programming the computer. Games had to be a priority. So, the Wii Nunchuck became the controller. Unfortunately, only one is supported, due to the way it works. (I have since discovered a way to allow more than one. That will be in the next version.) Video and sound have to be there. We need to be small and somewhat expandable.
My first prototype looked great. I built it up on a proto board and it worked fine. My proto, however, didn’t fully replicated my design. After building it, I made changed to the design, but did not reflect them all on the proto. I realized, later, I should have.
So, I finish up my design, run the rules check and it passes. I study it for several days before sending it off to Fritzing to have one board made. That was expensive…forty dollars for the one board. Wow, there’s no way I can ‘mass’ produce these things at that price. So, I search and search for a cheap fab house. That search lasted a couple of months. In the mean time, the board arrives, I photograph it and then put it together. I solder the last connector and plug in the 328 chip. Insert the power and…viola! NOTHING. Scratching my head, I check my work and try again. Nothing happens. I study the power circuit. I check voltage. NOTHING.
Hmmm…So, I check polarity of the connector and…BINGO! The pins are backward. This is where my inexperience with Fritzing comes in. I misread the symbol. Damn. So, I cut the traces, solder jumper wire and try again.
This time, the Tiny Basic welcome message displays. Success! So, I wire up the keyboard because I realized that I also had the PS/2 connector wrong. So, after correcting my mistakes with Fritzing, I get down to ‘burning in’ the board. I run battery life tests (12 hours running constant random graphics, not too bad as it is also generating video) and communications test. Everything working great, even the Wii Nunchuck works fine. Now, I have to find cheap components and a fab house.
Finding the components was easy, for the most part. No one dealer had everything. Weird how PS/2 keyboard connectors and board mounted RCA phone jacks are hard to find now.
During my experimenting and eBay purchasing, I struck up a relationship with a Chinese vendor. I inquired about fabbing the boards and they could do it really inexpensively. So, that made this possible. I finished up revising and cleaning up my design. I checked, rechecked and double checked. It’s going to be perfect. Off it went to the fab. I buy parts. The parts begin showing up. Not too long after the parts started to roll in, but the boards did too.
My, were they pretty.
I grabbed one of the blank boards and photograph it. Then, as with the first, I build it up. Plug it in and…it worked! First time. Whew! Finally, it works. Well…not so fast. Everything worked but the bloody Nunchuck. My heart sinks. Upon close examination, I see that, while I had put the labels to the connector pins correctly, I neglected to re-arrange the ground and 3.3 volt pins. Man. I have hundreds of these boards. What the hell am I going to do?
Ah…I’ll correct the issue on the Solarbotics made Nunchucky adaptor board. So, I fix the problem on the adapter and try. It works! Awesome.
Now, I have a nice design that works. It has audio, video, game controller (that you can unplug from the main board) and it can talk, via serial, to other devices.
I have a ton of ideas for follow up accessories, the first of which is the PS/2 keyboard and Tiny Basic programmers kit. The standard kit is just the console, Nunchuck adapter and a 9volt battery clip. The programmers kit is the standard kit, plus a PS/2 connector, Tiny Basic in the 328, A Learn to Program with Tiny Basic manual and either a PS/2 Keyboard OR a USB to PS/2 keyboard adapter. I am also working on a real time clock, Bluetooth connectivity and an experimenters kit.
This has been a fun project and one I thought I’d never do. I’m a programmer,not a hardware engineer. And, anything more complicated will, likely, require a real engineer. But, in the mean time, I have more projects like this.
The console and Tiny Basic will be licensed as the original works are, I will post that later. I will post the source code for Tiny Basic, the schematic, parts list and Fritzing files. I will be selling the blank boards and the two aforementioned kits with printed documentation very soon.
In the mean time, if you want a blank board, I am selling them now. Go to the Half-Byte eBay store and pick one up.