

Mic array
Low-cost, High-performance, Acoustic Camera
- Size
- 320 × 320 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 321
- Nets
- 182
- Pads
- 1,368
- Tracks, vias
- 5,287, 679
- Pours
- 2
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 8 May 2025
- Updated
- 4 Nov 2026
Overview
Mic array is an open-source printed circuit board by jduanen, from the jduanen/Acoustic-Camera repository on GitHub, published under the MIT licence. It is a 4-layer board of 320 × 320 mm with 321 parts on 182 nets, routed with 5,287 tracks and 679 vias.
It is built around the LMK1C1108PW, CDCLVC1112PW and IM72D128V01XTMA1, with the MCP1700T-3302E/TT(MS), ASFL1-12.288MHZ-L-T and AXK6S80637YG among its other parts. Its parts include 182 capacitors, 109 ICs, 14 resistors, 1 connector and 1 crystal.
Main components
6LMK1C1108PW
TSSOP-16-40℃~+105℃ 1 1.71V~1.89V、2.375V~2.625V、3.135V~3.465V 250MHz 8 TSSOP-16 Clock Buffers, Drivers, Distributors ROHSTexas InstrumentsClock Buffers, Drivers, DistributorsCDCLVC1112PW
TSSOP-24-40℃~+85℃ 1 12 2.3V~3.6V 250MHz TSSOP-24 Clock Buffers, Drivers, Distributors ROHSTexas InstrumentsClock Buffers, Drivers, DistributorsIM72D128V01XTMA1
SMD-5P-36dB 1.2mm 1.8V 3mm 4mm 72dB 980uA Omnidirectional Omnidirectional pickup SMD-5P MEMS Microphones ROHSInfineon TechnologiesMEMS MicrophonesMCP1700T-3302E/TT(MS)
SOT-23-40℃~+85℃@(Ta) 1 120uVrms 180mV@(300mA) 2uA 3.3V 300mA 5.5V 80dB@(100Hz) Fixed Over Current Protection、Over Temperature Protection Positive SOT-23 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSMSKSEMIVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsASFL1-12.288MHZ-L-T
SMD5032-4P-40℃~+85℃ 12.288MHz 15mA 3.3V HCMOS、TTL SMD5032-4P Crystal Oscillators ROHSAbraconCrystal OscillatorsAXK6S80637YG
SMD,P=0.5mmBoard-To-Board And Backplane ConnectorPanasonic
README
README.mdAcoustic Camera — Project Summary
This project involves the design and implementation of a low-cost, high-performance acoustic camera: i.e., a microphone array computes a power map of the sound sources in a video camera's field of view and overlays it on the video in real time.
Uses of such a device include locating vibration, gas leaks and electrical breakdown, and as a hearing aid for people who can no longer localize sound with one functional ear.
One of the top-level objectives for this project is to explore the use of deep-learning models for this application and compare the performance and cost with that of traditional DSP-based beamforming algorithms.
A full technical overview of the project can be found in OVERVIEW.md; see the linked documents for more detail.
The Phase 3 prototype (4x4-mic array) unit looks like this:

This is an animation of the current state of the Phase 4 (96-mic spiral array) version's PCBs:

