Arduino freezes if blinkm is not connected to pwr


I just found out some strange behaviour between arduino and BlinkM. In my setup I use external psu to power the BlinkM MaxM. This power will be triggered via arduino.

The strange thing is... When I start up the arduino, it freezes if a BlinkM is connected via the C&D wire, but doesn't have power. If I disconnect the Clock&Data wire, the blinkm continues running the program like nothing happend (until I cut the power to the blinkm, then arduino freezes again).

I have to remove the Clock AND data wire, removing only one doesn't change a thing.

It took me a while to get here and hope there is some logical explanation for this. I've send an email to BlinkM hopefully they can explain what happens.

See my other thread about my project and code:

Just mailing with ThingM and I came up with some other findings:

I've read the following: Both data and clock remain high when the bus is not busy.

This is true. When I don't connect a blinkm and start the l2c bus command BlinkM_stopScript(blinkm_addr); I measure +4,5v

But if I do this with a blinkm connected without power to the blinkm the bus is 0v and will be "bussy".

I think this happens because the blinkm shortens the C & D if it's not powered. I measure 1.4 Mohm between C&D without power to the blinkm. This changes to infinity when the blinkm gets powered.

As this is my measure result, I'm trying to find this information because I also would like to read it in the factsheets of the protocol.

That's correct, the BlinkM is based on an ATTiny and the internal clamping diodes on the pins will pull the signal low when the device is not powered. Not a good idea to do this because those diodes aren't designed to handle much current.