FireBeetle ESP32 with solar charged battery

I am trying to build a watering system using a FireBeetle ESP32. It has to work stand alone, so I intend to connect some 18650 batteries to GND and 3V3 pins. Connect a Monocrystalline Solar Panel (5V 1A) to the USB port.

1.) Will that setup work? Will it charge the battery when the sun is out and run of the battery at night? Why are people using a separate solar charging board like here: ESP32 Solar Weather Station - DFRobot?

2.) Does the charging circuit on the FireBeetle have a protection like TP4056, against over voltage or over charging the batteries (and blowing them up)?

3.) When putting the board into deep sleep, can the peripherals be powered down as well. Is there a pin for it? VCC? The relays suck the power pretty hard too.

4.) I can not find a decent datasheet for the FireBeetle ESP32. I can get the pin outs, but no explanation what they mean, such as AREF. Maybe I am blind …

I hope you don’t mind my questions. I did try and find the answers myself, but was unsuccessful. I have made a prototype with a esp32 devkit v1, but it’s power consumption killed the batteries pretty quickly.
Thanks to one and all who have advice for my project.

Hey James,
Welcome to the forums!

Solar projects can get a bit deep sometimes and are generally more complicated than they should be.

The solar panel you mentioned might be the best use case, though its a bit of a weird way of doing it. How is the battery charging going to be set up?

I am not sure as to protections on the Firebeetle and would have to have a more refined look into it. You wouldn’t want to overcharge the batteries and potentially fry the system.

Can you let us know what the SKU is for your model of Firebeetle and we can have a look into getting some documentation on it?

Cheers,
Blayden

Thanks for getting back to me Blayden.

I was going to get this one FireBeetle ESP32 IOT Microcontroller (Supports Wi-Fi & Bluetooth) | DFRobot DFR0478 | Core Electronics Australia SKU: DFR0478. I would appreciate any documentation.

Why do you think my solar panel is a “weird way of doing things”? The board claims “The main controller supports two power supply methods: USB and 3.7V external lithium battery. And both USB and external DC can charge the Lipo battery directly.” So I thought connecting a battery to the power pins and the solar panel to the USB port was the thing to do, but I welcome alternative suggestions.

Maybe if I has some documentation I could work out what the “built in battery charging” is all about.

Check the DFRobot Wiki web page.

Yes. From the schematic.

Stands for Analog Reference. Allows you to set the reference voltage for the Analog detection within the chip.

DO NOT DO THIS. Solar panels need a management system due to nature of how they work. The Fire beetle could be easily damaged. The 1A rating is under lab conditions, it will never generate this in practise. From my testing of various Monocrystalline Solar Panels the best output would be about half that.

The kind of solar panel you will need due to the current consumption of the relays and the Fire Beetle generates up to 18V, or thereabouts. You must use a solar panel management board (like this sunflower product). The solar weather station you listed is inadequate for what you want to do. The current output and voltage of the solar panel are not high enough and the panels are not designed for long term outdoor use.

DO NOT DO THIS. Any LiPo battery should only be connected to the Bat JST connector. There is a mosfet on the board that allows the Bat and USB connection at the same time.

image

Yes. Something like the Makerverse Nano Timer can drive a high power Mosfet to remove power for a while. A Fire Beetle GPIO pin would be used to trigger the Nano Timer.

Watering system valves generally operate from 24 VAC. If you are using this voltage, I suggest using a solid state relay, they consume less than a contact relay. But they can only switch AC voltage.

Best of luck with your project.
Regards
JIm

PS sorry for the caps and bold in a few replies, but it is not what you should do and would cause more problems eventually.

2 Likes

Thanks for the reply Jim your advice is invaluable.
I also found this thread Firebeetle with solar panel, which I wish I found sooner as it has a schematic that explains the TP4056 and yes I will connect the batteries to the BAT connector.
The only thing you are still scaring me with is

“Solar panels need a management system”

The solar panel I am getting: Monocrystalline Solar Panel (5V 1A) | DFRobot FIT0601 | Core Electronics Australia has a voltage regulator, so I was hoping that would make it ok to connect directly to the usb port, as is being suggested in the other thread. You are telling me in no uncertain terms not to do this. Please help me understand why. If the voltage is regulated, how could it damage the Fire Beetle? I think you are saying it might not generate enough power, but worst case it just does nothing. The TP4056 says it wants 4.5 to 5.5V input and promises to protect the Li-ion batteries. Sorry, but I’m not clear why connecting solar panel directly is bad.
PS thanks for the caps and bold, I like direct people. It’s good to be clear

@James105272

Yep. I have that one, it puts out 5V due to the regulator. My comment was related to other Monocrystalline Solar Panels that are only the panel. When I tested that panel the best I could get out of it was about 700 or 800ma in full sun angled towards the sun. It never got to 1A.

The electronics in this panel would be just a regulator circuit with no MPPT.
It should be ok connecting it to the USB Port on the Firebettle noting the following.
When the voltage out of the panel falls below that needed for the charge chip, it would simply stop charging.

