ESP32 LoPy4

board ID radio deployment
lopy4 LoRa BLE Wifi Strasbourg 30

Pycom is an a complete ecosystem for easy IoT development. The IoT-LAB testbed provides access to the Pycom development boards. These boards can be programmed with MicroPython and feature several wireless technologies: WiFi, BLE, SigFox, NB-IoT and LoRa.

Note: it’s not possible yet to use SigFox or NB-IoT because of missing infrastructure and integration within the IoT-LAB testbed.

Datasheet and documentation

You can find a lot of documentation on the Pycom website. IoT-LAB provides two types of boards under same lopy4 board id.

Each Pycom board on Strasbourg site is plugged on the Pycom Expansion Board.

Firmware compilation & flash

The device cannot yet be flashed directly when starting an experiment. You must first start the experiment, then flash the device afterward. The flashing process currently requires a single merged .bin firmware image flashed at address 0x0.

This means you need to merge the different ESP32 binaries into a single binary before using the IoT-LAB flashing command. esptool provides a merge_bin subcommand for this purpose. The easiest way to generate the correct command is: Flash a device once in verbose mode to see the esptool write_flash command used internally.

Adapt this command for merge_bin:

Replace write_flash with merge_bin Remove the options: --port, --baud, --before, --after, and -z Add: -o <output_merged.bin>

You can then use the generated merged binary with IoT-LAB flashing.

IoT-LAB special configuration

The serial connection baudrate should be configured at 115200 bauds in the firmware.

The UID of the node corresponds to the MAC Address of the Wi-Fi radio chip in station mode.

Troubleshooting

MicroPython based firwmare

Sometimes the REPL doesn’t respond after the experiment startup (e.g. no display of >>> prompt when sending Enter on the serial port). In this case, one way to recover the REPL is to perform a power cycle of the board:

$ iotlab-node --stop
$ iotlab-node --start