Wigglecam controller
jadenrhee·wigglecam-controller·hardware/kicad/wigglecam.kicad_pcb
About the Wigglecam controller PCB
Wigglecam controller is an open source RP2040/RP2350 PCB design by jadenrhee, published on GitHub. It is a 4-layer board measuring 76 × 50 mm, with 98 components from 45 distinct parts.
Its main chip is the RP2040, from the RP2040/RP2350 family. Other key parts include the AP2112K-3.3, W25Q128JVSIQ, USBLC6-2SC6, LM358 and INA219. By type, the board carries 35 capacitors, 35 resistors, 8 connectors, 6 ICs, 6 diodes and 3 transistors.
It belongs with the power & battery designs in this gallery.
From the project
RP2040 co-processor board for a 4-lens wigglegram camera: constant-current flash, controls, battery telemetry, Pi 5 I2C interface. 4-layer, DRC-clean, fab-ready.
The RP2040 board that handles timing-critical and analog work for a 4-lens camera. The Raspberry Pi runs capture and image processing, but Linux is not a real-time OS and the Pi can't drive the flash directly.
This board runs the LED flash at constant current, with the limits set in the circuit rather than only in firmware. It also debounces the shutter, decodes the EC11 encoder, and monitors battery voltage and current through an INA219. On a trigger it pulses the Pi the instant the LEDs reach full current.

Main components on the Wigglecam controller
Wigglecam controller bill of materials (BOM)
98 components, 45 distinct parts — part numbers from the project's BOM.
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 1 | AP2112K-3.3 | SOT-23-5 | U1 |
| 1 | RP2040 | QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U2 |
| 1 | W25Q128JVSIQ | SOIC-8_5.3x5.3mm_P1.27mm | U3 |
| 1 | USBLC6-2SC6 | SOT-23-6 | U4 |
| 1 | LM358 | SOIC-8_3.9x4.9mm_P1.27mm | U5 |
| 1 | INA219 | SOT-23-8 | U6 |
| 1 | AO3401A | SOT-23 | Q1 |
| 2 | AO3400A | SOT-23 | Q2, Q3 |
| 1 | 12MHZ 12MHz | Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | SWD | PinHeader_1x03_P2.54mm_Vertical | J1 |
| 1 | C165948 USB-C | USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J2 |
| 1 | LED1 | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J3 |
| 1 | LED2 | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J4 |
| 1 | C158012 VBAT_IN | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J5 |
| 1 | C158012 VBAT_OUT | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J6 |
| 1 | C158012 SHUTTER | JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J7 |
| 1 | Pi GPIO 1-12 | PinSocket_2x06_P2.54mm_Vertical | J8 |
| 1 | C883162 PTC 3A | Fuse_1812_4532Metric | F1 |
| 2 | C318884 TACT | SW_TS-1187A_5.1x5.1mm | SW1, SW2 |
| 1 | EC11 | RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm | SW3 |
Show 25 more
| Qty | Part | Footprint | Refs |
|---|---|---|---|
| 2 | SS34 | D_SMA | D1, D2 |
| 1 | PESD5V0S1BA | D_SOD-323 | D3 |
| 1 | WS2812B | LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | D4 |
| 1 | 1N4148W | D_SOD-123 | D5 |
| 1 | C72043 GREEN | LED_0603_1608Metric | D6 |
| 2 | 22UF 22uF | C_0805_2012Metric | C1, C2 |
| 5 | 10UF 10uF | C_0805_2012Metric | C3, C5, C18, C29, C35 |
| 4 | 1UF 1uF | C_0603_1608Metric | C4, C16, C17, C24 |
| 18 | 100NF 100nF | C_0603_1608Metric | C6, C7, C8, C9, C10, C11, C12, C13 +10 |
| 2 | 15PF 15pF | C_0603_1608Metric | C19, C20 |
| 2 | 1NF 1nF | C_0603_1608Metric | C25, C26 |
| 2 | 470UF 470uF | CP_EIA-7343-30_AVX-N | C27, C28 |
| 7 | 1k | R_0603_1608Metric | R1, R10, R23, R25, R27, R29, R31 |
| 3 | 27R | R_0603_1608Metric | R2, R7, R8 |
| 6 | 10K 10k | R_0603_1608Metric | R3, R4, R22, R24, R26, R28 |
| 2 | 5.1K 5.1k | R_0603_1608Metric | R5, R6 |
| 3 | 100K 100k | R_0603_1608Metric | R9, R15, R18 |
| 1 | 5.6K 5.6k | R_0603_1608Metric | R11 |
| 1 | 1.2K 1.2k | R_0603_1608Metric | R12 |
| 2 | C105149 0.5R 1% | R_2512_6332Metric | R13, R16 |
| 2 | 100R | R_0603_1608Metric | R14, R17 |
| 1 | C500718 10mR 2W 1% | R_2512_6332Metric | R19 |
| 2 | 4.7K 4.7k | R_0603_1608Metric | R20, R21 |
| 1 | 470R | R_0603_1608Metric | R30 |
| 4 | 330R | R_0603_1608Metric | R32, R33, R34, R35 |
Wigglecam controller design files
The KiCad project lives in the jadenrhee/wigglecam-controller repository on GitHub; these links point at the commit this page was built from.
Wigglecam controller: common questions
What microcontroller does the Wigglecam controller use?
The Wigglecam controller is built around the RP2040, from the RP2040/RP2350 family.
How big is the Wigglecam controller PCB?
The Wigglecam controller measures 76 × 50 mm, has 4 copper layers and is 1.6 mm thick.
How many components are on the Wigglecam controller?
98 components, from 45 distinct parts, with part numbers taken from the project's own BOM. The full bill of materials is listed on this page.
Where can I download the Wigglecam controller design files?
From the jadenrhee/wigglecam-controller repository on GitHub, which has the KiCad layout and the BOM; the links under Design files point to each one.
Can I use the Wigglecam controller design in my own project?
The repository has no license, so all rights stay with jadenrhee. Use it as a reference, and ask the author before reusing the design.
Can I test firmware for the Wigglecam controller without the hardware?
Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug RP2040/RP2350 firmware against it before you order a PCB.
Similar boards
RP2040/RP2350
Open Book Abridged Edition
joeycastillo
85 × 115 mm29 parts2LCC-BY-SA-4.08.1kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
Corne
foostan
277.2 × 107.5 mm164 parts2LCC-BY-4.07.7kRP2040/RP2350
MSA
Mentra-Community
30.5 × 138 mm61 parts2LMIT1.2kRP2040/RP2350
Open Source Smart Glasses
Mentra-Community
93 × 10.5 mm80 parts4LMIT1.2kRP2040/RP2350
Msa
Mentra-Community
47.8 × 9.4 mm53 parts2LMIT1.2k