Thursday, March 29, 2018

Capacity Testing 18650 LiPo

I made a battery powered ESP8266 IoT device and wanted to check the real capacity of my 18650 battery. All 18650s are not created equal and may not be labeled correcdt either.

This is the setup:
Discharge through USB tester to load
First and last discharge the battery through a USB tester that counts milliamp hours.

Charging setup
Charge the battery with a USB LiPo charge module through the USB tester and note the mA hours.

Note the handy adapter board, electronic load and USB monitor are  from Aliexpress. But came as a bundle that I can't find today.The USB monitor is an ATorch brand.

Wednesday, March 7, 2018

Refrigerator Monitor

This is the first version of frig_mon as a Wemos D1 Mini, a waterproof DS18B20 and a real time clock module. I wanted the data time stamped but the ESP8266 does not keep good time during deepsleep. I powered it with a 18650 battery direct with no voltage regulator, wired to the 3.3v pins. It seemed to function OK.

The fully charged battery at 4.2v is a little over the ESP spec, but it seemed to boot and run OK. The battery soon drops to around 3.7v where is lasts quite a while.

Wemos D1 Mini, RTC and DS18B20
Then I tested the lowest voltage the ESP would function. 2.6v appeared to be OK however soon the ESP burned up. The guess at the problem is that when the battery gets too low the ESP can't finish boot, so it retries, continuously depleting the battery without getting to the code that would stop it "if the battery is too low". It generates a lot of heat during this and overheats.

Testing the low voltage for the ESP
I noticed the Wemos board uses a lot of current even in deepsleep mode. It seems the USB converter chip does not sleep. And the voltage regulator consumes power even though the battery was plugged in to the output side.

So I switched to an ESP8266-007 on a breakout board with no regulator installed. Much better battery life.

A ESP-007 on a breakout board w/o voltage regulator

Also added OTA update capability, but then the -007 didn't have enough memory. I switched it for a -012E on a breakout board. I get more than a month run-time with 15 minute mqtt updates, and a check for OTA update.

The current board

The code is on GitHub at