Adafruit has a long history of great products and support for makers of all skill sets, and with the release of their PyPortal, we see their range of devices increase with something a little different. From what is the Adafruit PyPortal and its specs to how to use the Adafruit PyPortal, here's a comprehensive PyPortal review!
What is the Adafruit PyPortal?
PyPortal is an Internet of Things (IoT) device that is designed to live on your desk and provide you with information via a small 3.2” LCD touchscreen.
The entire device measures only 88.3mm by 64.3mm by 11mm, and so the resistive touchscreen dominates the display.
On the back of PyPortal we have a small speaker, light sensor temperature sensor, a single Neopixel (WS2812) LED, microSD card slot, and connections for I2C and analog/digital pins. Powering PyPortal is an ATMEL (Microchip) ATSAMD51J20, a 120 MHz CPU with 256KB of SRAM and for wireless connectivity and TLS/SSL support we have an Espressif ESP32. This packs plenty of processing power into such a tiny package. The SAMD51 chip also offers another bonus in that it offers native USB support. So by default, it can act as a disk drive (USB flash drive), or we can programme the board to act as a USB HID device. So a touchscreen computer that can emulate a keyboard, this means we can create shortcut keys, or game controllers using PyPortal. All with minimal coding required.
PyPortal is rather fragile, and for continued use, a case or frame is needed and can be found on the Adafruit website as a free download. All you then need is a 3D printer or laser cutter and a little time to make a holder. Around PyPortal there are four screw holes which will take M3 screws and these are used to secure the device to a stand or frame.
To power PyPortal, we have a micro USB power, so it uses 5V and can be comfortably powered from the USB port of your computer. For battery power we can use a USB battery pack, we chose to use a credit card sized battery which provided a few hours of runtime.
Programming PyPortal is made possible thanks to CircuitPython, which is a version of MicroPython (Python 3 for microcontrollers) developed by Adafruit for their boards. PyPortal comes with CircuitPython pre-installed, but it is worth downloading the latest release and flashing it on to the board, which is a simple process of pressing reset twice and dragging the downloaded image to the PyPortal. Using CircuitPython with PyPortal is a breeze, requiring nothing more than a computer running an IDE. For beginners, we recommend using Mu which has an Adafruit mode ready to get your projects moving. For the more advanced users, Microsoft’s Visual Studio Code is a free and lightweight IDE that offers a few power features not found in Mu. For the Arduino makers among us we can also programme PyPortal using the Arduino IDE thanks to Adafruit’s excellent guide.
The primary focus of PyPortal is CircuitPython and this is where we see the most benefits from the board. Adafruit has packaged libraries to handle the various features of the board and to simplify our workflow. For example, there is a special file called secrets.py which is used to contain sensitive information, such as API keys and WiFi credentials. This means that we can easily build IoT projects from tutorials and templates without including these details in the main code.
To fully review this board, we spent a day building a conference badge which provided us with a digital business card via a QR code. So walking around a conference we show off our logo, but with a press of the screen, a QR code pops up ready to be scanned. Now, this may seem complex, but on the contrary, we used the Adafruit slideshow, button and PyPortal libraries to quickly prototype a slideshow that advanced automatically. Then we created two large hidden buttons on the touchscreen where we could press and control the slides to advertise ourselves at a conference. Alternatively, you can use the Adafruit PyPortal to display "Avengers: Endgame" posters.
Let's be clear; this is not a cheap board. $55 gets us a lot of functionality though. PyPortal will appeal to those that want to get data from the web and display it in a low power device. So news headlines, weather, Bitcoin data, etc. It also offers us a unique touchscreen keyboard interface that can be used for home automation projects.
As PyPortal can be programmed in CircuitPython (a version of Python 3), it means that anyone who can code in Python can already code this board. Sure it has a few libraries made for this board, but the basics are the same. This is a great board and it is worth every penny.
- ESP32 WiFi connectivity is easy to use
- Touchscreen is clear and bright
- Very easy to code with CircuitPython
- Needs a case for continued use