I’ve had my Postcard with its portability shield for over a year now. Lately, the shield is barely visible; it’s very dim, and sometimes a horizontal line appears at the top, cutting off the Bluetooth number and the battery indicator. This line only appears intermittently.
But the brightness seems to be at a minimum; it’s almost invisible outdoors. Is there an easy way to fix this?
Not by default…in theory you could use the set contrast command to adjust its value to 0xFF (full birghtness), but I would note that once an OLED begins to dim this would be a temporary fix (increasing brightness may also accelerate the emitters’ death/dying); this would require modifying the code
My main recommendation would be to grab a new shield :-/
If you want to try editing code, it would be something like this:
if (myOLED.begin() == false) { /* ... */ }
boostOLEDbrightness(); // Add this line right after begin()
Then add:
// Call this AFTER myOLED.begin() in setup()
void boostOLED brightness() {
uint8_t addr = 0x3D; // SparkFun Qwiic 1.3" OLED default. Try 0x3C if this fails.
// Helper lambda to send a command byte
auto sendCmd = [&](uint8_t cmd) {
Wire.beginTransmission(addr);
Wire.write(0x00); // Command stream (Co=0, D/C#=0)
Wire.write(cmd);
Wire.endTransmission();
};
// 1. Set Contrast to maximum (0xFF)
sendCmd(0x81);
sendCmd(0xFF);
// 2. Ensure charge pump is ON (required for internal HV generation)
sendCmd(0x8D);
sendCmd(0x14); // Enable charge pump
// 3. Shorten pre-charge period (0xD9) — faster charging = brighter pixels
// Default is often 0x22. Try 0x11 or 0xF1 depending on your panel.
sendCmd(0xD9);
sendCmd(0xF1);
// 4. Raise VCOMH deselect level (0xDB) — higher = brighter
// 0x00 = ~0.65Vcc, 0x20 = ~0.77Vcc, 0x30 = ~0.83Vcc
sendCmd(0xDB);
sendCmd(0x30);
}
Hi! If you are interested in modifying the code, I have a stand-alone PlatformIO project that builds RTK_Everywhere V3.3. For me, it is easier to use PlatformIO rather than the official Docker-based build process. Let me know if you are interested.
Hi Len, I appreciate your offer, but I’m short on time and programming isn’t really my strong suit. I do some minor modifications, but not right now. I think my display is dying, and I’ll see about buying another one later. When I have time to study programming a bit more, I’ll get in touch with you.
No guaranties, obviously, but this does build on my Win11 PC and my MacBook Air M4 Sequoia 15.7.5 (full compile and link in just under 60 seconds).
If you want PlatformIO to upload the binary, you will need to set upload_port in platformio.ini to the Serial-A port that your Postcard connects with. For my Mac I also needed to install CH342 serial drivers.
Excellent! I’d love to take the credit for this, but it was Claude Code that did the heavy lifting. I just nudged it in the right direction a couple of times. When I get time, I’ll point out thoise warning to Claude and see if it can clean them up.
Well, after a few days of dimming on the portability shield, now it’s completely dark. Is there any solution, or do I just have to buy another portability shield?
Thanks for your comments.
Regards, Angel
It sounds like the OLED itself has failed. The only possible repair would be to replace the OLED itself.
The quickest solution for you is to purchase a new Portability Shield. Meanwhile, please start a return. Please include a link to this conversation and say that you are returning the Shield for OLED replacement. Once we receive the Shield, we will let you know how much the repair will cost. It won’t be much; the shipping costs will probably be higher than the cost of the repair.
With some careful soldering, it is possible to replace the OLED yourself. If you have access to a University Engineering Department, perhaps they could do it for you? The OLED we use is the UG-2864KSWLG01 from WiseChip Semiconductor Inc.. But there are equivalent 1.3 inch 128x64 pixel SSD1306 displays with the same dimensions and connector pinout.
Hi Paul (@PaulZC)
Thanks so much for the comments.
I’ve decided to order another portability shield and, when I have time, I’ll look into replacing the OLED screen. Sending it to the US for repair is impossible due to the cost.
So, great.