Ok, so being curious after seeing the
BlinkM modules on
Sparkfun, I decided I wanted to do something with these modules. Browsing
around on the Internet, I found
the following interesting project form
IDEO
Labs, and new that "I had to get one of these"! Because the front of out
house has a "Glass Brick Wall" in the middle, it
was a no-brainer where to place it!

Above the house where we live. As you can see in the middle of the house we have
a 11x25 Glass Brick Wall in the middle. This is perfect! So I decided to bulid
an
11x11 matrix of I2C controlled BlinkM's.
Now, the BlinkM's come at approx US $12.00 a pop. So that would be 11x11x12= US $1452. No way hosay. My wife would never allow this ;-)!
First I made sure I could use the BlinkM firmware. This was possible, as others have been doing this, as long as you adhere to th License.txt of ThingM.
So I started off calculating how much it would cost me if I would make them by myself;
I ordered the stuff at Mouser.com:

As you can see, I ordered 130 pcs of everything, cause as you know things break
or get blown up! I also included some I2C Level Shifters needed to boost the
I2C Level on the 'strand' lines (these run horizontally). The
130x PIRANHA RGB 5mm R/H LED Lamp 8Kmcd COMMON CATHODE I ordered through eBay
for US 58.00.

Next thing was a PCB for the "Home Made" BlinkM's. So I cooked up the above
schematic (well, you can find it in the BlinkM
Datasheet) cause I could then "bind"
the schematic to the PCB design below.

As you can see, I made12 BlinkM's on one sheet. When making
the actual PCB, I layed 2 sheets next to eachother
so I would get 24 BlinkM's per EuroCard (16cmx10cm). I
needed a total of 5 EuroCards to produce the 121 BlinkM
PCB's (including underlighting errors etc). I used my home
made UV LED PCB
Develop Box. EuroCards are approx
Euro 4.00.
OK, so now we need to calculate the price per "Home Made BlinkM", see table below:
| Item | Amount |
| BlinkM parts | 249.00 |
| LED's | 42.00 |
| PCB's | 20.00 |
| Div (etching, solder, etc) | 50.00 |
| Grand total | 361.00 |
| Price per "home made BlinkM" (131 pcs) | 2.75 Euro |
This shows us that per "Home Made BlinkM" it costs us 2.75
Euros, as apposed to approx 11.00 Euros if I buy them
through e.g. Sparkfun. Of course this is without the labour etc, but always
cheaper than the cost through a e-shop!!

So now gathering components and wiring to make all of the
BlinkM's. Here you see the wiring being cut and taped together
for later use.
Ok, here we go. Need to mount 121 ATtiny85, 484 SMD components (resistors, capacitors) and 121 LED's. Wow.

Finally batches ready for mounting in the plastic rail that will be mounted
behind the Glass Brick Wall. On the bottom right
is my other project, the IVLM 5/7
Running text/Clock display (this has nothing to do with the GBW!!).

Here you can see - on the left - two original BlinkM's from ThingM, one
assembled "home made" BlinkM, one 3 color LED,
one empty BlinkM PCB, - on the top left the connector used to program the BlinkM
with it's own I2C address, on the right
bottom an Atmel ATtiny85 SMD chip and on the top right the programming unit for
the ATtiny85 SMD chip. This programming unit
connects to my STK500 board. I used the Atmel AVR Studio 4 to program the
devices.

Ready for a BlinkM????????????????
OK, so once all components are mounted on a 'BlinkM' (or should I say 'SteveM'
board), I needed to program it's I2C address.
I used the Arduino Duemilanove board and the BlinkMTester application for this. You can download the BlinkM
software
from ThingM. It's all zipped in
EXAMPLE CODE.
So below you can see the connected BlinkM with the Arduino board. Once
connected, the BlinkM should immediately start to
run it's default script.

Now, start the Arduino scripting environment, and load the BlinkMTester.pde. As
you can see below, you can issue many I2C commands
with the Tester. When you start the Tester, it scans the I2C bus, and shows the
device connected. So the first time you start it with
a 'fresh' BlinkM, it should detect device 1. In the example below, i had a
device connected with address 115.
OK, so issue the 's' command followed by the I2C address you want e.g; "s22" -
to set the I2C address to 22.
Now, test the newly written address by resetting the Arduino. The application
should reset and detect the device with address 22.
Also issue a play command to run a different script e.g. "p16", will run script
16, to test the BlinkM.
When all seems to work fine, you can now do the next BlinkM.



Here I am using my good old Dremel to cut out the 'holes' for the BlinkM wiring.

BlinkM 'strand' being wired into the plastic strip. Power lines are Black and Red. I2C data lines are Blue and Yellow.

Here a photo of a "home made" BlinkM, the I2C driver unit on the right, and the Arduino that drives all the BlinkM's.
I use two Arduino Duemilanove's connected to two USB ports of a PC. The PC then drives each BlinkM individually.
If the PC is not running, and the BlinkM matrix is switched on, they will run the startup script as programmed in the Firmware.
The total of 121 BlinkM's are divided into 2 blocks: 1 block of 6 horizontal
'strands', and 1 block of 5 horizontal 'strands'.
This is done because of the limitation of the I2C protocol/hardware. Each
horizontal strand has it's own I2C driver. I used
the NXP PCA9512AD for this. When the PC Application
is opened, the user has the option of selecting the 2 COM
ports the Arduino's are connected to. The the program is able to drive the
'strands' through the Arduino's (with modified firmware).
The Arduino's then drive the 'strands' through the I2C (NXP) drivers.
Click here for a video that shows the FIRST "strand" installed!!! Yes Baby! (Have patience, videos are large...)

Here a snapshot of the Glass Brick Wall Windows Application. In the Info Window
on the right bottom you can see it is "Playing All Scripts" in sequence. This
gives
a very nice effect on the wall, because the BlinkM's rely on their internal
clock (they do not run all exactly e.g. 4Mhz), and that means they will begin to run
"out of sequence" after a short
while, generating
a "wave" effect. This Windows Program communicates with the two
Arduino's through the COMx Ports.
The Arduino's are running a modified version of the ThingM's Communicator
program.
Click here for a video that shows one test 'strand' of BlinkM's running in the garage.
Click here for a video that shows the Fully completed Glass Brick Wall Running, as seen from the inside.
And last but not at least: an video what we projected on the wall did when New-Year arrived.
![]() |
![]() |
![]() |
![]() |
| Nice camera effect | 5 top 'strands' in place and running | Next door neighbour (Kees) turned 50!! | Our daughter Chantal turned 10! |
![]() |
![]() |
![]() |
![]() |
| The Arduino built into a box. Yellow and Blue are I2C lines. | Closeup of the NXP I2C driver. | Dual 19" Power Supply I got cheap at an electronics shop. You never have enough power!! | The end. |
Do's and Dont's: