Skip to the content
2 layers70.7 × 70.7 mmWhistler mic array, the printed circuit board in 3D

Whistler mic array

ccc909/Whistler1

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.

Size
70.7 × 70.7 mm
Copper layers
2
Thickness
2 mm
Parts
96
Nets
39
Pads
297
Tracks, vias
246, 300
Pours
80
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 Oct 2026
Updated
26 Oct 2026

Overview

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.

Main components

3

README

README.md

Whistler: 16-Channel USB MEMS Microphone Array (Open Hardware)

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 arrayMotherboard (top)Motherboard (bottom)
Whistler 16-channel circular MEMS microphone array PCB, top viewWhistler XMOS XU316 USB audio motherboard PCB, top viewWhistler XMOS XU316 USB audio motherboard PCB, bottom view

Whistler tracking a 3 kHz tone carried in a circle around the array: phone video, direction-of-arrival plot, 16 waveforms and per-mic levels

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.

Key features

  • 16 microphones: Infineon IM72D128 PDM MEMS mics on a 188 mm circle with 36.7 mm spacing. The array is designed for beamforming from about 1 kHz up to 4.7 kHz, its spatial-aliasing limit.
  • USB audio: an XMOS XU316 (xcore.ai) streams all 16 channels as a 48 kHz USB Audio Class 2 microphone over USB-C.
  • Standalone: boots from on-board QSPI flash, runs on USB bus power, and takes firmware updates over USB (DFU).
  • Two boards: a 2-layer mic array and a 4-layer, 28.8 × 60.2 mm motherboard, linked by a 24-pin FFC.
  • Ready to order: gerbers, a BOM with LCSC numbers, and a JLCPCB pick-and-place file for each board.
  • Measured: a whistle at 125 m outdoors came through at 39 dB SNR on a single mic and 51 dB with the 16-mic beam, a 12.7 dB array gain. See docs/measurements.md.

Spectrogram of a whistle at 125 m outdoors: one microphone vs the 16-mic beamformed output

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.

Microphones

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:

ParameterValue
Signal-to-noise ratio72 dB(A)
Sensitivity−36 dBFS ±1 dB (1 kHz, 94 dB SPL)
Acoustic overload point128 dB SPL (10% THD)
Dynamic range106 dB
THD0.5% at 94 dB SPL
Frequency response−3 dB at 20 Hz, +3 dB at 19 kHz
DirectivityOmnidirectional
Ingress protectionIP57 (dust and water)
Supply current980 µA per mic (typical)
Package4 × 3 × 1.2 mm LGA

BOM cost

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 board10 boards100 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.

Mic array: price per part
PartLCSCQty1 board10 boards100 boards
IM72D128 MEMS microphoneC511924816$43.36$33.57$30.37
24-pin FFC connector, Hirose FH12C2021121$0.52$0.47$0.42
TPS7A2018 1.8 V LDOC9634301$1.30$0.26$0.21
74LVC125 bufferC60571$0.83$0.17$0.13
1 µF capacitor, 0402C1444519$0.53$0.10$0.08
10 µF capacitor, 0603C188001$0.38$0.08$0.06
4.7 µF capacitor, 0603C17054$0.64$0.06$0.05
100 nF capacitor, 0402C152517$0.36$0.06$0.05
LED, 0603C126241$0.58$0.06$0.01
33 Ω resistor, 0402C2510516$0.11$0.02$0.01
22 Ω resistor, 0402C250924$0.12$0.01<$0.01
470 Ω resistor, 0402C251171$0.12$0.01<$0.01
Ferrite bead, 0402C966911$0.10$0.01$0.01
Total$48.96$34.87$31.40
Motherboard: price per part
PartLCSCQty1 board10 boards100 boards
XU316 xcore.ai processorC69382911$10.36$10.04$10.04
W25Q128JW 128 Mbit QSPI flashC27635611$3.40$2.89$2.28
USB-C receptacle, GCT USB4105C30250631$1.47$1.21$0.91
24-pin FFC connector, Hirose FH12C2021121$0.52$0.47$0.42
750 mA resettable fuse, 1206C3711661$1.08$0.22$0.17
2×10 1.27 mm header, xTAGC224381251$0.81$0.16$0.13
2.2 µH inductorC3378931$0.78$0.16$0.13
22 µF capacitor, 0603C1094481$0.76$0.15$0.13
AP2112K 3.3 V LDOC233808301$0.56$0.11$0.09
100 nF capacitor, 0402C152529$0.36$0.10$0.08
AP2112K 1.8 V LDOC30211231$0.49$0.10$0.08
24 MHz crystal, 3225C705901$0.48$0.10$0.08
Ferrite bead, 0603C858331$0.92$0.09$0.02
10 µF capacitor, 0603C964462$0.87$0.09$0.07
TLV62569 buck converterC1418361$0.36$0.07$0.06
TVS diode, 0402C5586152$0.69$0.07$0.05
4.7 µF capacitor, 0603C17053$0.64$0.06$0.04
1 µF capacitor, 0402C529235$0.64$0.06$0.03
LED, 0603C22891$0.53$0.05$0.01
18 pF capacitor, 0402C15492$0.27$0.03$0.01
5.1 kΩ resistor, 0402C259052$0.23$0.02<$0.01
49.9 kΩ resistor, 0402C1379691$0.22$0.02<$0.01
100 kΩ resistor, 0402C257411$0.15$0.01<$0.01
1 MΩ resistor, 0402C260831$0.15$0.01<$0.01
680 Ω resistor, 0402C251301$0.12$0.01<$0.01
470 Ω resistor, 0402C251171$0.12$0.01<$0.01
10 kΩ resistor, 0402C257443$0.11$0.01<$0.01
Total$27.09$16.34$14.81

