Nice. Now you need to check the efficiency of it which is the important part in these regulators on top of the ripple and regulation. I_0 * V_0 vs. I_1 * V_1 Even joule thiefs work as a type of boost circuit but are not always efficient (some get > 80% though!).

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

Another thing to try is to use some already designed boards such as the Simple Switcher from Sparkfun. It sure beats paying $35 for one of those pre-assembled (though $20 for the chip alone is quite expensive).

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

Ah, nice find! The chip I'm using is an earlier version of the SimpleSwitcher with a lower maximum input voltage and a fixed output of 5v. I'll certainly be checking out the efficiency. The datasheet says that for the kind of load I'll be throwing on it I should expect around 80%.

Tonight I started on the demultiplexer circuit that will let me drive all of the LED strips off of a single Arduino Mega (hopefully!). While what I wired together works, I'm pretty sure the analog chips I picked up were a mistake (they were recommended for use with Arduino and I just didn't do my homework well enough). It seems to make the clock signal I'm demuxing stutter quite a bit. I'm going to pick up some digital 1 x 3:8 chips when I do my final order of parts for the voltage regulators.

waxpraxis wrote:Tonight I started on the demultiplexer circuit that will let me drive all of the LED strips off of a single Arduino Mega (hopefully!). While what I wired together works, I'm pretty sure the analog chips I picked up were a mistake (they were recommended for use with Arduino and I just didn't do my homework well enough). It seems to make the clock signal I'm demuxing stutter quite a bit. I'm going to pick up some digital 1 x 3:8 chips when I do my final order of parts for the voltage regulators.

Aren't those strips you're using serial-in anyway? You can probably just connect them end-to-end and shift out all your data that way. They use self-restoring logic at the end anyway, so the signal won't degrade. If you need to do multiple strands at a time, you can also use some SIPO shift registers.

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

Well, I've got 32 strands in total and the folks on the support forum seemed to think that might be a bit too long. The demux-the-clock route was recommended by someone there. It's hard to guess at what will or won't work until I get all 32 of the strands, and well, that's going to be a bit of a big purchase!

waxpraxis wrote:Well, I've got 32 strands in total and the folks on the support forum seemed to think that might be a bit too long. The demux-the-clock route was recommended by someone there. It's hard to guess at what will or won't work until I get all 32 of the strands, and well, that's going to be a bit of a big purchase!

So are you doing a 32x32 grid? What you could do is position 32 strands as columns, and then use a 32-output shift register (that's 4x of them), and then shift out 32 bits at a time. The reason for this is that you can multiplex 32 strands at a time, while still maintaining the a row/column organization for the graphics (which will probably be a bitmap). Remember to do it from the BOTTOM of the grid, rather than the top, because the last-shifted-in bits will be the ones at the very end of the strand (at the top when you're finished).

For the computer source, check out a Beagleboard. They're finally available in regular quantities (they used to be VERY hard to get). I was talking to Workinonit about using it with is tunnel, but time constraints made him stick with the Arduino the last time I checked. Still, you can easily operate those strands using a Beagleboard and its break-out board (which has an Arduino on it too).

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

The Beagleboard is my backup route since I'm pretty sure I can pull off everything I need with the Arduino Mega. BeagleBoards are definately badass - I got to play with one late last year doing some prototyping work with QNXs (now RIM) then new car-based OS.

I see what you're saying about the shift-register, but I'm not really clear how that would work with the strips I'm using. The strips "speak" a variant of SPI and will hold whatever pattern they were last set to. If you're interested you can check out the Adruino library I'm using (it always pushes the whole strip worth of data at once).

Oh - and some random searching this weekend found me these bad boys:

Yep. A 12v to 5v, 3a converter with a purported efficiency of over 90%. They'll be a little bit more than what it would cost if I built them all myself, but it will save me HOURS of time, so not a bad trade off!

Well, the the Arduino only uses the SPI interface as a fast "bit banging" interface for those chips because the strips act as giant shift registers themselves. I'm actually not sure if a shift register thing would actually benefit you since you have such few numbers of strips. I think in the tunnel's case there were so many strips that having the scalability of the shift registers would help. I don't know how Workinonit finally resolved his lighting system. The last we talked, he had to use programmatic graphics rather than bitmapped (which is why I suggested the BB).

Another reason for the BB is that I like having the flexibility to use things like a memory-buffer for graphics before blitting (copying) the graphics to the output. It lets me do sprite rotation, masking, etc. which is hard to do otherwise, or I don't want separate units for it. Probably not a huge issue on your Mega though, though storing 32x32 sprites might still tax your memory. It'll be awesome seeing Sonic the Hedgehog or some other character running around.

waxpraxis wrote:Oh - and some random searching this weekend found me these bad boys:

Yep. A 12v to 5v, 3a converter with a purported efficiency of over 90%. They'll be a little bit more than what it would cost if I built them all myself, but it will save me HOURS of time, so not a bad trade off!

