D1 mini, TP4056 and solar panel

Can anyone offer any insight into why my project to solar power a Wemos D1 mini might not be working? I am trying to build a wireless soil moisture sensor which runs fine when powered. I came across this project:

which does exactly what I was busy doing, only has a different type of sensor. I had previously tried running this with a solar panel directly, but that failed, so I opted for the battery too and pretty much using the same network diagram (diagram credit to above link):

My solar panel is 5.5v 0.6W, same diode and charging module. I have a 10,000 mAh 18650 battery rather than a 14500.

If I charge the battery via a USB charger, it works well for a couple of days. However once the battery is low, it can not power up the D1 mini. The code itself takes a moisture reading, logs the data by hitting a single URL then deep sleeps for 10 minutes.

Using my multi-meter, when in full sun the panel is producing close to the 5.5v expected. Across the battery terminals this is usually always 2.8v and then only 1.6-2v is output to the board. I was getting a little loss across the diode but dropping this out did not make a difference. I also tried removing the load from the TP4056 for a day to leave the battery charging in the sun. Again it has failed to power the D1.

The setup I have used seems fairly typical of other solar projects, any idea what could be going wrong?

What are my other options? I also have a 12v panel I could use, but the TP4056 has a max input of 8v (some sources say 6v). The other thing I have considered is putting another battery in parallel to give a max of 7.5v when charged. I have a spare L7805CV voltage regulator I could put on the output but fear that would produce a constant battery drain.

What have you set the charge current for the battery to ?

I have a 10,000 mAh 18650 battery

It might be labelled as 10,000 mAh very unlikley to be that high though.

srnet:
What have you set the charge current for the battery to ?

Interesting question! I just plugged the board in and hoped it would work. Going back to the eBay description says pre-configured for 1A.

DaveHKent:
Going back to the eBay description says pre-configured for 1A.

That not going to be possible is it ?

Do you have any time to explain why not?

Is it that the solar panel will never deliver 1A so the battery will never charge? 0.6W / 5.5v is about 100 mA. I believe that you can change the board by changing the resistor on it, do you think this is what I need to do?

The charger is trying to charge the battery at 1A, it clearly cannot as your panel can only produce 120mA.

Set the charger to 100mA and see what happens, your panel ought to ber able to supply that in full sun.

srnet:
It might be labelled as 10,000 mAh very unlikley to be that high though.

srnet is being diplomatic. You have been swindled. TrustFire by any chance? I learned the hard way too. When I bought an "intelligent" battery charger that could measure the actual capacity of a battery, the TrustFire came in at less than 10% of the claimed capacity. Now I will not buy Li-ion batteries that don't have well known names like LG, Panasonic etc. My charger confirmed that the LG 2,600mAh batteries I purchased had virtually the exact claimed capacity.

srnet:
The charger is trying to charge the battery at 1A, it clearly cannot as your panel can only produce 120mA.

Set the charger to 100mA and see what happens, your panel ought to ber able to supply that in full sun.

Thanks. This is a tiny surface mount resistor and a few things suggest that a 10k will do what I want. Providing I can stop the legs from touching there should not be an issue of using a ‘standard’ resistor as a proof of concept should there?

PaulRB:
srnet is being diplomatic. You have been swindled. TrustFire by any chance? I learned the hard way too. When I bought an “intelligent” battery charger that could measure the actual capacity of a battery, the TrustFire came in at less than 10% of the claimed capacity. Now I will not buy Li-ion batteries that don’t have well known names like LG, Panasonic etc. My charger confirmed that the LG 2,600mAh batteries I purchased had virtually the exact claimed capacity.

I made a mistake (I was posting from work and had not double checked). These are 4,000mAh, not the 10,000mAh I thought I had got. At least they say 4000 on the side! The brand is UltraFire - in hind sight I’m not sure I should have bought a battery with such a name! It does not give me much confidence.

DaveHKent:
Providing I can stop the legs from touching there should not be an issue of using a 'standard' resistor as a proof of concept should there?

There is a good chance a full size wired resistor will rip the pads off the circuit board.

Cheers, Ill see about getting a surface mount ine and challenge my soldering skills.

It is odd that the project I linked used an unmodded TP4056 and even give a description of why it was a good choice.

There seem to be unlimited amounts of bad advice on the web.

The Adafruit solar charger module works very well for LiPo cells, but with that panel I would suggest using 3 x AA NiMh cells. No module needed, just a blocking diode.

DaveHKent:
It is odd that the project I linked used an unmodded TP4056 and even give a description of why it was a good choice.

Your confused.

The TP4056 is a specific component, a Lithium charger IC in this case, that is used in some very cheap modules that you can buy on eBay. The charge current is set by a resistor, there is no standard value for the charge current with a TP4056.

Its entirely possible that the person writing the de-strucatable was using a module based on the TP4056 that had the charge current set to say 100mA.

jremington:
There seem to be unlimited amounts of bad advice on the web.

The Adafruit solar charger module works very well for LiPo cells, but with that panel I would suggest using 3 x AA NiMh cells. No module needed, just a blocking diode.

Thanks for the suggestion. I decided to give this a try as I had the parts sitting handy, and it still has not worked.

I think my idea might be fundamentally flawed. The D1 will try to power up as soon as the power source can provide enough power. However as soon as it powers up, it drains the battery back under the threshold and powers down again. It does not keep going long enough to do one sensing cycle and a deep sleep. 2 days in sunny conditions did not return any sensor readings.

I tried connecting the batteries to the solar cell and left the D1 disconnected. It charged the cells to 4v, which was enough to just about power the D1. As some visual feedback, I set it up to flash the onboard LED 5 times to show it was working. It flashed about 30 times, suggesting it was constantly in a startup state, before powering off completely.

I will try fully charging the batteries and see if the solar panel can keep them topped up enough to power the board and sensors. If that does not work, I will go back to the TP4056 module board, reconfigure it, fully charge the 18650 and see what that does.

If nobody has any other suggestions, the other thing I have found is the Adafruit TPL5110 power break out board. That might be what I need to stop the board powering until the battery has charged a bit more.

The problem in this design as the author identified is that the solar panel is too small. Nothing else is a problem here.

There’s no problem with the resistor that’s discussed here. It’s strictly there to limit the maximum current applied to the battery. If your battery can accept 1amp without damage then the resistor is fine as it is. If your battery has a smaller charge capacity then the maximum current has to be less and then you swap the resistor out.

The package that Auth is using is fine for this application. The problem is that the board is going to cycle on as soon as the voltage gets high enough to power the board up the draw from the board is going to deplete it.

To get this to work the solar cell has to produce enough power in a daylight cycle to recover all the power used by the board in 24 hours. If that doesn’t happen the Arduino is going to deplete the battery.

If your measuring soil moisture your probably good measuring four or five times a day. A timing circuit that shut down the board for 3 hours and then booted it to take the measurement would probably do the job. Then the time the board was de-energized would allow a smaller solar cell to charge the battery.

1 Like