If you ever thought your microcontroller board needed more LEDs, the FeatherS2 Neo might be for you. In addition to status LEDs, It features a bright 5×5 RGB LED matrix near the middle of the board. Unexpected Maker suggests you could use this for debugging output, even using it as a character display with scrolling text. The default program on the board gives you a scrolling “Hello” when it is plugged in, demonstrating its viability. For anyone entertained by blinky lights, this board is an all-in-one kit in compact form.
As its name suggests, the board fits Adafruit’s Feather form factor. The microcontroller at the far end of the board is an ESP32-S2 with 2.4GHz Wi-Fi. To save space, Unexpected Maker used a chip antenna rather than the PCB trace antenna found on other boards. Next to this is the Stemma QT / QWIIC port that provides power and the I2C bus to I/O peripherals made by Adafruit, SparkFun, and others. On the other end of the board are a LiPo charge controller and battery connector, as found on most Feather boards. Programming is over a USB-C port. All I/O is at 3.3V.
The ESP32-S2 microcontroller has a single core at 240 MHz. This model features 4 MB of flash memory for program storage and 2 MB of PSRAM, a slower RAM that is added to the 320 kB of faster SRAM. The chip supports the usual serial interfaces: SPI, I2C, and UART, as well as I2S. The chip is also capable of USB OTG support, meaning it can be a device or host over the USB port. Unexpected Maker has broken out 22 I/O pins, all of which can be used for digital I/O. In addition, 11 of the pins are connected to one or the other of the ESP32’s 13-bit ADCs and two are connected to its 8-bit DACs. Leftover pins are used to detect the presence of USB or battery power, as well as to run the LED matrix.
By default, the board comes with CircuitPython pre-installed and ready to use. Should you prefer it, Unexpected Maker provides instructions for flashing MicroPython to the board. When you first connect the board it will mount as a USB mass storage device, allowing for drag-and-drop programming of CircuitPython files, or you can use a programming environment like mu or Thonny over the USB serial connection. The default program scrolls text across the matrix and then makes color-changing swirls. You can drag a copy of the default program off the board when mounted to see how it works.
You can also program the board in the Arduino IDE by installing the cores for ESP32 Arduino and selecting your board as UM FeatherS2 Neo. Under Arduino IDE, you can use Adafruit’s NeoPixel library to control the LED matrix. The matrix is made of WS2818B LEDs strung together in a raster fashion. I was able to adapt Adafruit’s “strandtest” example (found in the File->Examples->Adafruit Neopixel menu) by changing the LED_PIN constant to 21, the LED_COUNT constant to 25 and adding two lines to the Setup() function. The LED matrix has its own voltage regulator and it must be turned on for the matrix to light. Setting pin 4 to an OUTPUT and then setting it HIGH turns on the regulator and gets the example running. You’ll be able to deduce how the “strand” is wired into a matrix by watching the patterns.
Although the FeatherS2 Neo’s matrix display is its most distinctive element, it is not a one-trick pony. The Wi-Fi capabilities and standard Feather feature set makes it attractive for various creative applications.
Standout features (board elements besides specs):
- 5×5 RGB LED matrix on a small form factor board
- Wi-Fi enabled
- All the features of a standard Feather