ESP32 Doesnt connect to wifi AP

Hi,
rescently changing my project to Platformio.
I am using ESP32 before with Arduino. But now running into trouble trying to establish a connection to my home network.
Guess its just a stupid issue but couldn’t find any reason screening all kind of Forums.

My main.cpp looks as follows:

#include <WiFi.h>        
const char* ssid     = "XXXXX";       
const char* password = "XXXXX";     

void setup() {
  Serial.begin(115200);         
  delay(10);
  Serial.println('\n');

  WiFi.begin(ssid, password);             
  Serial.print("Connecting to ");
  Serial.print(ssid);

  while (WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print('.');
  }

  Serial.println('\n');
  Serial.println("Connection established!");
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());        
}

void loop() {
Serial.println("I am alive ... Hello World ");
}

and my platformio.ini as follows:

[env:esp32dev]
platform = espressif32
;platform = https://github.com/platformio/platform-espressif32.git
;platform = https://github.com/platformio/platform-espressif32.git#feature/stage
board = esp32dev
framework = arduino

Using plarformio no connection can be established … same code running under Arduino runs perfect … anybody any idea whats missing?

Thanks in advance

In the Arduino IDE board manager, what version of the ESP8266 package do you have installed?

Hi , under Arduino the selecterd board is" Board: ESP32 Dev Module ".
Thx

Eh no, I meant the ESP32 package version sorry. To be seeen here

Hello , here is my screenshot

Anyhow its working well under Arduino… just under Platformio its not connecting at all.

Ok so you have 1.0.0 installed. This is an extremely old version from July 2018. But let’s try it anyways.

Go into your platformio.ini and replace the

platform = espressif32

with the text

platform = espressif32@1.2.0

This will then use a platform-espressif32 release which has this version of the Arduino core. Does it still not work after a re-upload?

1 Like

Wauu…
Thanks it works perfect … same result under platformio as under Arduino.
Successfully got my complete project transferred.
BIG THX

wonder why latest espressif platform is creating those basic problems … anyhow sometimes older is better :wink:

Can you try in the Arduino IDE with the “select version” selector in the board manager, as you showed in the screenshot above, to find out since which exact version you cannot connect to the network anymore after 1.0.0? Rolling back to an older version should merely be a temporary workaround.

Hey Folks

I am hitting the same brick wall with WiFi on an esp32 device. Everything seems to work just fine in Arduino itself, but not with PlatformIO.

Here’s my project conf:

[env:esp32doit]
platform = espressif32@1.2.0
board = esp32doit-devkit-v1
framework = arduino
upload_port = /dev/cu.SLAB_USBtoUART
upload_speed = 115200
monitor_port = /dev/cu.SLAB_USBtoUART
monitor_speed = 115200

Any help would be appreciated :slight_smile:

Thanks

I don’t know what’s up internally with ESP32s not being able to connect to WiFis in certain Arduino versions… Does the most recent one not work (no @ directive in the platform)? Can you enable debug output for the Arduino framework and post the (censored) output, maybe that gives some insight?

Since you have installed version 1.0.4 in the Arduino IDE the corresponding PIO version is 1.11.0, not 1.2.0; See release page I have referenced above.

1 Like

Thank for the reply, appreciate your time!

The 1.2.0 was a stab in the dark, have tried on the latest version. I have since tried latest, 1.11.0 and 1.10.0 (things start breaking when trying 1.9.0).

Here’s my config again (with the debug included)

[env:esp32doit]
platform = espressif32
board = esp32doit-devkit-v1
framework = arduino
build_flags = -DCORE_DEBUG_LEVEL=4
upload_port = /dev/cu.SLAB_USBtoUART
upload_speed = 115200
monitor_port = /dev/cu.SLAB_USBtoUART
monitor_speed = 115200

Here’s the basic script/app

#include "Arduino.h"
#include "WiFi.h"

void setup()
{
    Serial.begin(115200);
    delay(100);
}

void loop()
{

    Serial.println("Start scan");
    int n = WiFi.scanNetworks();

    if (n == 0) {
        Serial.println("no networks found");
    } else {
        Serial.print(n);
        Serial.println(" networks found");
        for (int i = 0; i < n; ++i)
        {
            Serial.print(i + 1);
            Serial.print(": ");
            Serial.println(WiFi.SSID(i));
        }
    }
    
    Serial.println("Scan done");
    Serial.println("");
    delay(10000);
}

And then not sure if this is what you’re after, but here is a dump from my terminal when building/uploading/monitoring. If this is not what you were after, please point me in the right direction?

