Custom ESP32 board WiFi connection issues
Custom ESP32 board WiFi connection issues
Hello everyone,
I have a custom PCB I've designed that makes use of an ESP32 as both the MCU and a WiFi chip. Am currently trying to get it to connect to an ESP32 WROOM dev kit via WiFi, and I've tried a lot of different configurations with no luck. I'm asking for a rubber ducky to bounce my tests off of, and give any feedback/criticism/advice. Below is a chronological description of the tests I've ran, with a TL;DR at the bottom.
TEST1:
As a sanity check, I've gotten two dev kits to connect. One I set up with the Espressif example code for being an access point (AP), and the other is set up with the Espressif example code for being a station. The dev kits successfully establish a network and connect to each other: great! As expected. Firmware seems functional out of the box.
TEST2:
Next I flash the station code to my board, and the ESP32 gets stuck in a loop, as seen below, and times out.
https://media.discordapp.net/attachment ... height=702
TEST3:
If I flash my board with the AP code, it thinks that it successfully sets up the network, but the network isn't visible on anything (not on the dev kits, nor my cellphone, etc.). This leads me to believe its a HW issue, possibly with the antenna, or matching network.
TEST4:
I used a Particle Argon board to test both antennas (both are PCB antennas on 10cm micro-coax cables), and the Argon can connect to WiFi using both antennas, so I think the antennas are fine. I used the Argon since it uses an ESP32 as its WiFi slave.
QUICK COMMENT:
The next item to check off was the antenna matching network. I designed one according to the ESP32 datasheet, which suggested a CLC pi matching network. Using some online tools I made one. With the wireless not working though, I decided to open up one of the dev kits, and I noticed they use a LCC matching network, or more accurately a tapped capacitor matching network .
REWORK + TEST5:
Fearing my matching was shit, I ripped the dev kits and soldered it to my board. Still though, same results as before: as a station it times out, and as an AP it thinks the network is up, but it can't be seen anywhere.
CONCLUSION:
At this point I'm hesitant to replace the ESP32 chip, since it works in every other way EXCEPT WiFi, so I have a hard time believing only the LNA_IN pin is busted. This being said, what else could it be? The firmware seems to work, the antennas seem to work, and the matching network seemed to work.
Any suggestions/ideas are welcome. I can also provide schematics/PCB pics/IRL pictures and have access to a scope if needed.
TL;DR pretty sure firmware works, pretty sure ESP32 ok, pretty sure matching network is ok, and pretty sure antennas are ok... any help figuring out any possible issues is appreciated
I have a custom PCB I've designed that makes use of an ESP32 as both the MCU and a WiFi chip. Am currently trying to get it to connect to an ESP32 WROOM dev kit via WiFi, and I've tried a lot of different configurations with no luck. I'm asking for a rubber ducky to bounce my tests off of, and give any feedback/criticism/advice. Below is a chronological description of the tests I've ran, with a TL;DR at the bottom.
TEST1:
As a sanity check, I've gotten two dev kits to connect. One I set up with the Espressif example code for being an access point (AP), and the other is set up with the Espressif example code for being a station. The dev kits successfully establish a network and connect to each other: great! As expected. Firmware seems functional out of the box.
TEST2:
Next I flash the station code to my board, and the ESP32 gets stuck in a loop, as seen below, and times out.
https://media.discordapp.net/attachment ... height=702
TEST3:
If I flash my board with the AP code, it thinks that it successfully sets up the network, but the network isn't visible on anything (not on the dev kits, nor my cellphone, etc.). This leads me to believe its a HW issue, possibly with the antenna, or matching network.
TEST4:
I used a Particle Argon board to test both antennas (both are PCB antennas on 10cm micro-coax cables), and the Argon can connect to WiFi using both antennas, so I think the antennas are fine. I used the Argon since it uses an ESP32 as its WiFi slave.
QUICK COMMENT:
The next item to check off was the antenna matching network. I designed one according to the ESP32 datasheet, which suggested a CLC pi matching network. Using some online tools I made one. With the wireless not working though, I decided to open up one of the dev kits, and I noticed they use a LCC matching network, or more accurately a tapped capacitor matching network .
REWORK + TEST5:
Fearing my matching was shit, I ripped the dev kits and soldered it to my board. Still though, same results as before: as a station it times out, and as an AP it thinks the network is up, but it can't be seen anywhere.
CONCLUSION:
At this point I'm hesitant to replace the ESP32 chip, since it works in every other way EXCEPT WiFi, so I have a hard time believing only the LNA_IN pin is busted. This being said, what else could it be? The firmware seems to work, the antennas seem to work, and the matching network seemed to work.
Any suggestions/ideas are welcome. I can also provide schematics/PCB pics/IRL pictures and have access to a scope if needed.
TL;DR pretty sure firmware works, pretty sure ESP32 ok, pretty sure matching network is ok, and pretty sure antennas are ok... any help figuring out any possible issues is appreciated
Re: Custom ESP32 board WiFi connection issues
Crystal oscillator circuit, check frequency stability
Re: Custom ESP32 board WiFi connection issues
Share your schematic.
Often suspect the power supply with wifi issues, it is the highest power draw function.
Often suspect the power supply with wifi issues, it is the highest power draw function.
Re: Custom ESP32 board WiFi connection issues
Above is the power supply I used for the board. Its the MAX17243ETPB. It has a 3A limit, so should be well within the specs of my board, since the ESP while TXing is the largest power draw on my board (~500mA from ESP32 datasheet if I remember correctly).
The two jumpers JP1 and JP2 are both grounded on the actual board, so the MAX17243 should be in PFM mode with spread spectrum disabled. This is not a big requirement, and I can modify the jumpers. Will look more closely at the regulator config right now actually.
One thing to note is that currently I'm powering the board from a 9V battery because I am a lowly student and don't have access to a power supply. Possibly the current draw of the ESP32 is just too much for this poor battery.
-
- Posts: 9769
- Joined: Thu Nov 26, 2015 4:08 am
Re: Custom ESP32 board WiFi connection issues
Yeah, 9V batteries generally have a very poor internal resistance; it would certainly not be my first choice to run an ESP32 off. However, if that were an actual issue, I'd expect the ESP32 to brown out. Still, connecting something else to it (lab PSU? USB power bank?) could give some insight.
Few other questions:
- Have you tried connecting to an existing (non-ESP32) access point?
- Have you tried feeding a stable source of 3.3V directly into the ESP32, bypassing the SMPS? You could use a cheapo LM1117 LDO for this if you don't have a lab PSU.
Few other questions:
- Have you tried connecting to an existing (non-ESP32) access point?
- Have you tried feeding a stable source of 3.3V directly into the ESP32, bypassing the SMPS? You could use a cheapo LM1117 LDO for this if you don't have a lab PSU.
Re: Custom ESP32 board WiFi connection issues
Yeah I haven't been able to get my hands on a good power supply until tomorrow so will give a go. But yeah, I agree that I would have expected the ESP32 to brownout if the power supply was the problem... we shall see tomorrow!
Thanks again for these great insights!
Yes, and it gives the same results unfortunately.- Have you tried connecting to an existing (non-ESP32) access point?
Unfortunately since this is on a custom PCB it would be pretty tough to change the power supply just like that... additionally I accidentally supplied 3V3 to the board via the flashing cable once, and it broke the regulator, so I'd rather not try and feed the board 3V3 unless its through the regulator. Once again though, tomorrow I'll have access to a more legit power supply, and will report back!- Have you tried feeding a stable source of 3.3V directly into the ESP32, bypassing the SMPS? You could use a cheapo LM1117 LDO for this if you don't have a lab PSU.
Thanks again for these great insights!
Re: Custom ESP32 board WiFi connection issues
Hey, so I finally got around to testing it with a more legit power supply. No dice. Exactly the same results as with the battery. Starting to lose my mind a bit here.ESP_Sprite wrote: ↑Mon Mar 22, 2021 2:40 amYeah, 9V batteries generally have a very poor internal resistance; it would certainly not be my first choice to run an ESP32 off. However, if that were an actual issue, I'd expect the ESP32 to brown out. Still, connecting something else to it (lab PSU? USB power bank?) could give some insight.
Few other questions:
- Have you tried connecting to an existing (non-ESP32) access point?
- Have you tried feeding a stable source of 3.3V directly into the ESP32, bypassing the SMPS? You could use a cheapo LM1117 LDO for this if you don't have a lab PSU.
Re: Custom ESP32 board WiFi connection issues
Have you tested for shorts on the antenna trace to all power planes and surrounding pins? If nothing obvious is wrong the best option is probably to assemble another board.
Re: Custom ESP32 board WiFi connection issues
I have, no shorts RIP.
I do have some interesting new evidence though, and thorough dives into the code haven't given me much, but maybe I'm missing something obvious. The board still fails, but it fails in different ways depending on if there is an AP or not. If there IS an AP, then it gives a loop of:
Code: Select all
I (1090) wifi station: wifi_init_sta finished.
0I (1210) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (1210) wifi:state: init -> auth (b0)
I (2210) wifi:state: auth -> init (200)
I (2220) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
05I (2220) wifi station: retry to connect to the AP
I (2220) wifi station: connect to the AP fail
05I (4270) wifi station: retry to connect to the AP
I (4270) wifi station: connect to the AP fail
I (4390) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (4390) wifi:state: init -> auth (b0)
I (5400) wifi:state: auth -> init (200)
I (5400) wifi:new:<1,0>, old:<1,1>, ap:<255,255>, sta:<1,1>, prof:1
05I (5400) wifi station: retry to connect to the AP
I (5400) wifi station: connect to the AP fail
05I (7450) wifi station: retry to connect to the AP
I (7450) wifi station: connect to the AP fail
I (7570) wifi:new:<1,1>, old:<1,0>, ap:<255,255>, sta:<1,1>, prof:1
I (7580) wifi:state: init -> auth (b0)
I (8580) wifi:state: auth -> init (200)
If there IS NOT an AP, then it gives a loop of:
Code: Select all
05I (18130) wifi station: retry to connect to the AP
I (18130) wifi station: connect to the AP fail
05I (20180) wifi station: retry to connect to the AP
I (20180) wifi station: connect to the AP fail
05I (22230) wifi station: retry to connect to the AP
I (22230) wifi station: connect to the AP fail
05I (24280) wifi station: retry to connect to the AP
I (24280) wifi station: connect to the AP fail
05I (26340) wifi station: retry to connect to the AP
I (26340) wifi station: connect to the AP fail
05I (28390) wifi station: retry to connect to the AP
I (28390) wifi station: connect to the AP fail
05I (30440) wifi station: retry to connect to the AP
I (30440) wifi station: connect to the AP fail
05I (32500) wifi station: retry to connect to the AP
I (32500) wifi station: connect to the AP fail
05I (34550) wifi station: retry to connect to the AP
I (34550) wifi station: connect to the AP fail
05I (36600) wifi station: retry to connect to the AP
I (36600) wifi station: connect to the AP fail
Who is online
Users browsing this forum: No registered users and 76 guests