The task of this week was to design a microcontroller board, add an output device, and program it to do something. I started by fabricating Neil's boards and studying his code. I found charlieplexing (as opposed to multiplexing) to be very fascinating; you can read more about the theory here and here!
Because LEDs are diodes, current only flows in one direction. Charliplexing takes advantage of this by complementing an LED with another of opposite polarity. In short, all the anodes in the rows are connected, while all the cathodes of the columns are connected. To avoid alignment hassles of routing a double sided PCB, you can use epoxy as an insulating layer and vinyl cut some copper traces to connect the LEDs.
Keep in mind that the adhesive side of copper tape has too much resistance, so solder some reinforcement pads to make sure the top and bottom traces are connected before stuffing the rest of your components.
25 LEDs in action!
But 25 LEDs was not enough -- I wanted more. As a law of charlieplexing, n pins can drive n * (n-1) LEDs. I saw that my ATtiny44 had at least 8 pins available, meaning the potential for 56 LEDs!
Keep the schematic simple by drawing just the matrix (I also named my LEDs after discovering how messy my diagram became), then layout your circuit however you like. To make vinyl cutting more tolerable, I thicked some elements in Photoshop. I wanted a LED headband for general visibility, so that's why it's long!
These weeks, I rediscovered my immense distrust of the vinyl cutter. It destroyed almost everything I asked it to cut. One survived... but barely.
Weeding... I do not wish this upon even my worst enemy.
Pour hot glue all around components that will experience habitual strain throughout its lifetime!
Not my neatest looking soldering job today...
Sigh... more LEDS, more problems. I am starting to become angry at Charles Allen at Maxim who developed the technique.
But I did it!!!
Fabbing Neil's speaker example.
Sounds + fire drill going on in the background...