But the switch over between the USB and Battery voltages may not work correctly.
image
Even a very small voltage on the USBVCC would keep Q3 off stopping switch over. Essentially the circuit would be in a brownout state. Not good !! USBVCC is across a 10K to GND at the connector.
image
Only when the voltage fell low enough for it to look like ground would Q3 turn on connecting the battery. This would be when the voltage regulator in the panel shuts down.
If the panel is plugged in when there is enough sun and removed when insufficient sun it would work correctly.
For a stand alone system I would use a solar charge manager, they are designed to avoid this low voltage situation. Link in previous post.
Hope this makes sense.

Regards
Jim

EDIT: Just read parts of the other post about the Firebeetle and a solar panel. When Q3 is off, USBVCC is connected, that is the voltage powering the Firebeetle through a couple of voltage regulators. The Firebeetle is not designed to be operated with a solar panel. The final post by Robert93820 says it all, get the power correct first and stable before looking elsewhere. Solar panels do not output stable volts, it all depends on the sunlight. Voltage regulator produce stable volts and have protection against overload.

1 Like

Thanks for the clarification. It all makes sense now. I had read in other channels that people complaint that when the sun went down it all stopped working. No battery takeover. From what you said I can understand why now. It also explains why everybody is using a solar charge manager.
I shall heed your advice and build a separate solar and battery circuit with solar charge manager.
Sweet, lets get some more bits. This little project just keeps growing. I’ll post the results when it’s all done and working … Cheers

The disappointing part about using a solar management board is, the charger built into to the Firebeetle will not be used. This may be what you want to look at for a solar panel.

It can only handle up to 6V so ideal for Monocrystalline panels.
The panel you are getting would connected to the USB-IN. It would work the same as a solar panel directly connected. M1 is off when USB-IN is used but the circuit still works the same.

The 18650 battery would connect to the LiPo battery connector on the Sunflower.
The USB-OUT to the Firebeetle.

The next part to determine is the power usage. There needs to be enough current from the solar panel for the battery to charge and to power the Firebeetle (if it is being used). The charge time needs to be long enough so the battery will be back up to capacity to handle the time there is no sun. With a watering system it would be best to have it off when the battery is charging.

You could also have another battery connected to the Firebeetle to cover a situation where the is no sun and the battery on the Sunflower is depleted. The Firebeetle can turn off the Sunflower USB-OUT if needed. Take EN_VOUT low via a GPIO pin on the Firebeetle.

The DFRobot wiki page has an example showing an analog pin measures the battery voltage of the Sunflower and can then turn it off if the battery voltage falls too low.

image

Regards
Jim

1 Like

@James105272 Did a quick test with the Solar Panel and Sunflower 5V.

Discharged 1100mAH LiPo, full sun no clouds.
9:30am Charge current 140mA. Volts 4.4V.
10:30am Charge current 180mA.

Resistive load on solar panel, 6.8ohms, 435mA 3.2V.
Increased load to120ohms, output at 5V.

The benefit of a Solar Power Management system can be seen here.
It reduces the current drain on the solar panel to the 4.4V minimum needed for the battery to charge.

The increasing current is due to the sun being higher in the sky and less atmosphere to penetrate.
I will keep testing and add results here. Today is nice and sunny.

Cheers
Jim

EDIT: Best I got out of the solar panel today was 200mA. Clouds came over and messed with the results. Probably my first comment of 700 or 800mA is wrong. Cannot find the original test results. I really wish manufactures would include some real world results rather than lab perfect conditions. Anyway, in my opinion 5V at 1A from the size of the panel is asking too much. The solar manager kept the volts at 4.4V over varying sunlight conditions.

1 Like

Hey Jim,

The power of a specific solar power manager! Solar projects are a nightmare sometimes and these managers make it so much easier to incorporate into projects.

Love the testing!
Cheers,
Blayden

@James46717 thanks again. Yes, it is a shame I will not get to use the onboard TP4056. Maybe I need to design my own board with a solar power manager?
I just got my goodies from core and now I have to order the Sunflower Solar Power Manager.
I don’t have any big expectations how much it will really charge the batteries. The sun is unreliable.
The real issue is the power consumption and how to control it. I used a DOIT ESP32 DEVKIT which promotes itself as a “low power” device. I guess it depends on your idea of “low” power. It lasted for only 24 hours on 4 AA batteries. I expected “months”. Is sucked 50mA and with peripherals 80mA. Not really “low” power in my book. So the problems became clear
1.) Needs a board that is less thirsty, especially when asleep => FireBeetle
2.) needs rechargeable batteries and some re-charging
3.) As most post will tell you: it has to be in deep sleep most of the time
4.) When in deep sleep the peripherals also need to be powered down.
So my watering system will only wake up once an hour. Take a measurement and if it is 10% different from the last measurement it will turn on wifi and will send all readings to the server. It will then wait a few seconds for instructions, before going into deep sleep again.
So the key is not to use power and just hope the sun can keep up.
It is a bit disappointing that these low power devices need so much juice. It is hard to see how IoT will get far with it, as stand alone power is everything. The slogan for our times. I am learning the hard way. As a friend pointed out, a lot of devices run a long time on a button battery. I have no idea how. I am a long way away from that. I hope that anybody trying to do IoT for real will find hope and help in these posts. Jim’s IoTing, hmm could that be thing?