Project structure

FolderContents
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

Quick start

  • Edit: open either *.kicad_pro in KiCad 10. All libraries are included.
  • Order: upload a board's production/ files to JLCPCB. Read docs/manufacturing.md first.
  • Flash: program a new motherboard once over an xTAG on J2. After that, updates go over USB (DFU); see firmware/README.md.
bash
xflash --factory firmware/bin/whistler-mic-aggregator.xe

Licence

Copyright 2026 the Whistler authors.

Parts

96
QtyValueFootprintReferences
191uFWhistler:C_0402_1005MetricC2, C3, C11, C13, C15, C17, C19, C21, C23, C25, C27, C29, C31, C33, C35, C37 +3
17100nFWhistler:C_0402_1005MetricC1, C12, C14, C16, C18, C20, C22, C24, C26, C28, C30, C32, C34, C36, C38, C40 +1
1633RWhistler:R_0402_1005MetricR6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21
16IM72D128V01XTMA1Whistler:MIC_IM72D128V01XTMA1MK1, MK2, MK3, MK4, MK5, MK6, MK7, MK8, MK9, MK10, MK11, MK12, MK13, MK14, MK15, MK16
8MountingHole_PadWhistler:MountingHole_3.2mm_M3_PadH1, H2, H3, H4, H5, H6, H7, H8
422RWhistler:R_0402_1005MetricR1, R2, R3, R4
44.7uFWhistler:C_0603_1608MetricC6, C7, C8, C9
4MountingHoleWhistler:MountingHole_2.2mm_M2H2, H3, H4, H5
110uFWhistler:C_0603_1608MetricC5
1470RWhistler:R_0402_1005MetricR5
1680RWhistler:C_0402_1005MetricFB11
174LVC125Whistler:SOIC-14_3.9x8.7mm_P1.27mmU6
1Conn_01x24Whistler:Hirose_FH12-24S-0.5SH_1x24-1MP_P0.50mm_HorizontalJ19
1LEDWhistler:LED_0603_1608MetricD2
1LOGOLOGOG***
1TPS7A2018PDBVRWhistler:SOT-23-5U3

More from ccc909/Whistler

1
  • 4 layers28.8 × 60.2 mmWhistler motherboard, the printed circuit board in 3D

    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.

    76 parts1CERN-OHL-S-2.0

Similar boards

  • 4 layers320 × 320 mmMic array, the printed circuit board in 3D

    Mic array

    jduanen/Acoustic-Camera

    Low-cost, High-performance, Acoustic Camera

    321 parts20MIT
  • 4 layers28 × 63.8 mmWave, the printed circuit board in 3D

    Wave

    spawnID0001/allpeople-wave-pcb

    This repository will contain all the pcb design files for the wave product.

    78 parts1
  • 4 layers58 × 19.5 mmAam bom pcb, the printed circuit board in 3D

    Aam bom pcb

    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.

    39 parts
  • 4 layers66 × 46 mmRadar1, the printed circuit board in 3D

    Radar1

    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.

    99 parts3
  • 4 layers100 × 85 mmPAL sign, the printed circuit board in 3D

    PAL sign

    PE5PVB/PAL-sign

    Advanced CVBS PAL video generator

    115 parts2GPL-3.0
  • 4 layers60 × 60 mmStillpoint, the printed circuit board in 3D

    Stillpoint

    techmiguel/stillpoint

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

    95 parts1CERN-OHL-S-2.0
  • 4 layers117.6 × 83 mmNile test chip pcb, the printed circuit board in 3D

    Nile test chip pcb

    Ash-tronix/nile_test_chip_pcb

    KiCad PCB design files to support the Ashtronix® Nile test chip.

    177 parts
  • 4 layers100 × 60 mmWork after r3, the printed circuit board in 3D

    Work after r3

    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).

    231 parts

Questions

How big is the Whistler mic array PCB?

It measures 70.7 × 70.7 mm and has 2 copper layers, 2 mm thick.

What parts does the Whistler mic array use?

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.

Where can I download the Whistler mic array KiCad files?

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.

Can I use the Whistler mic array design in my own project?

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).