It's easy to use the Adafruit AirLift breakout with CircuitPython and the Adafruit CircuitPython ESP32SPI module. This module allows you to easily add WiFi to your project.
You need plenty of RAM for CircuitPython/requests/json, so the ItsyBitsy M0 will not work! Please use an Itsy with at least 100KB of RAM, like the ItsyBitsy M4!
CircuitPython Microcontroller Pinout
Since all CircuitPython-running ItsyBitsies follow the same pinout, you do not need to change any of the pins listed below.
To use the ESP32's pins, copy the following lines into your code:
esp32_cs = DigitalInOut(board.D13) esp32_reset = DigitalInOut(board.D12) esp32_ready = DigitalInOut(board.D11)
Then, include the following code to use the pin:
esp32_gpio0 = DigitalInOut(board.D10)
CircuitPython Installation of ESP32SPI Library
You'll need to install the Adafruit CircuitPython ESP32SPI library on your CircuitPython board.
First make sure you are running the latest version of Adafruit CircuitPython for your board.
Next you'll need to install the necessary libraries to use the hardware--carefully follow the steps to find and install these libraries from Adafruit's CircuitPython library bundle. Our CircuitPython starter guide has a great page on how to install the library bundle.
You can manually install the necessary libraries from the bundle:
- adafruit_esp32spi
- adafruit_bus_device
Before continuing make sure your board's lib folder or root filesystem has the adafruit_esp32spi and adafruit_bus_device folders copied over.
Next make sure you are set up to connect to the serial console
import board import busio from digitalio import DigitalInOut from adafruit_esp32spi import adafruit_esp32spi print("ESP32 SPI hardware test") esp32_cs = DigitalInOut(board.D13) esp32_reset = DigitalInOut(board.D12) esp32_ready = DigitalInOut(board.D11) spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) if esp.status == adafruit_esp32spi.WL_IDLE_STATUS: print("ESP32 found and in idle mode") print("Firmware vers.", esp.firmware_version) print("MAC addr:", [hex(i) for i in esp.MAC_address]) for ap in esp.scan_networks(): print("\t%s\t\tRSSI: %d" % (str(ap['ssid'], 'utf-8'), ap['rssi'])) print("Done!")
Connect to the serial console to see the output. It should look something like the following:
Make sure you see the same output! If you don't, check your wiring. Note that we've changed the pinout in the code example above to reflect the CircuitPython Microcontroller Pinout at the top of this page.
Once you've succeeded, continue onto the next page!
Page last edited April 09, 2024
Text editor powered by tinymce.