Electronics > Power & Renewable Energy

SBPi - aka: My "Solar Boinc Pi" build log

(1/2) > >>

nzc:
Hi There,

This will be my first post on the forum so let me introduce myself quickly:
My name is Csaba and I'm from Transilvania. I'm a full time Programmer and have a few hobbies like having fun with musical instruments (Guitar and Piano). Electronics was and is my biggest hobby since I learned to solder when I was around 3 years old. I'm a big fan of you Dave's and following you on Youtube for years now.

I used SETI@Home 10 years ago for a few months but realized that I can't do any "useful" contribution, because under normal workload I couldn't afford to share resources of my workstation and had to let it run overnight to finish the tasks prior deadline. After this my opinion was that is always cheaper to build/adopt a custom solution that can be much more efficient to solve this kind of tasks then using ordinary PC idle times. Not mentioning that it will keep the CPU 100% all the time that may hurt on the electricity bill and accelerate hardware wear (ordinary PC's  just aren't built to run 24/7 on 100% load like servers do).

After I saw Dave's "Find Aliens With Your Raspberry Pi" video I quickly grabbed my abandoned Pi B that was sitting in the bottom of a drawer since I upgraded to V2 and setup SETI@home on it. I was running the Pi at stock speed and quickly assembled a small script that may log the CPU temperature every minute so I can check if the continuous 100% load may cause overheating.  http://pastebin.com/f7M60fVj
Turned out that the CPU temperature stabilized around 46 degree Celsius (21C ambient) at 700Mhz stock speed.
Opened up the raspi-config utility and checked the overclock ( 8 ) section, where I selected the Modest option, that may overclock the CPU to 800Mhz without overvolt. Also improvised a not so elegant but (turned out) efficient heat sink by folding a 10cm long 1cm wide metal sheet into a "triangle" and gently ziptight on top of the CPU. Now the CPU temperature is stable around 43C at 800Mhz clock. I wanted to add some thermal conductive paste between the CPU and heat sink but currently I don't have any.

The not so elegant heat sink:



After it was done I remembered about the past experience with SETI/Boinc (that just described earlier) and started to wondered "how could I make it efficient"?

Let's transform this into a serious hobby project, because I have a hardware that I don't use anymore and don't mind to allocate 100% of it's resources, but if I could power it via solar panel and battery then basically it may cost nothing to run, except the investment in those additional parts. However after a quick math those additional costs doesn't worth it more then letting to run via the mains.

I already have a small solar panel that come with the outdoor Christmas lights and it charges 3xAA rechargable batteries. The problem is that the control circuit is built to charge the batteries during daylight and turning on the output power only at night.
I also found a 2200mAh rated phone charger, in the same drawer, that I won last year at a conference from the <epam> guys. So I have another part that I've never used so I can make it useful. After disassembled it found a TP4213 ASIC in it ( http://www.datasheetcafe.com/tp4213-datasheet/ )

Bummer, there is a "but" again. The phone charger can't have both the input and output turned on in the same time (when charging the battery it will cut the output). No problem I  thought, I can wire the solar panel directly to the battery with a single diode in series to avoid feeding back the solar panel from the battery. ( I'm not at home with solar panels, so correct me if I'm wrong and the panel can be connected directly to the battery. )

Another bummer. After taking a closer look on the TP4213 specs found out that the input voltage should be between 4.3V ~ 5.5V so wiring the solar panel directly to the battery may not only cook the battery but also the boost converter (I measured the solar panel output by holding it close to a 20W desk lamp and measured 8V output). The magic drawer didn't helped me out this time. I found an XL6009 based adjustable DC-DC converter, but unfortunately is implemented only in boost configuration so it's a no go.
Also I'm aware that this solution may be far from optimal, because it has no control over the battery and over the solar panel load.

As I mentioned earlier I have no experience with solar panels, but I remember that a few years ago a colleague of mine, who has done and does experiment with solar panels, told me that you need a control circuit that optimizes the load to get out the max from solar panels, because if I drain more then it can provide it will "collapse" and supply only a fraction of it's real capacity. Maybe I misunderstood or not remembering correctly, but feel free to correct me please.