See an example of a commercial product here Fluke and a low-cost consumer product here Fotric
How it works
The microphone array samples the sound field at every mic at once. For each candidate direction (azimuth, elevation), a steering vector describes the expected phase pattern across the mics; a beamformer scores each direction against the measured cross-spectral matrix (CSM) and the scores form the energy map overlaid on the video.
Three array properties set performance:
| Property | Controls | Rule |
|---|---|---|
| Aperture D | Beam width (resolution) and low-frequency limit | HPBW ≈ 58° × λ/D; useful directionality needs f > c/D |
| Minimum mic spacing d | High-frequency limit (grating lobes above it) | fNyq = c / (2d) |
| Mic layout and count | Sidelobe level (MSL), SNR | Irregular spacing suppresses aliasing; more mics lower sidelobes |
Other key ideas: far field begins at r > 2D²/λ; the point spread function is how the array smears a point source; commercial cameras average power incoherently across an octave band to cut noise. Details: BACKGROUND.md, MIC_ARRAYS.md.
Algorithms explored (one per family): Delay-and-Sum (simple, robust, wide beam), MVDR (adaptive, suppresses interferers), CLEAN-SC (deconvolution, removes PSF artifacts), MUSIC (subspace, super-resolution when the source count is known). ML methods come in Phase 5.
Requirements and key design choices
| Parameter | Target |
|---|---|
| Frequency range | 200 Hz: 8 kHz (useful imaging from ~2 kHz) |
| Resolution (HPBW) | ~9.4° @ 8 kHz, ~19° @ 4 kHz, ~82° @ 1 kHz (simulated, Phase 4 array) |
| Distance | ~0.5 m (far-field limit) to ~10 m |
| Field of view | ±45° H, ±30° V, matched to the camera |
| Array | ~300 mm aperture, 96 MEMS mics, Underbrink 12 × 8 log-spiral, 12.94 mm min spacing (Nyquist ≈ 13.3 kHz) |
Why these numbers (TRADEOFFS.md):
- 300 mm aperture is the practical sweet spot: portable, yet ~9° at 8 kHz. 5° at 1 kHz would need a ~4 m aperture.
- 96 mics matches commercial practice (gfai Mikado uses 96 in the same pattern). Mic count grows as (aperture/spacing)², so going much smaller in spacing costs ~400+ mics.
- Underbrink spiral gave the best sidelobe suppression of all patterns simulated (−24.4 dB @ 4 kHz), with circular symmetry.
- Beamforming grid: 2–3 points per HPBW is enough. Finer grids cost memory and time (the steering matrix dominates) without improving resolution; the 96-mic array needs a finer grid than the UMA-16's 0.5°–1°.
Development phases
Each phase delivers a working end-to-end system (PLAN.md).
| Phase | Hardware | Goal | Status |
|---|---|---|---|
| 1 | Simulation | Validate algorithms and array geometry | Complete |
| 2 | ReSpeaker XVF3800 (4 mics, 90 mm) | First end-to-end pipeline: capture → beamform → overlay | Complete |
| 3 | miniDSP UMA-16 v2 (16 mics, 126 mm) | 2D (az × el) beamforming, calibration, touch UI | Complete |
| 4 | Custom PCBs (96 mics, 300 mm, FPGA) | Full-performance system | In progress |
| 5 | Phase 3/4 hardware | ML beamformer (PILOT / CRNN) vs CLEAN-SC | Not started |
Phase 1 — simulation (PHASE1.md)
- Recommended array: Underbrink 12 × 8, α = 22°, 96 mics, 300 mm, 12.9 mm minimum spacing, alias-free to ~13 kHz.
- HPBW: >180° below 500 Hz, ~82° @ 1 kHz, ~37° @ 2 kHz, ~19° @ 4 kHz, ~9° @ 8 kHz.
- Algorithm choice: CLEAN-SC for real-time single-source display; MVDR for multiple or weak sources; MUSIC for closely spaced sources with known count; D&S for lowest latency. 256 snapshots per CSM.
- Works well: industrial source hunting at 2–8 kHz, multi-source scenes, normal rooms, near field at 0.5–3 m. Not suited: below 1 kHz, very reverberant spaces (DRR < 3 dB), separating sources on the same bearing, MUSIC at SNR < 10 dB.
Phase 2 — ReSpeaker smoke test (PHASE2.md)
- Raw mics are USB channels 2–5; gain imbalance up to ~3.6× motivated calibration.
- D&S, MVDR and CLEAN-SC agreed within 5°. Live script:
src/acoustic_camera_p2.py.
Phase 3 — UMA-16 (PHASE3.md)
- 16 channels at 48 kHz, 2D beamforming with full-frame overlay on webcam or Pi camera.
- Live script
src/acoustic_camera_p3.pywith a touch UI: frequency sliders and spectrum pan, energy threshold (auto/manual), zoom/recenter/dwell, power indicator, saved settings. - Shared math in
src/beamforming.py(pytest suite intests/);src/benchmark_algos.pymeasures per-algorithm cost. A 1°/pt grid brings all four algorithms within 20 fps. - Lesson: the UMA-16's usable window is only ~2–4 kHz, bounded by aperture below and spatial Nyquist above.
Phase 4 — custom hardware (PHASE4.md)
96-mic Underbrink spiral, 12 arms × 8 mics, with PDM → CIC/FIR decimation in an FPGA and data streamed to a host (96 ch × 48 kHz × 24 bit ≈ 110 Mbit/s, within 1 GbE). A Pi Camera Module 3 Wide mounts through the centre of the array.
- Single-FPGA design (primary). One ALINX AC7200 module (Xilinx XC7A200T) runs all 96
channels plus a GbE/UDP link. RTL is done and fits (43.5% LUTs for the pipeline, 48.1% with
the GbE MAC and packetizer). Two boards:
mic_array: Ø320 mm, 96 Infineon IM72D128 mics, TCXO and clock tree, local 3.3 V LDOs.front_end: AC7200 module, power regulation, DP83867 GbE PHY.- Joined by Panasonic P5KS board-to-board connectors (9 mm mated height).
- Status: the current Phase 4 design; PCBs being laid out and prepared for fabrication. See pcb/SCHEMATIC_NOTES.md for the current schematic, power and connector details.
- Multi-FPGA alternate. Four Cmod A7-35T cluster boards (24 mics each) feed a hub board over a shared-clock spoke bus; the hub relays to a Raspberry Pi 5 over USB. Breadboarded and laid out as PCBs, but the boards were never built.
Phase 5 — ML
Needs real Phase 3/4 data to train and validate models.
Landscape
- Commercial products (PRODUCTS.md): 64–96 MEMS mics is the sweet spot for handheld far-field use; USB for portable, PoE for fixed installs; a co-located video camera at the array centre is universal.
- Open-source projects (PROJECTS.md): FPGA → GbE → GPU host is the established pattern above ~96 mics; cross-correlation calibration with GPU gradient descent (Ben Wang) recovers mic positions and speed of sound. This project uses Acoular (Python) for parts of its beamforming work.
Open questions and TODOs
- Match camera optics to the array's FOV and resolution
- Partition processing between FPGA and host; choose final processing/display hardware
- Packaging; low-noise audio front-end layout
- Add-on arms to extend the aperture for better low-frequency resolution
Parts
321| Qty | Value | Footprint | References |
|---|---|---|---|
| 176 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1, C10, C11, C105, C106, C107, C108, C109, C110, C111, C112, C113, C114, C115, C116, C117 +160 |
| 96 | IM72D128V01XTMA1 | IM72D128:IFX-PG-LLGA-5-4 | U1, U2, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23 +80 |
| 13 | 10k | PCM_SparkFun-Resistor:R_0603_1608Metric | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13 |
| 12 | LMK1C1108PW | CDCLVC1108:PW0016A_N | U97, U98, U99, U100, U101, U102, U103, U104, U105, U106, U107, U108 |
| 4 | 1uF | Capacitor_SMD:C_1206_3216Metric | C98, C99, C100, C101 |
| 4 | MountingHole_2.2mm_M2 | MountingHole_2.2mm_M2 | HCAM1, HCAM2, HCAM3, HCAM4 |
| 4 | MountingHole_4.3mm_M4 | MountingHole_4.3mm_M4 | HENC1, HENC2, HENC3, HENC4 |
| 2 | 100nF | Capacitor_SMD:C_0402_1005Metric | C184, C185 |
| 2 | MCP1700T-3302E/TT | Package_TO_SOT_SMD:SOT-23 | VR1, VR2 |
| 1 | 33 | PCM_SparkFun-Resistor:R_0603_1608Metric | R15 |
| 1 | 3V6 | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | TP3 |
| 1 | ASFL1-12.288MHZ | Oscillator:Oscillator_SMD_SeikoEpson_SG8002LB-4Pin_5.0x3.2mm | Y1 |
| 1 | AXK6S80637YG | AXK6S80637YG:AXK6S80637YG | J1 |
| 1 | CDCLVC1112PW | CDCLVC1112:PW24 | U110 |
| 1 | CLK 3V3 | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | TP4 |
| 1 | GND | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | TP1 |
| 1 | MIC 3V3 | TestPoint:TestPoint_THTPad_D2.0mm_Drill1.0mm | TP2 |
Questions
How big is the Mic array PCB?
It measures 320 × 320 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Mic array use?
321 parts, built around the LMK1C1108PW, CDCLVC1112PW, IM72D128V01XTMA1 and MCP1700T-3302E/TT(MS). 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 Mic array KiCad files?
From the jduanen/Acoustic-Camera repository on GitHub, at the commit this page was made from: the board is pcb/single_fpga/mic_array.kicad_pcb and its schematic pcb/mic_array/arm_00.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Mic array 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).
More from jduanen/Acoustic-Camera
4- 4 layers120 × 120 mm

- 4 layers120 × 120 mm

- 4 layers208.8 × 161.7 mm

- 4 layers131.8 × 128.5 mm

Similar boards
- 2 layers70.7 × 70.7 mm

Whistler mic array
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.
96 parts1CERN-OHL-S-2.0 - 4 layers28 × 63.8 mm

Wave
spawnID0001/allpeople-wave-pcb
This repository will contain all the pcb design files for the wave product.
78 parts1 - 4 layers58 × 19.5 mm

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 - 2 layers208.8 × 396.9 mm

Ferris
pierrechevalier83/ferris
A low profile split keyboard designed to satisfy one single use case elegantly
145 parts1.3k - 2 layers17.8 × 34 mm

LinUSBConverter
uCAN-LIN/LinUSBConverter
Open source USB ↔ LIN bus dongle. LIN 2.1 master / slave / monitor, optically isolated, SLCAN compatible — no proprietary drivers.
29 parts93GPL-3.0 - 2 layers89.8 × 10.2 mm

- 2 layers79.2 × 59.2 mm

- 2 layers85 × 54 mm

Gps mezzanine
96boards/mezzanine-community
Repository for community designed mezzanine boards for the 96boards specification.
182 parts32