Forse i dati arrivano in un qualche formato non direttamente visionabile? Cioè, devono essere elaborati?
Forse in maniera criptica, e me ne scuso, ma pensavo di aver risposto io. Il vettore fft_log_out inviato alla seriale è il risultato della FFT. Sono solo 128 bytes perchè sta facendo la trasformata su 256 campioni (#define FFT_N 256 all'inizio dello sketch) ed i restanti 128 bytes sono simmetrici.
Il primo byte = 255 rappresenta lo start (c'è scritto nel commento) per un programma che deve capire che stanno per arrivare i dati. I successivi 128 sono l'output della FFT.
Se scrivi un programma PC che legge i dati dalla seriale potresti, per esempio utilizzare i 128 bytes per disegnare un istogramma dello spettro.
Se invece vuoi leggere nel serial monitor questi valori, puoi commentare il primo Serial.Write(255) e inviare i successivi 128 con un Serial.println(xxx, DEC). In questo modo se un valore, per esempio è = 12, la println(12, DEC) invierà alla seriale i bytes 49 (codice ASCII del "1") e 50 (codice ASCII del "2") e tu vedrai "12". La Write invece invia il byte 12 e tu vedi il corrispondente ASCII (non ricordo cosa sia...) ossia le lettere strane di cui parli nel primo post.
per essere più chiaro:
//Serial.write(255);
for (int i = 0; i < 128; i++) Serial.println(fft_log_out[i], DEC);
Ciao.