Solar charge controller for the WisBlock Unify Outdoor Enclosure

Here is a newly-released Wisblock enclosure that can be used to create a solar-powered, autonomous Meshtastic node:

I recommend that you order it from AliExpress instead. Shipping from the RAK wireless store is slow, unreliable, and expensive.

One possible solar charge controller to use with the solar panel is:

However, there are better alternatives. That controller uses the TP4054 charge-controller chip, which has two major disadvantages:

First, it has an inadequate power rating. The chip package is rated only to 250 mW, but it might need to dissipate more than 700 mW in this application. The chip provides protective thermal limiting for itself, but that means that operating the part at high temperatures can reduce energy production, and it can also adversely affect long-term reliability. Indeed, the datasheet says that “devices beyond the maximum [power] range may be damaged”. The maximum current provided to the battery in this application is set by a resistor value on the PCB, which is set to a crazy high value of over 300 mA. To keep the power dissipation below 250mW, the charge current should have been set to about 125 mA, which would unfortunately greatly reduce the total energy production (and maximum charge rate) available for this application. There is a reference in the TP4054 datasheet to a “thermal considerations” section, but there is no such section. The PCB layout for the TP4054 on the RAK19007 is packed into a corner, limiting the ability of the PCB to act as a heat spreader.

Second, the chip is not designed for use in solar applications. It will properly charge a battery under some conditions (particularly in direct, strong sunlight), but it is not designed to provide MPPT (maximum power-point tracking), thus will not generate nearly the total energy potential of the PV panel (HX-140x90), particularly under low-irradiance conditions. I will provide more information about MPPT in a separate post.

Also note that the solar input on the RAK19007 is rated only to 5.5V, which is too low, even at 25°C. I will cover this issue (Voc) in a separate post.

Also, the RAK19007 does not include a protection device that is required for lithium cells. You need to ensure that there is a protection device between the RAK19007 battery connector and the battery. Some lithium cells have integral protection devices; you either need to use such a cell, or you need to add an external protection circuit. I will cover this issue further in a separate post.

Here is a more appropriate solar charge controller:

This board (DFRobot DFR0559) uses the CN3165 controller chip, which is designed for PV applications. Like the TP4054, the CN3165 is a linear LDO regulator, meaning that both chips will dissipate similar power (and operate with similar efficiency) at the same operating points. However, the CN3165 is deployed here with proper heat management to allow it to function typically without thermal limiting, meaning that the DR0559 likely can produce far more energy than the RAK19007 over time, and it will likely be more reliable. Note that the DFR0559 actually includes a heatsink that can be mounted on the backside of the PCB to help dissipate the heat.

With the proper heat management on the DFRobot charge controller, the heat rating is increased from 250 mW (with the TP4054) to greater than 1.4W at 25°C ambient. The max heat dissipation in this application should be only about 750 mW, so the extra headroom can be used to operate at higher ambient temperatures. But note that with the box being sealed, the heat trapped in the box (along with direct solar heating) will typically cause the inside air to get hotter than the outside ambient temperature. Also note that the CN3165 (like the TP4054) can automatically derate current/power (thermally regulate) if it gets too hot.

Another advantage to the CN3165 is that it provides quasi-MPPT power tracking. This will increase the total energy production over the approach used with the TP4054, particularly in low-irradiance conditions. However, the MPPT provided by the CN3165 is not true MPPT, since it only adapts to changes in solar irradiance, and not PV temperature or degradation. I will cover MPPT in more detail in a different post.

One serious design flaw with the CN3165 is that its input voltage from the PV panel is rated only to 6.5V max, and the PV panel output voltage is likely to exceed this voltage significantly. I will address this issue in a different post.

You will still need to use the Wisblock RAK19007 with the DFRobot DFR0559 and the RAK4631. (I ordered a RAK19007 and a RAK4631 off of Amazon, and I received them the same day, with free shipping.) You need to plug the battery into both the battery connector on the RAK19007, and into the battery connector on the DFR0559, in parallel. You also need to ensure that there is a lithium protection device between the battery and the RAK19007. Note that an advantage to this configuration is that you could leave the load unconnected if you want to use solar just to charge the battery. I soldered a pair of JST-PH 2.0 connectors to my 21700 lithium-battery holder to facilitate this connection. Leave the solar input on the RAK19007 unconnected. You can ignore the BOOT button on the DFR0559.

