Solar Chargeable Portable Battery Pack

There are a lot of rechargeable lithium battery packs available. Some have a lot of capacity and others can be used with solar panels, however, I could never find one that fits my requirements. The solar models that I’ve seen generally don’t have much capacity and use such small solar panels that they don’t charge very fast. Then I came across Adafruit’s USB/Solar Lithium Ion Charger board and it solves all of my problems. This board has a lot of cool features: it can charge a battery via a solar panel or any other 5V input and it can deliver power to the MintyBoost from both the input and the battery simultaneously. In this way you could charge a device on a not so sunny day by drawing some power from the solar panel and the rest from the battery.

My main goal for this project is to have a versatile power pack for use when I go camping/backpacking. I have a fair amount of devices that I typically bring with me that can be charged via USB: camera, headlamp, UV water purifier, cell phone, mp3 player, etc. The 6600mAh battery can charge any of these devices multiple times, providing many days of capacity before needing to be recharged. On sunny days the 3.4W solar panel can recharge the battery if I am away from power for a long period of time. At full power the solar panel will take about 12 hours to fully charge the battery. While this is a long time, for my use case this should be fine as I will most likely be topping off the battery with the solar panel not charging it from zero. I like this solar panel for its combination of size and capacity. A larger panel could charge the battery faster, but would be a lot less portable.

Parts List

Adafruit has a detailed tutorial that explains how the charger board works and shows how to wire it to the other components. Basically the charger board is connected to both the battery and the MintyBoost and uses either a USB or solar panel input to provide input power when you want to charge the battery. The charger also has the option to output the charging status (charging, charging complete) to external LEDs.

For this project I used a red LED to indicate that the unit was charging and a green LED to indicate that the battery was fully charged. I also isolated the battery from the remainder of the system using a power switch. This prevents the small self drain inherent to the MintyBoost from discharging the battery when I am not using the unit. You just have to remember to turn it on when you want to charge the battery. In addition I used a coaxial power jack for the power input and modified both the solar panel and a USB cable with matching coaxial power plugs of the same size. The final piece was using a scavenged panel mount usb port for the MintyBoost’s output.

I have to say that I really like this setup. I can charge all of my devices and when placed in the sun, the solar panel started charging the battery with no problem.

Arduino Intervalometer – Update

Intervalometer_2+2Since I first made my arduino intervalometer two years ago, I have used it several times and come to the conclusion that I could make a few improvements to it. The first change I wanted to make had to do with powering the unit. The original design allowed for an external power source and while this allowed for maximum flexibility, it also made the device somewhat unwieldy. Whenever I wanted to setup for a timelapse shot I had to not only bring the intervalometer but also a mintyboost or other power source as well as a power cable. The other major change I wanted to make was to reprogram the timing ranges to something more useful.

Intervalometer_2+3Intervalometer_2+1In order to power the unit I could have simply placed a mintyboost inside the intervalometer and changed the wiring accordingly, however, I did not want to have to open the device to change batteries. To get around this and still be able to provide the 5V power I needed I decided to use a lithium polymer rechargable battery. This requires both a charging circuit and a voltage booster to convert the battery’s 3.7V to 5V. Luckily Sparkfun Electronics makes just a device that charges the battery via a micro-USB port and is also very compact. Since the intervalometer draws only 28mA while running I chose a 1000mAh battery which not only fits inside the case it should also power the device for over 30 hours, more than enough for a typical timelapse session. Now I have a completely self contained, rechargable intervalometer.

For timing ranges I changed the low range to 1-60 seconds in 1 second steps and the high range to 5-300 seconds in 5 second steps. I think this should end up being much more useful since most of the timing intervals I have used are under a minute in duration and having the capability to more finely tune that interval will be very handy.

Arduino Word Clock

I first saw a clock with this type of design on the Make Blog over a year ago. It is an incredibly clever idea, but the $1000 price tag is a bit much for my taste. I had seen a few attempts at a DIY version but most of them were still too complex or expensive to build. Needless to say when I saw this Instuctable I got really excited. It is based off of another Instructable, however, it simplifies the design and construction to the point where I felt confident that I could build it.

I followed the Instructable pretty closely, with the following exceptions:

LEDS:  I got my LEDs from Evil Mad Science, which sells packs of superbright 5mm LEDs in various colors. This project requires a pack of 100 white LEDs. For current limiting resistors I used 470 Ohm instead of 1K Ohm. This allowed me more flexibility since I can dim the LEDs as much as I want, but I can never make them brighter. The LEDs I used are very efficient and only draw 4.8mA with a 470 Ohm resistor, so the maximum power draw for the clock will be about 150mA. Consequently power usage is not an issue since I used a repurposed cell phone charger as the power supply and it can provide 700mA at 5V.

