Hi,
Has anyone else experienced issues using both an ADC and the WiFi components on a ESP32 Vroom? When I sample the ADC following connecting to a WiFi network the ESP does not respond as expected and restarts the program. If I run the program without a WiFi connection it is stable. Similarly, if I run the program with WiFi but don't sample the ADC it's also stable. Call the two together and it falls over.
Attached bellow is a stripped down version of a much larger automation project. This was the least functionality I could maintain and still demonstrate the issue. The complete program works well, unless you connect to a WiFi network, then its erratic. If any one fancies taking a look, if you run the program as is, it will fall over if the 'Up' or 'Down' inputs are triggered following the initial start-up routine. If you remove the ADC sampling before the main loop the program will run as expected.
I don't know if this is a bug in FC, or there is a strange conflict internal to the ESP between the ADC on channel An38 and the WiFi processes? Any advice or insight would be much apricated!
Cheers,
MB
ESP32 WiFi / ADC conflict
-
- Posts: 22
- http://meble-kuchenne.info.pl
- Joined: Mon Apr 19, 2021 4:47 pm
- Has thanked: 10 times
- Been thanked: 1 time
-
- Valued Contributor
- Posts: 1279
- Joined: Wed Dec 09, 2020 9:37 pm
- Has thanked: 122 times
- Been thanked: 643 times
Re: ESP32 WiFi / ADC conflict
As a test - connect to the esp 32 via serial and open a terminal program on your pc.. I use PuTTY but there are many such as realterm which work well.
When the mcu crashes it will spit some debug info out.. Connect at 115200 baud and compile in debug mode (the default)
Martin
When the mcu crashes it will spit some debug info out.. Connect at 115200 baud and compile in debug mode (the default)
Martin
-
- Matrix Staff
- Posts: 1660
- Joined: Wed Dec 02, 2020 11:07 pm
- Has thanked: 581 times
- Been thanked: 554 times
Re: ESP32 WiFi / ADC conflict
Hello.
I have Just looked at the Eblocks2 datasheet for the ESP32 Upstream board.
On page 59 there is a diagram illustrating what ADC channels you can use at the same time as Bluetooth and WiFi.
You are using An38 On the ESP32 you get ADC1 (White background) and ADC2 (Orange background).
The issue will be WiFi shares with ADC2, hence there will be issues with ADC as WiFi will have priority.
This is from espressif inc.
To avoid confusion, the above espressif inc link refers to IO channels which are the channels NOT within brackets on the EBlocks 2 document, which was included as it shows the ADC channels within Flowcode.
I have Just looked at the Eblocks2 datasheet for the ESP32 Upstream board.
On page 59 there is a diagram illustrating what ADC channels you can use at the same time as Bluetooth and WiFi.
You are using An38 On the ESP32 you get ADC1 (White background) and ADC2 (Orange background).
The issue will be WiFi shares with ADC2, hence there will be issues with ADC as WiFi will have priority.
This is from espressif inc.
To avoid confusion, the above espressif inc link refers to IO channels which are the channels NOT within brackets on the EBlocks 2 document, which was included as it shows the ADC channels within Flowcode.
Martin
Re: ESP32 WiFi / ADC conflict
Hi Martin,
Thanks for the additional info, I can confirm this was the issue. Further reading reinforces your post that all ADC2 pins are affected and cannot be used when either Bluetooth or WiFi is implemented. Moving my current sensing to a pin on ADC1 solved the problem.
Thanks again for your attention.
MB
Thanks for the additional info, I can confirm this was the issue. Further reading reinforces your post that all ADC2 pins are affected and cannot be used when either Bluetooth or WiFi is implemented. Moving my current sensing to a pin on ADC1 solved the problem.
Thanks again for your attention.
MB