Solar Panel to Charge Battery Not Working - BRN404X running 4.0.2

Hi All,

I am using a BRN404X with a 5V 5W solar panel and a 3.7V 2000mAh LiPo battery, and the charge light is blinking rapidly when the solar panel is plugged in. I have not tried connecting the panel directly to the VUSB pin and have only connected it through the microUSB connector. The device will only pull power from the battery and not pull from the solar panel. Most of the information I've found on the forum is from Borons running 1.5.0 or earlier, and I wasn't sure how much the OS had changed since then and if that information was relevant. Do I need a higher-powered solar panel? What should I do to fix this?

@newboronuser ,

I use this approach with all of my Borons. There are a few items to consider:

  1. Most panels come in 3V multiples. Does your panel have some sort of 5V regulator built in?

  2. I connect to the VUSB pin directly but the USB should work.

  3. There are some power configuration settings you may need to tweak. You will want to set a limit on the minimum voltage you will accept as well as limiting the current you will draw from the panel to prevent the panel voltage "crashing". My settings look like this:

bool initializePowerCfg() {"Initializing Power Config");
    const int maxCurrentFromPanel = 900;            // Not currently used (100,150,500,900,1200,2000 - will pick closest) (550mA for 3.5W Panel, 340 for 2W panel)
    SystemPowerConfiguration conf;
    System.setPowerConfiguration(SystemPowerConfiguration());  // To restore the default configuration

    conf.powerSourceMaxCurrent(maxCurrentFromPanel) // Set maximum current the power source can provide  3.5W Panel (applies only when powered through VIN)
        .powerSourceMinVoltage(5080) // Set minimum voltage the power source can provide (applies only when powered through VIN)
        .batteryChargeCurrent(maxCurrentFromPanel) // Set battery charge current
        .batteryChargeVoltage(4208) // Set battery termination voltage
        .feature(SystemPowerFeature::USE_VIN_SETTINGS_WITH_USB_HOST); // For the cases where the device is powered through VIN
                                                                     // but the USB cable is connected to a USB host, this feature flag
                                                                     // enforces the voltage/current limits specified in the configuration
                                                                     // (where by default the device would be thinking that it's powered by the USB Host)
    int res = System.setPowerConfiguration(conf); // returns SYSTEM_ERROR_NONE (0) in case of success
    return res;
  1. Rapid flashing may also mean that your battery is almost fully charged.

  2. It can help to put a large capacitor across your panel to "decouple" little variations in sunlight from changes that will caused the power management IC to stop charging.

Plenty on this topic on the community so spend a little time taking a look at other ideas.

Good luck with your project.



Hi Chip; John here; thank you for sharing your code snippet. This fixed a problem that I was observing in the last few hours (as I am changing over from USB to batteries on my prototype).
Power supply issues have now settled down with my design.
I'll review the power supply docs later tonight to hopefully gain a better understanding of how Power Configuration functions.
I greatly appreciate your timely assistance!


1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.