Realtime Spectrum Streaming Using SparkFun RedBoard Artemis

“Real-Time FFT on the Apollo3 RedBoard: 1.2 MSPS, 14-Bit, Custom Windows, Python Streaming!”

Unlock the full DSP potential of your RedBoard Artemis with Laymans_FFT! This all-in-one library suite lets you:

  • Sample up to 1.2 MHz at 14 bits using ADC + DMA.

  • Perform radix-2 FFTs with lightning-fast fixed-point math.

  • Stream real-time spectrum data to Python for live plotting.

  • Choose from 9 window types, including custom IMPERIAL windows for optimal resolution.

  • Boost the M4 core to 96 MHz for maximum performance.

Whether you’re measuring signals, learning DSP, or building a custom spectrum analyzer, this library gives you high-speed FFTs without the hassle.

You can access this at:

Follow the readme to implement the libraries.

You can expect the following performance if you only sample and run FFT:
100 2048-point FFTs → 2.8087 s → 35.60 FFTs/s
100 512-point FFTs → 0.6039 s → 165.60 FFTs/s
100 128-point FFTs → 0.1363 s → 733.55 FFTs/s

Here is a plot of 30 KHz FM modulated signal, sampled at 1.2 MSPS with 8 times oversampling at using the High Imperial Window, 16384 point fft.


The following plot is of a function generator sweeping from 5 kHz to 595 KHz over 1s.
This is a 512 point fft using a flat-top window at 14 bit at 1.2 MSPS.

FrequencySweep

The following is FSK where a function generator is changing between 300 kHz and 400 kHz at an FSK rate if 5 Hz, sampled at 1.2 MSPS and 14 bits.

FSK_256Point

Have fun with this live-steaming FFT suite for the Redboard Artemis.

2 Likes

This is very cool, thank you for sharing!

1 Like

This is awesome :smiley: