The Sparkle Motion is a board with a lot of sparkly features. This page covers it all!
Pretty Pins on Github (PDF).
- USB-C port - This is used for both powering and programming the board. You can power it with any USB C cable that is USB-PD rated for the current you'll draw. It is a 5V 5A input - you can use off-the-shelf USB battery packs for portable operation. It is connected to a 5 Amp resetting fuse to protect from overcurrent drive.
-
USB-PD slide switch - selects between 5V, 12V, and 20V. Connected to the built-in HUSB238 power delivery chip, which is on the I2C bus with address
0x8
(0x08). - Barrel Jack - 2.1mm DC jack, center positive. Accepts power up to 24V. It is connected to a 5 Amp resetting fuse to protect from overcurrent drive.
- Power LED - The green LED, located between the USB C port and Barrel jack, indicates when the board is powered up.
- + Terminal Blocks - The 3 VOUT terminal blocks along right side provide 5V-24V power for your pixels. Use 26-20AWG stranded or solid core wires, 5A rated.
- - Terminal Blocks - The 3 GND terminal blocks along the right side are common ground for all power and logic. Use 26-20AWG stranded or solid core wires, 5A rated.
- 3.3V - This pin, located on the top row of the 6 pins broken out in the bottom right corner of the board, is the output from the 3.3V regulator. It can supply 500mA peak.
- G - This pin, located on the bottom row of the 6 pins broken out in the bottom right corner, is connected to the common ground.
The processor on the Sparkle Motion is an ESP32 mini module. The classic ESP32 has the best WLED support. Comes with 4 MB of flash, dual core 240MHz Tensilica, WiFi, Bluetooth LE and Bluetooth Classic support.
On the right side of the board there are 3 terminal blocks for NeoPixel output signals. All signals are level shifted to 5V. Use 26-20AWG stranded or solid core wires, 5A rated.
- 21 - GPIO21, available as SIG1 in CircuitPython and 21 in Arduino.
- 22 - GPIO22, available as SIG2 in CircuitPython and 22 in Arduino.
- 19 - GPIO19, available as SIG3 in CircuitPython and 19 in Arduino.
The Sparkle Motion has 4 general purpose "IO" pins broken out near the bottom right corner of the board and 1 additional GPIO available via the 3-pin JST port at the bottom edge of the board.
-
10 - GPIO10. This is the UART RX (receive) pin. Connect to the TX pin found on a breakout or device. This is separate than the 'debug UART' which is connected to the USB-to-Serial converter, so it will not interfere during upload. In Arduino use
Serial1
. In CircuitPython useboard.RX
. -
9 - GPIO9. This is the UART TX (transmit) pin. Connect to the RX pin found on a breakout or device. This is separate than the 'debug UART' which is connected to the USB-to-Serial converter, so it will not interfere during upload. In Arduino, use
Serial1
. In CircuitPython, useboard.TX
. - 23 - GPIO23. Available as D23 in CircuitPython and 23 in Arduino. This is a 5V level shifted output only! You can use it as another LED strip pin
- 18 - GPIO18. Available as D18 in CircuitPython and 18 in Arduino.
- 27 / JST Port - GPIO27. It uses ADC2. One of the capacitive touch pins. Available as D27 or A0 in CircuitPython and Arduino.
Note you cannot read analog inputs on ADC2 once WiFi has started, as it is shared with the WiFi hardware.
This JST SH 4-pin STEMMA QT connector breaks out I2C (SCL, SDA, 3.3V, GND). It allows you to connect to various breakouts and sensors with STEMMA QT connectors or to other things using assorted associated accessories. It works great with any STEMMA QT or Qwiic sensor/device. You can also use it with Grove I2C devices thanks to this handy cable.
- SCL - GPIO13
- SDA - GPIO14
You can access this I2C port with board.STEMMA_I2C()
in CircuitPython and Wire
in Arduino.
There are two LEDs you can control in code.
-
NeoPixel LED - This addressable RGB NeoPixel LED, labeled Neo on the board, can be controlled with code. It acts as a status LED in CircuitPython and is connected to GPIO2. It is available in CircuitPython as
board.NEOPIXEL
, and in Arduino asPIN_NEOPIXEL
. -
Red LED - This little red LED, labeled LED on the board, is on or blinks during certain operations (such as pulsing when in the bootloader), and is controllable in code. It is available in CircuitPython as
board.LED
, and in Arduino asLED_BUILTIN
or4
.
There are two buttons on the Sparkle Motion
- Reset button - This button restarts the board and helps enter the bootloader. You can click it once to reset the board without unplugging the USB cable or battery.
-
Boot button - This button can be read as an input in code. It is connected to pin GPIO0. It is available as
board.BUTTON
in CircuitPython, andBUTTON
in Arduino. Simply set it to be an input with a pullup. This button can also be used to put the board into ROM bootloader mode. To enter ROM bootloader mode, hold down boot button while clicking reset button mentioned above. When in the ROM bootloader, you can upload code and query the chip usingesptool
.
The IR Receiver on the top center of the board makes it easy integrate a remote control into your project.
IR - GPIO32. Available as board.IR
in CircuitPython, and 32
in Arduino. It is connected to ADC1.
In the bottom center of the board is an I2S microphone, great for adding audio reactivity to your WLED projects. It uses three data pins:
- DATA - GPIO25
- WS - GPIO33
- BCLK - GPIO26
You can use the microphone with WLED and Arduino. There is no I2S input support in CircuitPython at this time.
The CH343DS1 USB to serial converter communicates between the ESP32 and your computer over USB. It is a full-speed USB device interface and is USB 2.0 compatible. It has an auto-reset circuit that works perfectly with any ESP32 uploading tool. Sometimes these chips require drivers to be installed on your computer's operating system. We have a Learn Guide detailing how to install these drivers.
On the back of the board, the hardware UART debug port has two broken out pads, labeled TX and RX on the board silk. You can connect these to a USB console cable in order to read the debug output from the ESP32 IDF while connected to a USB PD power supply. This is useful if you are writing software and need to see the low level debug output.
- TX - The pad on the top (closest to the Adafruit logo) is the TX pin.
- RX - The pad on the bottom (furthest from the Adafruit logo) is the RX pin.
Page last edited January 31, 2025
Text editor powered by tinymce.