Wednesday, October 20, 2010

[DIY] my LED belt buckle bling

I was toying with the idea of controlling rows and rows of LED for display purposes. Why not LCD (monochrome)? some may ask. First of all, LCD doesn't display well under outdoor condition and secondly we can see from afar if compared relatively with an LCD.

So there I go finding different ways of multiplexing LEDs. If no multiplexing method is used, I am limited with N number of LEDs. Where N is the number of digital pins available from my MCU. I am not in the state of getting a MCU with 64 IO pins just to control 64LEDs. What a waste of resources.

There I stumbled on the idea of charlie-plexing on the Internet. After reading about it and getting hook on the idea, I am eager to give it a try. But to my horror, the wiring on the vero-board can be quite nightmarish. Any 1 wire connected wrongly can result in a disaster.

I am looking for a better solution, eg a PCB for my own use. I stumbled upon LOLshield V0.1 and it cost USD$99 excl shipping. It is way out of my reach.

I went around asking our staff about it and luckily, I met Mr.Chong SP which he kind enough to supply me a PCB he designed to use charlieplexing for 56LEDs. The experiment time was cut down drastically, because of the time reduce from making the connection. PHEW... programming was not straightforward but still manageable.

But somewhat 56LEDs I am still not satisfy with it..... The number of text I can scroll is limited. Couple of months later, LOLshield v1.5 is going for USD25. I know i got to get my paws on it.
126LEDs in a 9x14 grid! wow!!! Quickly, I made my order and waited patiently for it to reach SG.

I thought inserting of 126LEDs of 3mm is going to be a breeze...but i was wrong......spent about 1hr + just to insert them all....Make sure you get all the polarity of the LED correct. Any 1 mistake will make the whole board defect.JimmyRodges silk screen the LED polarity on the PCB, so you will not mess up with the + and -. How thoughtful.

 Next, Apply masking tape of the LED side to support when doing the soldering. The spacing are very small (1.5mm apart) and can be quite intimidating to beginners. I got some steady hands and couple shots of coffee to help me stay focus. I have soldered 126x2 = 252 pins in another 1hr + time.
When soldering PCB of this caliber, make sure you have a really good solder tip. Having a good condition tool is to the success of this toy. My newest soldering iron is getting really troublesome. After a few pins, the heat became uneven and it felt very sluggish..... I changed to my old solder iron which I am reluctant to throw away. Same problem..... The soldering tip is worn out badly. I went digging around my pile of junk and discover that I have a spare soldering tip, but for a smaller watt which I bought earlier but did not get to used it. 


On the left is the badly battered soldering tip, on the right is the new one.

Then soldering is really a FASSSTTTTT.... I only spent about 1-3 seconds per pin....I recommend to trim off the excess leads from the LED to as short as possible, roughly 1-2mm above the PCB then solder. I will explain in the next paragraph. My soldering skills are getting rusty, I am getting old and my eye sight is still as good. God knows how many more years I can do such delicate soldering.



Hook up the LOLshield to the Arduino. Note in the previous step. If you do not trim the leads as short as possible, when you fit the LOLshield to the Arduino there might be a gap and caused loose contact. Worst, the exposed leads will come in contact with the USB connector on the arduino. Hence, I covered the metal connector with masking tape to prevent it from shorting my LEDs.

Now, the code part, I am using the basic test from the example. Download to the chip... and....Kept my fingers crossed..........


The moment of seeing all the LEDs light up accordingly, it is really priceless.........all the hours spent did went off.........
Next, I want to scroll some text, but i realised that the library I imported is buggy and doest not support fonts. jimmrodges did release another version of the library. Comparing the modified code is really mentalling taxing. So i used the "diff" function from notepad++ to compare the changes in the 2ver of the lib files.
Life is so much simpler with this small helpers....

Load in the new changes in the lib file... mod the existing sample code to scroll a longer text. Please note that it only supports 22char and capital letters only.

have fun!!! It is going to appear as my belt buckle with customizable text. Anybody wants to shrink the footprint to make it even smaller? LOL

No comments: