
Whistler motherboard
ccc909/Whistler
Open-source 16-channel USB MEMS microphone array: KiCad PCB design, XMOS XU316 (xcore.ai) USB Audio Class 2 firmware with DFU, BOM and JLCPCB-ready production files. CERN-OHL-S.

Open-source 16-channel USB MEMS microphone array: KiCad PCB design, XMOS XU316 (xcore.ai) USB Audio Class 2 firmware with DFU, BOM and JLCPCB-ready production files. CERN-OHL-S.
Whistler mic array is an open-source printed circuit board by ccc909, from the ccc909/Whistler repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 2-layer board of 70.7 × 70.7 mm with 96 parts on 39 nets, routed with 246 tracks and 300 vias.
It is built around the 74LVC125AD, TPS7A2018PDBVR-TP and IM72D128V01XTMA1. Its parts include 41 capacitors, 21 resistors, 2 ICs, 1 diode and 1 connector. It belongs with the audio and music boards of this library.
Whistler is an open-source 16-channel circular MEMS microphone array. It plugs into a computer over USB-C and works as a standard USB Audio Class 2 (UAC2) microphone, with no drivers to install. An XMOS XU316 (xcore.ai) captures the 16 PDM microphones and streams them at 48 kHz. This repository has the KiCad PCB design files, a BOM and JLCPCB production files, and the firmware.
| Mic array | Motherboard (top) | Motherboard (bottom) |
|---|---|---|
![]() | ![]() | ![]() |
A phone playing a 3 kHz tone is carried once around the array.
Top: the phone video and the direction-of-arrival plot. Bottom: the 16 raw
channels and each mic's level at 3 kHz.

