Solar Lipo Charger with XIAO ESP32S3

Hi,

I bought recently a XIAO ESP32S3 with a lipo charger.

I soldered the battery onto the XIAO, everything works fine

Yesterday I tried to add my solar charger ( Solar Lipo Charger (3.7V) | Buy in Australia | DFR0264 | DFRobot | Core Electronics ) by connecting it with JST PH, but nothing happened.

I checked cable, by connecting another card with JST it lights up properly, so it’s not a wiring or battery problem.

Can you confirm that the ‘OK’ LED should light up on the board when I connect it? I have the impression that it’s not working. Maybe I forgot something?

Thanks

Hey there, @johann318929, and welcome to the forum. Glad to have you here.

Would you be able to share some photos of your setup? I’m having a hard time fully visualising it from your description.

That being said, OK/green LED indicate charging status once 4.4–6 V is present at PWR IN not when a battery is connected. The charging LED should flash red when no battery is detected, red if charging, and stay green if its fully charged.

If you’re not getting any LED activity at all, I would presume that indicates that no power is going through the board.

Hi Johann and welcome.

I am not familiar with the Seeed boards, but have had some experience with other ESP32-S3 boards and charging from solar panel. It has been a frustrating trip, but more on that later.

Which of the XIAO boards did you get ? If Seeed Studio XIAO ESP32S3 (SKU: SS113991114) then I assume you soldered the battery onto the pads in the middle of the underside of the board. That is reasonable.

But then you mention connecting the Solar Charger with JST PH … did you connect the JST connector on the Solar Charger to the XIAO’s VUSB and GND pins ? Like Jane, I ask you to share a photo or diagram; this would help a lot to give the best advice.

Sorry it’s rather long, but this is my overview to provide context. What I have learnt is :

  1. Espressif promote their ESP32 as having very low power requirement.

  2. This is true of the ESP32 chips themselves - but early Development Boards were designed to be permanently connected to USB power, and so used cheaper components and designs with high quiescent current.
    Engineers designing products which require long battery life would custom design their own circuit boards using components and software techniques to achieve low quiescent current.

  3. Recently we are seeing more ESP Dev Boards which connect a LiPo battery direct to the Dev Board, and have a lower quiescent current. The XIAO is one of these, which I now refer to as being “portable” because manufacturers seem to assume that they will be recharged from USB.
    USB provides a nice steady 5V current.

  4. However a Solar panel does not provide a steady current. The two panels i have both regulate their output to 5V - but the current jumps up and down depending on clouds and shadows … and is not suitable for connecting to the ESP32’s 5V IN

  5. Your Solar Charger and other Solar Power Managers are designed for this (especially MPPT) … unfortunately all the Solar Power Managers and Chargers assume that their purpose is to supply steady power to the output pins, and use excess to charge the connected LiPo … and so they do not work properly without a LiPo battery to smooth out the fluctuations coming from the solar panel.

  6. So far I have found only 2 dev boards which are designed to charge from a solar panel - the DFRobot Firebeetle 2 ESP32-C6 and Firebeetle 2 ESP32-C5. They have MPTT built into the Firebeetle 2 dev board; and so I believe they are designed for “remote” operation where here is no handy USB charger. Unfortunately they don’t have the memory and processing power of an ESP32-S3, and because I have only just got a couple of these boards, I can’t comment from personal experience yet :frowning:

But back to a bit more detail about section 5, which is where I (and I think you) are.

It seems that the Solar Charger you have, and other Solar Power Managers I have tried all require a battery. Effectively we have 3 options:
(a) Connect LiPo to the ESP32 devBoard and charge from USB instead of from solar; OR
(b) Connect LiPo to a Solar Power Manager and ignore the XIAO’s LiPo connector and battery voltage measurement; OR
(c) add a second battery to the Solar Charger so that it can feed steady power to the ESP32 board, which charges the battery connected to the ESP32 dev board. This is like having a UPS backing up a UPS.

The “portable” microcontrollers are a step towards “remote” microcontroller systems because they are made with low-power components; but they don’t allow us to remove the external solar power manager and external voltage measurement. This discussion could provide some more background.

The problem with the DFRobot Solar Charger for us is that it does not boost its output to 5V like other Solar Power Managers. Instead it provides only the battery’s voltage … which will vary from 4.2V fully charged down to about 2.6V when fully discharged … not suitable for running the XIAO, and probably not even suitable for giving to the XIAO’s VUSB :frowning:

I should also point out that the DFRobot Solar Charger you have should be wired with the solar panel to its PWR IN screw connectors, the LiPo battery to its JST PH connector, and the VOUT screw connectors to the XIAO’s VBAT and GND.
If you connected the XIAO to the Solar Charger’s battery connector, that could be the reason you are not seeing the status LEDs.

