Since Sound Brick ver. 2.0 is a brand new version of my project, so everything needs to re-design. Due to using PIC micro have a lot of resources on the Internet, so it is much more easy for me to get reference. For the programming language, I chose to use PicBasic Pro instead of Assembly. Because it is easier for me to learn, and most of the function, e.g. A/D, serial communication, have already implemented. I just need to use few line of code to do what I want. After get the free sample from the Microchip, I start to do some basic hallo world programming, blink the LED. Then I start to think about how to make everything work for my project.
First is how to implement each character brick have the ability to change and display the character. At first I think of using 14 segments LED display, although it looks lo-tech. When I go out shopping the necessary material, I found out that there is no 14 segments LED display to sell in Hong Kong. All I can get is only 8 x 8 LED matrix or LED. So I bought 100 pieces LED and 8 x 8 LED Matrix for testing first. After I back home and have some test, I find out that if I need to drive up a 8 x 8 LED Matrix, I need a microcontroller that have 16 output. If I include 2 buttons as inputs for changing the character and the communication port, I need a microcontroller to have at least 20 I/O. Due to I need to control each character brick cost (cause I want to make around 40-50 character bricks out), I search around on the Internet and come up with an idea called Charlieplexing:
http://en.wikipedia.org/wiki/Charlieplexing
http://www.edn.com/article/CA6363904.html
It just needs 7 pins to drive 42 LED. So finally I come up with a custom made 7 x 5 LED Matrix, more than enough for display the English character.


Messy back view, cable is jamming together.