I have recently acquired two Heltec WiFi LoRa 32 (V3.1) Boards and I’m just trying to get them to work. I am using the Arduino IDE 2.3.2 and I’ve downloaded the “Heltec ESP32 Series Dev-boards” v3.0.0 board package. Now there are multiple Problems:
-The OLED Display appears to not be working anymore / never has been.
After plugging in the board with it’s factory settings everything worked fine… the OLED turned on and displayed a short startup sequence with the Heltec logo and so on.
Then I tried uploading my own sketch with the Adafruit_SSD1306 library and the Display didn’t even bother showing any signs of life. I’ve tried scanning for the i2c connection with another sketch… turning “Vext” to LOW and HIGH… using other absurd pins ChatGPT gave me… but nothing seems to work.
-Another issue with the entire concept of the v3 is that there is little to no proper documentation. I haven’t yet found out with what sketch the boards come out of the factory… the pinout is dramatically worse than the one from V2, showing no actual pin descriptions just seemingly random letters… Many links to schematics and other resources don’t work… the schematic and so on.
-Another thing about the schematic: what are the x’s behind pins 29-25 supposed to mean? Are they just not connected or are they used in a different part of the board and yes then why are they not named properly?!?!
The sketch I’ve uploaded should turn on the build-in white LED (which so far is the only thing I’ve managed to achieve), then print Hello World on the OLED and in the loop cycle through the (apparently) remaining 13 pins and powering them on and of again.
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
int pins[] = {2, 3, 4, 5, 6, 7, 19, 20, 33, 34, 38, 45, 46};
Adafruit_SSD1306 display(128, 64, &Wire1, 21);
void setup() {
Serial.begin(115200);
Wire1.begin(17, 18);
//Light on
pinMode(35, OUTPUT);
digitalWrite(35, HIGH);
//Vext ON
pinMode(36, OUTPUT);
digitalWrite(36, LOW);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)){
Serial.println(“SSD1306 init. failed!”);
while(1);
}
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0,0);
display.print(“Hello World”);
Serial.println(“It should have Printed hello world by now”);
display.display();
pinMode(pins[0], OUTPUT);
digitalWrite(pins[0], HIGH);
while(!Serial.available());
digitalWrite(pins[0], LOW);
Serial.println(“Continuing…”);
pinMode(pins[1], OUTPUT);
pinMode(pins[2], OUTPUT);
pinMode(pins[3], OUTPUT);
pinMode(pins[4], OUTPUT);
pinMode(pins[5], OUTPUT);
pinMode(pins[6], OUTPUT);
pinMode(pins[7], OUTPUT);
pinMode(pins[8], OUTPUT);
pinMode(pins[9], OUTPUT);
pinMode(pins[10], OUTPUT);
pinMode(pins[11], OUTPUT);
pinMode(pins[12], OUTPUT);
/for(int i = 0; i < 12; i++){
pinMode(pins[i], OUTPUT);
}/
}
void loop() {
for(int i = 0; i < 12; i++){
display.clearDisplay();
display.setTextSize(2);
display.setCursor(0,0);
display.print(pins[i]);
display.display();
digitalWrite(pins[i], HIGH);
delay(1000);
digitalWrite(pins[i], LOW);
delay(1000);
digitalWrite(pins[i], HIGH);
delay(1000);
digitalWrite(pins[i], LOW);
delay(1000);
}
}
Please help it is very late and the only thing I can think of right now is:
“Heltec… more like HellTec” because this hardware can only come from the depths of hell.