The Sparklepony exists due to an acute shortage of fabulousness in this world. Have you ever felt you were born in the wrong dimension? One where Tron suits are not suitable for business meetings and that platform boots+fur bikini ensemble you wear to burning man every year just gets you laughed at anywhere else? The Sparklepony daughterboard exists to fill your needs.

Activate the Sparklepony's super powers and transport yourself to a world where your glowing orb exudes fabulousness and photons in equal amounts. Do you need to conduct a rave at your next standup meeting? Do you need to add some spice to your morning subway ride? Need to answer the phone in the coolest way possible? Now you can.



Do not look directly into the Sparklepony at maximum brightness unless you like moderate discomfort and pulsing spots of blindness.


  • On-board MP28164 high-efficiency, single-inductor, buck-boost converter with 4.2A switches.
  • Leds powered by Wiphone battery. (No external power required.)
  • On-Board 3.3V to 5V logic conversion for communication between esp32 processor (3.3V) and LEDs (5V).
  • Frosted plastic cover for a nicer look and colour diffusion.
  • 60 LEDs (12x5 grid array).
  • 60x XT9822-D20 LEDs.

s1 s2

Technical Details

  • Red: 620-625 nm wavelength, 300-5000 mcd brightness
  • Green: 520-530 nm wavelength, 400-700 mcd brightness
  • Blue: 460-470 nm wavelength, 100-3000 mcd brightness


DB Pin # Pin Name Arduino Pin Description
12 VBAT   Supply voltage for power stage. Input VBAT and output 5.0V for LEDs.
14 3.3V   3.3V reference voltage for 3.3V to 5V logic conversion.
2,11,13 GND   This pin is connectoned to System GND.
8 DATA 13 Input data Pin for LEDs
10 CLOCK 14 Control signal Input clock data.
16 EN EXTENDER_PIN(11) On/off control. Pull EN high to enable;pull EN down disable.

Hardware Overview



The XT9822-D20 is an addressable RGB LED employing a 2-wire communication protocol consisting of a clock and a data line. There are three LEDs inside: red, green, and blue. Color and brightness of each LED can be controlled independently. Colors are 8-bit (256 colors) and brightness 5-bit (32 levels).

LED indexing


LED numbering moves from bottom to top, left to right when facing the LED side of the PCB, as shown in the diagram below.



The MP28164 is a high-efficiency, low quiescent current, buck-boost converter used to convert the battery voltage to 5V needed for stable operation of XT9822-D20 LEDs.

BSS138 Based Voltage level Shifter

The WiPhone uses 3.3V logic and XT9822-D20 LEDs runs at 5V. The data and clock lines include a bi-directional logic level converter based on a BSS138 transistor.

Software Overview

By default, daughterboard support is turned off in firmware. To use an LED board with the WiPhone firmware, uncomment #define LED_BOARD in Hardware.h


The LED board pin definitions and configuration can be seen in code below.


#if defined(LED_BOARD)
#include "src/drivers/APA102/APA102.h"
    #define LED_BOARD_DATA        13
    #define LED_BOARD_CLOCK       14
    #define LED_BOARD_COUNT       60
    extern APA102<LED_BOARD_DATA, LED_BOARD_CLOCK> ledBoard;        // can be any LED strip, actually, with APA102 LEDs
    #define LED_BOARD_ENABLE      EXTENDER_PIN(11)


Be careful to make sure your animations don't run too hot, and if they do, you can always lower the brightness #define LED_BOARD_BRIGHTNESS  1 (see Warning below).


Setting all the LEDs on white and turning the brightness up all the way up will result in damage to your board and may result in injury and/or fire !

After enabling support for LED board in firmware and uploading new firmware to WiPhone. We can see example app at :

Tools -> Development -> LED Microphone

This LED microphone example app drives the LED array similarly to a VU meter, based on sound level received at microphone.

s3 s4