The latest Adafruit Metro is the M7 with AirLift. The idea behind this board is to take a very powerful Arm Cortex-M7 microcontroller, put it in the Arduino Uno’s form factor, and then squeeze in a Wi-Fi subsystem along the edge. Adafruit then adds all the extras found on their recent boards. It’s a very busy board, but nothing feels out of place or unnecessary. 

The board is built around the NXP i.MX RT1011, which is an Arm Cortex-M7 processor running at 500 MHz. NXP calls this a “crossover” microcontroller because it aims to have all the power of an A-class application processor and the real-time control capabilities of an M-class microcontroller in a single core. The chip has 128k of RAM, a floating point unit, and digital signal processing built in. It uses external flash over a QSPI bus for program storage, with Adafruit providing 4MB on the board.

The Adafruit Metro M7 is named for the large microcontroller at the center of the board.

The chip has a lot of built-in peripherals, but several are of particular note. First is USB 2.0 with OTG support. That is, it can use fast USB to either pose as a client to a system or as the host to USB peripherals. It has various on-board encryption hardware including a true random number generator. The usual serial communication protocols are present including SPI, I2C and USART.

The other microcontroller on the board is the AirLift Wi-Fi Co-processor. This is an ESP32 WROOM-32E from Espressif Systems, connected to the main microcontroller over SPI and communicated with via a CircuitPython library written by Adafruit. Given the adequate specs on the ESP32 and its dedicated purpose, it should be able to handle most Wi-Fi needs.

An ESP32 co-processor provides Wi-Fi

The extras on the board include status LEDs, a NeoPixel, an on/off switch, and a Stemma QT connector. The Stemma QT connector provides power and the I2C bus for connecting I/O peripherals and is compatible with SparkFun’s QWIIC.

Because we got our hands on this board early, there may be differences between this board and the production boards. For example, the silkscreen on the bottom of our board claims 8MB of Flash, but we expect the advertised specs (4MB) on Adafruit’s website will prevail [we have confirmed 4MB for the production boards -Ed.]. 

An earlier PCB rev, with 8MB flash mentioned on silkscreen

Adafruit have added a great walkthrough to get you up and running with the board. First, there is a page on installing the UF2 bootloader, which is only needed once for a new board (Adafruit could possibly pre-install it in the future; check their documentation when you get yours). Our prototype board seems to have its jumper switches oriented in the reverse of what is depicted in the directions, but otherwise we were able to follow them fine. 

The walkthrough then shows you how to download and deploy CircuitPython to the board. It also gives you an example program to upload to the board to make sure your system is working by blinking the status lights. Since Wi-Fi is a major selling point for the board, be sure to download and run the Wi-Fi example program to ensure the board connects to your Wi-Fi network properly.

It should be possible to program this microcontroller using NXP’s toolchain as well, but we decided to stick with CircuitPython for its ease of use and support for all of Adafruit’s additional hardware.

Standout features: 

  • Wi-Fi is a great add
  • Greatly increased processing power, with Wi-Fi offloaded to a second microcontroller