I am using a RAK4631 on a RAK19007 Base. I have the Solderless OLED connected that works fine with Meshtastic, but when I try and use just a basic Hello World! script through Arduino IDE on a Mac I get nothing. I’ve tried all of the different example code and still get nothing on the screen until I flash it with Meshtastic and it works fine. Any suggestions?
Welcome to the forum @mbautsch
Do you initialize the OLED display in your code?
Do you select the correct OELD driver in your code?
Can you share your example code?
#include <Wire.h>
#include <Adafruit_SSD1306.h>
// OLED display dimensions and I2C address
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // Reset pin (-1 if sharing Arduino reset or not used)
#define OLED_ADDRESS 0x3C // I2C address of the SSD1306 display
// Initialize the SSD1306 display object using Wire1 (RAK4631’s I2C bus)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire1, OLED_RESET);
void setup() {
// Initialize I2C communication on Wire1 (SDA=13, SCL=14 for RAK4631)
Wire1.begin();
// Initialize the OLED display
if(!display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDRESS)) {
// OLED initialization failed, handle error
for(;;); // Loop forever (halt) if OLED not found
}
// Clear the buffer
display.clearDisplay();
// Set text properties
display.setTextSize(2); // Text size 2 for larger font
display.setTextColor(SSD1306_WHITE); // White color (on black background)
display.setCursor(0, 0); // Start at top-left corner
// Print “Hello World” on two lines
display.println(“Hello”);
display.println(“World”);
// Update the display with the buffer contents
display.display();
}
void loop() {
// Nothing needed here for static text display
}
I’ve tried many different variations. What I posted is just the latest.
I also tried: #include <Arduino.h>
#include <U8g2lib.h> // Click here to get the library: http://librarymanager/All#U8g2
// Initialize the SSD1306 OLED display over I2C
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);
void setup(void)
{
// Initialize the display
u8g2.begin();
}
void loop(void)
{
// Clear the display buffer
u8g2.clearBuffer();
// Set font size (adjust as needed)
u8g2.setFont(u8g2_font_ncenB14_tr); // A readable font
// Set text position (X, Y) and print "Hello World"
u8g2.drawStr(20, 40, "Hello World");
// Send the buffer to the display
u8g2.sendBuffer();
// Delay to keep text on screen
delay(1000);
}
I’ve tried many variations. Jumping ball doesn’t work.
I just tried the version from the repo and nothing. I will give up on the solderless OLED and get a soldered version and see if that’s my problem.
Solderless means you have to solder by yourself.
Did you solder wires between the Base Board and the display or did you solder the included pin headers to the Base Board and display and plugged the display in?
Solderless meaning it doesn’t require solder. The OLED is connected to an expansion board that plugs into slot A.
Great that Rokland offers this. If it doesn’t work, you might want to contact them. It is their product, not ours.