Skip to the content
2 layers25 × 99.9 mmPXLstick, the printed circuit board in 3D

Board for driving WS281x lights with ESP32 running Aircoookie's WLED firmware

Size
25 × 99.9 mm
Copper layers
2
Thickness
0.9 mm
Parts
58
Nets
41
Pads
164
Tracks, vias
337, 59
Pours
5
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
7 May 2024
Updated
6 Nov 2026

Overview

PXLstick is an open-source printed circuit board by VasilKalchev, from the VasilKalchev/PXLstick repository on GitHub, published under the MIT licence. It is a 2-layer board of 25 × 99.9 mm with 58 parts on 41 nets, routed with 337 tracks and 59 vias.

It is built around the AP2112K-3.3, INMP441ACEZ-R7 and SN74LVC1T45DBV, with the TSOP75438WTT, IRLML6244 and INMP441 among its other parts. Its parts include 16 capacitors, 12 resistors, 5 ICs, 4 connectors and 3 switches. It belongs with the audio and music boards and the ESP32 boards of this library.

Main components

6

README

readme.md

PXL stick v1.1

Board for driving WS281x lights with ESP32 running WLED firmware

images of the 3D render of the board from different angles and of the PCB project

fix, not fabricated

Release v1.1 is a fix for v1.0, but was not fabricated at the time of release.

:memo: Check the latest release note of this version for a possible update on the fabrication status.

WLED firmware

[!NOTE] If you haven't heard of WLED, it's best to check it out first.


Characteristics

The board is intended for mounting on some kind of vertical stick, that has a WS281x LED strip on it.

  • Runs a custom build of WLED on a ESP32-WROOM-32E module.
  • Physically controllable through 3 user configurable touch buttons (the provided v1.1 firmware enables 2 of them: "square" and "triangle") and a rotary encoder for brightness and color.
  • It also has an infrared receiver for further flexibility.
  • Equipped with an I2S mic to enable WLED's audio reactive effects.
  • Level shifted WS281x data signal.
  • Narrow form factor: 25x100mm

How to use it?

  1. PCB fabrication
  2. Assembly
  3. Wiring and mounting
  4. Firmware binary
  5. Flashing
  6. Configuration

1. PCB fabrication

The release includes Gerber and drill files, generated according to JLCPCB's instructions. Other fabricators may have different Gerber and drill files requirements, in which case you'll have to generate the files manually, according to their specification.

If you have made modifications to the PCB and want to regenerate the exports - you can use the scripts provided in /hw/export/.

2. Assembly

INMP441 mic

INMP441 variants

There are two footprints for the INMP441 mic. U3 is for its 9-terminal LGA_CAV package (located on the back of the PCB) and A1 is for its breakout board (can be soldered on either side). When using the breakout board - don't solder C7, R9 and R10.

Optional peripherals
  • IR receiver (U2, R8, C6)
  • rotary encoder (RE1, R2, R3, R4, C3, C4, C5)
  • microphone (U3/A1, R9, R10, C7)
  • power status LED (D1, R1)

3. Wiring and mounting

The board is powered with 5V by soldering wires to the through-hole pads marked with "5V" and the symbol for ground (located below ESP32-WROOM-32E).

WS281x's data wire is soldered to the through-hole pad marked with the LED graphic.

Recommended rotary encoder's knob diameter is 20mm.

Holes H1 and H2 are used for mounting the board with 2mm screws.

4. Firmware binary

The release includes a custom WLED build compiled with a rotary encoder "usermod" and preconfigured. If you're not planning on using the rotary encoder, you can use the official build.

If you want to customize your build further - you can use my fork of WLED which includes the configuration for the custom build.

5. Flashing

Flashing the firmware for the first time requires connecting to the board through a USB to serial adapter.

The programming pins are exposed on the left side of the board. You can avoid soldering a pin header and just put a header or jumper wires through the plated holes.

[!TIP] If you get an error while flashing firmware - try putting ESP32 in bootloader mode manually.

This is done by momentarily pulling pin "EN" low (restart) while pin "BOOT" is pulled low. Pins "EN" and "BOOT" are exposed as pads, "EN" is located to the left of the ESP32 module and "BOOT" is to the right. Shorting these pads - pulls the pins low.

Method A: Flashing directly with Espressif's esptool
  1. Follow the instructions to install esptool.
  2. Flash WLED's bootloader:
text
esptool.py write_flash 0x0 ./esp32_bootloader_v4.bin
  1. Flash the firmware binary:
text
esptool.py write_flash 0x10000 ./WLED_XXX.bin

If you experience issues - try erasing the flash first:

text
esptool.py erase_flash

[!NOTE] This method is taken from WLED's documentation web site.

Method B: Flashing with WLED's web installer and performing an OTA update

You can avoid installing esptool by using WLED's web installer to flash WLED's official firmware and then performing an OTA update with the provided custom binary.

6. Configuration

You can now continue with WLED's getting started guide to configure your board.

[!TIP] After connecting the board to your Wi-Fi network you can apply the provided base configuration by going to "Config" > "Security & Updates" > "Restore configuration" and uploading the provided base configuration file (after that, you'll have to configure the Wi-Fi again).

Board connections:
FunctionGPIO
WS281xGPIO 4
"square"GPIO 32
"triangle"GPIO 33
"circle"GPIO 14
RE 1GPIO 27
RE 2GPIO 16
RE BTNGPIO 17
LEDGPIO 2
IR receiverGPIO 23
INMP441 SDGPIO 15
INMP441 WSGPIO 13
INMP441 SCKGPIO 25

Parts

58
QtyValueFootprintReferences
11100nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3, C4, C5, C6, C7, C9, C10, C11, C12, C13, C14
820kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3, R4, R5, R9, R11, R12, R13, R14
3~Pad:Touch_Circular_10mmSW1, SW2, SW3
21uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2
2470nCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC15, C16
2IRLML6244Package_TO_SOT_SMD:SOT-23Q1, Q2
2LOGOLOGOG***, G***
2MountingHoleMountingHole:MountingHole_2.2mm_M2_ISO14580_Pad_TopOnlyH1, H2
1100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR10
1100nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC8
133Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8
1430Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR15
1470Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5_HandSolderingU1
1BOOTJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP2
1Conn_01x01Connector_Wire:SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mmJ4
1Conn_01x01_SocketConnector_PinSocket_2.54mm:PinSocket_1x01_P2.54mm_VerticalJ3
1Conn_01x02Connector_Wire:SolderWire-0.5sqmm_1x02_P4.6mm_D0.9mm_OD2.1mmJ1
1Conn_01x06_SocketConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ2
1ESP32-WROOM-EEspressif:ESP32-WROOM-32EU4
1INMP441Board_breakout:INMP441 breakoutA1
1INMP441ACEZ-R7TDK:INMP441ACEZ-R7U3
1LED_SmallLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1
1RSTJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmRE1
1SN74LVC1T45DBVPackage_TO_SOT_SMD:SOT-23-6U5
1TSOP75438WTTVishay:TSOP75_WTT_VISU2
1bootloaderLOGOss7
1brightnessLOGOss4
1paletteLOGOss5
1qrLOGOss1
1resetLOGOss6
1wled logoLOGOss2
1ws281x signalLOGOss3

Similar boards

  • 4 layersAstra Companion, the printed circuit board in 3D

    Astra Companion

    atireksd11/Astra-Companion

    This repo holds the carrier PCB, the voice stack on the laptop, and notes for building Astra. Week 1 was the KiCad board.

    96 parts
  • 2 layers45 × 30 mmF25, the printed circuit board in 3D

    F25

    marstmu/flight-computer-f25

    40 parts
  • 8 layers50 × 50 mmGaia obc, the printed circuit board in 3D

    Gaia obc

    onionsat-pcbs/gaia-obc

    CS26 Gaia - On-Board Computer

    176 parts
  • 2 layers52 × 43 mmHologram, the printed circuit board in 3D

    Hologram

    alaotach/eidolon

    23 parts1
  • 2 layers80 × 50 mmLedhub c6, the printed circuit board in 3D

    Ledhub c6

    AskAlice/home-automation-pcbs

    Daily Kimi-generated home automation PCB designs with KiCad sources, 3D models, and rendered documentation

    59 parts1MIT
  • 2 layers86.3 × 76.2 mmTamago, the printed circuit board in 3D

    Tamago

    idiot250/tamago

    first pcb project

    18 parts
  • 2 layers230.8 × 176.5 mmMarajoara V3, the printed circuit board in 3D

    Marajoara V3

    machadoleonardo94/Echoes-of-Termina

    ESP32 Audio devkit for I2S modules, with microSD slot and LED outputs

    121 parts

Questions

How big is the PXLstick PCB?

It measures 25 × 99.9 mm and has 2 copper layers, 0.9 mm thick.

What parts does the PXLstick use?

58 parts, built around the AP2112K-3.3, INMP441ACEZ-R7, SN74LVC1T45DBV and TSOP75438WTT. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PXLstick KiCad files?

From the VasilKalchev/PXLstick repository on GitHub, at the commit this page was made from: the board is hw/pxl_stick.kicad_pcb and its schematic hw/mcu.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PXLstick design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).