Heltec LoRa 32 v3 library compilation errors after Arduino IDE update

Hi everyone, has anyone by chance had problems with the Heltec LoRa 32 v3 board after updating to Arduino IDE 2.3.6? I can't compile sketches that used to compile, and I get the errors below.

The memset problem can be fixed by adding the appropriate header - <String.h>.

Many Thanks for any help.

Library Heltec ESP32 Dev-Boards has been declared precompiled:
Using precompiled library in /home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/esp32s3
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx126x.c: In function 'sx126xSleep':
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx126x.c:247:5: error: implicit declaration of function 'delay'; did you mean 'Delay'? [-Wimplicit-function-declaration]
  247 |     delay( 2 );
      |     ^~~~~
      |     Delay
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx126x.c: In function 'SX126xGetPacketStatus':
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx126x.c:731:13: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
  731 |             memset( pktStatus, 0, sizeof( PacketStatus_t ) );
      |             ^~~~~~
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx126x.c:9:1: note: 'memset' is defined in header '<string.h>'; this is probably fixable by adding '#include <string.h>'
    8 | #include "esp_sleep.h"
  +++ |+#include <string.h>
    9 | /*!
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/radio/radio.c: In function 'RadioIsChannelFree':
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/radio/radio.c:572:5: error: implicit declaration of function 'delay' [-Wimplicit-function-declaration]
  572 |     delay( 1 );
      |     ^~~~~
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx1262-board.c: In function 'SX126xWaitOnBusy':
/home/fabio/Arduino/libraries/Heltec_ESP32_Dev-Boards/src/driver/sx1262-board.c:82:17: error: implicit declaration of function 'lora_printf'; did you mean 'log_printf'? [-Wimplicit-function-declaration]
   82 |                 lora_printf("spi timeout\r\n");
      |                 ^~~~~~~~~~~
      |                 log_printf
exit status 1

Compilation error: exit status 1

Major changes were made not long ago to ESP32 libraries, which broke a lot of things. You may need to roll back installed libraries, etc.

Plenty has been written about those changes, and many complaints have appeared on this forum, so do some web searching for your particular error messages. Also check whether the code you are trying to compile has been upgraded to reflect the new libraries.

1 Like

Yep agreed, Expressif have broken quite a lot of stuff with their very many recent updates to their core.

So try rolling back the Expressif core version to see it that fixes the problem.

Or ask Heltec what the problem is with their library, or raise the issue with Expressif.

Also there is no real need to use the Heltec library, other LoRa libraies will work with that board.

See here for more info;

https://forum.arduino.cc/t/heltec-lora-32-v3-2-receive-a-structure-variable-w-heltec-unofficial-library/1374625

Ok went right back to the beginning, no boards and libraries installed.
Then followed the guide at Heltec ESP32 Series Quick Start — esp32 latest documentation
Then selected the OLED --> SimpleDemo example and the WiFi LoRa 32(V3) board
The example builds, uploads and runs

Thank you for all the replies received.