25 November 2018

PROJECT: Solar LED Heart Ornament


TL;DR: Made a cool ornament for wife, scroll down to bottom for some cool pictures & videos ;^)

Another year another lot of important dates that warrant a gift for the wife. This year I decided to try and use the SPV1040 to charge a supercapacitor during the day, and have the super capacitor drive a "breathing" LED circuit during the night. Why use a supercapacitor? Well the idea is that I want this thing to work for a long time, like in our retirement age long time. So with all that waffle out of the way here is how I went about it:

SMALL UPDATE: This is a cool one for me, turns out there were a few maker/hacker based websites that wrote a small snippet about this project:

Also for those interested:
  • It turns out that on a 42°C day the inside temperature of the unit gets up to ~60°C
  • In 2017 Jared Smith made a similar SPV1040 based solar/supercapacitor circuit, here is his post

Solar-cell, IXYS KXOB22-04X3F

NOTE: IXYS KXOB22-04X3F has been superseded by KXOB25-04X3F, the Gen 2 solar-cell offers a higher power output (22mW vs 20mW) as well a a higher efficiency (25% vs 22%). Sadly sourcing the new part is difficult, hence why I decided to stick with the KXOB22-04X3F. Also here is a good table of other IXYS solar-cells.

Though I have a big variety of solar-cells (some of which I even made myself, see picture below) this time I wanted to use something that came from a legitimate manufacturer. My aim was to find a solar-cell that had a small form factor while at the same time offering a high power output and a long life expectancy (factors that tend to go against each other).
In the end I decided to go with the IXYS KXOB22-04X3F as this little solar-cell packed quite the punch and even came with an extensive datasheet. Plus this is a monocrystalline solar-cell and these are well known for their high efficiency and long life spans.

Solar DCDC, ST SPV1040

NOTE: If you have a closer look at the SPV1040 datasheet you will find that the lowest power solar-cell they used is 250mW, while the solar-cell I chose had a peak power of 20mW. I suspect this caused the DCDC converter not operate at it's full potential (see further graphs), so if you plan to use this IC make sure to choose a beefy solar-cell to go with it.

This section acts as an intermediate step between the solar-cell and the supercapacitor:
If you are not aware it's not the best idea to charge a supercapacitor directly with a solar-cell, to give a few reasons why:

  1. The circuit will be inefficient as most of the time the solar-cell will not be operating at peak power, translating to longer charge times.
  2. There is no voltage or current control, and if your solar-cell is powerful enough it is likely to shorten the life of the supercapacitor.
  3. The supercapacitor will only charge to the open-circuit voltage (Voc) of the solar-cell, in most cases this is not enough. 

Hence you introduce an intermediate power conversion step, which in this (and most other) cases is a solar DCDC converter. The converter I went with (SPV1040) is quite a nifty beast. It's most powerful feature is the ability to track the maximum power point of the solar-cell (mppt) and adjust it's input impedance accordingly. This is useful as if you have a look at a typical solar-cell IV/PV curve you will see that the peak power point occurs at a single current/voltage/impedance, hence when illumination conditions change this converter is able to respond accordingly.

The other key function of the DCDC converter is to boost the output voltage (Vout) to 4.2V, which is then used to charge the supercapacitor through a schottky diode. The purpose of the diode is to stop the supercapacitor from discharging through the Vout setting resistor network (R4 & R6). Also the peak charging current of the supercapacitor is set by R1 to 50mA, and initial fast charging of the supercapacitor is enabled through DS1.

Lastly I tried to characterize the DCDC converter to figure out just how efficient it really is. One thing I quickly learned is that you can't simply connect this DCDC convert to a power supply (PSU) as it expects to see a solar-cell like input. A trick to get around this is to place a forward biased diode across the input of the PSU, as in this configuration the silicon junction of the diode as similar to a solar-cell. The other thing to note is that the following plots are very crude, as I only had a single multimeter (EEVblog 121GW) that could log the input/output power. Still the results give a good indication of how the circuit operates, and interestingly also show the different charging stages. For example if the supercapacitor voltage is low enough then most of the initial charging is done through DS1 which brings up the supercapacitor voltage to Voc, after this the DCDC converter takes over and does the rest:

Supercapacitor, AVX SCMS22C255PRBA0

NOTE: AVX changed the PN as I was writing this post, the only thing that changed is the tolerance. Old PN (SCMS22C255MRBA0) had a tolerance of ±20%, new PN (SCMS22C255PRBA0) has a tolerance of +100% -0%.

Besides a small form factor my main reason for choosing a supercapacitor over a typical battery is lifetime, as I wanted the ornament to be functional in the next 30years. If we were to compare some popular battery chemistries it would be pretty easy to see why supercapacitors come out on top in this scenario:

