Skip to the content
PCBKitNew board
2 layers74.9 × 100.3 mmSpectrum analyzer, the printed circuit board in 3D

ESP32-based real-time audio spectrum analyzer with custom PCB design. Features INMP441 I2S microphone, SSD1306 OLED display, FFT processing, and real-time WiFi streaming to a browser-based visualizer via WebSockets.

Size
74.9 × 100.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
11
Nets
49
Pads
114
Tracks, vias
126, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
28 Jun 2026
Updated
7 Jul 2026

Overview

Spectrum analyzer is an open-source printed circuit board by JadenS180, from the JadenS180/spectrum-analyzer repository on GitHub, published under the MIT licence. It is a 2-layer board of 74.9 × 100.3 mm with 11 parts on 49 nets, routed with 126 tracks and 0 vias.

It is built around the ESP32-WROOM-32, AMS1117-3.3 and INMP441. Its parts include 3 capacitors, 3 resistors, 3 ICs and 2 connectors. It belongs with the sensors and measurement and audio and music boards and the ESP32 boards of this library.

Main components

3

README

README.md

ESP32 Audio Spectrum Analyzer

A real-time audio spectrum analyzer built on the ESP32, featuring a custom-designed PCB. Captures audio via an I2S MEMS microphone, runs FFT processing on-chip, displays a live 16-bar frequency spectrum on an OLED display, and streams real-time FFT data over WiFi to a browser-based visualizer via WebSockets.


Demo Videos

Analyzer reacting to noise:

https://github.com/JadenS180/spectrum-analyzer/raw/main/media/spectrum-DemoNoise.MOV

Analyzer in a quiet environment:

https://github.com/JadenS180/spectrum-analyzer/raw/main/media/spectrum-DemoQuiet.MOV


Web Dashboard

Reacting to noise

Dashboard Noise

Quiet environment

Dashboard Quiet


Photos

Full Breadboard Build

Breadboard

Side Views

Side View 1 Side View 2 Side View 3

Components

ESP32 FrontESP32 Back
ESP32-WROOM-32 (front)ESP32-WROOM-32 (back)
INMP441 FrontINMP441 Back
INMP441 Microphone (front)INMP441 Microphone (back)
OLED FrontOLED Back
SSD1306 OLED (front)SSD1306 OLED (back)

PCB

PCB Front PCB Back


Features

  • Real-time FFT using 512-sample windows at 44,100 Hz
  • 16 frequency bars mapped across the audible spectrum
  • Hann windowing to reduce spectral leakage
  • Peak hold indicators on each bar
  • DC/low-frequency noise suppression via bin offset
  • Custom 2-layer PCB designed in KiCad and manufactured by JLCPCB
  • WiFi streaming via WebSockets to a browser-based canvas visualizer

Hardware

ComponentDescription
ESP32-WROOM-32Microcontroller
INMP441I2S MEMS microphone
SSD13060.91" I2C OLED display (128x32)
AMS1117-3.33.3V LDO voltage regulator
USB-C ReceptaclePower input

Pin Mapping

SignalESP32 GPIO
I2S SCK26
I2S WS25
I2S SD33
I2C SDA21
I2C SCL22

Firmware

Written in Arduino C++ using the Espressif ESP32 package (v3.3.10).

Dependencies:

To flash:

  1. Open firmware/spectrum_analyzer.ino in Arduino IDE
  2. Set your WiFi credentials in the firmware
  3. Select board: ESP32 Dev Module under Espressif Systems
  4. Connect ESP32 via USB and select the correct port
  5. Upload

Web Dashboard

The dashboard is a single HTML file in the dashboard/ directory. Open it in a browser while the ESP32 is powered and connected to WiFi. Update the WebSocket IP in index.html to match your ESP32's IP address.


PCB Design

Designed in KiCad. The board is a 2-layer FR-4 PCB with a filled GND copper pour on F.Cu and a keep-out zone over the ESP32 antenna. Manufactured by JLCPCB.

KiCad schematic, PCB layout, and Gerber files are in the hardware/ directory.


Repository Structure

text
spectrum-analyzer/
├── firmware/
│   └── spectrum_analyzer.ino
├── hardware/
│   ├── spectrum_analyzer.kicad_pro
│   ├── spectrum_analyzer.kicad_sch
│   ├── spectrum_analyzer.kicad_pcb
│   └── gerbers/
├── dashboard/
│   └── index.html
├── media/
│   ├── (photos)
│   └── (videos)
└── README.md

Author

Jaden Smiles — github.com/JadenS180

Parts

11
QtyValueFootprintReferences
3100nCapacitor_SMD:C_0402_1005MetricC1, C2, C3
25.1kResistor_SMD:R_01005_0402MetricR2, R3
110kResistor_SMD:R_01005_0402MetricR1
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1ER_OLEDM0.91_1x-I2CDisplay:ER_OLEDM0.91_1x-I2CU3
1ESP32-WROOM-32RF_Module:ESP32-WROOM-32U2
1INMP441Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J2

Questions

How big is the Spectrum analyzer PCB?

It measures 74.9 × 100.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Spectrum analyzer use?

11 parts, built around the ESP32-WROOM-32, AMS1117-3.3 and INMP441. 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 Spectrum analyzer KiCad files?

From the JadenS180/spectrum-analyzer repository on GitHub, at the commit this page was made from: the board is hardware/spectrum_analyzer.kicad_pcb and its schematic hardware/spectrum_analyzer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Spectrum analyzer 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).

Similar boards

  • 2 layers70 × 100 mmIot badge-433, the printed circuit board in 3D

    Iot badge-433

    galopago/iot-badge-legacy

    Electronic conference badge for programming conventions, hacking events, etc.

    77 parts4
  • 2 layers96.3 × 48.5 mmEsp32steto, the printed circuit board in 3D

    Esp32steto

    VibrasticLab/ehealth-iot

    This repository hold some sources tree for our IOT agent

    44 parts1
  • 2 layers144.4 × 105 mmArbeit fertig, the printed circuit board in 3D

    Arbeit fertig

    Mohamedqweder/smart-ip-phone

    Schaltplan und PCB-Design für ein WLAN-basiertes IP-Telefon. Entwickelt mit KiCad auf Basis des ESP32-WROOM-32.

    20 parts
  • 2 layers40 × 111 mmLED Wled, the printed circuit board in 3D

    LED Wled

    edvard5/wEasyLed_V2

    96 parts
  • 2 layers100 × 60 mmPico node, the printed circuit board in 3D

    Pico node

    Mounith-H/AI-Powered-Edge-Gunshot-Detection-for-Wildlife-Protection

    Intelligent gunshot detection system using Raspberry Pi Pico

    19 partsMIT
  • 2 layers90 × 76.5 mmLCDZapperPro, the printed circuit board in 3D

    LCDZapperPro

    charcole/LCDZapper

    Device for making light gun games playable on LCD TVs

    126 parts163
  • 2 layers85 × 56 mmHB RF ETH, the printed circuit board in 3D

    HB RF ETH

    alexreinert/PCB

    Some of my PCBs

    96 parts104
  • 2 layers62.2 × 30.5 mmWLED ESP32 Controller, the printed circuit board in 3D

    WLED ESP32 Controller

    Hasenpups/WLED_ESP32_Controller

    This work is licensed under a [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].

    24 parts44