The backup plan is to return to the original control board of the solar panel and figure out how can I bypass the output switching to be always on. Another plus is that the original board may have the panel and battery management implemented (or not considering that it's an outdoor unit for Christmas lights, that is used for ~2 weeks per year in winter time when there is not so much sunlight and most likely freezing cold) and also can keep the 3xAA 2800mAh batteries to the additional 2200mAh cellphone charger. An this is where the XL6009 based DC-DC boost converter come handy, because the panel output with it's original board will most likely (need to confirm by measuring it as soon I solder it back) supply less then 5V, because it's designed to drive a few LED's wired in parallel (just hope it will not go below 3V).

The original solar panel management board:



In time I was composing this log entry I did a test to see how much the Pi with Boinc will go with the phone charger battery pack, and the result turned out to be roughly around 2 hours and 40 minutes that resulted 1.27% progress on a SETI task

Before starting on the battery:


After the battery was drained:



BTW: if you want me to describe how I setup the Boinc Manager to remotely connect to the Boinc client running on Pi from a PC just let me know and I'll make a quick tutorial about it.

That is it for today, more progress to follow soon, just stay tooned.

nzc:
TODO List:

* Solve the solar power supply issue:
Plan B
Supply enough power for the Pi to run a few hours per day. Future measurements and tests will tell if it's enough to complete SETI tasks before deadline.

* Measure the output of the original configuration of the solar panel with it's management board and 3xAA 2800mAh batteries
As expected the output is 3.6V
* In case the output is above 3V use the XL6009  based DC-DC converter to supply the required 5V for the PI
Turned out that the original management board is actually a joke and couldn't supply the required current through it's output transistor (as Photon939 anticipated it correctly) and the DC-DC converter just went crazy as soon the Pi was connected to it

* In case the output is less then 3V try to mod the management board to increase it above 3V and use the XL6009 based DC-DC converter to feed the PI with the required 5VBack to Plan A

* Minimize power consumption:

* Optimize WiFi power management - implement a script that can smartly toggle the WiFi dongle based on the Boinc-client job status (off if it's computing, on if it's transferring)
* Bypass the "power hungry" built in stabilizer using the GPIO or USB method to power the Pi (Note: need to make sure the supply is stable enough)
* Software optimizations:

* Disable unnecessary processes that are running all the time, but aren't essential to run boinc (cron, ssh server, etc)
* Experiment with Linux kernel configurations and builds to find the one that best fits boinc with this configuration

Photon939:
The Raspi with full cpu load will use a fair bit of power, I am highly doubtful the small solar panel from the lights can support running the Raspi real time.

This means that even with good sun and a good spot for the panel you would not get much runtime per day. Assuming the Raspi is chewing ~600mA at 5vdc you're burning through 72 watt hours per day. If your solar panel puts out say 100mA at the 8v open circuit you described it would generate 6.4 watt hours with 8 hours of direct sunlight. You will also lose some power in charging efficiency in the batteries and any boost circuits. Assuming no losses if your panel puts out 100mA you will get ~2.13 hours of runtime after a full day of sun.

I would trash the circuit board that came with the solar light - even if you could make it do what you want the transistors are not built to handle the large load of a Raspi.

You will need a lithium battery charge controller and a boost converter to provide a switchable 5v usb output. It may be possible to modify your power bank to provide one these functions separately if you can identify what signals it uses to switch from charging to output.

Then rig up something where it only starts the output for the Pi when the battery is fully charged to get maximum runtime.

nzc:

--- Quote from: Photon939 on May 04, 2016, 12:55:59 pm ---The Raspi with full cpu load will use a fair bit of power, I am highly doubtful the small solar panel from the lights can support running the Raspi real time.

This means that even with good sun and a good spot for the panel you would not get much runtime per day. Assuming the Raspi is chewing ~600mA at 5vdc you're burning through 72 watt hours per day. If your solar panel puts out say 100mA at the 8v open circuit you described it would generate 6.4 watt hours with 8 hours of direct sunlight. You will also lose some power in charging efficiency in the batteries and any boost circuits. Assuming no losses if your panel puts out 100mA you will get ~2.13 hours of runtime after a full day of sun.

--- End quote ---
I think you are right related to the runtime hours, bur if it can run 1-2 hours per day it's fine for me. Maybe I will not be able to use it for SETI@home but may come in handy for other stuff that doesn't require so much processing power and uptime.


--- Quote from: Photon939 on May 04, 2016, 12:55:59 pm ---I would trash the circuit board that came with the solar light - even if you could make it do what you want the transistors are not built to handle the large load of a Raspi.

--- End quote ---
Yeah, I just took a closer look at the control board and looks like the "logic" is only for the pushbutton controller. As I see the solar panel positive terminal is wired to the battery with diode in series all the time (the negative terminal is mounted right to the battery), so no battery and no solar panel management.
There is a voltage divider / sense line  (bottom left) that is wired to a transistor that in series with another transistor (coming from the pushbutton control) may toggle to output transistor.
I'm not afraid of that "power" transistor, no worries if the magic smoke escapes.


--- Quote from: Photon939 on May 04, 2016, 12:55:59 pm ---You will need a lithium battery charge controller and a boost converter to provide a switchable 5v usb output. It may be possible to modify your power bank to provide one these functions separately if you can identify what signals it uses to switch from charging to output.

--- End quote ---
I would not like to go so far with it. Maybe I can try to find a cheep MPPT charge controller @ Shenzhen market, but that may ruin anything, because the idea is to build it from what I have and if requires any additional investment, except my time (that doesn't matter because I'm having fun), then doesn't worth it.


--- Quote from: Photon939 on May 04, 2016, 12:55:59 pm ---Then rig up something where it only starts the output for the Pi when the battery is fully charged to get maximum runtime.

--- End quote ---
The Plan B is to keep the original behavior of the panel. The output is off until there is enough light to charge the batteries (keep the panel in charge mode) and fire up the Pi right after the batteries aren't charged anymore (this will not guarantee that they are fully charged, but will provide the maximum capacity they could absorb during the day).
To fire up the Pi only when the batteries are fully charged idea may sound logic at first, but it may require additional active parts that would drain current all the time so I'm not sure if it's better then using all that it could obtain in a single daytime.

Delta:
Ditch that WiFi dongle and go for a wired network connection.  Those WiFi sticks are quite power hungry!

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version