Skip to content

The FPGA-based version of my custom bluetooth speaker project.

License

Notifications You must be signed in to change notification settings

Gunmetal-61/FFT-Audio-Speaker-FPGA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

As of 2021/07/01:

This project is still a WIP. Code is being ported over from the microcontroller version in this repository. Also, please look at the project board for a more accurate day-to-day view of current issues and features being worked on.

FFT-Audio-Speaker-FPGA

A custom bluetooth speaker project conceived from an FFT mini-project. This MCU version serves as a test bed for the FPGA version.

Audio Spectrum Display Closeup


Table of Contents

  1. Overview
  2. Feature List
  3. Future Changes and Additions
  4. Issues
  5. List of Components and Tools
  6. Derived Sources
  7. Schematic Diagram
  8. References

1. Overview

This project began as a venture in understanding and implementing Discrete Fast Fourier Transforms (DFFTs) in FPGAs. The ultimate objective is to create a custom Verilog-based IP where the DFFT is computed using dedicated hardware, allowing me to sample at an extremely high count.

This repository contains elements of what is in this microcontroller version repository.


2. Feature List

  • Real-Time Audio Visualization with Adjustable Frequency Range and Number of Columns
  • Single SSD1306 Display
  • Audio Signal Input via 3.5mm Jack

3. Future Changes and Additions

Please look at the project board for a more accurate day-to-day view of current issues and features being worked on.


4. Issues

Please look at the project board for a more accurate day-to-day view of current issues and features being worked on.


5. List of Components and Tools

Hardware

Software

  • Vivado 2020.02
  • Xilinx Vitis 2020.02
  • Libraries

6. Derived Sources

shajeebtm's 32-Band Audio Visualizer Arduino Project

I initially started this project off with the code and hardware components/config from this repository. There is also an Arduino Project Hub writeup.

I then proceeded to heavily modify the project. I subdivided the code into logical functions and made the FFT visualizer much more parameterizable (adjusting the number of columns samples, etc.). Instead of using a MAX7219-driven 32x8 LED matrix, I used a 128x64 SSD1306 OLED display (I2C version). The code has also been ported over to the Arduino MKR Zero which uses an entirely different microcontroller. This provides far more power and memory to support the higher resolution display and faster FFT calculation with more samples.


7. Schematic Diagram

As the project's hardware configuration is still in flux with many components to be added, there is no diagram here. However, it should be sufficient to follow the schematic shown on shajeebtm's project page. Just replace the Arduino Nano for the Arty S7-50's I/O on the "Arduino Uno" portion of the shield and substitute the SSD1306 for the MAX7219 on the I2C bus. Refer to the comments in the code to figure out which pins the I/O has been likewise re-mapped to.

As the Arty S7-50 is all 3.3V logic, connect the wire which links 5V to the display mode button to the MKR Zero's 3.3V power pin instead.


8. References

Source Code/Hardware Inspiration

Documentation

Technical Guides

Theory

Other


Last Updated: 2021.07.05 11:58 PST

About

The FPGA-based version of my custom bluetooth speaker project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published