Letter Mask:  I had to use 4 transparencies stacked in order to get the mask dark enough. I also used a wider border for the letter mask to cover up some imperfections around the edges of my transparencies. For LED diffusion I used some translucent plastic folders that I found at an office supply store. I got a multicolor pack so that I could try different configurations and decided that a combination of one gray and one white folder cut to fit in the frame was the best looking and most functional choice.

LED Holder:  Instead of a cardboard LED holder I used foam poster board. This is a much stiffer material and makes the holder much sturdier, however, it is also thicker so I had to make the light baffles 1″ high rather than 1-1/8″.

Circuit Board:  Since the wiring on this project is fairly complex I decided early on that I wanted to keep the circuit board as simple as possible. In order to accomplish this I used two Radioshack breadboard matching printed circuit boards. These are great boards since they have power buses running down the sides of each board and they have plenty of room for the 7 chips necessary for this project. This made it very straightforward to scratchbuild an Arduino on one of the boards and then wire it to the other chips. Note: when building an Arduino in this way you need an FTDI cable which plugs into the 6-Pin header on the board in order to program the Arduino.

I mounted the boards side-by-side on a piece of acrylic to make it easier to work with. I also wired the board such that I could add a photoresistor in the future to allow for dynamic LED dimming (its wiring is bundled separately for later use as shown in the photos). Instead of wiring headers I just wired directly from the circuit board to the LEDs using multicolor wire to differentiate which word group I was wiring to (you can see each ULN2003A’s bundle grouped together in the photos).

The size of these boards prevented me from trying to mount them inside the picture frame, however, mounting the boards on the back wasn’t a problem. As shown in the photos I had use some stacked foam board as spacers between the back of the picture frame and the wall to keep the board from rubbing agains the wall. I also changed the power socket mounting from the back of the frame to the bottom by cutting a notch in the wood and gluing it in place.

Conclusion:  The biggest problem I had with this project was dealing with a slightly imprecise LED layout. This resulted in some of light baffles partially blocking the wrong letters. After removing the problem baffles, however, I found that my diffusion layers worked well at making up for any discrepancies due to LED placement as well as reducing cross-letter light bleed to an acceptable level. As far as the code goes the only changes I made were done to make use of external pull-down resistors instead of internal and to clean up the code a little bit since some of the comments no longer made sense. I really like this project. It is not only cool looking, but it is useful as well.

Arduino – Parallax RFID Reader

A few months ago I saw some Parallax RFID readers at Radio Shack on clearance and decided to pick them up since they were such a good deal. I have wanted to make an RFID related project for some time after seeing this episode of SYSTM.

Here are some pictures of my test setup. As you can see the reader’s LED changes from red to green when it is reading a tag.

Peggy 2 LED Matrix

The Peggy 2 is a 25×25 LED matrix kit from Evil Mad Scientist Labs. Ever since I first saw the Peggy kit I thought it was one of the cooler kits available. I finally got around to getting one of these awesome kits and it is a sight to behold. By far the largest kit I have ever built, it is also the best quality kit I have come across. The Peggy 2’s circuit board is probably twice the thickness of a normal printed circuit board, a welcome feature for such a large board since the added thickness makes the board very rigid. You can purchase the Peggy 2 in a variety of kit configurations; I got the so called awesomeness bundle which includes a power supply, extra pushbuttons, and 640 diffused 10mm LEDs in the color of your choosing (white in my case).

The build itself took around 2 hours to assemble the control circuitry and another 4.5 hours to solder all of the LEDs. It’s a bit of an undertaking, but when you’re done it’s a great feeling when all 625 LEDs light up. To program the Peggy you use the Arduino IDE and download the Peggy Library. I haven’t experimented too much with it yet, but I did try out some of the demo programs from the library and you can see what the Peggy can do in the video below. I look forward to playing with this project a lot in the future.

Remote Camera Shutter & Focus Controls

In the process of building two intervalometers (analog, Arduino powered), I learned how easy it is to construct a remote trigger for a DSLR’s focus and shutter controls. Both of those units featured manual controls for focusing and taking photos, but I wanted to build another separate project that would only feature that ability. This would allow the device to be much smaller and lighter.

