Solar Piston Under Test

I have the latest Solar Piston design running in an arduino compatible circuit that also has a WiFi module (RN-171), temp sensor (TCN75A), and a light sensor (APDS-9301). The arduino sketch updates every 5 min (supposedly) to my pachube feed. Right now I’m sending temp and voltage. The light sensor is not hooked up yet. I’m deriving voltage by analogReading the band-gap reference. The battery im starting with is NiMH, because it might still hold charge if it accidentally drains low. Link to code and schematics coming!

Here’s some pics




Graphs below show the last 24 hours. For different time scales, go here.






Posted in Uncategorized | Comments Off

Power Control

The prototype Solarduino has been under test for the last week. It’s gathering data on itself: Battery Voltage, Temp, Time, Ambient Light. It’s been consistently overcast here in Brooklyn, and the Solar Piston circuit has been good about maintaining battery voltage. But that wasn’t always the case. For a short while, it seemed that the circuit was eating batteries! After some poking around and alittle internet research (thanks Swordfish!) it turns out that the SD card was the culprit, sucking down a consistent 8-9mA. But how? Well, after some digging around on the PCB (post about re-work coming) and messing with the SPI control bus, things started to make abit more sense. First, a recap of my circuit, and then the nitty gritty of the problem.


The key to any long term environmental sensing/logging circuit is power conservation. In-between readings and writings, the circuit must be as quiet as possible. To this purpose, I am putting the ATmega chip into Power Down mode (section 9 of the datasheet) which kills the main clock and timers. That’s great for the ATmega, but the rest of my circuit is littered with resistors and chips that all together draw around 10-12mA. Not good. So in addition to putting the ATmega to sleep, I selectively kill power to the rest of the components on the board with a Power MOSFET (P-Channel) thusly:

The ATmega power pins, and reset pin are the only ones getting power when the P GATE is held LOW. Nice. Works great. Until I added the SD Card. It seems somehow that the power lines attached to the Drain of the P-MOSFET above were still getting power! Turns out, after messing with the SPI bus pin directions on the ATmega, the Slave Select pin is where the leakage was happening. Here’s how:

The image at right is what I believe is the equivalent of what’s inside the SD Card SS pin. The clamping diodes D1 and D2 are there to protect the internal circuitry from voltage potentials above or below Vcc and GND. Great for normal operation, or shipping during an electrical storm, but if Voltage is applied to the INPUT pin, and the Vcc pin is not connected to +V, then current will go through D1! This kind of parasitic, or sneaky voltage is what was causing my board to maintain a high current draw during sleep.

So, what’s the solution?? There are two options:

Option 1: change the direction of the SS pin from OUTPUT to INPUT before pulling down on the P GATE. For now, this is the option I am using. I don’t need to risk doing major surgery on my PCB.

Option 2: Use an N-Channel MOSFET instead of a P-Channel MOSFET, and switch the GND side of the circuit instead of the +V side. Here’s how it works.

The benefits to doing this are a few. First, I don’t need to worry about changing the direction of the SS pin back and forth. This is called ‘idiot proofing’. Second, I’ve read (here, for one) that N-Channel MOSFETs typically have lower ON resistance, and can pass higher currents. Third, the Power Gate is controlled by TRUE logic instead of INVERTED logic (not critical, but kinda nice).

Why, you ask, didn’t I start with the N-Channel to begin with? The question may be ultimately unanswerable.

Posted in Uncategorized | Comments Off

Free Stuff!

There’s a link in the header above to download design files and datasheets.

Testing is going well. I will be adding the firmware link soon. Cheers!

Posted in Uncategorized | Comments Off

Solarduino V2

Welcome Spring,

I got the SoarDuino V2 board populated yesterday, and tested the Solar Piston portion of the circuit. Works charmingly.

This is the top of the board. I used the ProtoMat S62 at Parsons to cut this board. One slight issue with the fabrication is that none of the through holes are plated. I had to solder in the vias and hit bottoms and tops of all the pads. Tedious! In this photo, I have not soldered header rows at top and bottom.

This is the bottom.

Here’s a video of the Solar Piston at work. Battery V is ~3.2V.

This is the same Solar Piston V2 as described in the link below.
Next I tested the Voltage regulator circuit (TPS75501) and got 5V at the output! I am using an FTDI cable known to folks who’ve played with the Boarduino or Ardweenie for power and programming. My V-reg is adjusted to output 3.5V. The 5V was not what I was expecting! After probing around I found the FB pin (V-reg pin5) was shorted to GND by a whisp of solder. A little scraping and that cleared it up.

Now I’ve got the 3.5V I expect. The actual power to the board from this circuit suffers a slight voltage drop (Shottkey)  to clock in at a comfortable 3.36V. This will settle under load to abut 3.3V.

In this photo, the meter is reading pin 7 (Vcc) on the arduino chip socket.

Now it’s time to slap in the chip and say hello!

This is a simple blink program. I’ve verified programming through the FTDI USB cable, and read Serial.print data from the board. Next will be to communicate to the rest of my hardware:
MCP4551 Digi Pot (used to read Voltage level)
APDS-9301 Ambient Light Sensor (returns a value in lux)
DS3231 Real Time Clock (I will get temperature data from this as well!)
SD Card (where my data will be stored)

Cheers, Joel

Posted in Uncategorized | 3 Comments

Solar Piston V2

It’s the Year of the Rabbit. Someone needs to make a Rabbit Robot!

The updated design for the Solar Piston LiIon Battery Charger is here!

What’s Happening?

This circuit will safely charge a LiIon battery from a PV solar panel, or any other micro-energy power source. There are 3 states that the circuit can be in. The first is when the PV Source is not able to produce enough current and/or voltage to bias D2 and charge the capacitor C6. In this case, the IN on U1 does not go above it’s trigger, and it’s output remains low (internally connected to GND). In this case, the base of the NPN transistor, U3, feels GND and remains off. That makes the gate of the P-MOSFET, U2, feel +V through the resistor R2, and it remains off, disconnecting the circuit from the LiIon battery. In this state, the voltage at IN of U2 is well below its internal trigger

The second state is when the PV source is providing enough current and voltage to bias D2

What Is It?

U1 and U2 are both S-808 series Voltage Detectors from Seiko Instruments. The output of these devices will go low (internally connected to GND) if the voltage on the IN pin is below an internally set threshold. If the V on IN is above the threshold, the output is in high Z (high impedance state, essentially connected to nothing). These devices are the brains of the operation. U1 threshold is 3.5V, U2 threshold is 3.8V.

U3 is a 2N3904 NPN transistor rigged up as an inverter.

U4 and U5 are Power MOSFETs (P channel). U4 is the low resistance ‘switch’ that closes to provide charge for the battery. U5 is the low resistance ‘switch’ that opens to prevent over charging the battery.

D1 is a low Vf Shottkey diode. It’s job is to block current from flowing ‘back’ through the PV source.

R1,2,3 are pull-up resistors. 470K or 1M can be used to reduce leakage in the circuit.

For critical information about LiIon battery management and behavior, please go to Battery University.

Posted in Uncategorized | Tagged , | Comments Off

Open Source

This site will be the home of SolArduino documentation and tutorials.

SolArduino is an open hardware initiative lead by Joel Murphy, Artist, Engineer, Citizen.

Posted in Uncategorized | Comments Off