Guides for product: Adafruit NeoTrellis M4 Mainboard - featuring SAMD51
We got a big ol' blender and tossed in an ItsyBitsy M4, two NeoTrellis boards and an electret mic amp - turned on the 'mix' button and out came the NeoTrellis M4 - a super fun dev board for anyone who likes to squish buttons, see pretty lights and maybe make a tune or two.
The NeoTrellis M4 is an all-in-one USB + NeoPixel + Elastomer + Audio board. It's powered by our new favoritest-chip-in-the-world, the SAMD51, a Cortex M4 core running at 120 MHz. This chip has a speedy core with CircuitPython and Arduino support, hardware DSP/floating point, dual DACs (more on that later!) and all the goodies you expect from normal chips like I2C, ADC, DMA, etc. It has a roomy 512KB of flash and 192KB of SRAM so it's great for CircuitPython, we added a full 8MB flash chip so tons of space for files and audio clips. Or you can load Arduino in for bonkers-fast audio processing/generation with our fork of the PJRC Audio library.
The native USB port can turn it into a MIDI USB device if you like, in both Arduino and CircuitPython. Tether it to a computer or tablet, if you like. Or use it in standalone mode, as long as its powered from a USB power plug, it'll run whatever firmware is burned into it.
OK so you've got this big brain, but now you need inputs and outputs! There's a 4x8 grid of elastomer button pads with a NeoPixel nestled in the center of each one. You can read any/all button presses simultaneously thanks to the fully diode'd matrix, and also set each button color to any of 24-bit colors. (We've even got some DMA Arduino code for the NeoPixels so that they won't take up any processor time.) The elastomer buttons are translucent so they glow beautifully when lit.
Time to make some noise! We picked the SAMD51 mostly because its got that dual DAC - that's two 12-bit, 500KSPS 'true analog' outputs and we connected them to left and right on a standard headphone jack. Since the DAC pins are also ADC pins you could also use the left/right for audio line level input if you so choose. You're not going to get audiophile-quality outputs from two 12-bit DACs but you can certainly play audio clips and make beeps and bloops.
And if you want to have some audio inputs, we have you covered. The 4th pin on the headphone jack is for microphone or line in. If you have a classic 'mobile phone headset', the electret mic will go through an amplifier into an ADC pin. Again, it's not audiophile quality (we're talking about an electret mic here) but you can do audio recording and filtering on the mono input. The raw un-amplified mic input is also connected to a DAC so you can read button presses on headsets that have a resistor-selector for their buttons, or some other 3.3V-max analog signal.
To add more interactivity, a precision triple-axis accelerometer from Analog Devices, the ADXL343, is included as well, and provides sensor information on tilt, motion, or tapping. Great for adding another dimension of data input in addition to the button pads.
Finally, a 4 pin JST hacking port is available for extra add-ons. It's STEMMA and Grove compatible, and provides GND, 3.3V power, and two pins that can be used for I2C, ADC, or a UART. So connect some other sensor, or read stereo audio in, or maybe hack together a MIDI port. Whatever you like!
Here are some of the updates you can look forward to when using NeoTrellis M4
- ATSAMD51 32-bit Cortex M4 core running at 120 MHz (32-bit, 3.3V logic and power)
- Hardware DSP and floating point support
- 512 KB flash, 192 KB RAM
- Native USB that can act as a true USB MIDI device if you like.
- 8 MB SPI FLASH chip for storing files and CircuitPython code storage.
- 4x8 elastomer pads with fully diode'd matrix - no ghosting!
- 4x8 NeoPixels for each pad, glows through the elastomer buttons
- TRRS Headphone jack with stereo DAC outputs on Left/Right, can also be stereo ADC inputs. Fourth pin on headphone for electret/ADC input
- Built in MAX4466 electret mic amplifier for mobile phone headsets. 'Raw' DC level reading also available on a separate ADC
- 4-JST hacking port with 3.3V power, ground, and two GPIO that can be I2C/ADC/UART
- Analog Devices ADXL343 triple-axis accelerometer
- Really fun to press buttons and have sounds come out!