-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICS43432 I2S - FFT Analysis #3
Comments
Hi @oscgonfer, Just for clarification, could you please share a full sketch that causes the issue? It could be that the SAMD processor is not fast enough to process an 64 FFT at 30 kHZ ... |
Hello @sandeepmistry Thank you very much for your prompt response. We have found that one of the problems that slow down the execution is the interaction between the Now, regardless the
So... for any of them, do you think there might be any additional set-up we are missing? (e.g. resistors? or not to use cables for the data transfer?) Thanks again for your kind support,
|
Hi @oscgonfer, Thank you for providing the sketch. I've been running it for about 20 minutes on my MKR1000 and the LED is still blinking. How long does it usually take for the sketch to stall?
I don't think those would cause issues. However, I would recommend using a short set of bread board wires for the I2S connection. FWIW, I'm just testing the sketch on a MKR1000 with no I2S device connected. I have tried with the Serial monitor open (and closed briefly). |
Hi @sandeepmistry , Thanks for taking time responding to this topic. To provide you with some answers:
It can vary, but normally it takes less than 10-15secs to stall (without Serial).
We are currently using short cables with direct connection to the microphone (to eliminate any possible noise from the cable length or the breadboard if any). Nevertheless, the issue persists. To summarise, we believe these two issues have no connection between them: the noise read in the Serial Data line (its source still to be identified) and the fact that after a certain time, the I2S protocol only receives zeroes while working with the FFT at high sampling frequencies, pausing the execution. It probably can be due to the processor load (although it seems the Zero should handle it properly as your MKR1000 does - although I still have to test what happens when the I2S mic is not connected). Just as an update: we have now tried to perform the Thanks again, Óscar |
Dear @sandeepmistry , We have some updates regarding the issues on the implementation of the ICS43432 on the Arduino Zero. [Noisy acquisition] On the other hand, I would like to pose an additional question:
I have some trouble understanding what's the maximum value of usable samples in the FFTAnalyzer.cpp:
Now, the actual question: does this mean that, for a
If so, I would like to suggest to prevent the appending of buffers into a Thanks again for your time. Óscar |
Hello,
Thank you very much for this library.
We are using it with an Arduino/Genuino Zero in order to develop applications for ambient noise frequency analysis, within the SmartCitizen project. We would like to perform FFT analysis on the new version of the kit and we found this library very useful.
However, we are finding some problems while trying to perform FFT analysis with sampling frequencies >30kHz and fftSizes = 64 (for 15kHz max frequency according to Nyquist Theorem). At some point during the acquisition and FFT calculation, it seems there is an Overload that provokes the execution to freeze. I am not sure of it being a memory Overload or other problem, so I give some details below of the case.
fftAnalyser.read
Serial.println
on the different classes / functions and the execution seems to freeze after the I2S callback to theAudioInI2SClass::OnReceive
.Would you kindly shed some light on this issue? Have you tried to perform tests at these frequencies levels?
My apologies for any bad explanation I might have provided, I hope it is somehow clear.
Thank you beforehand for your help,
Óscar
The text was updated successfully, but these errors were encountered: