Upload works but serial doesn't output anything on ESP32

Hello everyone,

I’d like to switch from Arduino IDE to PlatformIO because the program I’m writing is getting more and more complex and the advanced features of this platform would come in handy.

I started out with the basic LED blinking app and everything worked fine. Upload was successful, Serial showed the messages. My platformio.ini file was the exact same I copied down below except for the lib_deps part.

Then I created a new project, copied my code, added the required dependencies to the .ini file and my Serial stopped working.

Here’s my platformio.ini file:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
upload_port = /dev/cu.SLAB_USBtoUART
monitor_port = /dev/cu.SLAB_USBtoUART
lib_deps =
  arduinogetstarted/ezButton @ ^1.0.4
  adafruit/RTClib @ ^2.1.1
  SPI

I’m on a MacBook and the SiLabs USB drivers are installed to make the Arduino IDE work.

pio device list --serial

outputs

/dev/cu.Bluetooth-Incoming-Port
-------------------------------
Hardware ID: n/a
Description: n/a

/dev/cu.usbserial-0001
----------------------
Hardware ID: USB VID:PID=10C4:EA60 SER=0001 LOCATION=1-1
Description: CP2102 USB to UART Bridge Controller

/dev/cu.SLAB_USBtoUART
----------------------
Hardware ID: USB VID:PID=10C4:EA60 SER=0001 LOCATION=1-1
Description: CP2102 USB to UART Bridge Controller

If I don’t specify the upload port, then it finds the /dev/cu.usbserial-0001, which didn’t work on Arduino IDE.
Here is the output of the upload:

 *  Executing task in folder chicken-coop-door: platformio run --target upload 

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (6.3.2) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, 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.20009.0 (2.0.9) 
 - tool-esptoolpy @ 1.40501.0 (4.5.1) 
 - tool-mkfatfs @ 2.0.1 
 - tool-mklittlefs @ 1.203.210628 (2.3) 
 - tool-mkspiffs @ 2.230.0 (2.30) 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 36 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ezButton @ 1.0.4