For this build I used a 3″x2″x1″ RadioShack project box, a 3.5mm stereo socket, and two momentary pushbuttons. In accordance with how my Canon Rebel XSi works, I wired the shutter trigger (red pushbutton) to the tip of the socket and the focus trigger (black pushbutton) to the middle contact. Then I wired the other side of both switches to the shield of the socket. I am a big fan of using a socket for a project such as this since I can now use a cable of any length or configuration as long as it has a 3.5mm plug on the end that plugs into the box. This is an incredibly simple build that works great and should come in very handy for all my remote triggering needs.

Vacuum Tube Audio Amplifier – Update


Tube_Amp_Enclosure1Ever since I first completed this project I have wanted to build an enclosure for it. I wanted something that would decrease the risk of electric shock while also showing off the cool aspect of the vacuum tubes, ie. their characteristic glow.

In order to keep it simple I bought a sheet of aluminum that had a pattern of pre-punched holes in it at the hardware store. This allows the tubes to be ventilated while still being visible. I then made a template out of cardboard to determine what shape needed to be cut from the sheet of aluminum that could then be bent into a proper enclosure. I made sure to leave tabs on the sides so that I could secure adjacent sides of the box to one another with sheet metal screws. I then relocated the power switch to the top of the case and attached the enclosure to the wood base with screws. Overall I am fairly satisfied with this enclosure. It’s not the perfect case for a project like this since you have to remove the box to change burnt out tubes, but it is good enough for my purposes.

Tube_Amp_Enc23 Tube_Amp_Enc21About two months ago I made an enclosure for my vacuum tube amplifier. While a decent first effort, I became more frustrated with it as time went on. The poor nature of my design prevented me from accessing the tubes themselves as well as the speaker wire connection points on the main board. Also, esthetically, it blocked the view of the vacuum tubes too much.

Tube_Amp_Enc22Instead of starting over from scratch, I decided to try to reuse the existing enclosure. In order to solve my complaints with the previous design I came to the conclusion that what the amplifier really needed was a circuit board cover, not a full enclosure. To accomplish this, I shortened the enclosure by cutting off the back couple of inches of aluminum. This allowed access to the speaker wire terminals. Next I removed a couple more inches from the bottom, shortening the overall height of the enclosure. Then I cut out a rectangle in the middle of the top to allow the tubes to stick through. Finally I re-attached the case to the base board using six screws instead of four, the two additional screws in the front greatly stiffened the whole unit.

I am much more pleased with my second attempt at enclosing my vacuum tube amplifier. It is much more functional, as well as better looking.

Hard Drive Speakers

I first saw an article about hard drive speakers some time ago, but never thought about building my own until I saw this interesting project and decided to take a closer look. When I recently came into a pair of old hard drives, it was the perfect time to build my own set.

This is a very easy project to undertake. All that is required is to disassemble the hard drive (you will need some Torx screwdrivers) and solder two wires to the appropriate contacts on the hard drive’s read head. These wires are then attached to the speaker outputs of your amplifier (I used my vacuum tube amplifier to drive the speakers).

After playing with the finished speakers I found that if I restricted the read head’s movement by trapping the speaker wires between the two magnets at the base of the head’s armature (as shown) the speakers would produce much cleaner audio. By restricting the read head’s movement I prevent it from vibrating against the platters which can cause annoying scratching and rattling sounds. The downside of this is that you can no longer see the head’s armature move with the music, which is a pretty cool effect. Regardless of how you construct your own set, hard drive speakers sound best with music that contains a lot of treble. Check out the video below to hear how my speakers sound playing some Bach.

Arduino Intervalometer for Time-lapse Photography

Arduino-Intervalometer3Arduino-Intervalometer2Last fall when I built my first intervalometer and then used it for some time-lapse photography, the limitations of such a design became apparent. With an analog timer the circuit is limited by component values to function in a fixed way. The timing ranges cannot be changed without rebuilding the circuit and there is no way to be truly precise in your timing. A few months ago I came across this design for an Arduino intervalometer which is very basic and requires reprogramming for any timing changes. After some planning I decided to take the best features of my original intervalometer and combine it with an Arduino’s flexibility to make a much more versatile intervalometer.

Key features to keep from the original were:

  • Camera interface isolation
  • Timing range options
  • Battery or AC adapter power options
  • Camera connection flexibility
  • Manual controls

Additional features that I wanted to add were the following:

  • Power supply flexibility
  • LCD readout
  • Start/Stop the timing cycle

