Skip to the content
PCBKitNew board
2 layers40.6 × 38.1 mmFFTSlice, the printed circuit board in 3D

Module evaluating FFT with programmable gain control, filtering, and parallel/serial communication

Size
40.6 × 38.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
61
Nets
80
Pads
214
Tracks, vias
566, 103
Pours
8
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
30 Mar 2023
Updated
1 Aug 2023

Overview

FFTSlice is an open-source printed circuit board by Pyrograf, from the Pyrograf/FFTSlice repository on GitHub. It is a 2-layer board of 40.6 × 38.1 mm with 61 parts on 80 nets, routed with 566 tracks and 103 vias.

It is built around the SPX3819M5-L-3-3, BZM55C3V3 and PMEG2005EJ. Its parts include 21 capacitors, 9 resistors, 6 diodes, 5 ICs and 3 connectors. It belongs with the STM32 boards of this library.

Main components

3

README

README.md

FFTslice

Module to evaluate FFT. Communication with SPI. PGA for gain control. 2 selectable channels, additional DAC channel for selftest.

FFTSlice PCB V0.1

DAC samples generation

See notebook with all calculations.

Frequencies from 20 Hz to 20 kHz are splitted into 100 ranges in logspace to better fit sound perception.

plot 1

3 variables affects output DAC frequency:

  • constant TIM1 clock = 64 MHz,
  • variable divider
  • samples count

Divider can be freely changed, but samples count have to be generated in advance and stored in FLASH. There are 6 samples counts: 64, 128, 256, 512, 1024 and 2048. Higher samples counts fits better to generate low frequencies, lower samples counts are better fot higher frequencies.

plot 2

100 parameters are calculated so that samples count and divider lowers time in which output voltage remain the same, and deviation from theoretical frequency is acceptable.

Resulting error remains below 1% as seen in the plot:

resulting relative error

Matching of samples counts is more or less proportional:

matching samples counts

Resulting frequencies are very close to theoretically calculated. In the plot sinewave with output buffer enabled without low pass filter:

Output frequency comparison

Parts

61
QtyValueFootprintReferences
9TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9
61uFCapacitor_SMD:C_0603_1608MetricC2, C13, C14, C17, C20, C21
5100nFCapacitor_SMD:C_0603_1608MetricC4, C11, C12, C16, C18
4100kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6, R7, R8, R9
410nFCapacitor_SMD:C_0603_1608MetricC1, C10, C15, C19
44k7Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R2, R3, R5
3100nFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC7, C8, C9
3LEDLED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolderD1, D2, D4
3~Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mmJP1, JP2, JP3
210pFCapacitor_SMD:C_0603_1608MetricC3, C5
2120R@100MHzInductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderFB1, FB2
2BZM55C3V3Diode_SMD:D_MicroMELFD5, D6
2Conn_01x10Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_VerticalJ1, J3
2SPX3819M5-L-3-3Package_TO_SOT_SMD:SOT-23-5U3, U4
1100uFCapacitor_Tantalum_SMD:CP_EIA-6032-15_Kemet-U_Pad2.25x2.35mm_HandSolderC6
116MHz 10pFCrystal:Crystal_SMD_Abracon_ABM10-4Pin_2.5x2.0mmY1
1Conn_01x07Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalJ4
1LOGOLOGOG***
1MCP6S22-I_MSPackage_SO:SOP-8_3.9x4.9mm_P1.27mmU5
1NAResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4
1PMEG2005EJDiode_SMD:D_SOD-323FD3
1RESETButton_Switch_SMD:SW_SPST_TL3342SW1
1STM32G081RBTxPackage_QFP:LQFP-64_10x10mm_P0.5mmU1
1TS5A9411DCKRTS5A9411DCKR_footprints:DCK0006A_NU2

Questions

How big is the FFTSlice PCB?

It measures 40.6 × 38.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the FFTSlice use?

61 parts, built around the SPX3819M5-L-3-3, BZM55C3V3 and PMEG2005EJ. 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 FFTSlice KiCad files?

From the Pyrograf/FFTSlice repository on GitHub, at the commit this page was made from: the board is Board/fft_slice/fft_slice.kicad_pcb and its schematic Board/fft_slice/analog.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the FFTSlice design in my own project?

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

Similar boards

  • 2 layers30 × 60 mmSplitFlapDriverATtiny1616V4, the printed circuit board in 3D

    SplitFlapDriverATtiny1616V4

    adamgmakes/SplitFlapDisplay

    A modular, 3D-printed split-flap display controllable over RS485 from a Raspberry Pi. Each module holds 64 characters and modules can be chained together to build a display of any width.

    25 parts190
  • 4 layers35.6 × 17.8 mmLofive, the printed circuit board in 3D

    Lofive

    mwelling/lofive

    RISC-V microcontroller board based on SiFive FE310.

    35 parts161
  • 2 layers25.6 × 23 mmBreakout, the printed circuit board in 3D

    Breakout

    skorokithakis/tiny-ESP8266-breakout

    A very small and basic ESP8266 breakout board

    12 parts115BSD-2-Clause
  • 4 layers15.2 × 19 mmOpenlager, the printed circuit board in 3D

    Openlager

    d-ronin/openlager

    STM32F4 based logging dongle for HIGH RATE logging

    30 parts111
  • 2 layers31.4 × 20.6 mmWindow sensor V5, the printed circuit board in 3D

    Window sensor V5

    gadjet/Window-Door-sensor-Version-5

    Version 5 of the Window/Door sensor project this time with ultra low current consumption

    32 parts70GPL-2.0
  • 6 layers76 × 46.4 mmRp2350 driver, the printed circuit board in 3D

    Rp2350 driver

    sequoia-hope/rp2350-motor-controller

    An RP2350 based brushless motor controller

    291 parts39
  • 2 layers120 × 66 mmIo daughterboard, the printed circuit board in 3D

    Io daughterboard

    kbob/MinimumViableSynth

    A virtual analog synthesizer with lots of knobs and buttons.

    136 parts28GPL-3.0