I’ve been working on a project to develop a solar powered arduino platform. Let this be the inaugural posting of specifics and documentation! This work is licensed under CC Attribution/Share Alike 3.0, and is building upon the BoArduino and the BoArduinoBT.
The Sol_Arduino prototype has got a bunch of things going on. Time for an anatomy lesson.
Power Supply The SolArduino runs off of a 3.3V battery (I’m using Tenergy’s LiFE battery because it’s nearly indestructible) and the Solar Piston V1 (SP) solar charging circuit. I’m using the SP-V1 instead of SP-V2 because during testing, the SP-V2 would not switch on when the battery had an ultra-low voltage (> 2.2V). Not sure why this is, but it has something to do with the way the SP-V2 was biasing the N-MOSFET and the voltage difference between Source and Drain…Gate and Source…(another post!). The SP is a micro energy harvesting circuit, and the overall theme and goal of the project is defined by cheap, small, and low power. My solar panel is a PowerFilm model sold by Jameco (228030) that outputs 4.2V, 22mA. It has worked just fine to keep my voltage in the sweet spot during testing with a circuit that sleeps for 10 minutes between sensor readings/data logging. You could use any voltage source as a charging source: wind turbine, piezo stair tread, tidal vane, etc. The VDD pins on the Atmel328 are tied directly to the +V of the battery, but the rest of the board gets its power conditionally.There is a second P-MOSFET that is used to control power to sensors and other peripherals. Digital pin 8 controls the gate of this MOSFET, and when it is pulled high, V-OUT (as noted on the schematic) is turned off as a way to maximize power saving during sleep. The last power supply related device is a 3.5V regulator in line with the +5V output from the +Vin pin or FTDI cable customarily used with BoArduinos. This Vreg takes up to +18V and makes it possible to charge up a 3.3V battery on the USB or other source if needed.
Power Management I’m monitoring the battery voltage level through an interface that I prototyped here, here, here, here, and here. The final version has a resolution of ~0.03V, and accurately reflects the same voltage as the best multimeter in the my lab. As I mentioned above the positive supply to slave peripherals and sensors can be turned off with a P-MOSFET gated to digital 8 for ultra low current consumption during sleep. These features, along with the sleeping routine (code below) should provide for many possible firmware solutions to a variety of power use situations.
Extras In order to make this prototype as useful and as quick to generate as possible, I had to pile my parts on without changing Lady Ada’s original pin-out very much. That made the pin-out pretty silly if you want to work this on a breadboard to add more features of your own design. To compensate, I added two Power Outriggers on the bottom edge. 6 pins each of V-OUT and GND. You’re welcome. The SolArduino comes with a sensor on board! the TNC75A temperature sensor from Microchip. I figured I already had a device that communicates I2C (digiPot in voltage monitor circuit), I might as well put another one on the bus. If you’re looking to interface with sensors, find a version that runs I2C and jump on the bus yourself! I’m developing in league with Joe Saavedra, so there is also a header row that mates with a blueSMiRF for wireless communication (you have to pull the blueSMiRF to program the Atmel). Lastly, there is the obligatory LED+1K hanging off digital pin 13 (SCK).
The arduino sample code (txt file. Does not interface the blueSMiRF!) has a long readme at the end.
Here are jpegs of the schematic and board files.
Hera are zipped eagle files.
Please come to the Rachel’s Electronics booth at Maker Faire NYC to purchase a SolArduino prototype kit and participate in the fun!
This post will be updated.