I have always been interested in electronics,but I always found myself blocking on really sitting down and learning electronics, rather than just building kits. I remember spending hours and hours building circuit after circuit with a Radio Shack 75-in-1 kit when I was 10-14 years old. I hoped to eventually learn why this resistor needed to be there or this capacitor. Reading through the booklet included I kind of understood, but I never really found a project that captivated my interest. During highschool, my electronics class consisted of figuring out the correct voltages and thickness of pencil lead that would melt staples or anything else we could find around. Well, either that or arguing Ford vs Chevy vs Mopar. I tried to build a ‘de-scrambler’ for TV, but lets say my teacher while ‘energetic’ either had his hands full with tool thieves or just wanted to appease them so he never really got around to teaching any serious theory or any help with my project. It was there I found out that car speaker box construction was ‘electronics’.
At my first job outside of college I got a look at a different view of electronics. There at Cymbolic Sciences, I was surrounded by electrical engineers and since we designed all our own processor boards, I just started hearing about Microcontrollers and FPGAs. I never got my hands on one, but my job brought me into contact with Matlab and more importantly, Simulink. Simulink can be used for many things, process simulation being one of the main things, but I found some elemental logic building blocks within it that piqued my interests. Using it this way it reminds me now of programs like Logisim. I remember spending one night (I worked the 4pm to 1am shift), playing around figuring out how to get the NAND gates to act as a simple flip/flop. Then I built a multiplexor and de-multiplexor out of logic and glued these with the flip/flops into a 64bit RAM block. Then I used that block in a different simulation… and well, I ran out of the 64 MBs of RAM my laptop had.
I would over the course of a the years experiment with different logic simulation programs; I got my wife to buy a copy of NI’s Circuit design suite using her student discount for example, but I was always stuck on ‘what to make’.
Then, a few years ago, my friend Delaney introduced me to a book, “The Black Art of Video Game Console Design”. I immediately was inspired, in a few days, my Xgamestation Pico was delivered and me and Delaney were planning many projects. I was most interested in writing to video. The Pico is around the idea of using a microcontroller (the SX-28)to handle all the video timing signals itself. This meant that in your program (written in either sx-28 assembly or a primitive ‘basic’) you had to deal with 80% of your program working around video timing and display. I got the idea of building a logic based video driver that the pico could write to and it would do all the video display. The first design used NTSC, but I found the color handling of NTSC to be really discouraging. That’s when Delaney told me what he learned about VGA. If you could handle the speed, with VGA you just had to control three voltages for the three colors, and you just need to bound two control lines to handle the vertical and horizontal syncs. Aha, I thought, here is the answer.
Around that time, I went to a Maker’s faire, I think it was the 2nd one, and saw the Arduino projects. I was trying to work around the lack of control lines of the sx-28, and the pain of programming in assembly. I was considering the sx-48, but it was surface mount only, and I didn’t want to work with that… yet. But here, I could just buy an Arduino Mega, which was literally right in front of me, and I’d have as many control lines as I’d want, all with a nice little header to plug into. Plus, a really nice programming interface that was C based, instead of assembly. That’s when my VGA based video circuit solidified.