And ate through batteries like pigs at the trough. I didn't want to keep buying all those damn batteries, and I sure as hell didn't want to keep tossing them out, so this is what I came up with. That and the fact that I wouldn't be going to Burning Man this year left me with a bunch of free time that would otherwise be spent thuswisely. So this is my consolation prizes, of sorts. I will be adding on an implementation of Leah Buechley's wonderful Arduino-conrolled turning signal bike jacket in the near future.
This is my first Instructable, and its a retro documentation job, but I hope it suffices. If it seems a bit too dumbed down, then by all means it probably is. That extends to me as well.
Anywho, Create and Enjoy!
Oh and, apologies for the terrible quality of the images. I've worked my camera pretty hard over the years, and it seems like its pretty near the end of its product lifecycle. sniff.
Step 1: Stuff You Need
1 Backpack/messenger bag
1 Project case
1 Cheapo LED headlamp
1 Cheapo/not-so-cheapo red LED backlight for bikes
2 3V, 50mA PowerFilm Solar Cells, product number MP3-37
1 AA battery holder, capable of holding:
3 NiMH AA batteries
1 Piece of perfboard that will fit into the top of the project case
4-8 Standoffs + screws
1 Standard blocking diode, 1N4001 for instance
5 100 Ohm resistors
3 Momentary pushbutton switches
1 DPDT switch
1 SPST switch
LEDs, to your choosing
Wire, to your choosing
Spare batteries, for testing
Thread (heavy duty nylon, if possible)
1 Arduino Skinny from sparkfun (or the new certified version, the Arduino Pro)
I had a cheap backpack from Burton Snowboards which was the perfect size for my purposes, but didn't like the straight "backpack" style. So I rearranged the straps and now its been tilted on its side as a messenger bag with one main body-hugger strap and an auxiliary strap that latches in from the bottom, providing a remarkably secure platform. The biggest downside so far is how it tends to wrap around the body, resulting in a thoroughly sweat-soaked shirt. But, uh, whatever. It works. I found a latching, air-tight tupperware-type container in the kitchen that was perfect for the project box, and the headlamp, I picked up for something like $6 from WalMart. Pretty much everything else was in my gear box or ordered in online. The majority of my wiring is a bunch of speaker wire I had lying around, nice and resilient.
Breadboard, for prototyping
Cordless drill + bit
Alligator-clip jumper wires
Serious industrial adhesive
Wire hanger, like for coats and shirts
Soldering iron holder/third hand
Hot glue gun + hot glue, for sealing purposes
Hacksaw, the better to cut with
Adequate ventilation, for to preserve your precious grey matter
Step 2: Prepping the Backpack
This is fairly self-explanatory.
Figure out where you want the specific components to be on the bag, and how it will operate "out there", on the road. This should determine the physical arrangement of your own particular build. Cut/sew/modify anything if necessary - see the previous step on why my bag looks so lop-sided.
The Xacto blade and lighter are useful for making cuts and melting frayed ends, and good old-fashioned needle and thread are gonna be your best option for re-attaching.
It was just by luck that the project box I found is perfectly sized so that it slides right into a side pocket with a convenient headphone cord outlet hole, close to the shoulder strap I will be using.
I put all the controls (except the main switch) on the shoulder strap, and I wanted to run wires up through the strap itself, so I had to cut tiny holes on either side and feed the them through with a piece of wire hanger, like a giant "needle"... but more on that later.
There was also a nice section of webbing on the exterior of the strap itself, which was perfect for a home for the LED/pushbutton assemblies, and I had a big plastic ring in which to embed another switch. Obviously, these details will be different for everybody.
Step 3: Prepping the Project Box
Once you're done with the bag itself, time for your project container.
If possible, try to fit the battery holder into the box, and see if you have enough room to mount your board(s), switch(es) and wires as well. Mine all just barely fit. If not, you will have to find another box for the batteries. The ubiquitous Altoids tin will work just dandy.
With all this in mind, drill holes for the wires you will be bringing in and out, and the switch(es). When you eventually start wiring things in, make sure to give the wire a good overhand knot just as it enters the box, so they aren't unexpectedly ripped out. Which would probably not be good.
Determine the size of the perfboard you will need and cut it. The bigger the better, as you'll have more room to futz with, but sometimes you're a little crammed for space. Glue down/attach your battery pack and mount your board(s) with the standoffs.
The red board in there is sparkfun's "skinny" version of the Arduino, which will eventually drive the aforementioned turning signals, which aren't wired up yet.
Step 4: Building the Circuit, Part 1: Charging
We will have 3 NiMH AA batteries in series, giving a nominal 1.2V each, which adds up to a nominal 3.6V. But under actual conditions of use, that could dip as far down as 0.9V and up to 1.4V each on recharge without doing major damage, so we need some way of limiting their use to within this range.
This circuit will do that, approximately, although in a rough, un-engineering-like way. But its simple and it works.
In order to charge the batteries, you need to the positive end of the solar array connecting to the positive end of the batteries, and the negative ends doing the same. Here, flipping the switch "up" will do just that. Two issues though:
1. We need a diode in the direction of charging to keep the batteries from back-discharging back into the solar cells when its dark, draining them of the energy we stored during the day, and:
2. The nominal voltage drop across the solar cells, which we've got wired in series, will be 6V. As long as the solar voltage is higher than the battery voltage, current will flow into the batteries. But we don't want total battery voltage to get any higher than around 4.2V (1.4 x 3), so we need a way to drop the solar voltage level around 1.8V on the way to the batteries.
Although its not very elegant, nor robust, putting an LED in there should accomplish both, since they normally have a voltage drop of around 1.7 to 2 Volts or so. Use your multimeter to confirm this though... While it is generally a BAD IDEA to wire an LED backwards (irreversibly damaging it), the circuit IN THIS PARTICULAR CASE should be able to handle the potential reverse current flow without major damage. And it hasn't so far (fingers crossed).
Also, it gives a nice indicator of charging status: the brighter the LED, the faster it is charging the batteries. When it is off, the solar cells are putting out less voltage than the batteries, which means they are not charging. One worry though, is that the stated voltage, 6V is only in nominal, laboratory-testing conditions, and for these panels, in direct sunlight, it can go as high as 7.2V, which would definitely overcharge the batteries. But that's a risk I'm willing to live with. Better than overdischarging them...
And, one other thing we need to check is the current flow coming out of the solar cells. The rubric is that we generally want the current to be 1/10 of the total battery capacity, balancing speed and safety for the batteries. Since the capacity on my batteries is 2400 mAh, the ideal nominal current would be 240 mA. Our panels only give out 50 mA, which is actually pretty low. We could add on 4 more arrays in parallel and be within the safe zone. That might be for another project. For now though, better safe than sorry.
On to the load side of the circuit.
Step 5: Building the Circuit, Part 2: the Load
Flipping the switch "down" will enable the devices you've attached to work. Here, we don't want do draw off the batteries unless the total voltage across them is higher than around 2.7V (0.9 x 3).
Here, I've wired up a normal blocking diode (the 1N4001 which I originally ordered with the solar cells) in series with an LED for a charge status indicator light. Since the voltage drop across the diode is 0.7 V, the total voltage drop should be around 2.4-2.7V. When the supply voltage drops below that level, it doesn't give enough potential to drive the LED, turning it off. So when the light goes out, I know its time to stop using the various devices I've got hooked up and start recharging.
Once again, dirty, but it works.
When using LEDs, make sure to include a resistor in with them, so they don't burn out. Even when they're in parallel, a resistor should go with each LED. Basically, since resistors resist the current flow going though the part of the circuit they're in, the higher a particular resistor's value, the less current will flow. Remember V=IR.
In the case of the charging circuit, we want as much current to flow through to the batteries as possible, without damaging the LED. 100 Ohms will work.
With the Load side of the circuit though, we would theoretically want a higher-value resistor, in the interest of keeping waste current flow down to a minimum. Here however, I want to make sure the voltage drop across the LED stays around the 2V area, and giving a stronger current would make it more obvious when the voltage finally drops off below the minimum threshold we want. So I've thrown in a 100 Ohm resistor here too.
Step 6: Wiring and Mounting the Solar Cells
So... if the box we just built is the heart (and lungs, I guess) of our project, then this is definitely... the soul! SOULAR! he he he!....
OK. Calm. Control.
The cells I've got are from PowerFilm, product number MP3-37, and they're nicely thin and flexible. For this project, we want to wire two of them in series, to make up the 6V supply. Align the cells like so (or however you want them, physically,) so that the positive end of the first one lines up with the negative end of the other. You can tell the difference here, as the "crossbars" on the white "T"s intersecting the cells lie towards the positive, and the "verticals" point towards the negative.
Scratch or melt off the plastic covering the silverish contacts on either side. You can tell if you've gone through enough plastic when you start scraping the contact below. Solder on a single piece of wire across the two. Solder on the stripped + and - lead of a dual-stranded wire to the other sides, and you're done. Work the other end of the wire through the bag so that it reaches the box with enough slackroom.
Dab some hot glue on the joints to insulate them from the weather.
As for attaching the panel to the bag, lay down a length of the "hook" side of the velcro to the back of each cell, and cut three lengths of the "loop" side to match the span, inclusive, between the "hook" pieces. Space them out evenly over the length, peel off the backing, and smack them in place wherever you would like to have your panels set. I've got two spots on my bag, depending on the angle of the bag to the sun. You might have to sew down the edges of the loopy stuff, depending on the kind of adhesive they've applied to it, so it doesn't fall off.
Step 7: Hacking the Headlamp
Do just what the title says. Open up the cheapo headlamp and disconnect the whole battery section. All you need is the contacts it led into. Wire them into the box, and solder across the Load section of the control circuit.
And now the promised note on threading wire through the strap. If you look closely in the picture, there are several places I've made small slits in the surface fabric of the strap, on the edge of the padding where it meets the edging. With the Xacto blade, make two such slits - one where you want the wires poking out, and one where the enter. Take the wire hanger and cut out a nice, long straight section of it. This will be your "needle". Push it down the length between the two holes, in the space opened up between the padding and the edge. It'll give back a bit, especially if your strap curves, but eventually, it will poke out the other side. Duct tape the wire you want to insert to one end of the coat-hanger wire, and pull it through the hole till it comes out the other side. Voila! Done!
Next, drill holes in the corners of the casing of the headlamp if possible, and sew them down to the strap, but in a way that won't preclude other wires from getting through, if you so wish them to.
Step 8: Assembling the LED/Pushbutton Switches Part 1: Curling
The idea here is to have what appears from the outside to be an LED you can push to turn something on and off. Or a switch that gives feedback on the status of whatever it is you are switching.
Which basically means sticking a switch and an LED together, back-to-back, so that the "button" part of the switch faces down, away from the LED part of the assembly.
To start, curl the leads of both elements. It is important to keep the distinction between anode and cathode (+ and -, long and short) on the LED, so make sure to apply different curling styles to each leg of the LED. I used square-ish for the positive side, and more circle-ish for the negative. But it was hard to tell the difference sometimes, so I might switch to using triangles and circles in the future. Whatever your convention though, make sure you STICK TO IT!
Make three sets of these. It is much easier, given the size of the elements, to go ahead and wire them up now before gluing them together, rather than attaching them first, then trying to make your way through the gobby mess to the contacts you're supposed to solder in to. But that means we have to their applications ready.
Step 9: Hacking the Taillight
This is pretty much the same thing as the headlamp.
Except here, my taillight came in a fairly ungainly casing, from which I decided to free it. Conveniently though, the circuit board was in the shape of a long stick, which made for a good light bar. And it operated on a pushbutton basis. Which made wiring up to the corresponding LED/pushbutton on the strap a cinch.
So. I wired the supply and ground voltages to the Load source, then wired in the pushbutton to where the original button was set. After that, I paralleled a resistor leading to the status LED on the LED/pushbutton, into one of the red LEDs actually on the board. Therefore, whenever that LED lights up, so does my switch, letting me gauge the current display pattern it's running, based on the timing between the flashes of my status LED. That makes for six wires leading out of the board, two into the project box and four to the corresponding LED/pushbutton.
After all that, I went ahead and encased the whole thing in hot glue, forming it a bit to have a divot where I can secure it into the bag, before sewing a few loops around it onto the exterior of the bag.
And yes, I do realize it looks a bit like a little white turd.
Step 10: Wiring the LED/Pushbuttons for the Turning Signals
For this part, we will be wiring up the LEDs and pushbuttons for the switches that will control the turning signals.
That means we'll have a total of 8 more wires traveling up through the strap into the control box. That's a lot of real estate for such a small space, so in the interest of saving space and redundant wire pulls, I cut a length of Ethernet cable, which is perfect since it has 8 wires inside, and ran it through into the box. The LEDs will be paralleled up with their respective turning signals, flashing at the same rate, and the buttons will be wired into the Arduino Skinny as input devices.
Step 11: Optional Power Switch for Arduino / Turning Signals
Since I'll only be using the turning signals at specific times i.e. when I need to make a turn, they will be off for the majority of the time. At this point, I won't have the Arduino running anything else besides the turning signals, so for all practical purposes, it is a dead load whenever the turning lights are off.
So in the interest of saving energy, I inserted an SPST rocker switch into a plastic ring that happened to be on the strap. I also embedded the solar-recharging and load-usage status LEDs on either side of the switch, then coated the whole lot with another gob of hot glue.
The switch is wired between the Load Source and the LiPo battery terminal on the Skinny. When I want the turning signals, I flip it on. When I don't, it stays off. It is a bit misleading to have the LEDs on either side of switch though, as they don't have anything immediately to do with the action of the switch itself.... but such is the nature of things, I guess.
Step 12: Assembling the LED/Pushbutton Switches Part 2: Embedding
Now that you've gotten the LED/pushbuttons all wired up, it's time to glue them together and embed them into the strap.
Dab bits of glue to the bases of the LED and the switch and stick together. You'll want to position them, rotated 90 degrees from each other with respect to the axes of the contacts on each, forming a sort of celtic cross when seen from above. This keeps the leads from shorting into each other. Holding them together till the adhesive cures was a bit onerous, so it might be helpful to wrap the two in scotch tape to hold them together. Once it sets, try coating the soldered joints between the contacts and the wires with a bit more glue. Just try not to get glue into the moving "button" part of the switch for obvious reasons - otherwise, it will freeze into position and be rendered useless.
Now for embedding.
Like I said before, I was lucky in that I had a piece of webbing already pre-built into my strap. A lot of backpack makers do that now though, so if yours has one too, you're in luck. Just cut one end of it, melt the ends down and continue on with the rest of the step. Otherwise, you're going to want to find a spare piece of webbing and sew it on to the strap.
In either case, take the soldering iron and melt a hole through the webbing, making sure it is wide enough to let in the LED, but not so wide that it wobbles about. This may seem a bit dodgy at first, but at least in my case, the plastic tended to clump up on itself, rather than the soldering iron, forming nice, ready-made cylindrical holes that the LEDs slipped right into. You might not be so lucky. Who knows.
Pop the dome of the LED up through the hole and glue it into place. Once you've got all three LED/pushbutton assemblies mounted, go ahead and sew the free end of the webbing back down onto the strap, securing the switches in place. There should be moderate tension across the webbing, but not enough to keep the buttons permanently engaged. Also, the bottoms of the switches should not be glued down to the strap itself. The only points of attachment should be LED poking into the webbing above, and the wires leading from the assembly down into the strap below. The "button" parts of the switches should be free to shift about as needed.
Step 13: Wiring the Circuit Board
This is the final step. Bring all the wires into the box, and wire them into their respective contacts.
If your board is especially messy, it might make sense to dab a little droplet of hot glue onto the soldered joints to keep the contacts from shorting out with each other, and potentially with the batteries as well, if your case is as cramped as mine is.
Coil up the wires, close the box up, and try switching things on.
Step 14: A Variant
This is a bag I helped my brother make, based on the prototype.
He's got a couple of portable speakers hooked up, jacked into an iPod shuffle on the strap side, and an extra length of EL wire I had lying about, from some previous Burn.
A portable, solar-powered party pack! Grooves out pretty hard...