Class Heltec_ESP32 has no member named display

Hello there I seem to be having a similar issue to this one : Wifi kit 32 V3 display 'class Heltec_ESP32' has no member named 'display'

I have 2 of “Wifi LoRa 32 V3” boards : https://heltec.org/project/wifi-lora-32-v3/

I used the following board URL:
https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.8/package_heltec_esp32_index.json

And I have the Heltec ESP32 Dev-Boards Library (v1.1.1) installed

I’m simply trying to run the WiFi_LoRa_32_FactoryTest.ino file

Using both Arduino v1.8 and 2.1.2 on Debian 11 I have run into the problem of the following error :

/tmp/.arduinoIDE-unsaved2023721-19077-u0fsa5.hhf4/WiFi_LoRa_32FactoryTest/WiFi_LoRa_32FactoryTest.ino:233:12: error: 'class Heltec_ESP32' has no member named 'display'
     Heltec.display -> drawString(0, 20, "With " + rssi + "db");
            ^~~~~~~
/tmp/.arduinoIDE-unsaved2023721-19077-u0fsa5.hhf4/WiFi_LoRa_32FactoryTest/WiFi_LoRa_32FactoryTest.ino:234:12: error: 'class Heltec_ESP32' has no member named 'display'
     Heltec.display -> display();
            ^~~~~~~
/tmp/.arduinoIDE-unsaved2023721-19077-u0fsa5.hhf4/WiFi_LoRa_32FactoryTest/WiFi_LoRa_32FactoryTest.ino:236:12: error: 'class Heltec_ESP32' has no member named 'display'
     Heltec.display -> clear();
            ^~~~~~~
/tmp/.arduinoIDE-unsaved2023721-19077-u0fsa5.hhf4/WiFi_LoRa_32FactoryTest/WiFi_LoRa_32FactoryTest.ino: In function 'void onReceive(int)':
/tmp/.arduinoIDE-unsaved2023721-19077-u0fsa5.hhf4/WiFi_LoRa_32FactoryTest/WiFi_LoRa_32FactoryTest.ino:245:12: error: 'LoRa' was not declared in this scope
     while (LoRa.available())
            ^~~~
/tmp/.arduinoIDE-unsaved2023721-19077-u0fsa5.hhf4/WiFi_LoRa_32FactoryTest/WiFi_LoRa_32FactoryTest.ino:251:30: error: 'LoRa' was not declared in this scope
     rssi = "RSSI: " + String(LoRa.packetRssi(), DEC);
                              ^~~~
Multiple libraries were found for "heltec.h"
  Used: /home/eddie/Arduino/libraries/Heltec_ESP32_Dev-Boards
  Not used: /home/eddie/Arduino/libraries/Heltec_ESP8266_Dev-Boards
  Not used: /home/eddie/.arduino15/packages/Heltec-esp32/hardware/esp32/0.0.8/libraries/Heltec-Example
exit status 1

Compilation error: 'class Heltec_ESP32' has no member named 'display'

To make matters worse, if I run the “GetChipID.ino” sketch in the ESP32 directory I get this error

python3: can’t open file ‘/home/eddie/.arduino15/packages/Heltec-esp32/hardware/esp32/0.0.8/tools/esptool/esptool.py’: [Errno 2] No such file or directory

exit status 2

Compilation error: exit status 2

I tried the older : https://github.com/Heltec-Aaron-Lee/WiFi_Kit_series/releases/download/0.0.7/package_heltec_esp32_index.json

That failed too.

This is my first use with Heltec products, and I have to say, it’s not a good start.

I even used the instructions noted here :
https://docs.heltec.org/en/node/esp32/quick_start.html#via-arduino-board-manager

And same errors on both versions of the Arduino IDE

Regarding the esptool.py issue :

For some reason my build, Debian 11, Arduino IDE 2.1.2, with 0.0.8 JSON file, my setup did not create a directory called “esptool” in my “/home/eddie/.arduino15/packages/Heltec-esp32/hardware/esp32/0.0.8/tools/” directory, I created it manually…and then I moved some of the files around until the Arduino IDE stopped complaining about missing files.

In the Arduino IDE, (version 2.1.2) … if I click on “File” and then “Examples” …there is just a huge list of new options after installed the Heltec Library. at the very bottom separated by a dividing line is the “Examples for Custom Libraries” group… I have 2 items :

Heltec ESP32 Dev-Boards
Heltec ESP8266 Dev-Boards

If I try the “WiFi_LoRa_32FactoryTest” sketch from the “Heltec ESP32 Dev-Boards” custom library entry it fails with the error :

`Compilation error: 'class Heltec_ESP32' has no member named 'display'`

but… if I navigate to “Heltec-Example” then go into the “Factory_Test” folder and run the “WiFi_LoRa_32_V3_FactoryTest” from there it compiles and runs no problem.

There are clearly 2 versions of the “WiFi_LoRa_32FactoryTest” that you guys are pushing out…and one is a problem… neither of them are versioned in the initial 23 lines of documentation comments.

For those who need further help identifying … the bad file will show :

    void logo(){
       Heltec.display -> clear();
       Heltec.display -> drawXbm(0,5,logo_width,logo_height,(const unsigned char *)logo_bits);
       Heltec.display -> display();
    }

Between line 45 through 49

The good file will show :

SSD1306Wire  factory_display(0x3c, 500000, SDA_OLED, SCL_OLED, GEOMETRY_128_64, RST_OLED); // addr , freq , i2c group , resolution , rst


void logo(){
	factory_display.clear();
	factory_display.drawXbm(0,5,logo_width,logo_height,(const unsigned char *)logo_bits);
	factory_display.display();
}

from line 145 through 152

As for the “esptool” file directory issue, …while I was able to achieve a successful upload of the factor test sketch I’m not entirely certain what other issues I’ll have in the future, (with other test sketches) that potentially use other resources that are not in the directory they are supposed to be, I can only hope that the Arduino IDE will prompt me telling me that some file is missing, that I might have to move manually again.

The other issue that came up, that some of you may face. I put together a dedicated computer for the hardware design work I’m doing, and because it’s a recent build it was missing some things, one of which was PySerial. After moving the files around in the “esptool” directory I got hit with the “no module named serial” message from Python. So, I had to install it via pip3 after installing pip.

sudo apt install python3-pip

pip3 install pyserial

As for now I think I’m okay, because I can at least run on test sketch again… time will tell.

From my prospective, there needs to be some serious cleaning going on with file structures, file versions, and perhaps even naming conventions. I understand we are all on a deadline to get products out, but common.

1 Like