Spectrum Module - K7MDL2/KEITHSDR GitHub Wiki

The spectrum portion of the code was written to be included into most any Arduino project using RA8875 display and having FFT data available such as we are doing using the OpenAudio_Library 32bit floating point version. It is taking advantage of a graphic controller Block Transfer Engine (BTE) which moves memory blocks around including to and from a hidden layer. This is used to achieve a smooth waterfall scroll effect with almost no CPU overhead. We only use a few commands to move a block of graphics memory, then write a single row of pixels in 1 function call each update cycle. The spectrum portion involves writing a single row of bars or dots each update cycle.

On a 600MHz Teensy 4.1 at 102.4KHz sample rate, a 4096FFT on both I and Q yields 4096 bins, mapped 1 bin per pixel (so showing only 1/4 of available bins, CPU is < 8% average and < 20% peak.

April 2021 7"screen