Brand Part # Chemistry Cycles Condition
VARTA 56427 201 018 Lithium Polymer 500 1.4A char/0.7A dischar, 20% DoD
VARTA 56455 201 012 Lithium Ion 500 0.66A char/dischar, 30% DoD
PANASONIC VL-3032/VCN Lithium Vanadium Pentoxide 500 For 20% DoD
MAXELL ML 2016 T6 Lithium Manganese Dioxide 500 For 20% DoD @ 5mA dischar
VARTA 55604303059 Nickel Metal Hydride 1000 As per IEC 61951-2
YUASA 3DH4-0LA4 Nickel Cadmium 700 As per IEC285(1993)4.4.1
AVX SCMS22C255PRBA0 Supercapacitor 500000 Cycled between 5V & 2.5V

As you can see a typical battery will advertise ~1500 charge/discharge cycles before capacity drops below a certain threshold (this is typically 80% of initial capacity). Given that the ornament will complete one cycle per day this means it would reach this threshold within ~4years. Whereas with the supercapacitor I have chosen the capacity will drop to 70% of initial value after ~1370years, however this figure is not accurate as it does not account for other factors like voltage/temperature/dielectric aging...

A last note, AVX have released a fairly good whitepaper on this family of supercapacitors. You can read the full text here & here, the gist of it is:
  1. Operating at a lower voltage can drastically increase lifetime. An extreme example AVX presented was driving a supercapacitor at an ambient temperature of 85°C (this is the extreme part) with the voltage being 5V & 4V. At 5V the capacity drops to 70% after 2000hrs, however if the voltage is reduced to 4V then this figure improves to 4000hrs. Coincidentally driving the capacitor at a lower voltage also improves ESR stability:
  2. The conclusion states temperature dependence pretty well: "When derated to typical operating temperatures between 25°C and 45°C these parts are expected to last more than 20 years".

Illumination Trigger & LED Driving Circuit

This section is quite simple:
First off an NPN phototransistor (KPS-3227SP1C) drives an N-channel MOSFET (PMV20XNEA), I use this phototransistor to detect when the ornament is in a dark environment (no sunlight). When light is present the gate of the MOSFET is pulled low to ~0.4V above GND, enough to turn it OFF. When there is no light then the gate of the MOSFET is pulled high to the supercapacitor voltage, this turns the MOSFET ON which enables the oscillator circuit by providing a connection to GND. Earlier revisions of the illumination trigger circuit tried using the solar-cell as an input, however this was unreliable as the voltage of the solar-cell was always controlled by the DCDC converter.

Next the LED (KPTR-3216SURCK) is driven by a simple Ring Oscillator, which slowly fades the LED in/out in a breathing like manner thanks to the super low oscillation frequency of 59mHz (that's right milli). The reason why I went with this oscillator configuration is that it can work down to 1V, this is plenty enough for the LED which stops being bright at ~1.7V. If you are interested in having an oscillator circuit that can operate at a much lower voltage then I recommend having a look at some JFET based oscillators.

NOTE: At first I though that I was using a BJT Phase Shift Oscillator, however orolo & Hero999 from EEVblog pointed out that it's actually a Ring Oscillator. Also orolo explains the circuit operations quite well:
"When Q4 is saturated, Q6 must be off to keep Q4's base high. Since Q4 is saturated, its collector is low, which will turn Q5 off. As Q5 turns off, its collector goes up, which then turns Q6 on. As Q6 turns on and goes into saturation, Q4 is turning off. 

So the thing goes:
Q4(sat), Q5(turn off), Q6(turn on) → Q4(turn off) Q5(turn on) Q6(sat) → Q4(turn on) Q5(sat) Q6(turn off) → Q4(sat) Q5(turn off) Q6(turn on) → etc."

Lastly here are some results from LTspice which show how the circuit behaves with depleting supercapacitor voltage. If you want to see other results or try to run the simulation yourself then have a look inside the project pack:

Extra Pictures

Altium schematic:

Altium PCB:

SOLIDWORKS Visualize renders:
NOTE: Here is a good tutorial on how to render SolidWorks animations in Visualize.


  1. I stay in dubai .. here temp goes close to 50 deg . will it blow the battery or explode the battery at this temperature. I plan to keep this in my car.

    1. Hey there. Sorry for the late reply, my spam filter was a bit too strong...

      Nah the super capacitor will be fine as it's rated to 85°C, you will see a reduced lifespan if you run it at elevated temperature though. Also what will happen first is the plastic body will deform, as PLA has a glass transition temperature of ~60°C