The Embedded Systems - Shape the World (UT.6.03) on-line course aims to teach principles and practices of embedded software development using a lab kit: a Texas Instruments Tiva launchpad (ARM Cortex-M4) with a breadboard, and assorted components to make simple electronic input and output circuits to connect to the microcontroller. Each lab is centered around a specific aspect of microcontroller I/O and software: switches (digital input), a slide potentiometer (analog input), LEDs (digital output), a DAC (analog output), etc., along with labs about interrupts, software design, etc.
The one but last lab makes you create a mashup of the previous labs, combining everything from the previous labs into a single system: a simple game console running your own interpretation/implementation of the classic Space Invaders game.
The main goal of this lab is to build a complex software system that combines all kinds of components, which is a complex enough task on its own. However, after a while I was not happy anymore having all the hardware on a breadboard:
there is always something that has a bad connection, or that got loose.
having all the input and output hardware on the breadboard at the same time creates a gigantic mess of wires.
it is tricky to move the breadboard/launchpad combination around, which happens a lot if you’re working on your living room table.
it’s nicer to also have slick hardware when you get to the point where your software starts to look good.
Having dabbled with PCB design before, I decided to spend some time making a PCB using (most of) the lab kit components, that would be more compact and reliable than the breadboard approach. At the same time, it is much easier on a PCB than on a breadboard to place each component where you want it, so I laid it out so as to form the basis for a simple portable game console. It uses the BoosterPack connectors to attach to the Launchpad.
The next image shows how everything is stacked on top of each other. I used a lasercutter to cut brackets from 3mm MDF to hold everything together.
- bottom: battery pack (3x AA batteries for 4.5V)
- above the battery pack is the launchpad
- sitting on top of the launchpad is the PCB that holds all the components
- top: the Nokia LCD
Here is the end result: