Version bump to espressif@6.1.0 breaks OMG on lolin32

I tried the most recent git with the version bump to espressif@6.1.0 from pull request [SYS] Bump ESP32 platform to v6.1.0 and ESP8266 to v4.1.0 by 1technophile · Pull Request #1547 · 1technophile/OpenMQTTGateway · GitHub.

I use a Lolin32 board with a built-in 0.96 inch SSD1306 OLED display. The OLED display is not supported on this board by OMG, so we ignore it for now.

OMG has worked fine with this board in the past. However, if I bump the version of espressif to 6.1.0 I get a countless number of this error message in the serial log: gpio: gpio_set_level(226): GPIO output gpio_num error

Steps to reproduce. Environment:

[env:esp32-lolin32]                                                                                                                                                                                                                          
platform = espressif32@3.5.0                                                                                                                                                                                                                 
;platform = ${com.esp32_platform}                                                                                                                                                                                                            
board = lolin32                                                                                                                                                                                                                              
board_build.partitions = min_spiffs.csv                                                                                                                                                                                                      
lib_deps =                                                                                                                                                                                                                                   
  ${com-esp.lib_deps}                                                                                                                                                                                                                        
  ${libraries.wifimanager32}                                                                                                                                                                                                                 
  ${libraries.ble}                                                                                                                                                                                                                           
  ${libraries.decoder}                                                                                                                                                                                                                       
build_flags =                                                                                                                                                                                                                                
  ${com-esp.build_flags}                                                                                                                                                                                                                     
  '-DZgatewayBT="BT"'                                                                                                                                                                                                                        
  '-DGateway_Name="OpenMQTTGateway_LOLIN32"'                                                                                                                                                                                                 
custom_hardware = LOLIN 32

The environment definition as given works fine. I believe that espressif@3.5.0 is the baseline of the pull request.

Changing to platform = espressif32@4.0.0, @4.1.0, @4.2.0 works fine. From @4.3.0 I get walls of the same error message, example:

N: ************** Setup OpenMQTTGateway end **************
E (6793) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6794) gpio: gpio_set_level(226): GPIO output gpio_num error
W: MQTT connection...
N: Connected to broker
E (6875) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6879) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6881) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6884) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6891) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6896) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6901) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6909) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6913) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6918) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6926) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6952) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6956) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6961) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6964) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6968) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6972) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6994) gpio: gpio_set_level(226): GPIO output gpio_num error
E (6998) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7012) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7013) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7015) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7019) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7024) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7030) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7035) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7042) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7048) gpio: gpio_set_level(226): GPIO output gpio_num error
E (7056) gpio: gpio_set_level(226): GPIO output gpio_num error

I tried bumping espressif to 5.3.0 and 6.1.0, the same problem persists.

This is due to an out if range GPIO definition. Work in progress below

@1technophile The branch bump-esp-platform now works again on the lolin32 board

Too minor things I noticed in the log. They are probably unrelated to the environment bump. We can discuss them elsewhere if you prefer.

N: Update checkN: Scan begin
N: Device detected: XX
N: Device detected: XX
N: Device detected: XX
N: Device detected: XX
N: Device detected: XX
E: Deserialize MQTT data failed: InvalidInput
N: Send on /RLStoMQTT msg {"latest_version":"v1.4.0","title":"OpenMQTTGateway","release_url":"https://github.com/1technophile/OpenMQTTGateway/releases/tag/v1.4.0","installed_version":"
version_tag","entity_picture":"https://github.com/1technophile/OpenMQTTGateway/raw/development/docs/img/Openmqttgateway_logo_mini_margins.png","release_summary":""}
N: Send on /BTtoMQTT/XXX msg {"id":"XXX","name":"Tacx Neo 2T 12479","rssi":-93}

The first line misses a \n. That is purely a cosmetic issue. Then there is the de-serialization error, third line from the bottom. I don’t know if it indicates an actual problem or is also just cosmetic.

  • Is it related to the mqtt message that is shown right after?
  • Do you see anything odd about this message?

Thanks :slight_smile:

1 Like

Oh yes. One more little thing, this is also a copy and paste from the log, except for anonymizing the MAC addresses. Two message are intersecting each other:

N: Device detNected: : AA:BB:CC:DD:EE:FFFound 
25 devices, scan number 3 Nend
: Device detected: XX:YY:DD:AA:DD:AA

This is due to the fact that we are running several tasks at the same time with each having logging.
We don’t have a queue for login.

Maybe linked to the 2 tasks sharing the same serial also

Need to check why we are having this

Thanks , should be fixed with [OTA] Fix invalid json by 1technophile · Pull Request #1568 · 1technophile/OpenMQTTGateway · GitHub

It looks good now. Both the version bump to 6.1.0 and the deserialization error seem fine.

1 Like

I think I found it. :slight_smile: Proposed change:

diff --git a/main/main.ino b/main/main.ino
index d9ff4da1..b9e239a7 100644
--- a/main/main.ino
+++ b/main/main.ino
@@ -2113,7 +2113,7 @@ String latestVersion;
  * Only available for ESP32
  */
 bool checkForUpdates() {
-  Log.notice(F("Update check"));
+  Log.notice(F("Update check" CR));
   HTTPClient http;
   http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
   http.begin(OTA_JSON_URL, OTAserver_cert);
1 Like