Succumbing to the XMAS-lights madness

“This time of the year” is approaching __again__. Where did all the time go? I remember having seen my neighbours’ light shows and illuminated windows as if it had been just yesterday.

But this year I will fight back!

I’ll take some of this, combine it with way too many “w-word”-s, use some sticky tape and spend a Sunday writing the most annoying light patterns I can think of ;-)

I’ll probably use the stereotypical star-shape for the LED boards ;-)

Obligatory videos:

Shot from the inside, window open:

Shot from the inside, window closed:

The view my neighbours get to see:

…pending… too cold outside right now, not wanting to freeze my arse off…

Parts used:

21x RGB LED Ring boards (5 old prototypes, 1 hacked board with UART/bootloader issues, 15 new ones)
20x 4pin “w-word” connector
42x pieces of sticky tape of highly irregular length
1x 5V, 2.6A switch-mode power supply
1x ATmega168 as replacement for a bricked one

Code:

I just used the existing demo code for all the individual boards ;-) One of them is set as master, the remaining 20 are set as slaves and get sync pulses. The biggest drawback of this approach is that changing animations requires reprogramming of all 21 chips. Therefore I’ll try switching to an all I2C solution with “dumb” slaves and all animations / effects stored and controlled by just a single master board. If next weekend is as cold and biking unfriendly as the last couple of days I might finish it in time. This code is part of the LED ring demo code and available for download on my gitweb page.

P.S.

I’m starting to wonder why ISP programming AVR chips doesn’t include a clock line… Today I bricked one ATmega chip for good (again). Even wiring an external clock source didn’t help. Before that avrdude was having issues with reading/writing the fuse bits (again). Maybe the RESET pin got disabled that way, who knows. While doing that I found out that ordinary Arduino boards happily create “high” frequencies (about 2MHz), while one of my other projects won’t. I used the following piece of code to create a rescue clock source:

The above code results in a square wave of roughly about 500kHz give or take. Using an Arduino board it still works after removing both of the delays, whereas the other board I mentioned previously only tolerates removing of one of the delays (it doesn’t matter which one). I checked with a scope that the 16MHz quartz was still oscillating and it did. But PORTD didn’t wiggle at all. Maybe not enough decoupling capacitors. Whatever. No time to dig any further. I just desoldered the bricked ATmega and replaced it with a fresh one. Do PIC microcontrollers get clocked while ISP programming is used?

P.P.S.

Today I found a slightly damaged Mouser catalog in the mail. Stop tossing stuff around like drunken baboons you delivery guys! This thing (the catalog, not the baboon) has more pages than the bible, heck it IS the bible ;-) Let’s see how many pages I can read at a time without starting to drool.

P.P.P.S.

Man, whoever (or maybe whatever) translated this catalog should practice some more. It seem it was translated word-by-word from English. They also mixed up columns in data-sheet-like tables, voltage becomes current etc. I think I will keep it as a souvenir.

P.P.P.P.S.

Now I’ve converted some of the animations to full I2C control. The Slaves are dumbed down and only hold primitive functions for basic stuff and all the animations are remote controlled by a single master board. Much less re-programming needed ;-)

This entry was posted in Arduino., Electronics. and tagged , , , , , , , , . Bookmark the permalink.