Skip to the content
PCBKitNew board
2 layers60 × 285 mmLed bar, the printed circuit board in 3D

Analog seven-band spectrum bargraph with op amps.

Size
60 × 285 mm
Copper layers
2
Thickness
1.6 mm
Parts
82
Nets
42
Pads
152
Tracks, vias
173, 10
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
25 Sep 2022
Updated
20 Oct 2023

Overview

Led bar is an open-source printed circuit board by BasementCircuits, from the BasementCircuits/Sonus7 repository on GitHub. It is a 2-layer board of 60 × 285 mm with 82 parts on 42 nets, routed with 173 tracks and 10 vias.

Its parts include 30 diodes, 10 capacitors, 10 resistors and 2 connectors.

README

README.md

Sonus7

Sonus7 is an analog seven-band spectrum bargraph with op amps. It consists of seven VU-meters, each being fed with a bandpass filter and peak detector circuit.

Each band has a spacing of 1.25 octaves. The bands are: 63 Hz, 160 Hz, 400 Hz, 1.25 kHz, 2.5 kHz, 6.25 kHz, 16 kHz.

The filters are second-order Multiple Feedback bandpass filters using TLC272 opamps. The VU-meters consist of a logaritmic comparator array, also using TLC272 opamps. The project is inspired by a reel of 2000 TLC272 bought cheaply at an auction.

Features

  • Fully analog (Except input stage)
  • Seven frequency bands
  • 10 levels per band
  • 1.25 octave spacing
  • 63 Hz to 16 kHz frequency range

Filters

The filters were chosen to be Multiple Feedback filters since they allow independent adjustment of the gain $A_m$, filter quality $Q$ and mid frequency $f_m$. The transfer function and equations for calculating component values are taken from TI's design reference SLOD006B (16-31).

The gain and filter quality were set to $A_m = -10, : Q = 6$ while capacitor values were chosen in the range of 33 to 0.33 nF to end up with reasonable resistor values. A MATLAB script is provided to calculate the exact resistor values and then round to nearest corresponding value from the E-24 series. The frequency responses are then simulated for the exact and rounded resistor values.

bode

A final calculation is done to ensure the filter gains do not exceed the unity gain bandwidth (GBW) of the op amps. The actual amplification from the op amps is obtained from the noise gain. The noise gain is then multiplied with the corresponding mid frequency of each filter to obtain the (highest) GBW. This is also provided in the same MATLAB script. The calculation shows that all filters have a GBW below 2 MHz (TLC272), although the 16 kHz filter is close at 1.1 MHz. Thus, variations in temperature or other factors might limit the gain for 16 kHz filter and cause distortions.

The filtered signals are fed into peak detectors to obtain the audio level for each. The audio levels are then fed into the comparators which control the LEDs.

Comparators

The comparators are built from open loop op amps. Reference voltage levels are generated from a logarithmic resistor divider (3 dB per step) and fed into the non-inverting inputs, essentially a logarithmic Kelvin divider. The inverting input is fed with the audio level. The op amp output can now function as a current sink for the LEDs. Any time the audio level exceeds the reference voltage level, the output is pulled low, allowing current flow for that level. Each op-amp drives one level, resulting in 70 op amps in total for the comparator stage.

Construction

PCBs

The Sonus7 consists of three boards (types).

Input Stage

The input stage consists of a custom board with an ESP32 and PCM5100. The ESP32 recieves the audio wirelessly through snapcast, using the port by @CarlosDerSeher. The audio data is then sent to the PCM5100 DAC over I2S. The input stage is connected to the next stage using a 4pin JST EH connector (VCC, GND, MONO, GND). The Kicad files for the input stage are available in /PCBs/ESP-input/.

Filter and Comparator stage

The filter and comparator stage is the main board and contains all the filters and the comparator arrays. This board also contains the input power DC-jack (9V) along with a simple reverse input protection (PMOS) and thus powers the rest of the boards.

LED bar

The final stage are the display boards. These are very simple boards with only LEDs, resistors and connectors on them. There is a small cutout on each level for the acrylic diffusers. There are seven of these boards, each one is connected to the main board using an ribbon cable (10p IDC) and a 2p JST cable (9V + GND).

Mechanical

Improvements

Less cables

There is currently a 10p IDC for signal and a 2p JST for power. Combining power and signal into one connector (12p IDC) would tidy up the design.

More stable supply voltage

Due to varying current draw (LEDs), the Drain-Source resistance of the PMOS causes to a varying voltage drop of 0-22 mV ( $R_{DS}$ = 32 mOhm, $I_{DS}$ = 0.7 A). This can cause issues for the op amps, which need a stable supply voltage. A simple fix could be adding a power regulator after the reverse input protection.

