PyPortal Titano

by Adafruit

Image of Board

The PyPortal Titano is the big sister to our popular PyPortal now with twice as many pixels! The PyPortal is our easy-to-use IoT device that allows you to create all the things for the “Internet of Things” in minutes. Make custom touch screen interface GUIs, all open-source, and Python-powered using tinyJSON / APIs to get news, stock, weather, cat photos, and more – all over Wi-Fi with the latest technologies. Create little pocket universes of joy that connect to something good. Rotate it 90 degrees, it’s a web-connected conference badge #badgelife.

The Titano uses an ATMEL (Microchip) ATSAMD51J20, and an Espressif ESP32 Wi-Fi coprocessor with TLS/SSL support built-in. PyPortal has a bigger 3.5″ diagonal 320 x 480 color TFT with resistive touch screen. Compare that to the original PyPortal’s 3.2” 240x320, we have twice as many pixels! Also, we’ve updated the connector to be a reverse-friendly USB C connector.

Compared to the original PyPortal, the Titano does not include a ADT7410 temperature sensor. It also has a higher-resolution screen with a different controller chip. The Processor, STEMMA conectors and WiFi have the exact same wiring as the original 3.2” PyPortal so if you are running Arduino/CircuitPython code, you’ll just have to adjust your graphics and fonts for the larger resolution screen!

The PyPortal Titano includes: speaker, light sensor, temperature sensor, NeoPixel, microSD card slot, 8MB flash, plug-in ports for I2C and 2 analog/digital pins. Open-source hardware, and Open-Source software, CircuitPython and Arduino. The device shows up as a USB drive and the code (Python) can be edited in any IDE, text editor, etc.

The M4 and ESP32 are a great couple - and each bring their own strengths to this board. The SAMD51 M4 has native USB so it can show up like a disk drive, act as a MIDI or HID keyboard/mouse, and of course bootload and debug over a serial port. It also has DACs, ADC, PWM, and tons of GPIO. Meanwhile, the ESP32 has secure WiFi capabilities, and plenty of Flash and RAM to buffer sockets. By letting the ESP32 focus on the complex TLS/SSL computation and socket buffering, it frees up the SAMD51 to act as the user interface. You get a great programming experience thanks to the native USB with files available for drag-n-drop, and you don’t have to spend a ton of processor time and memory to do SSL encryption/decryption and certificate management. It’s the best of both worlds!




Have some info to add for this board? Edit the source for this page here.

CircuitPython 6.2.0

This is the latest stable release of CircuitPython that will work with the PyPortal Titano.

Start here if you are new to CircuitPython.

Release Notes for 6.2.0

Built-in modules available: _bleio, _pixelbuf, analogio, audiobusio, audiocore, audioio, audiomixer, audiomp3, binascii, bitbangio, bitmaptools, board, busio, countio, digitalio, displayio, errno, framebufferio, frequencyio, gamepad, i2cperipheral, json, math, microcontroller, msgpack, neopixel_write, nvm, os, ps2io, pulseio, pwmio, random, re, rgbmatrix, rotaryio, rtc, samd, sdcardio, sharpdisplay, storage, struct, supervisor, terminalio, time, touchio, ulab, usb_hid, usb_midi, vectorio

Absolute Newest

Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Past Releases

All previous releases are listed on GitHub, with release notes, and are available for download from Amazon S3. They are handy for testing, but otherwise we recommend using the latest stable release. Some older GitHub release pages include the same binaries for downloading. But we have discontinued including binaries as assets on newer release pages because of the large number of files for each release.


UF2 Bootloader

Latest version: v3.13.0

The bootloader allows you to load CircuitPython, Makecode, and Arduino programs. The bootloader is not CircuitPython. You can check the current version of your bootloader by looking in the INFO_UF2.TXT file when the BOOT drive is visible (FEATHERBOOT, CPLAYBOOT, etc.).

To update, first save the contents of CIRCUITPY, just in case. Then double-click the reset button to show the BOOT drive. Drag the update-bootloader .uf2 file to the BOOT drive. Wait a few tens of seconds for the bootloader to update; the BOOT drive will reappear. Check INFO_UF2.TXT to verify that the bootloader version has been updated. Then you will need to reload CircuitPython.