Start with a PyPortal in 2021

The Adafruit PyPortal is a great device, with a few bells an whistles already integrated in order to start small electronic projects (but expensive, ok ;-)). As usual, Adafruit wrote a nice introductory guide. But some parts are outdated. Therefore, here are a few steps to get you started with CircuitPython on a PyPortal in 2021 …

1. Update the UF2 bootloader

Head to CircuitPython boards and choose the PyPortal (direct link). At the bottom, you’ll see the “UF2 bootloader” section and download the updated UF2. Press twice the reset button on your PyPortal and then copy the .uf2 file that you downloaded (the PyPortal will reboot).

At the time of writing this post (April 4, 2021), the latest UF2 bootloader is v3.13.0.

2. Update CircuitPython

Stay on the previous page and go back up. There, you’ll see the “CircuitPython” section, download the UF2 file with the latest release. Press twice the reset button on your PyPortal and then copy this .uf2 file too (the PyPortal will reboot).

At the time of writing this post (April 4, 2021), the latest stable release is v6.1.0.

3. Update libraries

CircuitPython includes a lot of modules. But it also need some libraries to work completely. These libraries can be found here. Make sure you download a version with the same first number. For instance, here, I’ll download bundle v6.x.

On this page, you can also download the examples.

Unzip the Bundle in a directory and drag the following libraries to your PyPortal, in the “lib/” directory (“(D)” denotes a directory):

  • adafruit_bitmap_font (D)
  • adafruit_bus_device (D)
  • adafruit_display_text (D)
  • adafruit_esp32spi (D)
  • adafruit_io (D)
  • adafruit_portalbase (D)
  • adafruit_pyportal (D)
  • adafruit_fakerequests.mpy
  • adafruit_requests.mpy
  • adafruit_touchscreen.mpy
  • neopixel.mpy

Voilà! Now you can continue to follow the Adafruit introductory guide and play with your PyPortal! 🙂