Recently I have started seeing brownouts on my Notecard/Notecarrier-F (V1.0) setup using an Adafruit ESP32 Feather Huzzah as MCU. Complete configuration includes ESP32 + feather OLED display, plus 2 small I2C - connected sensors. All works great when running ESP32 standalone, but when mounted on Notecarrier-F and powered by 4800 mAh LiPO via the JST I have started seeing brownouts, restarts and I2C errors (yes, all I2C devices have proper pull ups.) When I unplug the I2C all runs normally. Question: is my power supplied through the JST sufficient (large 4800 mAh LiPO) or is there additional power I need to consider? Note that is does seem to behave better when I add in power via the micro USB on the ESP32, but I won’t have this when I am deploying in the field. Thoughts?
Are you plugging in the LiPo to the LiPo JST connector on the Notecarrier or to the connector on your host? You should always use the Notecarrier connector (think of the Notecarrier as your development board, everything gets powered from it).
Hi Rob, LiPO is plugged into the JST on the Notecarrier. Works fine until I add in the I2C-powered sensors, which I plug into the Stemma/QWIIC connector on the Notecarrier as well.
Interesting! Can you please post a photo of your project and list out the components you are using? I’d like to take a closer look and see if there is something we are missing.
Hi Rob, wow I am not sure what’s happening, but as I assembled the project to take the photo and plugged in the battery, it seems to be working! Prior to that, I got brownout after brownout! Really confused now, but here is the layout:
Adafruit 4400 mAh LiPO powering the Notecarrier via middle JST. 5V USB power coming from laptop to the ESP32. Notecard running 5.3.1. And two I2C sensors connected to respective QWIIC connectors at left. As you can see from the photo, the OLED atop the ESP32 has data and all seems well, even with the USB power removed. 15 minutes after I took the photo it’s still running with data being correctly routed to Thingspeak.
I am not yet convinced that there still isn’t something going wrong here. There are too many times I saw failures using this exact same setup. Is there a diagnostic or symptom I can look for to tell me that I am drawing too much through the I2C bus, or somewhere else in the circuit? BTW the Notecarrier is V1.0, almost 2 years old. Thanks!
I’m a bit at a loss here. I would certainly monitor for the “brown out” message that appears in Notehub - and check the LiPo voltage when you see it, just in case that’s dipping down too low. Very curious to see if you encounter new issues going forward.
OK, another clue: when I start the NoteCarrier/Notecard with a fully-charged 3.7V 4400mAh LiPO into the JST, and have 5V going to the USB on the ESP32 (as pictured above), everything runs as expected. When I then remove the 5V USB, it keeps running! So, it seems the “extra” 5V is needed at startup for some reason, but not to keep things running. A mystery indeed! Ideas?
This is difficult to debug remotely, but something is clearly up with the power draw. Do you happen to have a Joulescope or a Current Ranger? Either of those can help measure the power curve of the entire system and even isolate I2C to see if there is some odd spike from one of the sensors.
I guess an easy test would be to remove the sensors from the equation entirely and see if the system works as expected (no brown outs). That would at least help to isolate the source of the problem.
Thanks for the tip and I’ll give the Current Ranger a try. Initially, I did try removing the I2C and it immediately eliminated the brownouts, so I pretty much know it has something to do with the I2C load. In fact, when I disconnect the PM sensor (100 mA), seems to work OK. This is not something I plan to do when deployed, though, as I need to collect data every second so I can’t periodically “wake it up” or I’ll miss some events. It’s why I have the big battery
I did measure current draw from the three I2C sensors, and it is on the order of about 140mA. Add in the typical 130 mA for the ESP32 and we get about 270 mA. According to the docs, I should allocate 150 - 500 mA for the Notecard modem, and provide for 2A spikes when communicating with the cell tower. So that’s about 420 - 770 mA nominal draw when everything is powered on. Wondering about all of those pull-ups…sensors have them onboard, does NoteCarrier also put them on the SDA/SCL pins? Could I have a problem with paralleled resistance resulting in too much current being sinked? Max allowed on I2C bus is 3 mA…
I’ll see if I can find a way to look at that startup load to see how much is actually being required. Thanks!
It’s really hard to guess at what your problem may be using observations with little hard data, but I’ll try anyway .
You may be able to put a capacitor inline with the individual power supplies of each component to help absorb any start-up power spikes. You can go through each of the power supplies of the components you think may be drawing a log of power (like the PM sensor).
Once you have the CurrentRanger, you will be able to identify the offending component for certain. It will allow you to measure each sensor’s power draw and you will see if it has a big start-up spike or if that was just a red herring and your problem lies elsewhere.