LED Driver board

After building a display station, based on some really nice 6.5″ LED’s I got from SparkFun, I found that wiring it up was straighforward, but quite messy, using a breadboard. A lot of wires to connect, a lot of resistors. I designed a circuit board to help out, which turned out like this:

Very straighforward assembly, 4 sockets, 32 resistors, a pile of screw terminals, and viola!

The breadboard was also easy to put together, but ended up taking up two full-sized boards, and would have been too delicate to use in something that will get moved around a lot:

The board, all hooked up to the LED’s and the Arduino. This also gave me the opportunity to use a single 12V adapter to run both the LED’s and the Arduino, feeding both 12V for the LED’s and 5V for the shift register control to the board from the Arduino. Much cleaner setup:


Multi-display weather monitor

Using several serial LED displays, I expanded my earlier single-display monitor. This uses an XBee to receive information sent from a computer from one or more SensorPacks, and show the current time (sent from the computer, I didn’t want to add the cost of a real time clock, since this would be talking to a computer anyway), on-board temperature (using a DS18B20), and depending on how you’ve set up the software on the computer, output from one or more weather stations.

The display wiring is simple, just using 1 pin per LED to send data, and a photoresistor to dim the display based on ambient light. I still want to work to do on the inter-device communication, adding the ability for the weather monitor to directly display output from SensorPacks, in addition to data relayed through an intermediary. To get to that stage, I’ll need to write some string parsing code. Wiring, the language I’m using to write my Arduino code, has very little support for string handling, so there’s a bit more code to be written to get that working well.


Big LCDs and their Arduino pal

Bought these big 6.5″ LEDs from SparkFun, and using these TPIC6B595 shift registers, have it all running via an Arduino, with just 3 wires from the Arduino capable of running as many LEDs as I want. Wiring diagram and sample code coming soon, I want to clean it all up a bit. Grabbed several how-to’s off the internet, then tweaked them and the code so it all made more sense to me. LEDs are powered by a separate 12V power supply, and the Arduino just using USB or a battery.


SensorPack PCBs arrived!

To make putting together the sensor breakout boards (for an SHT15 and SCP1000) and Arduino Fio easier, I used Eagle to design a simple circuit board, then used SparkFun’s great service, BatchPCB, to get the boards produced. I’m pretty happy with how they turned out, especially liked that I could easily make a “barn shaped” board by just laying down the outline. Noticed two things I’ll change in the next revision that would make it more flexible to use. I noticed the board didn’t quite allow for direct soldering of a Fio to the breakout, I’d planned on using sockets, but if I alter the board just a tiny bit, you can also directly solder a Fio to the breakout. The other change will be in changing the original idea of which side the Fio goes on, or perhaps just putting a silkscreen for the resistor and LED on both sides.

I put a DTR jumper to digital pin 4, and lined up an appropriate hole in the breakout board. However, I’d designed this so that the Arduino Fio would have the XBee side facing towards the breakout, so you could easily get to the reset button.

But, in one of those “oh yeah” moments you get when you put things together, I realized the DTR pin on the Fio is blocked by the XBee itself in that orientation. I can still use the boards, but the silkscreen for the resistor and LED are on the side of the board I’ll have to mount the Fio on, if I want to use the breakout to jumper DTR. The pictures below use a Fio that I had put a jumper on directly already.

This makes the sensor pack nice and compact, really easy to hook up, and very easy to mount in a solar radiation shield. I added mounting holes, which I’m using to hang the board in the shield, so it doesn’t directly touch any of the sides, influencing the ambient temperature.

Here are all the parts needed to assemble a basic SensorPack:

And here it is assembled:

MakeFaire: TubeTime IEE clock

One of the neatest new projects I saw at the faire brought back memories of watching the Apollo missions in the 60’s. The iconic and unique IEE one-plane digital display unit. Had never seen one up close, and didn’t know how they worked. Found out that it’s a mini-projector with a set of curved lenses and individual light bulbs that project the numbers and decimal in the center on the screen.

Sensor pack prototype assembly

Step-by-step of building the first sensor pack protoboard with basic temperature, humidity and pressure sensors, using an Arduino Fio.

Parts list:

  • Radio shack perf board – Catalog #: 276-148
  • Arduino Fio – Arduino board, with XBee socket and built-in battery charger
  • SHT15 – Temperature and humidity sensor, on a break-out board
  • SCP1000 – Pressure and temperature sensor, on a break-out board
  • 22GA wire
  • XBee – Easy to use, and affordable wireless boards. I use both the low-power and the extended range versions, with chip antennas, and with wire antennas. You can mix-and-match to match your transmission distance needs.
  • Solar panel. Still looking for the optimal size for my location. This one generates more power than I need.
  • 2000mAh LiPoly battery – With my current power-saving code, and 10 minute transmission settings, I’m getting around 200 hours of power from a fully charged battery.

The solar/LiPoly combination is overkill for this setup, but since I’ll be adding wind/rain sensors to the next iteration, I’m going to stay with the overrated solar cell/battery combination. You could easily get by with a 1000mAh battery and/or a smaller solar cell. I’ve tried both, and got acceptable performance in an area with good sun.

First, I put a jumper between DTR for the XBee and Arduino pin #4, which I use to put the XBee into sleep mode between transmissions. Since the sensor pack only transmits data, it only needs to be powered up when it sends a data packet.

I also soldered headers onto all the Arduino pins, since I’ll be using more of them in future sensor pack versions. For the basic version, only pins 4-7 (SHT15) and 10-13 (SCP1000 via the SPI library) are being used.

On the left side of the board, you can see the 2-pin 90 degree header soldering into the 5V input for charging the battery. This was to make it easy to connect, as well as change the solar panel.

Now for the ugly part. Using a small project board, I soldered female headers in for the sensor break-out boards and the Arduino (I only soldered a header for one side of the Arduino, since the other side is currently unused).

Then, I soldered wires in to the rows next to the headers, bent them over to bridge the gap, and create a good electrical connection.

Finally, I routed the wires to the appropriate destinations on the Arduino header. It’s a little extra ugly, because I screwed up and reversed the pins for a header, then had to remove and re-solder the wires.

And finally, after testing all the connections for continuity and fixing any unintentional crossed connections, simply plug the Arduino and break-out boards in their spots on the project board.

Then, to complete the project, simply plug in the battery and solar cell (which I cut the power wire, and attached a 2-pin female socket to) to the Ardino Fio.