How much are they each? You'll probably need one per strip or two. I wonder if the strips can run directly off a 6V battery instead?

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

Hmm... that makes sense about the bit banging. At some point I'm probably going to bug you more about the shift register thing cause I *thought* I understood what they were based on some tutorials I read, but I'm having a really hard time understanding how they would work with my strips.

Well, rotation and such still won't be too bad since I'll be storing most graphics in a pallette mapped format and looking up the actual colors only when they're blitted. But even they it's only 32x32, rotation will look pretty gnarly so I probably won't mess with it much.

Those little converters are around $9 each. Another guy playing with the LP8806 strips found that running 5m of them full-blast white was still drawing less than 3a, so I'm hoping to be able run 4m off of each converter, so 9 converters total (8 for the strips one for the Arudino).

I looked into 6v batteries, but I've consistently found the best amp hour/weight ratio on AMG 12v wheelchair batteries.

waxpraxis wrote:Hmm... that makes sense about the bit banging. At some point I'm probably going to bug you more about the shift register thing cause I *thought* I understood what they were based on some tutorials I read, but I'm having a really hard time understanding how they would work with my strips.

The shift registers effectively multiply the number of ports you can connect to the outside world with. They operate pretty much exactly like the strips themselves, where you shift in data, and then latch it and all the shifted-in data is reflected on the outputs. For your project it may not be necessary, and may not even be necessary to have muxes at all. You could try and just connect all the strips together end to end (the data and clock lines, not the power lines) and treat it as one big shift register rather than splitting up the strips.

It may work, and save you time and effort, but it may also have signally problems. Worth a try. SPI is an inter-chip protocol, not really meant for long distance, so you might get some signaling problems depending on the distances you need to travel. I had to use I2C for some LEDs and it was terrible with its signaling problems. SPI might be better, who knows?

In larger arrays, where you might be limited by the input frequency of the strips themselves it might make sense to use shift registers to enable your controller to update multiple strips simultaneously. One benefit of the shift register over a mux is that it can affect all the parallel out pins simultaneously, whereas a mux merely routes the input to a single output. Another thing nice about shift registers is that the outputs are separately powered, so for example, if you wanted to change the clock on multiple strips simultaneously, using a single pin for that may not have the drive capability to switch the clocks fast enough for all the devices in its fan-out (devices connected to its output). The shift register could be used to connect each clock to a separate pin to keep things powered. Also some muxes are simple feed-through muxes that do not restore the signal coming in, but slightly degrade it in the mux routing.

Well, rotation and such still won't be too bad since I'll be storing most graphics in a pallette mapped format and looking up the actual colors only when they're blitted. But even they it's only 32x32, rotation will look pretty gnarly so I probably won't mess with it much.

It's actually not too bad; after all, many 16-bit console systems used that for some neat effects and 32x32 is a pretty large sprite (back then anyway). It could even be 90 degree rotations or something like that.

Those little converters are around $9 each. Another guy playing with the LP8806 strips found that running 5m of them full-blast white was still drawing less than 3a, so I'm hoping to be able run 4m off of each converter, so 9 converters total (8 for the strips one for the Arudino).

That works pretty well then. Hell, you could only use 80% of the maximum brightness at times and leave that last 20% for some real "popping" graphics when the demand comes.

I looked into 6v batteries, but I've consistently found the best amp hour/weight ratio on AMG 12v wheelchair batteries.

Not even those 6V 220AH batteries? I've only seen those 12V ones in 35AH, and for a pair they weight about 60 pounds, which is roughly the same weight as one of those 6V 220AH batteries from Costco. So you're getting about 70AH @ 12V versus 220AH @ 6V. The latter only costs $85 (+ core fee) versus $120 or so for the 12V wheelchair batteries. It all depends on what voltage you actually need of course, but the deep cycle 220AH ones seem to provide consistent value.

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

Hmm, I'm going to have to fiddle with the shift registers I got with my last electronics order just to see if I can make them play nice with the strips. You've really piqued my curiousity!