Arduino-Intervalometer1Arduino-Intervalometer-SchematicIn order to maintain what worked best in the original design I simply copied it directly over to the new version. I used the same relay isolation for shutter triggering, as well as hard-wired pushbuttons for manual focus and shutter control. I also used the same 3.5mm jack to connect to the camera as the original. For power I decided to use a coaxial power jack as I had previously but this time I did not place a battery inside the enclosure. Instead, I made an adapter cable with an N style coaxial DC power plug on one end and a USB plug on the other end. With this cable I can power my new intervalometer from any 5V USB power source (PCs, wall adapters, MintyBoost, etc). In order to keep this build as simple and inexpensive as possible I decided to use the Arduino Pro and a basic LCD for a total cost of $36. The Arduino Pro is the same as a standard Arduino, except it uses all surface-mount components and has no USB interface. This keeps the cost down and reduces the board size. The LCD was simple to wire requiring only +5V, ground, 6 data lines and a dimmer potentiometer input. The final features were all implemented in the Arduino code.

I ran into a few problems while developing the code for this project:

  • How to adjust the timing interval value
  • How to start & stop the timing cycle
  • How to switch timing ranges

For adjusting the timing interval I had originally planned to use pushbuttons, however, after playing with the idea I decided against it. I found that it was much quicker and more user friendly to use a potentiometer as a virtual selector switch. In order to do this I used the map function, to divide up the potentiometer’s analog input values into the specified number of steps.

Starting and stopping the timing cycle was not as easy as it first appeared because the simplest way to wait a specific amount of time between events is to use the delay function. The problem with this is that while the program is delaying for the set amount of time, no other commands are being run and inputs are not recognized. To get around this I used a technique I found on the Arduino website which blinks an LED without using the delay function. Instead it sets a preset interval and then checks how much time has past using the millis function until enough time has gone by to trigger the desired event. This allows the processor to keep scanning the code while the timing cycle is taking place. Now if I want to cancel the timing cycle I can do so without resetting the Arduino.

To switch timing ranges I used this clever piece of code that allows you to use one button for two functions. When the button is pressed the Arduino keeps track of how long it was pressed. For short presses it performs one function and for longer presses it does another. I used this method to implement both timing range switching as well as toggling between set mode and timing mode as shown in the video below.

After getting all of my code together I assembled my new intervalometer in a 6″X4″X2″ project box from Radioshack. This is somewhat oversized for these purposes, but it’s cheap and readily available. Overall I am very pleased with this project. The responsiveness of the interface is very good and it triggers my camera shutter perfectly. The two timing ranges I preset in the unit are 5-60 seconds in 5 second steps and 30 seconds to 10 minutes in 30 second steps. These should cover the most common intervals I will use, and I can change them at any time if I have to. This is by far the most complicated Arduino coding that I have done and it was a great learning experience. Check out the video below for a demonstration of the device.


Note: the LCD requires the updated LiquidCrystal Library, checkout this tutorial if you are using version 0016 or earlier of the Arduino software.

Arduino Punk Console 8 Step Sequencer

APCAPC-faceThe arduino punk console is a simple tone generator that is capable of making some cool audio sequences. I’ve always enjoyed playing around with different audio equipment (see my analog synthesizer) and this looked like a cool project when I saw it on the Make Blog. It is a fairly straightforward project that uses an arduino to handle all of the switch and potentiometer inputs and generate the tones. What is especially fantastic about this is the flexibility afforded by having a reprogrammable controller instead of a hard-wired sound generator. That said I haven’t modified the original code yet.

APC-insideWhile the original project was good (see also this Instructable), I made the following changes for my version of the arduino punk console:

  1. Eliminate the LCD screen – I wanted to make my version as cheap as possible and I thought the LCD was somewhat unnecessary for a simple project such as this since it doesn’t display very valuable information.
  2. Scratch build the arduino board – Similar to other DIY arduinos (see here & here) I’ve done before based off of the Boarduino design, I had the parts and building it myself cut the cost of the unit.
  3. 9V AC adapter power – I have found it is much more convenient to power many of my projects with an AC adapter instead of batteries as it saves having to access the inside of the unit for battery replacement and the portability provided by battery power is rarely necessary.
  4. Substitute 5K ohm potentiometers – I’m not sure why the original project used 100k ohm potentiometers, but I had a bunch of 5k’s around and they worked fine.
  5. No speaker – I was planning on using an external amplifier so I replaced the speaker with a mono 1/8″ audio jack.
  6. Eliminate the volume control potentiometer – Again, because I am using an external amplifier I don’t need another volume control.

Check out the video below of the sequencer in action: