Solar power module for WiSense sensor nodes

We intend to build a solar power module to power WiSense nodes operating as RFDs (reduced function devices). I am going to document this process in a series of posts. Hopefully there won’t be too many.

Let us start off with the requirements.

  1. Low cost
  2. As small as possible
  3. Low quiescent current
  4. Single Rechargeable NiMH cell (1.2 V)
  5. Should output a voltage between 3.0 V  and 3.6 V  (MSP430 and CC1101/CC2520 can operate at 1.8 V but the on board LM75B sensor requires 2.8 V)
  6. Should be able to supply at least 50 mA continuously for say 100 milli-seconds.
  7. If possible the output voltage should be configurable in steps of 0.1 V.
  8. Should allow the node’s MSP430 to monitor the battery voltage.
  9. Should shut down cleanly when the battery is depleted
  10. Should be able to come up even if battery is depleted (wait for battery to charge before powering the load).

Solar cell –  KXOB22-04X3L-ND from IXYS (Datasheet –

  • Size – 22 mm x 7 mm
  • Voltage (open circuit) – 1.89 V
  • Current (short circuit) – 15 mA
  • Voltage (at max power output) – 1.5 V
  • Current (at max power output) – 13.38 mA

Battery – V80H from Varta (Datasheet –

  • Nominal output voltage – 1.2 V
  • Usable capacity – 80 mAh
  • Max continuous discharge current – 140 mA
  • Weight – 4 grams
  • Diameter –  15.5 mm
  • Height – 6 mm
  • Charging
    • Normal –  7 mA for 14 – 16 h
    • Accelerated – 14 mA for 7 – 8h
    • Trickle – 2.1 mA

The battery’s nominal voltage is 1.2 V which means we have to use a DC-DC converter to boost the voltage to 3.0 V. We are going to use the TPS61200 from TI. This IC has a configurable under voltage lock out function (UVLO) which can be used to disable the output (3.0 V) if the battery voltage falls below some level (battery is depleted). It also has a power save mode for improved efficiency at low output power. This is important since the sensor node will spend most of the time sleeping. You can look up the datasheet here –  In case the battery is completely depleted, UVLO will allow the battery to charged by the solar cell until the battery voltage climbs above the configured threshold (indicating battery has enough charge to power the load through the TPS61200). In the absence of this UVLO functionality, the system may never power up since the DC-DC will suck up all the energy provided by the solar cell while trying to boost the input voltage to 3.0 V. The battery will never get charged in this case.

The software also needs to be enhanced to take care of conditions where the battery is not completely charged. The start-up code on the MSP430 should try to keep the micro’s power consumption as low as possible until the battery voltage is determined. If the voltage level indicates that the battery is charged, only then the node should enter normal RFD mode (waking up and reading from sensors and using the radio). If the voltage level is low, the node should sleep until the battery has enough charge to support normal operations. This can be done by waking up periodically and checking the battery voltage.

When the RFD is operating normally (sleep -> wake up -> sense and communicate -> sleep), it should still monitor the battery voltage to make sure it is not near the UVLO threshold. If so, it should reduce avoid or reduce the frequency of activities which consume lot of energy such as radio transmit/receive. The RFD code should measure the battery voltage first after waking up and the battery voltage level should dictate what it should be doing next (sleep or do the usual sensing/transmission).

Stay tuned for more posts.

Posted on November 11, 2014, in Uncategorized. Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: