I have built a GPS tracker based on the ESP32.
The circuit is powered from a 12V car battery.
I use a buck converter to produce 4V for the GSM modem. I use another buck converter to provide 5V for the rest of the circuit. I use an LM117-3.3 to provide 3.3V for the ESP32 and the GPS module.
All works perfectly on breadboard. However, when I built a custom PCB of it, the ESP32 keeps resetting every time the GSM modem tries to connect to the GSM network.
This is the layout of the PCB: This is the log from the ESP32:
Code: Select all
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
Booting ESP node 13894044...
Hardware ID: ESP32-WROOM-32 BB
Hardware version: 1.0
Software ID: GPS tracker
Software version: 1.0 @ 21:23:10 - Oct 14 2020
==========================App settings==========================
Boot attempts 1
App name GPS Tracker/Logger
Admin password admin
SSID
Password
AP SSID TRACKER-9C01D4D108F0
AP Password 12345678
Timezone 2
MQTT Server test.mosquitto.org
MQTT Port 1883
MQTT TOPIC tracker-9C01D4D108F0
Log2SDCard interval 5
Log2Server interval 60
Max GSM attempts 3
Hearbeat interval 300
Required GPS accuracy: 30
GPRS AP name internet
GPRS user name
GPRS password
SIM card PIN 1747
====================================================================
Initializing SD Card...
SD Card Type: SD
SD Card Size: 120MB
Total space: 116MB
Used space: 2MB
Free space: 114MB
Scanning for I2C devices...
Device 0: 0x38
====================================
Mode of operation: Data logging
====================================
Restarting modem...
[9334] ### TinyGSM Version: 0.10.7
[9334] ### TinyGSM Compiled Module: TinyGsmClientSIM800
[9649] ### Modem: SIMCOM SIM800L
[9649] ### Modem: SIMCOM SIM800L
Modem Info: SIM800 R14.18
SIM card unlocked successfully.
[13749] ### Unhandled: Call Ready
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 ▒ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,lPuTTY
I hope somebody has some relevant experience and could help me out here, because I am in a dead end....
Thank you for any pointers in advance!