2 Likes

Agree, many of the microcontrollers and devices available consume too much power for battery operation.

The lowest power long term device I have built is a simple temperature logger, RTC wakes ATMega328P every 30 seconds, reads temperature and stores in SD card, then goes back to sleep. A 1100mAH LiPo lasts about 6 months. The lowest power I can get the ATMega328P to is 7uA in sleep mode. No other micro comes close to this. Although the temperature logger runs about 27uA.

Alternative: Use a Makerverse Nano Timer to turn power off to everything. It consumes only 45nA when timing. I have used a number of these in various projects. It cannot switch amps but adding a mosfet to the output I was able to power up and down a robot cart. Currently I am running a test on a project using a 400mAH battery, I expect it to last about 45 days.
In my opinion this board is one of the best products Makerverse have some up with.

I think this product with a high current mosfet to power everything on / off would be worth investigating.

Regards
Jim

2 Likes

I bought a Nano Timer and wired it up to the power pins of the moisture meter Capacitive Soil Moisture Sensor (v2.0) | Core Electronics Australia. As soon as I do that, the LED on the timer goes dimmer and starts flashing rapidly. Any idea what is happening here. Wiring up the relay, or anything else, does not have that effect.

The Makerverse Nano Timer has some interesting quirks.

The timing runs all the time and drops VDDOUT for 100ms at the end of each cycle. This was enough to trigger a reset of the microcontroller on one of my projects, found a way around it using TWO external mosfets.

When DONE is taken high it drop VDDOUT and restarts the timing cycle. Raising VDDOUT at the end of the cycle. Then the timing continues as above until DONE is set high again.

The dip switches are read when the TPL5110 powers up. It is necessary to remove power for a new timing setting to become active.

The Si2301 mosfet has a max rating of 2.8A; but I found limiting current drain to 200mA or less was best.

I haven’t tried it at very low currents like the Moisture sensor.
It works good with the 20mA a Pico uses.
Don’t know what relay you are using but it is likely to draw 50 to 100mA.

Tomorrow I’ll do a low current bench test and try to simulate what you are experiencing.
Regards
Jim

2 Likes

Well I did low a current level test sooner than I expected, with a LED and resistor, about 200uA, no problem. Suggest you check the wiring to the moisture sensor.

But …
I assume you connected just the black and red wires of the moisture sensor to OUT + and -
Then it should not be doing what it is. It sounds like to timing chip is being loaded down and its timing cycle affected.
If you can send a pic or 2 it might help.

Best of luck
Jim

2 Likes

Hi @James46717 I tried to put a short video in the chat, but it is forbidden.
Yes, I just connected red and black to OUT +,-. I tried different types of moisture meters. They all show the same behaviour. I measure 5mA and the voltage was stable to the moisture probe. I spent many frustrating hours on this. It would be hard to get the wiring wrong with two wires, but will make a few photos.
I shorted the output to see what happens and the Timer just turns off and the LED goes out, so it is not a short. I have a strange theory. Because the moisture meters are capacitive and we all know how timers are very reliant on capacitors, could the extra capacitor on the output freak out the timer?

The timing runs all the time and drops VDDOUT for 100ms at the end of each cycle.

I found that out the hard way too.

I have decided to run the Firebeetle in deep sleep and on waking turn on the peripherals. I was only going to use DLY and DONE to turn the power on and off. So I don’t really need the timer, only the mosfet. Considering your boundless knowledge of available boards, could you recommend an alternative to using the timer? Power on/off switch controlled via 3.2V signal.
…
I was about to send this message when in a flash of blinding brilliance I decided to first read more about the https://wiki.dfrobot.com/Solar_Power_Manager_5V_SKU__DFR0559 and sure enough you can turn the power on/off here and I quote:

Except from USB OUT, the header 5V output can be turned ON/OFF by all 3.3V and 5V controllers

and if they read my mind:

This function is extremely useful in low power application. For example, connect all VCC and GND pins of the peripherals (sensors or other modules) to the 5V and GND pins.

Now I have a cunning plan that can not fail (surely this time!) …

1 Like

Lots of mosfet power switches. Most of them are Low side meaning they switch the ground line.
The thing to check is the datasheet to see how they switch on low voltages.
The gravity controller I have used and they show it using 3V3, the others I don’t know how well they work.

And if you want to build your own board, these have proved effective. I have used ok with 3.3V and 5V but they are really designed to be used in automobiles where 12V would switch it on hard.

Regards
Jim

PS the problem with the moisture sensor is a very weird one. Makes me want to get one and try it out.

EDIT: The power from the solar charger to the peripherals may be the best solution. As long as the Firebeetle has power and does not consume much in deep sleep.

2 Likes