A lot to dump on you, I know. Hopefully just showing the ‘big picture’, well as i see it. I hope i have not scared you off.

Good evening, thank you for your feedback.

Just to clarify, I’m French, so my terminology might not always be perfect. :slight_smile:

I’m sharing a photo. I tried again tonight, but absolutely nothing is happening with the solar charger. I checked at work, and I do have amperage on the JST connector. I’ve really looked everywhere; I can’t see what the problem is.

To reiterate, my XIAO works perfectly, via USB or via the lipo battery. It’s only when I connect this new card that nothing happens.

Regards

I’m clarifying because you can’t see my LiPo battery in the photo.

I soldered my LiPo battery to the XiAO, which I can also connect via USB and which recharges the battery.

I then cut the cables behind the battery to power:

  • the XiAO on one side
  • my new solar charger board (via JST) on the other

Finally, I understand that I shouldn’t connect the XIAO via USB if I have a solar panel in operation. But I haven’t reached that stage yet…

Hi Johann
Not getting involved as I know almost nothing about these particular components. Just butting in on a small point.

You could find that connecting USB as well as Solar panel should do no harm. BUT if you do so the USB will take priority and the Solar panel will be isolated and do nothing.

These particular devices may not do this but all the units I have looked at lately do and I suspect it is a pretty much universal practice these days.
Just thought I would point this out.
Cheers Bob

1 Like

Hello, I tested my card yesterday on another system, and it had exactly the same symptoms. I think it’s faulty.
How can I request a replacement? Thank you.

Hey there, @johann318929,

If you’re wanting to power the Xiao unit from the Solar LiPo charger, you should be powering it from the VOUT screw terminal not the Battery. From the pics you have shared, its hard to get a good idea of the connections especially if you have done as you have said below:

I then cut the cables behind the battery to power:

the XiAO on one side
my new solar charger board (via JST) on the other

Before proceeding to a warranty assessment, could you please show photos of this setup, specifically the connections between the cables, so we can get a better idea of the layout of your system?

@johann318929 your photo shows nothing connected to the Solar Charger’s PWR IN screw terminals. Your solar panel should be connected here.

If I plug a LiPo battery into the JST PH connector of my DFRobot Solar Charger (same model as you have) … neither LED lights up. The schematic shows both LEDs are powered from PWR IN … so you need to connect the solar panel to the PWR IN screw terminals, and to have sunshine on the solar panel for the Solar Charger to do anything.
At the other end, the VOUT is parallel with the BAT connector - so if you place a multimeter across the VOUT screw terminals you can measure the battery voltage even when there is no power coming from the solar panel.


It is a bit hard to tell from your photo, but I guess that you have your battery wired to both the BAT pads underneath the XIAO and to the Solar Charger’s BAT JST PH connector. Is this correct ?

If so, this matches with advice from a user on another forum, and which I have been using for a couple of weeks. Note that Jane and Robert have both expressed concerns, and I am not experienced with electronics, so please do not assume this is correct.


This diagram I made of my setup has an ESP32-S3 dev board instead of your XIAO ESP32-S3; and a DFRobot Solar Power Manager instead of the DFRobot Solar Charger. Your solar panel should be connected to the Solar Charger PWR IN screw terminals.


@Jane I looked at the schematic for the DFRobot Solar Charger and the VOUT and BAT are in parallel.
Furthermore another piece of the puzzle fell into place for me. This Solar Charger is the appropriate device to use with those dev boards with battery connectors because the VOUT is unregulated. LiPo plugs into the Solar Charger JST connector, and the charger’s VOUT is connected to the dev boards BAT JST connector. Voila, the dev board is able to read the battery voltage, and the Solar Charger is handling the solar panel. All the SPM’s charging options and the regulated 5V output are not actually required.
I doubt the dev board’s USB could be used to charge the LiPo - but the objective is to charge from solar panel remotely where there is no USB power … so not a problem.

Hey there, @Donald23173,

Yep, basically how I assume the customer’s setup is going, the battery, solar charger connecting in between the xiao and the battery.

But, if the Solar Charger is in between the LiPo and the Xiao, both it and the Xiao will be getting the same output voltage but very different current when powered from battery. However, the solar charger is not doing anything in that setup, it’s just drawing a small current that is not going anywhere. It won’t light up under those conditions.

The LEDs will only turn on when connected to 4.4–6 V at PWR IN. They measure charging the battery, not the battery outputting power.