The DFR0559 includes a +5V boost regulator that you probably do not need–you won’t likely have any +5V loads. You will want to disable that regulator by setting the DFR0559 control jumper to OFF to reduce wasted power. The RAK19007 includes a buck voltage regulator (SGM6036) that you do need–it converts the battery voltage (or USB voltage) to 3.3V to provide power to the RAK4631 radio.

You can also provide power via the USB-C connector on the RAK19007 before a battery is present. (I recommend that you not rely on USB to charge the battery.) The RAK4631 came pre-loaded with Meshtastic firmware (2.2.24), which allowed me to upgrade to the latest firmware version via Bluetooth OTA. You should consider charging up your lithium battery before sealing the box.

Note that RISET resistor value on the DFR0559 is 2K ohms. According to the CN3165 datasheet, this corresponds to a battery current of about 600 mA in constant-current mode. However, as a practical matter, the solar battery charge current will never reach anywhere close to that value. The charge current will be limited to the current capability of a HX-140x90 PV panel, which is not likely to ever be significantly higher than 400 mA. The RISET resistance value is just set high enough not to be an impediment in this case. The RISET resistor value would have relevance if you were to charge the battery using the DFR0559 USB port, which you are unlikely to do.

Note also that the RAK19007 includes an ADC_VBAT output that can be used to monitor the battery voltage via AIN0 on the RAK4631. The Meshtastic app recognizes this input, and it provides an estimate of state-of-charge based on battery voltage. Over the course of one sunny, summer day, I saw the reported state-of-charge on my prototype rise from 50% to 100%.

Be mindful not to power up the RAK4631 initially without the antenna connected. Once it is powered up, you can disable the transmitter in the app settings, and then disconnect the antenna, if needed. Don’t re-enable the transmitter until you have the antenna finally connected.

Interesting and detailed info. Thanks. What is the thing in the image
Screenshot from 2024-07-31 10-05-22
I use the Waveshare D solar power manager

connected to the usb c of the wisblock. What do you thing of that, because you seem to say that you do not recommend using usb C to charge, it that right?
My setup:

from

The device in the image is a zener diode. Please see my recent posts for an explanation about its role.

I don’t recommend the Waveshare D. The Vmp is set too low (4.6V). This is important, since the IV curve for silicon solar cells is highly asymmetric, and the low side is very steep. You could do surgery on the PCB to raise the Vmp, but I opted to just go with the DFR0559 instead.

I recommend that you not try to charge the battery using USB on the RAK19007, since the power-dissipation specification for its charge-controller chip is too weak.

1 Like

Thanks for the info. I cannot say I understood it though… and you have many recent posts… can you link to it please?The Vmp is not described as such in their technical data, I think. https://files.waveshare.com/wiki/Solar-Power-Manager-(D)/SW6106_Datasheet_EN.pdf
I do not charge using usb power input using the Waveshare D. Does the DFR0559 recover on brownout ? The waveshare D allows for a larger range of solar panel voltages, and is that not a big advantage?

Vmp is shown on their schematic, in red, next to their charge-controller chip.

The DFR0559 battery charger does recover on brownout, but their +5V output does not. Since we don’t care about the +5V output, we should be OK.

I have not looked at this closely, but if they stick with 4.6V Vmp, that would be bad.

Is it bad for solar efficiency reasons? I have not understood. Sorry. What does the voltage do / determine?

Mismatched Vmp reduces the efficiency of the power transfer. Making Vmp too low is particularly bad, as it can dramatically reduce power. You need to select your solar panel to match the Vmp of the solar charge controller.

What is the Vmp and what does it determine? The waveshare D does allow you to set voltage of the MPPT for the panel 6 - 24 V. Would the problem of Vmp value you mention therefore apply?

What is the Vmp and what does it determine?

Vmp is the max-power operating voltage for a solar panel for a particular set of operating conditions.

The waveshare D does allow you to set voltage of the MPPT for the panel 6 - 24 V. Would the problem of Vmp value you mention therefore apply?

The Vmp of the solar panel that comes with the Unify enclosure is 5V at 25C & 1000 W/m^2. The Waveshare D is not an appropriate charge controller for the Unify enclosure, since its lowest Vmp setting is 6V.

1 Like

Thanks for that clarification. Very useful to know.