Can't scale up BlinkM network.
I am trying to build a 35 BlinkM network. I have a separate power supply providing 4.5V @ 1600mA, with pull-up resistors across to the D and C pins. I can't seem to scale up to 35. I can control a small network, but not larger than 20 at this point. I tried using a couple different values for the pull ups (1.8k, 4.7k, etc.)
Any suggestions?
-Rob
Any suggestions?
-Rob
1
person has this problem
I have this problem, too!
Tell me when someone solves it.
The more people who report this problem, the more it gets noticed.
The more people who report this problem, the more it gets noticed.
Create a customer community for your own organization
Plans starting at $19/month
-
Inappropriate?Hi Rob,
The startup light script that comes default on BlinkMs will cause each BlinkM to draw 60mA as it goes full white. This means 35 BlinkMs at once would draw 35*60mA = 2100mA, which is greater than your power supply. This is likely your problem.
You can program each BlinkM's startup behavior with the "Set Startup Parameters" ('B') command. An example command byte string to not play a script on a startup is "{'B', 0,0,0,10,0}". The first zero is the most important one: it controls whether or not a script is played. The '10' in there sets the default fade speed for any subsequence fade commands. The datasheet contains more details.
If you've set the startup mode to not play a script and it's still not working, how long and what type is the cabling you're using? I2C networking wasn't meant to go beyond a single PCB and we're all just lucky it works at a few meters. If you have strange or really long cabling, you might run into issues. For cabling, I've had success with standard ribbon cable and IDC connectors as described in my BlinkM Cylon post. Your pullup resistors should be no smaller than 4.7k. If you make them too large, the I2C devices can't pull the lines down.
You are working on one of the largest BlinkM networks I know of (I've only built ones up to 24 BlinkMs). Let us know how things work out! -
Inappropriate?Excellent, I will try the power supply issue first. I'll be documenting my work for all to see when this network is up and running. We have some sensors running as well so power will be an issue for sure.
Thanks for all your help.
-Rob
I’m thankful
-
Inappropriate?Hey Rob and Tod,
Rob - how did you make out with your 35 BlinkM network? Did you find a power source that can handle that many BlinkMs?
I have a project that I have planned for a 51 BlinkM network over 25 - 30 ft. long and I'd appreciate any product suggestions or tips on how to power that large of a network (in addition to the suggestions above). The project can be scaled down if needed, but the more BlinkMs we can use the better!
As far as communication goes, I have tested 3 BlinkMs over a 30 foot 4C ribbon cable, using 4.7k pull ups and they seem to run solid. Would using more BlinkMs over the same length reduce the length the I2C can carry data? I know we're stretching it already as it is.
Any thought you guys could offer would be great!
- Will -
Inappropriate?Hi Will,
Short answer: try smaller pull-up resistors (1.2k) first, then try using an "I2C bus driver" chip.
Longer answer:
At 30 feet, you're approaching the theoretical limit for I2C bus length using standard ribbon cable. Making reliable long I2C busses is a bit tricky. This is because I2C is more sensitive than most protocols to increased bus capacitance. And any time you get a long strands of multiple wires next to each other, they start looking more like a capacitor (what's a capacitor than two pieces of metal separated by a gap)
There's some pretty good discussion of these issues on this page:
http://www.i2cchip.com/i2c_connector.html#Bus%20Pullups%20and%20Drive
Where the main take-away might be: try using smaller pull-up resistors (1.2k) on longer bus lengths.
To really solve the problem, people use "I2C bus driver" chips. These are constant-current sources that are more accurate than a simple pull-up resistor. There are many different vendors of these chips, and they're all about the same. A real-world example of using these chips is Dave Vondle's big BlinkM LED wall:
http://labs.ideo.com/2009/08/19/glass...
For *really* long I2C runs, there are various types of "I2C bus extender" chips. These typically need to go in front of each I2C device, so probably aren't applicable for use with BlinkM. But some of these kinds of devices even do a kind of wire protocol modification to allow I2C to work up to several hundred meters. -
Inappropriate?Tod, thanks for the information! It seems like the I2C bus length is a challenge for a lot of people. I'll give the 1.2k resistors a go and see how things work out from there.
Dave's project is very similar to my project, but his is at a much bigger scale. It's good to know it's possible to drive that many BlinkMs at once!
As far as power goes, if the network uses 50 BlinkMs would that mean I would need to supply 3 amps through the external power input (60mA per BlinkM)? If so, can the Arduino accept 3 amps over 5V or is there another way to send power to the BlinkMs?
Thanks again for your advice. I'm new to the Arduino board and electronics in general so I want to be careful before frying anything. -
Inappropriate?The Arduino board can only provide about 500mA of current, so you can't use the power supply on the Arduino to power your 50 BlinkMs. But if you have a power supply that can provide up to 3A. For instance, here's a $15 wall-wart that provides up to 2.5A at 5VDC.
http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?productId=252736
You could get two of those to give you about 5A, which should be enough head room, and you can use it to power the Arduino.
(If you're not used to doing power calculations, typically you want a power supply that can provide about twice the current needed at a given voltage. If you had a system that consisted of 50 BlinkMs (60mA each), an Arduino (100mA at most), and some support circuitry (maybe another 100mA), you could estimate that at most the current draw you'd see would be (50 * 60mA + 100mA + 100mA) = 3200 mA = 3.2A. Double that to get 6.4A. Now in practice you might know that you won't be powering all your BlinkMs at full brightness at once, so you won't need the full 3.2A, which is why I said 5A should be sufficient.)
1 person says
this solves the problem
-
Thanks, Tod!
Loading Profile...



EMPLOYEE
