The Adafruit MONSTER M4SK is a fun microcontroller platform aimed at building costumes or decorations. The first thing you’ll notice is that the shape of the PCB is cat-eye glasses, only instead of lenses there are two 240×240 TFT displays. The default program on the board puts animated eyes on those two displays and has them looking around in random directions. The silkscreening on the board continues the cat motif, with a little capacitive touch-sensor nose on the bridge. Touch the nose, and the eyes cross. Right out of the box, one can imagine using these as-is in a halloween-themed application.
Turning around to the back of the board, we find quite a bit more than expected. The displays are run by a Cortex M4-based microcontroller from Atmel, clocked at 120 MHz. The microcontroller has 8MB of QSPI flash memory ready for graphics storage. There are a couple of sensors in addition to the touch sensor at the front, including a three-axis accelerometer on the right hand “lens” of the PCB. On the left, we find a light sensor that faces the front through a hole in the PCB. Along the top edge are three tactile switches. In addition, there is an on/off switch and a reset switch. Programming is via a USB micro-B port.
Looking along the edge of the board we find a number of expansion ports. First, a headphone jack and 2-pin speaker connector. A small class-D amplifier on the board can drive headphones or a 1-watt, 8-ohm speaker. On the lateral edges of the board are JST connectors. The four-pin port connects to the I2C bus on the microcontroller. The two three-pin ports connect to digital IO pins, capable of PWM output and analog input. All of those ports are STEMMA (not STEMMA QT) and Grove compatible. There is a two-pin battery connector for a LiPoly battery, with the on-board charge controller allowing you to charge via power on the USB port. On the bottom edge there is a smaller connector for a PDM microphone.
There are two nine-pin connectors on the back of the board, one on each lens and facing each other across the bridge. Small perforations between each lens and the bridge allow the user to separate the two halves so they can be placed further apart. The two lenses are then connected to each other with a 9-pin JST cable that can be purchased from Adafruit along with the board. Adafruit has managed to use only nine pins to connect the two halves of the board by putting a second microcontroller on the opposite lens from the one with the main microcontroller. This second micro is running seesaw, a framework that allows it to work as an I2C port expander for the main microcontroller.
The documentation for the MONSTER M4SK is excellent. The board comes with the UF2 bootloader pre-installed, meaning that firmware can be dragged and dropped onto the device in your operating system. This is good because the first step in Adafruit’s walkthrough is to update the UF2 bootloader. Simply connect the board to a computer via USB and then double-click the reset button. The board will mount as a USB mass storage device. You can then drag and drop the latest UF2 bootloader, downloaded from the MONSTER M4SK’s CircuitPython page.
At this point you can choose to program the board in CircuitPython or with the Arduino IDE. To get started with CircuitPython, just drag and drop the CircuitPython UF2 file onto the USB mass storage device like you did with the updated UF2 firmware. To program the board in the Arduino IDE, you will want to follow the part of the walkthrough that shows you how to recompile the default program from source code.
As for which programming method to choose, Adafruit notes that they couldn’t get the example code working in Circuit Python because it just wasn’t fast enough. Indeed, the first step after installing support for the board and numerous libraries into Arduino IDE is to configure the board to overclock to 180MHz and set the compile options to faster (-O3) optimization. It seems the example code pushes the board to its limits. There is a page for troubleshooting problems with the board that describes the errors that will occur when pushing it much further.
Adafruit sells a number of accessories that should be considered when ordering the MONSTER M4SK. There is the aforementioned 9-pin JST cable for detaching and separating each eye. They also make available a LiPoly battery and a 1W speaker that fits the on-board connectors for each. There are also glass and plastic convex lenses that will magnify each “eye” displayed on the screens, but note that you will have to make some kind of holder for the lenses that fits your final project. Example projects, including some that use the lenses, can be found on the Learn pages of Adafruit’s website.
- Board and default program are very usable as-is
- Rich collection of on-board sensors
- Great documentation and library support