Wemos LOLIN32

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche

The Wemos LOLIN32 is a ESP-WROOM-32 based IoT development board. It is available in the [1].

As the original page has no documentation at all, here are some findings about the hardware.

Flash Micropython

The Version for ESP32 works: http://micropython.org/download#esp32 Currently (as of 08-08-2018) there is no RTC support in the ESP32 branch! That means, you are also not able to set the time correctly. My super nasty hack is, to use NTP every time you need the time...

Beware: use esptool >= 2.2! I tried with esptool 2.0 first and got an endless boot loop.

Flash the image like this:

wget http://micropython.org/resources/firmware/esp32-20180108-v1.9.3-238-g42c4dd09.bin  # Adjust downloadlink!
esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py --port /dev/ttyUSB0 write_flash -z 0x1000 esp32-20180108-v1.9.3-238-g42c4dd09.bin  # Adjust image Name

Upload Files

You can use ampy to upload files. WebREPL should also work, but it looks like this code is also missing in the current ESP32 branch of Micropython.

ampy is very straight forward.:

ampy --port /dev/ttyUSB0 put main.py


The board has dedicated I2C Pins, but it does not look like a hardware implementation?! In Micropython you need to define either a hardware address or the Pins. I could not find any information about the hardware address of the I2C chip. Therefore I initialized I2C like this:

import machine
i2c = machine.I2C(sda=machine.Pin(21), scl=machine.Pin(22), freq=400000)

# Now scan the bus:

Battery Monitoring

Unfortunately, no direct method of battery voltage measurement is built into the system. But it should be quite easy to implement such a thing: Use a voltage divider on the battery to get a 1.1V max. For a 4.2V cell, this can be achieved using a 27k and 100k resistor. Note, that the ADC of the ESP32 is set to 1.1V range by default! You can use the attenuation but this is not available on every platform.

 ^  V_bat
 R1 = 100k
 +----o ADC
 R2 = 27k

Now you can measure the voltage on the battery using the ADC. As the ADC is 12bit, you can get the actual voltage by multiplying the reading by ((27+100)/27) * 1.1 / 2**12, or in more general terms: ((R1 + R2) * V_ref) / (R2 * 2**Resolution).

Super nice would be charge monitoring. The TL4054 can do this, you need to hookup to the PRG pin. But this results in nasty bodges on the SOT23 chip...


The battery can be connected via a JST PH2 connector. They can be bought also from Conrad: ArtNr. 740547.

Example Projects

Further Readings