Processing esp32doit (platform: espressif32; board: esp32doit-devkit-v1; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32doit-devkit-v1.html
PLATFORM: Espressif 32 1.12.0 > DOIT ESP32 DEVKIT V1
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 3.10004.200129 (1.0.4) 
 - tool-esptoolpy 1.20600.0 (2.6.0) 
 - tool-mkspiffs 2.230.0 (2.30) 
 - toolchain-xtensa32 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 36 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <WiFi> 1.2.7
|   |-- <SPI> 1.0
Building in release mode
Compiling .pio/build/esp32doit/src/main.cpp.o
Generating partitions .pio/build/esp32doit/partitions.bin
Compiling .pio/build/esp32doit/libee0/SPI/SPI.cpp.o
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/WiFi.cpp.o
Archiving .pio/build/esp32doit/libee0/libSPI.a
Indexing .pio/build/esp32doit/libee0/libSPI.a
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/WiFiClient.cpp.o
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/WiFiServer.cpp.o
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/WiFiUdp.cpp.o
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/utility/server_drv.cpp.o
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/utility/spi_drv.cpp.o
Compiling .pio/build/esp32doit/libe59/WiFi_ID870/utility/wifi_drv.cpp.o
Archiving .pio/build/esp32doit/libFrameworkArduinoVariant.a
Indexing .pio/build/esp32doit/libFrameworkArduinoVariant.a
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp: In static member function 'static char SpiDrv::spiTransfer(char)':
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:36:78: warning: integer overflow in expression [-Woverflow]
 #define DELAY_SPI(X) { int ii=0; do { asm volatile("nop"); } while (++ii < (X*F_CPU/16000000)); }
                                                                              ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:37:26: note: in expansion of macro 'DELAY_SPI'
 #define DELAY_TRANSFER() DELAY_SPI(10)
                          ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:76:5: note: in expansion of macro 'DELAY_TRANSFER'
     DELAY_TRANSFER();
     ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp: In static member function 'static void SpiDrv::getParam(uint8_t*)':
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:36:78: warning: integer overflow in expression [-Woverflow]
 #define DELAY_SPI(X) { int ii=0; do { asm volatile("nop"); } while (++ii < (X*F_CPU/16000000)); }
                                                                              ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:37:26: note: in expansion of macro 'DELAY_SPI'
 #define DELAY_TRANSFER() DELAY_SPI(10)
                          ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:148:5: note: in expansion of macro 'DELAY_TRANSFER'
     DELAY_TRANSFER();
     ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/wifi_drv.cpp: In static member function 'static uint8_t WiFiDrv::getEncTypeNetowrks(uint8_t)':
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/wifi_drv.cpp:451:10: warning: converting to non-pointer type 'uint8_t {aka unsigned char}' from NULL [-Wconversion-null]
   return NULL;
          ^
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/wifi_drv.cpp: In static member function 'static int32_t WiFiDrv::getRSSINetoworks(uint8_t)':
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/wifi_drv.cpp:476:10: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
   return NULL;
          ^
Compiling .pio/build/esp32doit/FrameworkArduino/Esp.cpp.o
In file included from /Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.cpp:22:0:
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.h: At global scope:
/Users/mrmaddotta/.platformio/lib/WiFi_ID870/src/utility/spi_drv.h:41:13: warning: 'initialized' defined but not used [-Wunused-variable]
 static bool initialized = false;
             ^
Compiling .pio/build/esp32doit/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/HardwareSerial.cpp.o
Archiving .pio/build/esp32doit/libe59/libWiFi_ID870.a
Indexing .pio/build/esp32doit/libe59/libWiFi_ID870.a
Compiling .pio/build/esp32doit/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/IPv6Address.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/MD5Builder.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/Print.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/StreamString.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/WString.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/base64.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/cbuf.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-adc.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-bt.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-cpu.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-dac.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-gpio.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-i2c.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-ledc.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-matrix.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-misc.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-psram.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-rmt.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-sigmadelta.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-spi.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-time.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/libb64/cdecode.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/libb64/cencode.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/main.cpp.o
Compiling .pio/build/esp32doit/FrameworkArduino/stdlib_noniso.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/esp32doit/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/esp32doit/libFrameworkArduino.a
Indexing .pio/build/esp32doit/libFrameworkArduino.a
Linking .pio/build/esp32doit/firmware.elf
Retrieving maximum program size .pio/build/esp32doit/firmware.elf
Checking size .pio/build/esp32doit/firmware.elf
Building .pio/build/esp32doit/firmware.bin
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   4.8% (used 15860 bytes from 327680 bytes)
Flash: [==        ]  17.1% (used 223597 bytes from 1310720 bytes)
esptool.py v2.6
Configuring upload protocol...
AVAILABLE: esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
Looking for upload port...
Use manually specified: /dev/cu.SLAB_USBtoUART
Uploading .pio/build/esp32doit/firmware.bin
esptool.py v2.6
Serial port /dev/cu.SLAB_USBtoUART
Connecting........_____.
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: a4:cf:12:44:ce:40
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 15872 bytes to 10319...

Writing at 0x00001000... (100 %)
Wrote 15872 bytes (10319 compressed) at 0x00001000 in 0.9 seconds (effective 138.7 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...

Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 1543.3 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 7581.8 kbit/s)...
Hash of data verified.
Compressed 223712 bytes to 112297...

Writing at 0x00010000... (14 %)
Writing at 0x00014000... (28 %)
Writing at 0x00018000... (42 %)
Writing at 0x0001c000... (57 %)
Writing at 0x00020000... (71 %)
Writing at 0x00024000... (85 %)
Writing at 0x00028000... (100 %)
Wrote 223712 bytes (112297 compressed) at 0x00010000 in 9.9 seconds (effective 180.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
===================================================================== [SUCCESS] Took 42.71 seconds =====================================================================
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.SLAB_USBtoUART  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
no networks found
Scan done

Start scan
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
Start scan
no networks found
Scan done


--- exit ---

Yeah nope, there shouldn’t be an external library called WiFi being included, it should be sourced from the internal framework.

Have you installed this library globally via the PIO library manager? Then please uninstall it via the GUI.

You can also add

lib_ignore = WiFi

in the platformio.ini to force ignoring this library.

:partying_face: lol

So uninstalling the lib worked, thank you!!

Side note, adding lib_ignore = WiFi to the project config (after uninstalling globally) bonked the build.

Seeing src/main.cpp:2:18: fatal error: WiFi.h: No such file or directory

But, all is working fine if leaving it out the config.

Thank you so much for your time, it’s much appreciated!

2 Likes