Field test: a whistle blown 125 m away at dusk, with crickets and birds in
the background.
Left: a single mic. Right: all 16 mics beamformed toward it.
The array uses 16 Infineon IM72D128V01 XENSIV PDM MEMS microphones, running at 1.8 V with a 3.072 MHz PDM clock (the datasheet's high-performance mode). Key datasheet figures at that setting:
| Parameter | Value |
|---|---|
| Signal-to-noise ratio | 72 dB(A) |
| Sensitivity | −36 dBFS ±1 dB (1 kHz, 94 dB SPL) |
| Acoustic overload point | 128 dB SPL (10% THD) |
| Dynamic range | 106 dB |
| THD | 0.5% at 94 dB SPL |
| Frequency response | −3 dB at 20 Hz, +3 dB at 19 kHz |
| Directivity | Omnidirectional |
| Ingress protection | IP57 (dust and water) |
| Supply current | 980 µA per mic (typical) |
| Package | 4 × 3 × 1.2 mm LGA |
The table gives the parts cost per board in USD, not counting PCBs or assembly. Prices were taken from LCSC on 2026-10-25, with each line rounded up to LCSC's minimum order:
| 1 board | 10 boards | 100 boards | |
|---|---|---|---|
| Mic array | $48.96 | $34.87 | $31.40 |
| Motherboard | $27.09 | $16.34 | $14.81 |
| Both | $76.05 | $51.21 | $46.21 |
Most of the cost is the 16 microphones ($33.57 per array at 10 boards) and the XU316 ($10.04). LCSC doesn't sell the IM72D128 directly, so the mics are priced from JLCPCB's parts library. FB11 can be any 0402 ferrite bead of about 600 Ω at 100 MHz.
| Part | LCSC | Qty | 1 board | 10 boards | 100 boards |
|---|---|---|---|---|---|
| IM72D128 MEMS microphone | C5119248 | 16 | $43.36 | $33.57 | $30.37 |
| 24-pin FFC connector, Hirose FH12 | C202112 | 1 | $0.52 | $0.47 | $0.42 |
| TPS7A2018 1.8 V LDO | C963430 | 1 | $1.30 | $0.26 | $0.21 |
| 74LVC125 buffer | C6057 | 1 | $0.83 | $0.17 | $0.13 |
| 1 µF capacitor, 0402 | C14445 | 19 | $0.53 | $0.10 | $0.08 |
| 10 µF capacitor, 0603 | C18800 | 1 | $0.38 | $0.08 | $0.06 |
| 4.7 µF capacitor, 0603 | C1705 | 4 | $0.64 | $0.06 | $0.05 |
| 100 nF capacitor, 0402 | C1525 | 17 | $0.36 | $0.06 | $0.05 |
| LED, 0603 | C12624 | 1 | $0.58 | $0.06 | $0.01 |
| 33 Ω resistor, 0402 | C25105 | 16 | $0.11 | $0.02 | $0.01 |
| 22 Ω resistor, 0402 | C25092 | 4 | $0.12 | $0.01 | <$0.01 |
| 470 Ω resistor, 0402 | C25117 | 1 | $0.12 | $0.01 | <$0.01 |
| Ferrite bead, 0402 | C96691 | 1 | $0.10 | $0.01 | $0.01 |
| Total | $48.96 | $34.87 | $31.40 |
| Part | LCSC | Qty | 1 board | 10 boards | 100 boards |
|---|---|---|---|---|---|
| XU316 xcore.ai processor | C6938291 | 1 | $10.36 | $10.04 | $10.04 |
| W25Q128JW 128 Mbit QSPI flash | C2763561 | 1 | $3.40 | $2.89 | $2.28 |
| USB-C receptacle, GCT USB4105 | C3025063 | 1 | $1.47 | $1.21 | $0.91 |
| 24-pin FFC connector, Hirose FH12 | C202112 | 1 | $0.52 | $0.47 | $0.42 |
| 750 mA resettable fuse, 1206 | C371166 | 1 | $1.08 | $0.22 | $0.17 |
| 2×10 1.27 mm header, xTAG | C22438125 | 1 | $0.81 | $0.16 | $0.13 |
| 2.2 µH inductor | C337893 | 1 | $0.78 | $0.16 | $0.13 |
| 22 µF capacitor, 0603 | C109448 | 1 | $0.76 | $0.15 | $0.13 |
| AP2112K 3.3 V LDO | C23380830 | 1 | $0.56 | $0.11 | $0.09 |
| 100 nF capacitor, 0402 | C1525 | 29 | $0.36 | $0.10 | $0.08 |
| AP2112K 1.8 V LDO | C3021123 | 1 | $0.49 | $0.10 | $0.08 |
| 24 MHz crystal, 3225 | C70590 | 1 | $0.48 | $0.10 | $0.08 |
| Ferrite bead, 0603 | C85833 | 1 | $0.92 | $0.09 | $0.02 |
| 10 µF capacitor, 0603 | C96446 | 2 | $0.87 | $0.09 | $0.07 |
| TLV62569 buck converter | C141836 | 1 | $0.36 | $0.07 | $0.06 |
| TVS diode, 0402 | C558615 | 2 | $0.69 | $0.07 | $0.05 |
| 4.7 µF capacitor, 0603 | C1705 | 3 | $0.64 | $0.06 | $0.04 |
| 1 µF capacitor, 0402 | C52923 | 5 | $0.64 | $0.06 | $0.03 |
| LED, 0603 | C2289 | 1 | $0.53 | $0.05 | $0.01 |
| 18 pF capacitor, 0402 | C1549 | 2 | $0.27 | $0.03 | $0.01 |
| 5.1 kΩ resistor, 0402 | C25905 | 2 | $0.23 | $0.02 | <$0.01 |
| 49.9 kΩ resistor, 0402 | C137969 | 1 | $0.22 | $0.02 | <$0.01 |
| 100 kΩ resistor, 0402 | C25741 | 1 | $0.15 | $0.01 | <$0.01 |
| 1 MΩ resistor, 0402 | C26083 | 1 | $0.15 | $0.01 | <$0.01 |
| 680 Ω resistor, 0402 | C25130 | 1 | $0.12 | $0.01 | <$0.01 |
| 470 Ω resistor, 0402 | C25117 | 1 | $0.12 | $0.01 | <$0.01 |
| 10 kΩ resistor, 0402 | C25744 | 3 | $0.11 | $0.01 | <$0.01 |
| Total | $27.09 | $16.34 | $14.81 |
| Folder | Contents |
|---|---|
mic-array/, motherboard/ | KiCad 10 projects; ordering files are in each production/ folder |
lib/ | Symbols, footprints and 3D models for both boards |
firmware/ | XU316 firmware: a prebuilt image and its source |
docs/ | Renders, manufacturing notes and measurements |
*.kicad_pro in KiCad 10. All libraries are included.production/ files to JLCPCB. Read
docs/manufacturing.md first.xflash --factory firmware/bin/whistler-mic-aggregator.xeCopyright 2026 the Whistler authors.
firmware/LICENSE-XMOS.rst).lib/README.md).| Qty | Value | Footprint | References |
|---|---|---|---|
| 19 | 1uF | Whistler:C_0402_1005Metric | C2, C3, C11, C13, C15, C17, C19, C21, C23, C25, C27, C29, C31, C33, C35, C37 +3 |
| 17 | 100nF | Whistler:C_0402_1005Metric | C1, C12, C14, C16, C18, C20, C22, C24, C26, C28, C30, C32, C34, C36, C38, C40 +1 |
| 16 | 33R | Whistler:R_0402_1005Metric | R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21 |
| 16 | IM72D128V01XTMA1 | Whistler:MIC_IM72D128V01XTMA1 | MK1, MK2, MK3, MK4, MK5, MK6, MK7, MK8, MK9, MK10, MK11, MK12, MK13, MK14, MK15, MK16 |
| 8 | MountingHole_Pad | Whistler:MountingHole_3.2mm_M3_Pad | H1, H2, H3, H4, H5, H6, H7, H8 |
| 4 | 22R | Whistler:R_0402_1005Metric | R1, R2, R3, R4 |
| 4 | 4.7uF | Whistler:C_0603_1608Metric | C6, C7, C8, C9 |
| 4 | MountingHole | Whistler:MountingHole_2.2mm_M2 | H2, H3, H4, H5 |
| 1 | 10uF | Whistler:C_0603_1608Metric | C5 |
| 1 | 470R | Whistler:R_0402_1005Metric | R5 |
| 1 | 680R | Whistler:C_0402_1005Metric | FB11 |
| 1 | 74LVC125 | Whistler:SOIC-14_3.9x8.7mm_P1.27mm | U6 |
| 1 | Conn_01x24 | Whistler:Hirose_FH12-24S-0.5SH_1x24-1MP_P0.50mm_Horizontal | J19 |
| 1 | LED | Whistler:LED_0603_1608Metric | D2 |
| 1 | LOGO | LOGO | G*** |
| 1 | TPS7A2018PDBVR | Whistler:SOT-23-5 | U3 |

