Skip to content

Unauthorized Serial0 access (unwanted WiFi debug message output) with Core Debug Level "None" #11842

@leifclaesson

Description

@leifclaesson

Board

Any ESP32-WROOM32 (not hardware dependent)

Device Description

Any ESP32-WROOM32 (not hardware dependent)

Hardware Configuration

No

Version

v3.3.0

Type

Bug

IDE Name

Normally Sloeber but I reproduced this issue with Arduino IDE before submission

Operating System

Windows 10

Flash frequency

40MHz

PSRAM enabled

no

Upload speed

921600

Description

I am using Serial0 for my own purposes (even reassigned pins), and noticed that with Arduino Core 3.2.0 and 3.3.0, the ESP-IDF is posting unwanted debug messages to Serial0 with Core Debug Level: None. This does not happen in ESP32 Arduino core 2.x.x and 1.x.x

Example messages:
E (4629) wifi:sta is connecting, return error
E (45438) ledc: ledc_set_duty(1062): channel argument is invalid

I did a binary search for the first message and found the string in libnet80211.a
The bug is that these message are printed even though Core Debug Level is NONE.
In my sloeber project, I am compiling with NO_GLOBAL_SERIAL and creating my own HardwareSerial object, but the debug message still appears, which constitutes unauthorized and unwanted hardware access -- I am using the port for my own purposes and the OS must not output messages.

To reproduce, run the sketch below in the Arduino IDE with any classic ESP32, with core debug level set to None.

Sketch

#include <WiFi.h>

void setup() {
  Serial.begin(115200);
  // We start by connecting to a WiFi network

  Serial.println("This message is OK. There should be only dots after this, no error messages.");

  WiFi.begin("invalidnetwork", "invalidpassword");

  delay(100);

  //The next WiFi.begin line will cause Arduino Core 3.2.0 and 3.3.0 ESP-IDF
  //to print an error message to UART 0 even with CORE DEBUG LEVEL NONE
  WiFi.begin("invalidnetwork", "invalidpassword");

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

}

void loop()
{
}

Debug Message

Even though Core Debug Level = None, this message can appear:

E (4629) wifi:sta is connecting, return error
E (45438) ledc: ledc_set_duty(1062): channel argument is invalid

The first message exists in the libnet80211.a precompiled binary.
It seems that multiple things are _not_ obeying the Core Debug Level.

Other Steps to Reproduce

No response

I have checked existing issues, online documentation and the Troubleshooting Guide

  • I confirm I have checked existing issues, online documentation and Troubleshooting guide.

Metadata

Metadata

Assignees

Labels

Status: SolvedThe issue has been resolved and requires no further action.Type: QuestionOnly question

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions