01 Nov

8 Microamps


Learning new technology has a way of making you feel both highly intelligent (such as when you realize you can install entire software packages by typing three words) and monumentally stupid, often in close proximity to each other. I’m not sure if our battery-power problems exactly fall into the latter category, but let’s just say that the solution was not obvious to me, even after reading countless posts on Arduino forums and looking at many lines of code.

To refresh your memory, our JeeNode (formerly Arduino) and sensors have been drawing too much current from the battery, effectively killing our rain garden monitor within days. Even when we put the JeeNode into sleep mode, which is the vast majority of the time (sensor readings are taken once every 30 minutes), there was a current draw. We weren’t truly shutting it down.

I talked it through with James Tyack, and it didn’t take him long to figure out a solution: The digital pins on the JeeNode can be set to output a voltage (power); you can also toggle a digital pin on and off (“high” or “low” in Arduino terminology), so it either delivers 0 volts or 3.3 volts. If we power the sensors from the digital pins instead of the “power” pin, we can completely shut down power to the sensors when readings aren’t being taken. It’s a simple idea that just escaped me entirely.

The result? Instead of drawing 10 milliamps when idle, the JeeNode and sensors now draw 8 microamps. Forget about days of battery life—it’s possible that three AA batteries can provide power to the sensor for years.

06 Sep

Hello, JeeNodes


We’ve spent the last few months wandering in the desert, searching for a low-power alternative to the Arduino. (We may have also taken summer vacations and focused on our real jobs—these two things did not happen concurrently.) Google around for solutions to the Arduino current-draw problem, and you’re bound to end up at the JeeLabs site. It’s the online home to a Dutch engineer named Jean-Claude Wippler who, to understate matters considerably, is obsessive about making low-power Arduino-based boards designed to work well with environmental sensors.

Behold the JeeNode, above. It’s about the size of a stick of chewing gum (the old style kind, like Juicy Fruit or Doublemint). It’s basically an Arduino with a radio transceiver attached, meaning it can talk to other JeeNodes via radio frequencies. But best of all, it consumes very little power. Whereas our Arduino consumed 50 milliamps when idle, JeeNodes claim to consume less than 10 microamps. That’s a huge difference—instead of the batteries dying in 3 days, we might see the batteries last for more than a year.

Well, we’ll have to see about that. We got a pair of JeeNodes, hooked them up, and have commenced battery testing:


28 Jun

Epic Power Fail


Went back to Nebinger Elementary to check on the snake sensor described in the previous post, and … the batteries were dead. We got about three days’ worth of good data (see chart, above), taking soil moisture and temperature readings every 30 minutes. There was no rain during that period, but it’s clear from the chart when volunteer gardeners went out and watered the vegetable garden—the temperature (blue line) dips as the cold water contacts the temperature sensor, and the soil moisture (red line) increases. (The sensors were not calibrated, by the way, so pay no attention to the numbers on the soil moisture axis; the volumetric water content would not be at all accurate.)

What happened? The Arduino was programmed to go to sleep between sensor readings, using the functions in the Narcoleptic library. The LEDs and sensors shouldn’t be drawing much from the batteries. There were some hot days in that stretch, but it’s cold weather you have to worry about when considering temperature effects on battery drain. Something else is going on.

Here’s where we dusted off the multimeter and made a somewhat surprising discovery. After wiring a circuit to measure current draw, we saw that the Arduino Uno was drawing around 50 mA (milliamps), even while it was idle in sleep mode. I’m no electrical engineer, and this is probably some fuzzy math I’m about to do, but let’s say a AA battery has 2000 mAh (milliamp hours), and the four AAs are wired in series, so current is not additive. (Read this if I just lost you.) So 2000 mAh divided by 50 mA—we can expect about 40 hours of operation; a little less than 3 days. That’s just about what we got with the snake sensor.

Clearly we need a better approach to conserve battery life—a different circuit, a way to minimize the current draw by eliminating the Arduino’s “on” LED or voltage regulator, maybe even look at different microcontroller boards that don’t consume as much power.

12 Jun

Lies We Told About Solar Power


It’s time to come clean about the “solar” part of the Solar Sunflower—it isn’t happening right now. As it stands, a 9-volt battery powers the Arduino inside the sunflower’s head. There are practical reasons why the solar portion of the project is still under development: It isn’t convenient to rely on solar power when doing an indoor demonstration, and the sunflower design would likely place the solar panel over the top of the electronics in the head, making it difficult to disassemble when needed.

But mostly, we need to do a lot more legwork and research. Adafruit sells the components to make a solar charger that powers a Lithium ion battery (pictured above) and has a terrific tutorial on how to assemble it. Will it provide enough power for the Arduino WiFi shield, which operates at 5 volts? Will it be reliable, especially at low light levels during a storm? I assembled the solar charger at home and used it to charge my cell phone:


Only in direct sunlight did I get the voltage needed to charge the phone. It’s worth testing with the sunflower setup, but more research is needed across the board with regard to powering the sensors. We’ll do that right after I clean my windowsill.