As for your setup, @Donald23173, if the SPM’s outputs are both in parallel, then that would work well. It should be fine as long all components have some battery recognition components.

I can confirm that when solar panel is connected to the DFRobot Solar Charger PWR IN, and LiPo battery connected to BAT - even without any load connected to the VOUT:

  • Last night (no sunshine therefore no power from the solar panel) NO LED is on.
  • Daylight (even without direct sun) there is a voltage on the PWN IN and the CHarge LED is ON. The amount of charge depends on the amount of sunlight … but that is a different matter :wink:

Johann, when you tested with another board did you have the solar panel connected ?


Jane I am asking on Fritzing for a DFR0264 part because i think using a Solar Power Manager in a diagram is misleading as well as creating confusion from so many connectors.
It occurred to me (a bit slow on the uptake, I know) that both an ESP32 with LiPo charging capability and the Solar Charger (or SPM) include over-voltage detection, and are both designed to operate with a fully charged battery … so I think it should all be safe.

Sorry Jane, but why are they getting very different current ? Wouldn’t each have access to draw as much current as it needs, up to the max current provided by the battery ?

Hi Jane
I have mentioned this before but apparently no one has any use for the sunflower built in battery protection. Connected this way it is effectively bypassed.

I cannot try it but I believe connecting the Xiao or whatever negative wire to common ground instead of battery negative will restore the protection circuit.

With this set up it is the boost converter supplying 5V that is doing nothing. The charger should work as intended.
Cheers Bob

Hi,

Thanks a lot for your answers and help.

First a photo how asked, @Donald23173’s diagram is very similar to what I did

Yes, I can confirm that I connected the board without the solar panel. Could that be the problem? I’ll check the voltage on.the VOUT tomorrow. I can only confirm that there is voltage at the JST connector, so the board should normally be powered by the battery.

Yes, I believe that is the problem. You can easily confirm by connecting a solar panel during daylight hours.

On that solar charger board VOUT and the JST connector are wired together, so should be the same battery voltage on both.

You were assuming that the battery should be providing power to the solar charger board - in the way that other boards like your XIAO ESP32 are powered from the battery.
But (to over-simplify) the purpose of the solar charger is to put power into the battery - not to take it out. The Solar Charger is powered from the solar panel.

1 Like

I think I understand the principle of GND pins being joined together to create a “common ground” - but how does that apply in this case, if not the GND wire connecting the Solar Charger and XIAO (and also the battery) ? There are no other devices involved.

Robert what actual wiring change are you suggesting ? What to do with the battery -ve when it is removed ? Where in the diagram is “common ground” ? Should I connect a wire to earth instead of the battery -ve, or connect it to a different GND pin on the XIAO ?

Ah, you have been tricked by my not being able to find the correct fritzing part for the DFR0264 Solar Charger :frowning: . The DFR0264 is not a sunflower, and does not boost the VOUT - it is actually connected directly to the battery

Hi Donald

You will have to forgive my mistake then. That charging circuit does not have any battery protection that will isolate the battery in the event of a fault condition. The Sunflower does.

I would suggest that if you can’t depict the device actually in use because you don’t have a Fritzing part either learn how to draw the correct bit or give up Fritzing altogether. In other words if you can’t present the accurate representation don’t present anything at all.

You change your parts or add to your set up mid stream which does not help. More than one part sometimes.

I did produce the relevant part of the Sunflower schematic which clearly shows that the batt negative does not connect to common Ground but is switched to Ground via the protection IC.
Also it should be clear how connecting an external device to this battery could cause the negative to be grounded thus bypassing the protection.

In a nutshell I am suggesting that if you can’t be accurate and present diagrams etc that is a true representation then don’t present anything at all.
Cheers Bob

Your latest DFR0264 charger would appear not to have protection and does connect Batt Neg to ground directly. So connecting an external device to this battery should be OK as long as the external device will operate at 3.7V input.

Eureka! I measured the voltage at the VOUT output of the solar charger, and I’m getting 3.68V, so the board is receiving power. I don’t have any LEDs as indicated because I don’t have a solar panel connected to it, which I’ll do this weekend.

Thanks for your help, and sorry for the misunderstanding.

Robert, you are completely correct. So very unprofessional of me, and i do apologise for the increasingly snarky tone of my replies. We have both been getting increasingly frustrated.

I have certainly considered and tried several approaches to powering an ESP32 development board from a solar panel - which has involved changing the parts involved as I try to learn and understand. However, as a result, I believe I now understand the three categories which the ESP32 development boards fit into.

I know I’m not the best at communicating, so i do try to be clear and accurate in my explanations … but obviously they get too long and it is easy to miss points which I believe are significant.

