Recent activity
Subscribe to this feed
todbot replied on November 10, 2009 03:07 to the question "MaxM Blaster without Master" in ThingM:
Hi Philip,
If you have some 220 ohm resistors, you can try putting one in series with each LED (instead of just a wire going from pin 9,10,11). This should limit the current enough to let you turn on all the LEDs with an Arduino. The result won't be as bright as it could be, but it'll at least let you try stuff out.
todbot replied on November 09, 2009 21:05 to the problem "Sequencer does not work/start on Mac OS X 10.6.1" in ThingM:
Hi Michael,
Glad you got it working! As for the BlinkM firmware, if you'd like to reflash your BlinkM boards wth the official firmware, email us at blinkm at thingm.com and we'll send you the hex file. If you'd like to try your hand at the source code, there is an open source clone of the BlinkM firmware that implements most of the functionality at http://code.google.com/p/codalyze/wik...
todbot replied on November 09, 2009 21:02 to the problem "Can't scale up BlinkM network." in ThingM:
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.)
todbot replied on November 09, 2009 20:49 to the question "MaxM Blaster without Master" in ThingM:
Hi Philip,
The BlinkM MaxM "Blaster" LED board contains high-power LEDs that cannot be driven properly with just an Arduino. Each LED in the Blaster board draws about 80-100mA of current at full brightness, and a single Arduino pin can supply only about 40mA. Also, the Arduino chip can only supply a total of 200mA, while the Blaster board consumes up to 260mA. So even if you were to hook up a Blaster board directly to an Arduino (as in the diagram below), you likely couldn't get it to work like you wanted and may even damage the chip in your Arduino.
So the diagram below is provided with a big "Warning, don't do this! for instructional purposes only".
You can get a Blaster board to work with an Arduino, but you will need to add power transistors between the Blaster and Arduino, very similar to what is on MaxM. You can search around on the Arduino.cc site for some examples on how to use power transistor switches.
todbot replied on November 09, 2009 20:30 to the question "Using only the USB to I2C connector to program BlinkM" in ThingM:
Hi Aaron,
Yeah that Deveantech interface is kinda weird. Looks like it works great for registered-based devices like EEPROMs. But there's a lot of I2C devices out there (like BlinkM) that use a more RS-232-style of communication.
It might be you can use the "I2C_AD1" command and treat the "address" as the command byte (e.g. the "Stop Script" command 'o' is one address, the "Fade to RGB" command "c" is another address)
todbot replied on November 04, 2009 04:20 to the question "connection to Arduino mega?" in ThingM:
todbot replied on October 24, 2009 02:52 to the problem "Can't scale up BlinkM network." in ThingM:
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.
todbot replied on October 15, 2009 21:40 to the problem "Sequencer does not work/start on Mac OS X 10.6.1" in ThingM:
todbot replied on October 15, 2009 08:37 to the question "Controlling the BlinkM with RAD, has this been done properly?" in ThingM:
todbot replied on October 15, 2009 06:36 to the question "Controlling the BlinkM with RAD, has this been done properly?" in ThingM:
You won't get any response over the serial port, as that command doesn't have any return values. But you should see the BlinkM change to that #FFCC33 color. If the BlinkM is playing its startup script, then you'll need to send the Stop Script command ('o') first. The BlinkMCommunicator byte array for that command would be:
{0x01,0x09,0x01,0x00, 'o'}
assuming your BlinkM is at address 9
todbot replied on October 12, 2009 16:15 to the question "Communicator program will not compile. Help." in ThingM:
todbot replied on October 11, 2009 21:40 to the question "Communicator program will not compile. Help." in ThingM:
Hmm, that's very strange. I just tested compiling BlinkMCommunicator from a fresh download if it, using the Arduino 0017 software on Mac OS X 10.5.8 and Windows XP SP2, with the Arduino board type set to "Arduino Duemilenove or Nano w/ ATmega328". Both compiled the sketch just fine.
Can you give me any more details on your system? Is there anything strange about it? Specifically what version of Windows are you on? Have you been able able to compile any other Arduino sketches? (like the ones in the examples, specifically any of the Wire examples)
Have you been experimenting with I2C/TWI/Wire in another capacity? Have you done anything with your Arduino installation that is different than what the Arduino site says to do?
todbot replied on October 11, 2009 21:21 to the question "Controlling the BlinkM with RAD, has this been done properly?" in ThingM:
Hi Joseph,
BlinkMCommunicator expects raw bytes to be sent, not ASCII. A BlinkMCommunicator command in the form:
{0x01,0x09,0x04,0x00, 'f',0xff,0xcc,0x33}
is almost exactly the syntax used in C/C++/Java/Processing for how to construct a byte array to send to BlinkMCommuncator.
For instance, in Processing (Java), a completely constructed command and sending it to BlinkMCommunicator via the Serial port object looks like this:
byte[] cmd = { 0x01,0x09,0x04,0x00, 'f',(byte)0xff,(byte)0xcc,(byte)0x33 };
serialPort.write( cmd );
(The "(byte)" is needed to force those values to look like bytes instead of ints because Java has signed bytes)
todbot replied on October 11, 2009 21:10 to the question "Communicator program will not compile. Help." in ThingM:
todbot replied on October 07, 2009 02:39 to the question "Controlling the BlinkM with RAD, has this been done properly?" in ThingM:
Also, I don't fully grok github, but it looks like madrona's stuff is a downstream fork of atduskgreg's RAD. And his repo has blinkm stuff in it too:
http://github.com/atduskgreg/rad/blob...
todbot replied on October 07, 2009 02:35 to the question "Controlling the BlinkM with RAD, has this been done properly?" in ThingM:
Ahh, okay, I seem to recall reading about RAD a while back. Pretty cool stuff.
Have you asked the author ("madrona"?) of those files why they were commented out?
If RAD is basically a substitution system for Ruby to C/C++, I can't imagine why it wouldn't work. That is, from what I can tell, it's not re-implementing all the Arduino libraries in Ruby that get converted to C++, but rather doing a kind of macro substitution. If it's doing more than that, I'd say stay away from it because there's then no way to use the huge number of useful libraries available for Arduino and it would always lag in bug fixes/updates in the core. (I couldn't find where RAD implemented all the Arduino core libraries which is why I assume it's doing a kind of macro substitution, not reimplementation)
todbot replied on October 05, 2009 04:21 to the question "How to increase BlinkMSequencer time line from 120sec. to 1 hour?" in ThingM:
The "numSlices" variable in BlinkMSequencer reflects the hardware limit in BlinkM of the maximum number of light script commands a light script can have. You cannot make it larger.
If BlinkMs are being controlled by some external microcontroller (e.g. Arduino), there is no limit on the length of the light pattern loop, as the microcontroller can act as the conductor. For BlinkMs playing a stored light script (as what the BlinkMSequencer is really for), then the maximum time a light script can be is about 6.8 minutes.
The user-modifiable light script slot is 48 steps long. Each step is a different BlinkM command. And each step can last for 255 "ticks" in duration. A tick is 1/30th of a second. Thus the maximum time for a single step is 8.5 seconds, and the maximum time for and entire script is around 6.8 minutes.
todbot replied on October 05, 2009 04:14 to the question "Controlling the BlinkM with RAD, has this been done properly?" in ThingM:
todbot replied on September 23, 2009 15:40 to the problem "My BlinkM has died, in mysterious circumstances" in ThingM:
todbot replied on September 20, 2009 07:28 to the question "Rotarty switch to change scripts" in ThingM:
| next » « previous |
Loading Profile...