As for batteries, the only reasonably price 6v 220ah ones I've seen are flooded, not AGM or gel. Because in this application the battery isn't going to be particularly well protected (it's a top heavy bike trailer!) I don't think I can get away with a flooded battery safely. I've seen things go bad quickly when a flooded lead/acid battery got banged up and that's the last thing I want to happen out on the playa!

waxpraxis wrote:Hmm, I'm going to have to fiddle with the shift registers I got with my last electronics order just to see if I can make them play nice with the strips. You've really piqued my curiousity!

Also see if you can manage to have all the strips connected as a single long strip. The chips have self-restoring outputs, so you won't get signal degradation unless you have really long signal lines and even then it may not be much worse than connecting to your Arduino or other microcontroller. It'll mean you can just shift out a whole 1024x7x3 bits of data as a single long block of data, avoiding even the need for more than just the two inputs. Just connect all the grounds (only once at the inputs so you don't get ground loops), and then provide separate power.

As for batteries, the only reasonably price 6v 220ah ones I've seen are flooded, not AGM or gel. Because in this application the battery isn't going to be particularly well protected (it's a top heavy bike trailer!) I don't think I can get away with a flooded battery safely. I've seen things go bad quickly when a flooded lead/acid battery got banged up and that's the last thing I want to happen out on the playa!

Ah that's a good point for something mobile like that.

On yeah, you can also get the parallel-in, serial-out (PISO) shift registers so you can shift in lots of inputs in case you want to connect up a control panel.

"The essence of tyranny is not iron law. It is capricious law." -- Christopher Hitchens

Yeah, once I get all the strips, I'm definitely going to just try to serial 'em all together. Some folks on the board where I bought them don't think that will work well, but given that it's the simplest solution I at least want to give it a shot!

I'm currently in the process of working together a pretty sweet deal where the folks that sell the RGB strips are going send me some free stuff with which to build interesting/fun projects. Then I'll write up tutorials on how to build said interesting projects for them to publish, and in return... I get more more "free" stuff! I'm going to be up to my eyeballs in electronics soon (I hope!)

I've been busy though, mostly making the wiring harness. I bought all the bits needed to make my own JST SM connectors and have slowly been assembling everything so I can just click together all of the strips super easily. Every strip will have the same 4-pin input and output connectors so that if something goes wrong I can easily swap out strips.

That just means I need to assemble a LOT of connectors. It's worth it though, I spent $50 on all the bits and pieces and probably have 2x the parts I need so I can use them for other projects (The 2-pin ones are great for EL wire projects!). If I were to buy them pre-assembled it would end up being over $150.

Right now the lights are being controlled by an Arduino Mega which has just *barely* enough RAM to do the animation you see in the video. Not so good, right?

So, I'm in the process right now of trying to move the whole project over to use a BeagleBone instead - a ARM-based 700mhz, 256mb RAM, device that fit's comfortably inside an Altoids tin. The only problem is that right now, the current official linux distro for the 'bone doesn't support userland SPI (translation, with the current software I can't actually talk to my LED strips!) so I'm kind of on hold right now while I wait for the new update to drop (should be any day now - thank goodness!).

Now, while I'm waiting I'm working on the general software stack for this beast and I think it's time to get the rest of the community in on this thing!

So, you want to put YOUR pixel art on the BlitterBike and see it glide across the playa and at least two regional burns (Playa Del Fuego and Lakes of Fire)?HERE'S HOW!

THE SIMPLE WAY--------Make an animated GIF. Yep, just a regular, 32 x 32 pixel animated GIF. You can set the timing of the frames to whatever you want - I'll be adjusting it on the fly to make it stay in-sync with the speed of the bike.

THE ADVANCED (but more awesome!) WAY--------Make an animated GIF, 32 x 32 pixel. Just like with the simple way. BUT divide that animated GIF into multiple segments, each segment being an animation loop. When you send me the GIF let me know what frame ranges define a loop. Why? You ask... AH! Well the BlitterBike also has on it a 12-unique input joy stick (4-way joystick and 8 buttons). With that input, people who come up to the BlitterBike will be able to control your animation!

If you have any questions, ask away! The public debut of the BlitterBike will be on Memorial Day weekend at Playa Del Fuego in Delaware, followed by Lakes of Fire at the end of June, and then the big burn.

Folks that make animations for the BlitterBike will get my undying gratitude, the thrill of seeing their artwork on the lowest-res bike-towed screen in the world, and I'll send along one of my fun blinky creations as well. Feel free to send GIFs, questions and lemon meringue and/or key line pies to bhall at automatastudios dot com.

What that means is that I just won a fight that has been consuming a stupid amount of my free time since the middle of January. That, right there, is my BeagleBone talking to itself at 40000KHz through a staple (yes, a staple, I couldn't find any of my hook up wires here at the office).

So what's the big deal? Well, it turns out there are multiple ways for a device like a BeagleBone to talk out to the world. The most basic, General Purpose IO (GPIO) works well, but when I tested it's speed I was maxing out at about 2400Hz. In order to send data out to my strips I need to be able to send 24 bits of color to all 1024 LEDs 30 times every second - so 737280Hz. GPIO was literally more than 300x too slow.

Now there's a much faster way to talk out from the BeagleBone called Serial Protocol Interface (SPI). The problem is that the ability to access the SPI pins isn't turned on by default on the BeagleBone. The way you turn it on is to download the full linux kernel source code, patch it, cross compile it (cause my computer is Intel x86 based and the BeagleBone is ARM based) and then install the fucker. Between figuring out what I needed to do and how to actually do it, it's been a seriously annoying two months...

737280Hz.. lulz. I'm amazed that even SPI can handle it. I see all different claims of max SPI speed around the interwebz and I know that Workinonit was having having some serious speed limitations as well even with SPI last time I checked..