Yes, the FFT is a bit “crude”, but I just wanted to get a working version running. The thing with the ending frequency seems like a question of datatype or datatype conversion, but I didn’t really look into it.
I’ve also used the FFT with 1024 points instead of 256 and it runs without issues and is much more precise, but displaying that involves a bit more work, scaling the output to the display window (and I didn’t do that.)
The trigger level presets is all Marco’s work
PS: oh, and I think I fixed the github binary files corruption thing…
Let me take this opportunity and give a big thanks to Pedro, Marco and others that have incrementally contributed to improving the s/w. I think this was the original intend of this product, and gracious individuals have taken upon themselves the task to deliver the s/w. BRAVO!
Yes, Marco and then Pedro did a great job, thank you very much. And the work of Pedro allows each of us to compile the firmware using a free compiler.
The integration of FFT is very nice but I don’t understand what it measures exactly. Look at the following example (230V mains with 10x probe): [attachment=0]IMAG000.jpg[/attachment]
Two things irritate me: [list]
[*]why so many harmonics? The mains should be a very good sine, I don’t expect anything significant above 50Hz. Is this noise because of the limited resolution of the ADC? Or a “feature” of the FFT? Of because of the vertical logarithmic scale?
[*]the rays in the spectrum are not really rays, they are rather blurred - is that a "feature" of the FFT too (e.g. because of the width of the bandpass filter?)
I wouldn’t say an 8bit capture of a sine with about 30 samples per cycle like you show is a very good representation of a sine wave.
It’s a very poor one actually, and it would be strange to not get a lot of harmonics.
If you increase the time resolution (samples per cycle) you’ll start getting better results.
…but please remember - this is a 256 samples FFT.
It’s usefulness is limited.
Had some problems reverting back to the 1024 points FFT I had first implemented, and will probably not be trying to get it running any time soon.
If someone want’s to have a go at it… (all the FFT related code in the source is delimited with “// FFT” comments, and is actually very few lines of code)
This is another video with the AP1_100 version in SCAN mode with buffer set to 360(smallest setting). This problem does not happen here. Sad we don’t have the sources for AP1_100
Please let me know if I there is a way I can help. Right now, I cannot figure out the whole code, so, not sure where to look. But, I am guessing SYNCHRO and PROCESS are the right places to look.
It is far from perfect. At first - the signal from the DAC is not filtered. Second - the output buffer amplifier goes to a limiting on the signal levels close to GND and Vss, it is noticeable even visually, and produce harmonic components.