Hello everyone. This is my final blog as part of Experimenting with Supercapacitors design challenge. In this blog I will publish details and results of all my experiments which I did using Cornell Dubilier supercapacitors in last 6 weeks. In this blog I will describe my experiments and methodology which I used for conducting such experiments and of course I will publish all results. At the end I will provide some guide to select supercapacitor for low-power solar powered applications like my sensor which I did in recent months, but of course I will make it generalized for being able to apply to other but similar circuits.
As part of design challenge, I wrote additional 6 blogs. Readers of these blogs may be bored slightly because I will repeat lot of information for making this final blog standalone and without dependencies to any information posted in previous blogs.
Solar Powered Temperature Sensor
My Solar Powered Temperature Sensor is device which measures temperature regularly and once per 15 minutes wirelessly transmits measured data to the gateway which receives them and save them. Device do not use any battery but instead it uses very small solar panel and supercapacitor for storing energy for “bad times”. Over the day device charges supercapacitor by energy harvested form sun and at the night it uses energy stored in the capacitor. For purposes of Experimenting with Supercapacitor many technical details about device are not important (for example, details about wireless protocol and packet format), but if you are interested, feel free to read my more detailed blog about the device here: Mini Solar Powered Wireless Temperature Sensor.
As part of design challenge, I oriented my test with my supercapacitor application in mind. For this reason, I did some experiments differently than manuals recommends. For example, leakage measurement test requires to let supercapacitor charged for 72 hours, but when I take my application (solar powered temperature sensor) in account It completely do not make sense, because sun goes down every day and never will shine for 72 hours. So, these tests I adjusted to match my application. Results may be different than datasheet mention because they were collected under different conditions but may provide better view into real parameters in applications like low power (solar powered) sensors.
Capacitors
As part of design challenge, I received 13 different capacitors from Cornell Dubilier. I received 2 pcs each which allowed me to do tests and development and the same time. At the end I can say, that receiving two pcs were very useful. All test results presented later was done using the same capacitor. The other capacitor units I used only for debugging my circuits and some minor experiments. In the kit there are capacitors of 3 types from 6 Cornell Dubilier families.
- Standard radial EDLC supercapacitors of two types. Cornell Dubilier refers them as DGH and DSF family.
- Coin Supercapacitors with different form factor and slightly different properties. Capacitors which I used are from EDC and EDS families.
- Lithium-ion supercapacitors. These are very interesting modern devices with some additional limitations like they can’t be shorted and it is need to prevent under-charge them. Capacitors which I used are from Cronell Dubilier’s VMF and VPF families. Unluckily capacitors which I received were shorted in transport, which led to their performance degradation. I still used them but many results are affected by this.
Cost Oriented Approach
As part of competition, I try to do experiments with only basic equipment. I did not use any expensive tools, but used only basic and mostly cheap parts. While most measurements can be done manually, I still automated them using Raspberry Pi and microcontrollers. The most expensive equipment which I used is oscilloscope. I used it for debugging. For running my experiments, oscilloscope is not mandatory.
Experiments overview
As part of design challenge, I did 4 major experiments:
- Capacity Measurement
- Real Energy Density Evaluation
- Self-Discharge Measurement
- Real test with low-power solar powered sensor node.
Except the last experiment I wrote dedicated blog about my experiments, but in this blog I will summarize my findings and basically describe all of them again. I will describe the last experiment in more details because it was not described yet.
Testing circuits
While every experiment requires its own testing circuit (which I will present later for each experiment), there are still some common properties of my circuits. I build circuits using modules and breakout boards. Most of them I designed myself and most of them I originally designed for different purposes but reused them now.
- Circuits are driven by Raspberry Pi or AVR128DB48 microcontroller
- For selecting paths to tested supercapacitor without any parasitic leaks I used relays instead of transistors.
- For powering and charging capacitors in constant voltage (CV) mode I used buck modules with MAX16395 Step Down regulator
- For powering and charging capacitors in constant current (CC) mode I used simple and cheap LDOs. I will show their connection later.
These blocks were used in almost all my experiments, and you will see them in schematics multiple times.
Let’s go look at the first experiment
Experiment #1: Measuring Capacitance
Purpose of this experiment is to measure real capacitance of the capacitors form the kit. All capacitors have specified tolerance (which is quite a tight in case of Cornell Dubilier Capacitors) and real value can be any in the allowed range. This experiment is fundamental because it allows improve results from all consecutive tests. For example, in later described experiment about real energy density I will measure how long charged supercapacitor can power LED, but comparison is unfair, if I will compare 1F capacitor with 0.47F when their real capacities are something like 0.8F instead of 1F (-20%) and 0.6F instead of 0.47F (+30%). Results from this experiment are later used in my further experiments to compensate this effect. Measuring capacitance looks simple at the first look, but it is not, and it took me long of time until I successfully measured capacitance. Cornell Dubilier provides manual showing how to do capacitance measurement of very large capacitors, but it requires some tools which I do not have like bench power supply capable of constant current mode. But it is challenge and I resolved this issue by replacing expensive tools by very cheap components which resulted to the very interesting low cost software (Python) controlled method of measuring capacitance.
Methodology
For measuring capacitance, I did circuit consisting constant current source (for charging) and sink (for discharging). Raspberry Pi selects the path the capacitor. At first stage device charges capacitor slightly under rated voltage, then it maintains voltage applied for some time and then it switches to discharge mode. In discharge mode there are two voltage levels. The circuit measures time how long it take to discharge between these two voltage levels. Capacitor voltage over time look as shown on following plot from Cornell Dubilier manual.
After measuring times T1 and T2 and knowing the discharge current (which is constant) we can compute capacitance using formula from the same manual.
The biggest issue was with building constant current source and sink. After several unsuccessful attempts I found very interesting Application Note 4404 from Maxim Integrated (now ADI) which shows building constant current source using cheap LDO. The idea basically come by do not connecting LDO ground to the ground of the circuit, but to the load (supercapacitor to charge in my case). Input current to the LDO is almost equal output current. If LDO is loaded by fixed resistor, then we can compute current flowing through both input and output from ohm law because output voltage of LDO is known and constant and resistor is also known and constant. Thus, current is also known and constant. Because LDO ground is not the ground of circuit, but it is connected to the load, the same known fixed constant current flows to the load (Kirchhoff law).
For loading (discharging) capacitor I used LDO loaded by fixed known resistor also. This connection makes constant current sink.
Both circuits have some limitations. I discussed them in detail in my blog: Measuring Large Capacitance using Python
The schematic of the measurement circuit looks as follows:
The schematic contains LDOs connected as constant current source and sink as mentioned above. It also contains relay for switching path. I decided to use relay in all my experiments for preventing leakage from transistors because it can influence some measurements, because most of measurements are long term. At last, there is some voltage supply, ADC module and Raspberry Pi running the Python script for controlling the circuit and computing output. In the real testing circuit looks as follows:
This is circuit in the state which I presented in the Measuring Large Capacitance using Python blog which is actually the most popular blog of my series. Since that I did two modifications:
- I added unity gain opamp and voltage divider for allowing evaluating capacitors with rated voltage with higher voltage than 3.3V which is maximum of my ADC. Unity gain operation amplifier is in the design for preventing directly loading the capacitor which influences the measurement by parasitic discharge current through the voltage divider resistors.
- I updated discharging LDO by LDO with output 2.5V for implementing very basic undercharge protection for Lithium-Ion Capacitors and increased current, because large capacities charges and discharges very slooooow with current used for other capacitors. Additional soft protection was implemented in Python script.
Let’s see results of my measurements against all capacitors in the kit:
Results
Capacitor |
Type |
Expected C |
Measured C |
Deviation |
Tolerance Min |
Tolerance Max |
Result |
DGH105Q2R7 |
Radial EDLC |
1 |
1.126 |
+12.6 % |
-10 % |
+30 % |
PASS |
DGH505Q2R7 |
Radial EDLC |
5 |
6.047 |
+20.9 % |
-10 % |
+30 % |
PASS |
DGH106Q2R7 |
Radial EDLC |
10 |
12.204 |
+22.0 % |
-10 % |
+30 % |
PASS |
DSF305Q3R0 |
Radial EDLC |
3 |
3.222 |
+7.4 % |
-10 % |
+30 % |
PASS |
DSF705Q3R0 |
Radial EDLC |
7 |
8.387 |
+19.8 % |
-10 % |
+30 % |
PASS |
DSF256Q3R0 |
Radial EDLC |
25 |
31.589 |
+26.4 % |
-10 % |
+30 % |
PASS |
EDS104Z5R5C |
Coin EDLC |
0.1 |
0.118 |
+18.1 % |
-20 % |
+80 % |
PASS |
EDS224Z3R6H |
Coin EDLC |
0.22 |
0.290 |
+32.2 % |
-20 % |
+80 % |
PASS |
EDC474Z5R5C |
Coin EDLC |
0.47 |
0.398 |
-15.2 % |
-20 % |
+80 % |
PASS |
EDC105Z5R5H |
Coin EDLC |
1 |
1.132 |
+13.2 % |
-20 % |
+80 % |
PASS |
VMF256M3R8 |
Radial LIC |
25 |
18.570 |
-25.7% |
-20 % |
+20 % |
FAIL |
VMF406M3R8 |
Radial LIC |
40 |
28.406 |
-29.0% |
-20 % |
+20 % |
FAIL |
VPF406M3R8 |
Radial LIC |
40 |
18.625 |
-53.44% |
-20 % |
+20 % |
FAIL |
Results Evaluation
In most cases measured capacitance is slightly higher than rated. There is one exception: 0.47F capacitor from EDC family which I measured (several times) lower than rated capacitance, but still within tolerance. Even in case of capacitor with spread tolerance range (-20% to +80%) I measured capacitances very near rated capacitances. The bad results are in case of LIC capacitor. These capacitors should never undercharge, but capacitors which I received were shorted in transport. This can lead to increasing capacitance and increasing ESR. At least decrease of capacitance is very visible from the results.
Downloads
Download package contains source code of the measurement script and schematics of testing circuit in PDF format.
Link: misaz-cde-supercaps-exp1.zip
Experiment #2: Energy Density Evaluation (Boost-powered LED)
The second experiment try to evaluate real capacitance of the capacitors taking in the account rated voltage. The idea is that if you charge capacitor by 3V and discharge it by LED, it will light for some time. If you charge the same capacitor (with the same Farad capacitance) to 5V, then it will light longer. Additionally, duration depends also on the voltage when the powered device cuts-off (for example, LEDs do not light at 0.8V). In this experiment I used boost regulator for generating constant voltage for the load which is used in many low-power battery (or supercapacitor) powered circuit nowadays because it allows powering circuit even when the source voltage is lower than the operating voltage of the circuit. Boost converter converts lower input voltage (voltage of supercapacitor) to the higher output voltage (5V in case of this experiment).
Methodology
Experiment is designed with AVR128DB48 microcontroller. Similarly, to previous experiment I used relays to switching paths. This time I used constant voltage instead of constant current charging (current was still limited by breadboard traces resistance and current and thermal limits of buck regulator used for powering). As mentioned in discharge phase the capacitor was connected to boost regulator which powered just LED. Microcontroller after switching to discharge phase starts “stopwatch” and measure time until the capacitor powered LED turn off. For detecting it I used optocoupler which is designed for completely different use case but worked in this experiment well. Optocoupler has internal LED and on the other side it has transistor which is switched if and only if LED lights. So, when the LED turns off due to discharge, transistor switches state and this is sensed by microcontroller. Current flowing through the LEDs was set by resistor and I measured it as 4.22mA. Circuit also has over-discharging protection for lithium-ion capacitors. It is made using comparator which disconnect capacitor from load after it discharges under configured level (2.5V). Schematics of the circuit looks as follows:
And in the real on the breadboard, it looks as follows:
In theory this setup should discharge supercapacitor down to 0.4V which is the limit of the boost regulator which I used (MAX17225), but practical tests shows that it happens sooner. It is because when the voltage goes down, the current demand on the input side grows a lot and at some point, boost regulator is not capable to make stable voltage anymore and it shuts down. Additionally, capacitors have some ESR (equivalent series resistance) which causes voltage drops at higher currents. This causes that after boost regulator fails, the current demand drops and voltage on the supercapacitor restores a little. But this makes the voltage in valid input range again and boost regulator starts to work again and after a short while (fraction of second) it fails again. This repeats for some time. My circuit measure time to first power failure. Practical tests shows that it happens between 0.7 and 0.9 volts.
The circuit shown and described above I tested against all supercapacitors from the kit. Let’s see the results:
Results
Following table contains times for which the capacitors were able to power LED. Except lithium-ion capacitor which were affected by improper handling at transport I normalized capacitor values according to real measured capacitances from previous experiment. In case of LIC I did not do compensation because it tend to provide misleading results, especially in case of cost evaluation. At last, I compared capacitor running duration with capacitor cost. Newark do not offer all capacitors in all minimum order quantities, so I pick prices from different distributor this time. Of course, price can change in time.
Capacitor |
Time to Power Loss |
Time Norm Prt |
Cost |
Cost/LEDmin |
DGH 1F |
00:02:27,058 |
00:02:10,602 |
$ 1,09 |
$ 0,50 |
DGH 5F |
00:13:03,958 |
00:10:48,220 |
$ 1,75 |
$ 0,16 |
DGH 10F |
00:24:54,480 |
00:20:24,582 |
$ 2,57 |
$ 0,13 |
DSF 3F |
00:09:11,601 |
00:08:33,595 |
$ 1,40 |
$ 0,16 |
DSF 7F |
00:21:54,759 |
00:18:17,331 |
$ 1,84 |
$ 0,10 |
DSF 25F |
01:14:23,973 |
00:58:52,854 |
$ 4,48 |
$ 0,08 |
EDS 0.1F |
00:00:33,251 |
00:00:28,179 |
$ 3,38 |
$ 7,20 |
EDS 0.22F |
00:00:32,702 |
00:00:24,808 |
$ 3,19 |
$ 7,72 |
EDC 0.47F |
00:02:30,828 |
00:02:58,113 |
$ 3,81 |
$ 1,28 |
EDC 1F |
00:09:25,823 |
00:08:19,844 |
$ 4,14 |
$ 0,50 |
VMF 25F |
01:01:22,176 |
01:01:22,176 |
$ 3,89 |
$ 0,05 |
VMF 40F |
01:53:40,575 |
01:53:40,575 |
$ 5,50 |
$ 0,03 |
VPF 40F |
01:42:51,550 |
01:42:51,550 |
$ 4,41 |
$ 0,02 |
Results Evaluation
There are some interesting points:
- There are two 1F capacitors with different voltage rating (2.7V and 5.5V). 5.5V unit is 4 times more expensive. Did it power LED four times longer? It did. More precisely, after taking account compensation by real capacitance it was 3.82x.
- I tested two units from EDS family which differs in capacity and also in the rated voltage. I have 0.1F unit with 5.5V rated voltage and 0.22F with lower 3.6V rated voltage. Both powered LED for about 32 seconds, so twice the capacity is not always better.
- The LIC powered LED for the longest time. Interestingly 25F LIC which faced wrong handling still powered LED longer than 25F unit from DSF family. I think, it is because in capacitance measurement test I used higher currents which most probably highlighted not only impact on capacitance, but also on ESR.
- LICs are also the most cost efficient options in terms of this test.
- The worst cost efficiency is in case of EDS family. For some reason these capacitors are much more expensive even in comparison with very similar EDC family.
Downloads
Download package contains Atmel Studio project containing source codes of microcontroller firmware and schematics of testing circuit in the PDF format.
Link: misaz-cde-supercaps-exp2.zip
Experiment #3: Self-Discharge Evaluation
The third experiment was designed for testing self-discharge evaluation. Self-discharge happens to all capacitors. If you charge capacitor or supercapacitor to some voltage, put it to the drawer and then look at it three weeks later, the capacitor will not be charged to the same level as it was when putting to the drawer. Its voltage will be lower. Question is: how much lower it will be? Self-discharge rate is not constant and depends on several factors like duration for which the supercapacitor was attached to power supply when charging. Longer the capacitor is charged, lower the self-discharge rate is. In some applications it does not matter much. For example, in case of supercapacitor-based UPS the load will discharge supercapacitor much faster than it discharge itself. But in some cases, it matters. For example, in case of powering Real Time Clock (RTC) chip. These chips have very low power consumption and supercapacitors can power them for several weeks. But when the capacitor self-discharge itself it 5 days, then it definitely will not work for weeks…. In case of my main project (Solar Powered Sensor) self-discharge is important only partially. It must be low enough to power device in night, but do not need to survive for weeks or months.
Methodology
Testing circuit has power supply for allowing charge capacitor for specified time and analyse differences between different charge times. After charging capacitor it disconnects from it and once per 20 minutes check capacitor voltage and log it. At start-up the time between sample is lower because after disconnecting from power supply, capacitors drop some voltage immediately and self-discharge faster, but after few seconds/minutes it stabilizes. Testing circuit is driven by Raspberry Pi and controlled by Python script. For measuring voltage, I use the same ADC as in case of measuring capacitance (MAX11410). For measuring voltages above 3.3V I added voltage divider. This time without buffer because this experiment connects capacitor ADC only temporarily and then disconnects. For enabling charging and attaching capacitor to ADC I use relays which in comparison with transistors and direct connection has no additional leakage. Schematics of the circuit looks as follows:
It looks as follows:
This test setup I used for measuring several capacitors, but not all this time because of high time requirements of these tests. Instead, I tried measuring one capacitor (DGH105Q2R7 several times under different conditions). All measurements were very long. Almost all I tested for more than 24 hours which made this test very long and boring.
Before test, all capacitors (excluding lithion-ion caps) were discharged for at least 30 minutes by shorting their wires.
Experiment #4: Solar Powered Sensor Evaluation
The latest fourth experiment is my main experiment. It is practical evaluation of capacitors with my sensor which I did recently. I desoldered supercapacitor which I used originally and instead I soldered short wires with connector for easily swapping the capacitors. I was considering testing the sensor outside, but it would be hard to compare and evaluate because every day there is different level of light. Some days are shiny, some cloudy. Instead, I emulated sun and did the experiment in light-isolated box. When experiment was in progress, I monitored voltage on the capacitor which I of course automated by Raspberry Pi and Python. Purpose of this experiment is to evaluate capacitors and for each type of them answer some fundamental questions like:
- Do the device boot and work?
- What is the minimum required capacity?
- How long does it take to fully charge from zero?
- How long does it take to discharge to state when device shuts down?
In fact, answer to all these questions is: It depends.
It depends on weather (sunny days charges better), day of year (summer days provide more light than winter days) and of course it depends on device configuration and mostly it’s power consumption.
Main device used in the test is my Mini Solar Powered Wireless Temperature Sensor. It is a device consisting of ADP5091 PMIC which is optimized for energy harvesting. As a source there is very tiny solar panel. Finally there is STM32 low power MCU, temperature sensor and radio transmitter. System can be visualized using following block diagram:
In terms of this challenge the most important part is ADP5091 PMIC which directly “interfaces” with supercapacitor. It is one of the energy harvesters available on the market and based on my finding it is the most configurable one. It’s connection on my sensor board looks as follows:
As you can see in the right bottom corner there is resistor network which is used to configure voltage thresholds. All of these thresholds are in case of ADP5091 configurable in range of 2V to 5V which is nice. Some other harvesters often do not configure all voltages in this range, and they are more limited. For example, MAX20361 can support maximum voltage on capacitor in range of 4 to 4.75V which is problematic. It is designed for use with li-ion batteries (their terminal voltage usually about 4.2V is in this range), but rated voltages in capacitors are not. For example, when used with DGH and DSF families, you will overcharge your capacitor unless you secure it externally. For this reason, ADP5091 which I chosen seems like good choice because it allows me evaluate sensor with all capacitors. Additionally, ADP5091 has features for prevent undercharging batteries or LIC supercapacitors which is also configurable.
Now let’s see how did I tested capacitors.
Methodology
For making test deterministic and make the same conditions for all supercapacitors I build enclosed box. I used paper box from ikea. I filled all sides with white paper for allowing more reflections of the light in the box. Sensor was placed in the box and solar panel was attached to the box using sticky tape for making it in the same positions for all tests. Instead of sun there were WS2812V RGB LED strip and there were Raspberry Pi for controlling it. Similarly, to previous experiments there is ADC, operation amplifier for buffering and relays for switching. For debugging purposes there were temperature (MAX31875) and light (VEML3328) sensors connected to Raspberry Pi also. Finally, there is my gateway which I use for receiving wireless packets from sensor node to check when the device start operating. RGB LED strip in most case was powered for 8 hours and remaining 16 hours there were absolute dark in the box. This should emulate sun (and night) but of course LED do not behave exactly as sun. I chosen 8 hours of “sunshine” for emulating short days at winter. My practical findings shows that LEDs are less powerful than real sun. When I have placed sensor outside it charged about twice the faster in comparison when I had it inside box with LED emulated sun (and of course, using the same capacitor). In real under sun it should behave better. This test can act as bad light condition test. Following photo shows inside of the box. When running test, the box was closed of course.
The solar node work almost independently. Testing circuit was mostly disconnected from it and testing circuit connected to it once per 20 minutes to check and log voltage on the supercapacitor.
Outputs from the test are:
- Log of supercapacitor voltage over time
- Log of received packets which can be used for detecting when the device was fully running.
Because this test is my the most important experiment, let’s see behaviour of all capacitors separately.
Coin supercapacitors
As the first test I started with coin capacitors. I selected them because they look similar to capacitor which I used originally. Originally, I used dual radial supercapacitor with 1F capacitance and 5.0V rated voltage. Coin supercapacitors from Cornell Dubilier are rated to 5.5V and units which I received have capacitance between 0.1F to 1F. At first, I tried the 0.1F unit. It is tenth of value which I used and according to my estimation it should work, but not for whole night. But something strange happened. Voltage on the capacitor was following:
It starts pretty quickly which is expected due to low capacitance. But it did not charged to full voltage and instead it stuck at about 2.13V which is the voltage when it should start power regulator and start power microcontroller. But it did not. In fact, this issue is not new to me. I have seen it when I was using “low” capacitance standard electrolytic 100uF capacitor with the sensor node instead of supercapacitor. Using 100uF capacitor has benefit that everything is much faster, and it is good for debugging. But issue is that the circuit do not boot with 100uF capacitor. When I was facing issue with 100uF capacitor for a first time, the result was, that it is caused by inrush current. When the regulator starts generating voltage for microcontroller, there is inrush current which is caused by decoupling capacitors (about 13uF in total). When regulator starts, it effectively transfers energy from supercap (or 100uF capacitor) to decoupling capacitors. This cause voltage drops on supercapacitor and this voltage drop causes ADP5091 to stop the recently started regulator because voltage is too low. And this patter infinitely cycles, but the circuit never boot. But in this case situation is different. There were 0.1F capacitor which is 1000x more than 100uF and this should be enough for handling charging of 13uF decoupling capacitors, but I still originally thought that this is cause for the issue also and tried switching to higher capacitance unit: 0.47F unit.
But it surprisingly behaves very similar. Charging was slower because of higher capacitance, but it still did not boot.
So, I tried 1F unit. 1F is exactly the same capacitance as I originally used and known that it is enough. But even more surprisingly it also did not work with following result.
So, I need to debug furthermore. I did some measurements with oscilloscope and compared what happens. On the scope I for example found the moment when regulator starts regulating the voltage (with 0.47F capacitor):
The blue trace is voltage of the regulated output and yellow is voltage of capacitor. As you can see it creates a drop on capacitor and almost immediately turns the output off. But surprisingly with 100uF capacitor (1000x lower capacitance) it looks better:
With much smaller capacitance it starts generating full 2V for a while and then stopped. In this moment I realized that capacitance maybe is not the only issue. The propper root cause I find when I reconnected scope to see whats happens on the supercapacitor and system voltage (not regulated one). System voltage powers core of the ADP5091 PMIC. On the following scope screenshot the blue line is the voltage of the supercapacitor and the yellow is the voltage of PMIC system voltage.
As you can see both voltages did a drop, but while ADP5091 system voltage required some time to recover, supercapacitor recovered very soon. At this moment I realized that issue maybe is that supercapacitor can’t transfer charge from capacitor to system voltage so quickly. Its “transfer capability” is limited by some resistance and very soon I realized that it is most probably cause by ESR of the supercapacitor which is quite a high in case of coin supercapacitor. As a workaround I try other experimented. I connected 0.47F unit and in parallel I added my 100uF electrolytic capacitor. Added capacitor should handle inrush current peaks when the regulator is starting. I attached it to the jumper and testpoints which I have exposed on the board. Workaround looked as follow:
And luckily, is start working. Later I tested (but due to time pressure I did not run 24 hours test) with 0.1F unit. It also booted with additional standard capacitor in parallel. But some strange issue happened very soon again. The behaviour of 0.47F unit with parallel standard cap looked at first hours as follows:
It looks that it properly charges but at some point, it looked that it start discharging while light is still on. But debugging shown that it is because the light is on. :D The issue was that for being able measuring capacitor over 3.3V I used operation amplifier for buffering it. The opamp was powered by the same power which powered LEDs and for some reason after several hours it’s voltage dropped from 5.2V to 4.6V which limited range of the measurement circuit. I fixed it by connecting opamp to different 5V supply. Later I used two 5V supplies. One from Raspberry Pi for powering opamp and second independent for powering LEDs and relay coils. I patched circuit on the go and result after patching looks as follows:
This is nice result. 0.47uF rated at 5.5V is definitely enough for running my sensor. Due to limitations of ADP5091 I did not use full 5.5V range but rather ended at about 5.25V. At this voltage sensor stuck for over 3 hours and then when nigh come (after 8 hours since start) it started discharging. After 16 hours of night without any light provided it was at 3.4V which is still far from the 2.2V at which it turns off. Over the whole time when the voltage was above 2.2V I was receiving packets from the sensor. First packet I received 01:20 (80 minutes) after experiment started, but the sensor sends first packet after first 15 minutes period elapse, so it actually booted one hours and five minutes after power up from zero.
So, the result is that 0.47F EDC capacitor is enough for running solar temperature sensor. It boots quickly. Survive day and night but requires additional low ESR capacitor in parallel.
Lition-ion capacitor
Additional capacitor which I tried was lithium-ion capacitor, more precisely 25F unit. This experiment was interesting because circuit get powered almost immediately. Since LIC can’t be undercharged under 2.5V. Because 2.5V is higher than about 2.2V needed for starting regulator it start working right after attaching capacitor. This may be problematic for shipping because capacitor get immediately discharging and can easily undercharge, but ADP5091 has configurable protecting which disables some internal parts after it falls under configured voltage. This will minimize discharging. But I tried it attached charged and see how quickly it charges and discharges. Result were following:
It started at 3.54V and after 8 hours of charging it charged to 3.69V which is only 0.15V increment. :D It is because of very high capacitance of course. It withstands night very well of course. Over 16 hour period absolutely without light it dropped from 3.691V to 3.667V, in other words it discharged only by 0.024V. So, it seems that it can withstand two months in the dark, but then it can possibly undercharge and destroy itself. Additionally, if it happens it will take several weeks until it charges to voltage required for working. Practically it is better to consider using lower capacitance LIC in this system. The lowest offered by Cornell Dubilier is 10F which seems still high for these applications, but of course when you will decide make some sensor with higher power consumption than 2uA in average and bigger solar cell, than this capacitor can handle it well. Also, it works without additional parallel capacitor.
Standard radial capacitor DGH
As a next capacitor I chosen DGH 1F unit. Unluckily it did not boot, but this time it was more interesting. It ended up as follows.
It begin fine, voltage was grooving at expected speed, but about 1.84V which still far from 2.2V when it start regulator it for some (still unknown) reason slow down the charging. It almost met the point when regulator start working, but unluckily night came. Capacitor were slightly discharging, MCU did not boot, so I had no temperature measurements from that time. Next day it started charging again and it looked that it charges faster. I was considering running it longer, but due to time pressure. I tried some basic debugging (it is hard to connect full test equipment in the space limited box) but did not find the issue. I think that issue is not in the capacitor but in my circuit. Maybe there were some cold joint on component replaced for this test (I need to adjust terminal voltage for prevent overcharging capacitors between every test). But I did not find any visible issue, so I decided to halt the experiment and give a try to similar supercapacitor from the last family and check if it will behave the same. This was DGH family, now let’s see DSF family.
Standard radial capacitor DSF
The smallest capacitance form DSF family which I have is 3F. So, I tested it. It worked well and the issue which I have seen in DGH family did not occurs here. But because of large capacitance it did not charge enough to boot MCU within 8 hours of power off. For making this test more useful in comparison with previous one, I hacked the world and enabled sun “in night”. Voltage starts growing well and everything seems that it should work and it seems that it should withstand full 16 hours long night. In comparison with coin capacitor, you must take in account that charging do not stop at 5.3V but at 2.9V. In this test it is compensated in capacitance, but in my opinion 0.47F/3.0V capacitor will be very tight in comparison 0.47F/5.5V unit which worked well.
And that’s all. You have seen how coin, LIC and radial capacitor work with my low power wireless sensor. Result is quite a positive. You can design such sensor with all capacitors. In some cases (coin) you need to compensate high ESR, in case of LIC you need to deal with slow operation and undercharging protection and in case of standard radial EDLC you need to deal with low rated voltage. But the end, all this design can be successful.
Downloads
The download package contains python script for running the test and excel sheet which you can use if you want to analyse plots shown above in more details.
Link: misaz-cde-supercaps-exp4.zip
Low Power Solar Powered Sensor Nodes Supercapacitor Selection Mini-Guide
At my first blog I mentioned that I want to provide some mini guide for selecting supercapacitor for applications like my low-power solar powered wireless sensor. As you were able to see it above, it is possible to design it with any capacitor type. Here are some recommendations for designing such sensors:
- The most important is long-term power consumption of device. Spend more time with optimizing power consumption rather than tuning supercap. Use some profiler like Nordic Power Profiler Kit 2 or STLINK-V3PWR or similar. Sometimes it is possible to reduce power consumption just by optimizing software and that’s nice: software update can save you lot of money and time.
- Pay attention to parasitic loads. For example, when connecting voltages to the MCU ADC over resistor divider. It will cause permanent power consumption increase.
- Selection of harvester chip influence lot of params, select chip first, then select capacitor/battery.
- You need lowest capacitance which fits. I do not recommend oversizing capacitor. It will occupy more space, it will take longer time until circuit with higher capacitance boot and of course it cost more money.
- You should prefer low ESR capacitors, especially If your circuit generates high current peaks (for example, RF communication). If you select capacitor with high ESR, you need to compensate it by parallel low ESR capacitor with quite a high capacitance to handle inrush current and peeks. This will be additional quite a expensive part on PCB.
- Pay attention to inrush currents. Most design looks that there are no significant inrush currents, but there may be some hidden. For example, charging decoupling capacitors. They can prevent circuit to boot.
- Set thresholds lower than theoretical value is. If your capacitor is rated to 3.0V, set the maximum charging voltage to 2.8V or even lower. Voltage references inside the harvester PMICs are optimized for power consumption, not accuracy and there is possible quite a high overshoot.
Conclusion
This is all form my final blog. Thank you for your attention. Last 6 weeks I spend with these very nice supercapacitors from Cornell Dubilier. I tested several types. Some of them for a first time in my life. It was very exciting time and enjoyed it a lot even at the end the long-term tests start being slightly boring. I learnt lot of things and find some interesting facts of my device which I designed before the competition. It was fantastic opportunity to test it with other parts and find their weakness which I did not find before. Many my experiments were impacted by lack of test equipment and insufficient amount of it. I used all Raspberry Pis which I had in home, I had to build additional units of ADC module for being able to run long-term experiments in parallel. I also had to replace some expensive equipment which at the end resulted to finding very cheap replacement by ultracheap LDOs and I think this outcome can be helpful for other who work supercapacitors. Thank you very much for reading my blogs. I still welcome any feedback. So, feel free to write any in the comments below.