ccc909/Whistler
Open-source 16-channel USB MEMS microphone array: KiCad PCB design, XMOS XU316 (xcore.ai) USB Audio Class 2 firmware with DFU, BOM and JLCPCB-ready production files. CERN-OHL-S.


spawnID0001/allpeople-wave-pcb
This repository will contain all the pcb design files for the wave product.

antonavhmx/AAM-PCB-
Este repositorio contiene el diseño de hardware y los archivos de manufactura industrial para una tarjeta de circuito impreso de 4 capas.

HearnChristian/k-band-fmcw-radar
24 GHz FMCW radar front-end in KiCad (WIP): ADF4159 chirp synth, BGT24LTR11 transceiver, custom Marki AMM-8211PSM driver-amp symbol/footprint, OPA1656 IF, ADS8353 ADC, FT2232H USB.


techmiguel/stillpoint
Open-hardware 60 GHz radar ceiling sensor: presence & fall detection without a camera. Matter over Thread, KiCad 4-layer Ø60 mm board.

Ash-tronix/nile_test_chip_pcb
KiCad PCB design files to support the Ashtronix® Nile test chip.

cfbird/usb3-sdr
USB3 direct-sampling HF SDR: AD9649 ADC -> ECP5 FPGA DDC -> FT601 USB 3. KiCad 9 + Verilog, co-designed by Claude and Gemini (AGY).
It measures 70.7 × 70.7 mm and has 2 copper layers, 2 mm thick.
96 parts, built around the 74LVC125AD, TPS7A2018PDBVR-TP and IM72D128V01XTMA1. 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.
From the ccc909/Whistler repository on GitHub, at the commit this page was made from: the board is mic-array/whistler-mic-array.kicad_pcb and its schematic mic-array/mic-pair.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CERN-OHL-S-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).