|-- RTClib @ 2.1.1
|-- SPI @ 2.0.0
|-- BluetoothSerial @ 2.0.0
|-- WiFi @ 2.0.0
Building in release mode
Retrieving maximum program size .pio/build/esp32dev/firmware.elf
Checking size .pio/build/esp32dev/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]   7.0% (used 22912 bytes from 327680 bytes)
Flash: [===       ]  25.9% (used 338845 bytes from 1310720 bytes)
Configuring upload protocol...
AVAILABLE: cmsis-dap, esp-bridge, 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...
Using manually specified: /dev/cu.SLAB_USBtoUART
Uploading .pio/build/esp32dev/firmware.bin
esptool.py v4.5.1
Serial port /dev/cu.SLAB_USBtoUART
Connecting.....
Chip is ESP32-D0WDQ6 (revision v1.0)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:67:b2:3c:a8:d0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00010000 to 0x00062fff...
Compressed 17488 bytes to 12168...
Writing at 0x00001000... (100 %)
Wrote 17488 bytes (12168 compressed) at 0x00001000 in 0.6 seconds (effective 237.1 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 146...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.1 seconds (effective 225.7 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.2 seconds (effective 404.5 kbit/s)...
Hash of data verified.
Compressed 339344 bytes to 181764...
Writing at 0x00010000... (8 %)
Writing at 0x0001be60... (16 %)
Writing at 0x0002828e... (25 %)
Writing at 0x0002d5c9... (33 %)
Writing at 0x00033de8... (41 %)
Writing at 0x0003c0d6... (50 %)
Writing at 0x00041852... (58 %)
Writing at 0x00046e9b... (66 %)
Writing at 0x0004c1cd... (75 %)
Writing at 0x000542e5... (83 %)
Writing at 0x0005cbc3... (91 %)
Writing at 0x000623e7... (100 %)
Wrote 339344 bytes (181764 compressed) at 0x00010000 in 4.8 seconds (effective 567.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
===================================================================== [SUCCESS] Took 11.02 seconds =====================================================================
 *  Terminal will be reused by tasks, press any key to close it. 

After the upload, the Serial outputs this:

 *  Executing task in folder chicken-coop-door: platformio device monitor 

--- Terminal on /dev/cu.SLAB_USBtoUART | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x1��5
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13192
load:0x40080400,len:3028
entry 0x400805e4

How can make the Serial work?

UPDATE: Seems like a dependency problem… I added this to my ini file for the LED blinking project, which didn’t have any dependencies:

lib_deps = 
	arduinogetstarted/ezButton @ ^1.0.4
	adafruit/RTClib@^2.1.1

and I get this:

 *  Executing task: platformio run 

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (6.3.2) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, 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.20009.0 (2.0.9) 
 - tool-esptoolpy @ 1.40501.0 (4.5.1) 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 36 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ezButton @ 1.0.4
|-- RTClib @ 2.1.1
Building in release mode
Compiling .pio/build/esp32dev/src/main.cpp.o
Building .pio/build/esp32dev/bootloader.bin
Generating partitions .pio/build/esp32dev/partitions.bin
Compiling .pio/build/esp32dev/lib114/ezButton/ezButton.cpp.o
esptool.py v4.5.1
Creating esp32 image...
Merged 1 ELF section
Successfully created esp32 image.
Compiling .pio/build/esp32dev/liba1f/RTClib/RTC_DS1307.cpp.o
Compiling .pio/build/esp32dev/liba1f/RTClib/RTC_DS3231.cpp.o
Compiling .pio/build/esp32dev/liba1f/RTClib/RTC_Micros.cpp.o
Compiling .pio/build/esp32dev/liba1f/RTClib/RTC_Millis.cpp.o
Compiling .pio/build/esp32dev/liba1f/RTClib/RTC_PCF8523.cpp.o
Compiling .pio/build/esp32dev/liba1f/RTClib/RTC_PCF8563.cpp.o
Compiling .pio/build/esp32dev/liba1f/RTClib/RTClib.cpp.o
In file included from .pio/libdeps/esp32dev/RTClib/src/RTC_DS1307.cpp:1:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from .pio/libdeps/esp32dev/RTClib/src/RTC_DS3231.cpp:1:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/liba1f/RTClib/RTC_DS1307.cpp.o] Error 1
*** [.pio/build/esp32dev/liba1f/RTClib/RTC_DS3231.cpp.o] Error 1
Compiling .pio/build/esp32dev/FrameworkArduino/Esp.cpp.o
In file included from .pio/libdeps/esp32dev/RTClib/src/RTC_Micros.cpp:1:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/liba1f/RTClib/RTC_Micros.cpp.o] Error 1
In file included from .pio/libdeps/esp32dev/RTClib/src/RTC_Millis.cpp:1:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/liba1f/RTClib/RTC_Millis.cpp.o] Error 1
In file included from .pio/libdeps/esp32dev/RTClib/src/RTC_PCF8523.cpp:1:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/liba1f/RTClib/RTC_PCF8523.cpp.o] Error 1
In file included from .pio/libdeps/esp32dev/RTClib/src/RTClib.cpp:46:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/liba1f/RTClib/RTClib.cpp.o] Error 1
In file included from .pio/libdeps/esp32dev/RTClib/src/RTC_PCF8563.cpp:1:
.pio/libdeps/esp32dev/RTClib/src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory

****************************************************************************
* Looking for Adafruit_I2CDevice.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:Adafruit_I2CDevice.h"
* Web  > https://registry.platformio.org/search?q=header:Adafruit_I2CDevice.h
*
****************************************************************************

 #include <Adafruit_I2CDevice.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/esp32dev/liba1f/RTClib/RTC_PCF8563.cpp.o] Error 1
====================================================================== [FAILED] Took 1.18 seconds ======================================================================

 *  The terminal process "platformio 'run'" terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it.