Every scrap of power is precious when it comes to power harvesting, and working with such designs usually means getting cozy with a microcontroller’s low-power tricks and sleep modes. But in the case of the Ultra Low Power Energy Harvester design by [bobricius], the attached microcontroller doesn’t need to worry about managing power at all — as long as it can finish its job fast enough.
The idea is to use solar energy to fill a capacitor, then turn on the microcontroller and let it run normally until the power runs out. As a result, a microcontroller may only have a runtime in the range of dozens of microseconds, but that’s just fine if it’s enough time to, for example, read a sensor and transmit a packet. In early tests, [bobricius] was able to reliably transmit a 16-bit value wirelessly every 30 minutes using a small array of photodiodes as the power supply. That’s the other interesting thing; [bobricius] uses an array of BPW34 photodiodes to gather solar power. The datasheet describes them as silicon photodiodes, but they can be effectively used as tiny plastic-enclosed solar cells. They are readily available and can be arranged in a variety of configurations, while also being fairly durable.
Charging a capacitor then running a load for a short amount of time is one of the simplest ways to manage solar energy, and it requires no unusual components or fancy charge controllers. As long as the load doesn’t mind a short runtime, it can be an effective way to turn even indoor light into a figuratively free power source.
I’m guessing the photodiodes don’t provide as much power as even a solar panel meant for a solar powered calculator would use?
Could be interesting to build something like this to ping out a temperature reading from various offices in a building. Make a little business card sized PCB with some small solar panels then just let it run whenever the lights are on.
A trick in a pinch when you needed a phototransistor, from when transistors were black painted glass bulbs, was to scrape the paint off one to make it light sensitive. LEDs are also small solar panels with a concentrator, just as most other semiconductor are. I think even the the junctions in a Peltier module react to light.
Any good way to make this with analogue components? This technique would make a nice eternal LED flasher
The power supply part *is* analog, it’s just a charge pump built from discrete components. The microcontroller and transmitter are a separate circuit.
Should not be a huge problem. Either build a nanopower comparator, so you can trigger the LED as soon as your capacitor reaches a specific level of charge, or try to build some simple low power timing circuit that tries to fire the LED after a set time. I’m not quite shure what would be more power efficient without looking further into both options.
A comparator with reference like the MAX917 needs around 750nA, so with one string of these photocells you should get enough current to run the comparator, and every other stack of cells you run in parallel could be used to charge a capacitor for the LED…
For a good time, check out BEAM solar engine schematics. I’ve built a ton of the 1381-based variety into little bots and sound makers — they’re very simple and very rewarding.
The BEAM LED toys are called “pummers” b/c of the way the discharge fades out a little bit slowly — it’s exponential, natch.
Performance in low light will depend a lot on the leakage current of the capacitor you’re using. (And the internal resistance if you’re firing motors or anything else high-current.)
These days, there must be something more efficient to do the switching/thresholding.
I could swear that many years ago in the early days of the Internet I ran across a circuit someone built that eternally flashed an LED with no apparent power source. It used the “solar cell” ability of the flashing LED itself to generate the power from the circuit. It would be in “charge mode” storing power from the LED until it got to some threshold and then would fire the power through a inductive boost circuit to pulse the LED. The only issue was that you needed to be very patient, because with the low power available from the LED it had to charge for a couple minutes between each tiny flash.
I’ve tried to find that circuit since and never succeeded. And never had the ambition to re-design it from scratch.
reminded me of this http://discovermagazine.com/2016/janfeb/91-behold-the-eternal-camera
> or try to build some simple low power timing circuit that tries to fire the LED after a set time.
Which itself is probably a resistor, capacitor and comparator… so if you can manage it and don’t mind the frequency drifting with available power and load, you can use the original large capacitor for timing.
In a pinch a basic and inefficient circuit can be built using a 555 timer and a MOSFET to keep a capacitor between 2/3 and 1/3 capacity (you can use a resistor from the control pin to Vcc to bring the midpoint up, or to the 555 output to widen hysteresis instead). It’s basically the schmitt inverter circuit with the capacitor always charging from the input and being discharged by the target circuit. If you avoid sourcing much current from the 555 it can be powered off the input with a schottky and capacitor to keep Vcc at the highest input voltage. Don’t stress too much about what voltage the 555 ends up with if it’s just a hack because those big ol’ gates are pretty hardy.
Endless dodgy hacks from there, like if you have an resistor/cap between threshold and trigger (to drain the voltage at trigger without draining much from the capacitor) then a short pulldown pulse aborts the discharge phase early without discharging the capacitor all the way (reset pin only works *during* charging) so that you don’t have to burn power until it’s empty to resume charging.
Not shure if the 555 would manage this. At least the first figures i’ve seen in the LMC555 datasheet from TI say it typically has a supply current of 50µA at 1.5V. From the project page I’ve gathered that these photocells used here deliver around 1µ per string in indoor light conditions.