donnersm / fft_esp32_analyzer Goto Github PK
View Code? Open in Web Editor NEWSpectrum analyzer 8-64channels FFT
License: GNU General Public License v3.0
Spectrum analyzer 8-64channels FFT
License: GNU General Public License v3.0
Regarding the software i am not able to get it working and spent some time debugging without any results yet:
After one iteration of the mainloop the chip hangs and does not read another sample buffer after the first buffer is processed.
In the serial terminal on every call to the i2s_adc_enable or i2s_adc_disable function it will print a dma error: "I2S: dma error, interrupt status: 0x00002000"
The led matrix is set as a 2x64x64, hub75 enabled, i2s SAMPLEBLOCK = 1024 as default with 2 dma buffers and a sample rate of 44.1kHz.
Increasing the amount of dma buffers to 4 for example will process 3 buffers before it hangs.
The ADC data itself looks valid.
Regarding the PCB design i have a few suggestions of things i noticed while assembling:
If it is intended for the led matrix to be driven by the board i would replace the LDO with a switch mode converter or leave out the power input side completely and expect a regulated 5V input to just pass through.
The expected currents are way too high for a linear regulator and the diode drop will be significant as well resulting in very poor efficiency and high heat at those currents expected by a larger panel. I am completely bypassing the power input section with a fixed 5V PSU.
The analog circuitry should probably be supplied by 3.3V either via a separate LDO or the ESP32 onboard one so it safely clips to 3.3V reducing the need for resistors as there are also a lot of unique resistors and capacitors that may be possible to combine reducing the complexity.
Maybe i misinterpreted some design decisions but thats probably how i would have designed it.
as title, i think the error is in the i2s _adc config, specifically i2s_adc_enable/disable. As for the input signal, it's still perfect. The strange thing is that the first time I load the code, it works fine, but when I resize the LED panel, it keeps crashing since then.
There's a problem. I use a P5 32 x 64 matrix. For all screen options 8, 16, 32 stripes, the leftmost strip is divided in half and one part is displayed on the left and the second part on the right. I don’t understand how to solve it. Who knows, tell me?
Hi guys,
when I try to compile the code in Arduino IDE and VS/PlatformIo I get this error message:
'adc_gpio_init' was not declared in this scope
I don't really understand what is missing there. Any ideas?
Thank you
In file included from C:\Users\amira\OneDrive\Documents\libraries\FFT_EPS32_V1.0\FFT_EPS32_V1.0.ino:56:
C:\Users\amira\OneDrive\Documents\libraries\FFT_EPS32_V1.0\I2SPLUGIN.h: In function 'void setupI2S()':
I2SPLUGIN.h:52:8: error: 'adc_gpio_init' was not declared in this scope
err = adc_gpio_init(ADC_UNIT_1, ADC_CHANNEL_0); //step 1
^~~~~~~~~~~~~
C:\Users\amira\OneDrive\Documents\libraries\FFT_EPS32_V1.0\I2SPLUGIN.h:52:8: note: suggested alternative: 'gpio_init'
err = adc_gpio_init(ADC_UNIT_1, ADC_CHANNEL_0); //step 1
^~~~~~~~~~~~~
gpio_init
exit status 1
'adc_gpio_init' was not declared in this scope
Hello,
I have a problem connecting to the output of my mixer. I can't get a reasonable level to drive the ESP32's input. Attempts to switch on a preamp brought no result. The proposed line circuit needs too high a level. What should I do ?
With the MIC MAX4466 there is no problem. But I don't want to use a MIC.
That was unsuccessful. I had tried several preamps.
Kind regards
J.Kommos
Good afternoon dear friend. Please help me if possible.
How can I turn off the potentiometer peakdelay and write the delay only on the sketch... I mean, I want to turn off the potentiometer and write these numbers inside the sketch only, Thank you very much...
// read potmeters and process
Peakdelay=map(analogRead(PEAKDELAYPOT),0,4095,1,100);
The amplitude of most mics is to low. You can remove R10 and replace it by a wire or a resistor with a lower value.
On my prototype, I replaced it with a jumper by adding a drop of soldering tin where the resistor use to be.
Now, the microphone response is amazing
I found this while looking for an ESP32 alternative to my Teensy-based dual channel analyser but was thrown when I realised that when you say 8-64 channels, you actually mean 8-64 bins or frequency bands. At least from an audio perspective, channels refers to the number of simultaneous inputs that can be processed.
Given the power of the ESP32, could it handle 2 simultaneous, multi-threaded transforms or is Teensy the only real option? I've been looking at the RPi Pico, which can handle ADC reads far quicker than anything else I've found, but I'm not sure about it's ability to handle the FFT,or even FHT for that matter.
Hi guys,
so far everything works properly. One issue I've encounterd recently is that the HUB75 display which I've ordered online doesn't seem to have RGB output but instead GBR. Does anybody know how to change the code without needing to rewire the display?
Thanx your help.
cheers
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.