Hi Donald

Apology accepted

For any sort of diagnostic attempt and solution to a problem this is essential. Even a hand drawn block diagram or schematic sketch is better than a non accurate Friting diagram which when inaccurate is worse than useless. When describing parts like your DFR0264 it would be a help to include the Core SKU number if there is one so it is easy to find. That way one can fairly easily find out exactly what that item is and what it is supposed to do. Saves going through the manufacturers (if that is known) site and do a search. Cores product description although a bit sketchy at times mostly has some useful links that take you to the required information.

While Solar powering is cheap and useful I don’t think this is the holy grail that some people think it is. To arrive at an estimated required capacity you firstly have to work out how much power is required for 24 hours. Then work out how much is required to replace this (re charging battery) in the useful Solar time which could be about 4 hours. Modified by any conversion factors.

Excuse me and I apologise for being a bit long winded but you may benefit from a practical example I was involved in about 1974.

Location: Mt Manki, above Bulolo about 2 1/2 hours drive from Lae, PNG.
Equipment: 2 VHF base stations, Police and Forestry Dept, with 500MHz links to respective offices for remote operation.
Power: 24VDC
Problem: Battery charging. Same as you on a larger scale, more volts, more Amps.
Scenarios:
Wind: Advice from Met people - Not enough wind to blow a candle out. Discarded that idea.
Solar: As site only a few degrees below the Equator the best orientation would be flat, looking straight up. This has its own problems like keeping it free of debris , leaves etc. The other is size. There is not enough space at the site to mount enough panels to be useful, remembering that this is 1974 and solar was pretty much in its infancy then. More efficient now of course.
Thermopile charging: This had its own set of problems.
Gas. Went to the company that supplied Government departments.
Want 2 off 45kg bottles of Butane with appropriate fittings.
Where is it going to be used ? Mt Manki, Bulolo, 8000 feet ASL
Butane won’t vaporise at that altitude, Need Propane.
OK will have that. Don’t sell that. So found someone that did.

Things were progressing but then came a final hurdle. In trial the Thermopile charger turned out to be useless. The culprit ? the 8000 ft altitude. It was then noted that the test report for this device actually specified the altitude ASL the tests were carried out. Research revealed that these devices decline in capacity rather rapidly as the altitude increases until at 8000ft it is almost useless.

Back to the drawing board.
Ultimate solution.
A very large 24V tractor lead acid battery swapped out for a freshly charged battery every Saturday morning. These batteries kept the VHF and 500MHz system running for the week.

Crude but effective and the only feasible way to do it. Feasible at that time that is.

Apologise once again for the Post length but I think examples tell their own story. Often situations can be “normalised” to compare a current problem.
Cheers Bob

I think there could be a solution here like having a 6V or 12V battery large enough to run everything you have got for a week or more. Have 2 batteries with a suitable charger and change it every Saturday morning. Throw everything else out and just have enough converters to suit your electrics.

A small note to add to the “work backwards” as outlined.
i.e. Make the project work, measure its draw over X time, use that to estimate power needed etc…

a) Keep in mind solar can have really good days and really bad days. e.g. for me, where I live, this winter has been very poor for my home solar.

If its critical, then I would aim for more then 24hrs of no charge time.

b) the more storage (as stated before) more/bigger bits you need to replace that used power; keeping in mind how fast you can re-charge. e.g. do you need a full charge every day, or is 50% ok and restoring to 100% over a few fair days.

But the other key thing is how much can you design out power needs.
e.g. An ESP32 S3 has 2 cores that can run @240 Mhz… but if you don’t need that power, maybe a single core esp32 would be better. Can you wind the clock back to use less power; e.g. 20 Mhz may be enough… or even better can you sleep; sleep can go into very low power draw, but to get the best from this, you also need to put other bits to sleep or cut the power to them when not needed. if your project, for example was only taking some sensor readings once per hour, you could get almost 0 power drain most of the time…

Just so things to keep in mind… I know when we start on a project we just want it to work, phase 2 should be improving the way it works for the best end user experience.

Good morning everyone,

I took some times this week end for trying my new solar charger and panel, and everything seems to work fine.

I have 3-4 hours with sun directly on my panel (seeing by a red light and a green blinking led), and my LIPO batterie charged during this time. After the rest of the day my ESP32 use the batterie for working.

The only (big) problem that is when my LIPO batterie is down (under 2.5 V) my solar panel cannot be stronger an dmy ESP32 reboots repeatedly.

Any ideas? I connected the USB from my XIAO to recharge the battery, and then it works by unplugging the USB and connecting the solar panel.

Regards