GBW

The 16 kHz filter is quite close to the rated GBW of the TLC272. There is only a margin of $\frac{2}{1.1} \approx 1.8$ in gain before the limit. This can be solved by using cascaded filters which results in the individual gain of each op amp being smaller. Replacing the TLC272 with higher bandwidth op amps also works.

Variable brightness

Currently the brightness of the LEDs are set by series resistors. Some brightness control using PWM or some other method could be good for the next version.

Bill of Materials

Contributors

Daniel Quach (Muoshy)
Main Contributor

  • Filter design & Simulations
  • PCB Design and assembly

Johan Wheeler (johanwheeler)

  • Mechanical design
  • Mechanical assembly

Adam Anderson (adand00)

  • ESP input stage
  • PCB Design and programming

Parts

82
QtyValueFootprintReferences
30LEDcustom_fp:LED_5mm_DUALD1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +14
10, , , , , , , , ,
101uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C2, C3, C4, C5, C6, C7, C8, C9, C10
10JMP_LEDJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP1, JP2, JP3, JP4, JP5, JP6, JP7, JP8, JP9, JP10
10R_LEDResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R4, R5, R6, R7, R8, R9, R10
1Conn_01x02Connector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_VerticalJ2
1LED_CONNConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalJ1

The 72 most common of 82 parts.

Questions

How big is the Led bar PCB?

It measures 60 × 285 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Led bar use?

82 parts. 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 Led bar KiCad files?

From the BasementCircuits/Sonus7 repository on GitHub, at the commit this page was made from: the board is PCBs/led_bar/led_bar.kicad_pcb and its schematic PCBs/ESP-input/ESP-input.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Led bar design in my own project?

Its repository states no licence, so its author keeps all rights: ask BasementCircuits before reusing the design.

More from BasementCircuits/Sonus7

3
  • 2 layers200 × 87.8 mmSonus7 rev1, the printed circuit board in 3D

    Sonus7 rev1

    BasementCircuits/Sonus7

    Analog seven-band spectrum bargraph with op amps.

    263 parts6
  • 2 layers40 × 85 mmESP input, the printed circuit board in 3D

    ESP input

    BasementCircuits/Sonus7

    Analog seven-band spectrum bargraph with op amps.

    30 parts6
  • 2 layers45 × 85 mmInput stage, the printed circuit board in 3D

    Input stage

    BasementCircuits/Sonus7

    Analog seven-band spectrum bargraph with op amps.

    21 parts6

Similar boards

  • 2 layers68 × 55.4 mmESP32-adapter, the printed circuit board in 3D

    ESP32-adapter

    pcbreflux/espressif

    all espressif stuff will committed here

    82 parts608GPL-3.0
  • 2 layers271.8 × 78.7 mmPCPI AppliCard, the printed circuit board in 3D

    PCPI AppliCard

    baldengineer/bit-preserve

    Project for capturing vintage, classic, aka old computer schematics in KiCad.

    82 parts446
  • 2 layers57.2 × 60.3 mmSmartSpin2k, the printed circuit board in 3D

    SmartSpin2k

    doudar/SmartSpin2k

    Transform your spin bike into a Smart Trainer!

    82 parts292GPL-2.0
  • 2 layers35.6 × 33 mmAxp209 breakout, the printed circuit board in 3D

    Axp209 breakout

    CRImier/MyKiCad

    My KiCad boards. Can't be bothered uploading individually anymore, so here you go.

    82 parts253GPL-3.0
  • 2 layers65 × 40 mmMdb slave esp32s3-sim7080g, the printed circuit board in 3D

    Mdb slave esp32s3-sim7080g

    nodestark/mdb-esp32-cashless

    ESP32-based MDB cashless device for vending machines, supporting EVA DTS DEX/DDCMP telemetry and payments over the MDB protocol via Bluetooth and MQTT

    82 parts190MIT
  • 2 layers83.5 × 66 mmOpen ed Rev.B, the printed circuit board in 3D

    Open ed Rev.B

    krikzz/open-ed

    Open-ED is a very simple and cheap open source Genesis/Megadrive cartridge. The cartridge does not have its own processor or FPGA, it is built in the old school style using only memory and discrete logic.

    82 parts169MIT
  • 2 layers46.3 × 90.7 mmMsiSDR, the printed circuit board in 3D

    MsiSDR

    11tools/msiSDR

    A SDR PCB project base on msi2500 and msi001

    82 parts168GPL-3.0
  • 2 layers97.1 × 97 mmADX, the printed circuit board in 3D

    ADX

    WB2CBA/ADX

    ADX - Arduino Digital Modes HF Transceiver

    82 parts136