To support BLE on the ESP32 AirLift, you'll need NINA_W102-1.7.1.bin or later.

Uploading Serial Passthrough Code

First, back up any code and files you have on your CIRCUITPY drive. It will be overwritten by the code you're going to upload to your board. You should not end up losing any files on the QSPI flash, but it's a good idea to back them up anyways. 

Download the UF2 for your board to your Desktop.

Find the reset button on your board. It's a small, black button, and on most of the boards, it will be the only button available. 

Tap this button twice to enter the bootloader. If it doesn't work on the first try, don't be discouraged. The rhythm of the taps needs to be correct and sometimes it takes a few tries. 

Once successful, the RGB LED on the board will flash red and then stay green. A new drive will show up on your computer. The drive will be called boardnameBOOT where boardname is a reference to your specific board. For example, a Feather will have FEATHERBOOT and a Trinket will have TRINKETBOOT etc. Going forward we'll just call the boot drive BOOT

The board is now in bootloader mode. Now find the UF2 file you downloaded. Drag that file to the BOOT drive on your computer.

The lights should flash again, BOOT will disappear. It should re-enumerate USB and appear as a COM or Serial port on your computer. Make a note of the serial port by checking the Device Manager (windows) or typing ls /dev/cu* or /dev/tty* (Mac or Linux) in a terminal.

If you see your board listed in the terminal: Proceed to the Uploading nina-fw with esptool section of this page.

This guide assumes you have Python3 installed. If you have not installed it, navigate to the Python downloads page ( and install the latest release.


Esptool is an application which can communicate with the ROM bootloader in Espressif chips. 

To install esptool, run the following in your terminal:

pip3 install esptool

Uploading nina-fw with esptool

Click the link below to download the latest nina-fw .bin file. Unzip it and save the .bin file to your desktop.

If you're using macOS or Linux - run the following command, replacing /dev/ttyACM0 with the serial port of your board and NINA_W102-1.6.0 with the binary file you're flashing to the ESP32. --port /dev/ttyACM0 --before no_reset --baud 115200 write_flash 0 NINA_W102-1.6.0.bin

If you're using Windows - run the following command, replacing COM7 with the serial port of your board  and NINA_W102-1.6.0 with the binary file you're flashing to the ESP32 --port COM7 --before no_reset --baud 115200 write_flash 0 NINA_W102-1.6.0.bin

The command should detect the ESP32 and will take a minute or two to upload the firmware. The NeoPixel on your board will flicker and flash as the firmware uploads. 

If ESPTool doesn't detect the ESP32, make sure you've uploaded the correct .UF2 file to the bootloader.

Once the firmware is fully uploaded, the ESP32 will reset and the NeoPixel will glow blue. 

Verifying the Upgraded Firmware Version


To verify everything is working correctly, we'll load up either an Arduino sketch or CircuitPython code. 

If you were previously using your ESP32 with Arduino, you should load up an Arduino sketch to verify everything is working properly and the version of the nina-fw correlates with the version the sketch reads.

Open up File->Examples->WiFiNINA->ScanNetworks and upload the sketch. Then, open the Serial Monitor. You should see the firmware version printed out to the serial monitor.


If you were previously using your ESP32 with CircuitPython, you'll need to first reinstall CircuitPython firmware (UF2) for your board. The QSPI flash should have retained its contents. If you don't see anything on the CIRCUITPY volume, copy files from the backup you made earlier over to CIRCUITPY.

To verify the new ESP32 WiFi firmware version is correct, follow the Connect to WiFi step in this guide and come back here when you've successfully ran the code. The REPL output should display the firmware version you uploaded.

This guide was first published on Sep 30, 2019. It was last updated on 2021-03-26 13:24:47 -0400.

This page (Upgrade All-in-One ESP32 AirLift Firmware) was last updated on Jan 17, 2022.

Text editor powered by tinymce.