Postcard Portability Shield: Display Brightness Issue

Postcard Portability Shield: Display Brightness Issue

Hi @sparky and @PaulZC

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?

Regards, Angel

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);
}

Angel,

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.

Len

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.

Regards, Angel

@LenS , If the offer stands - I would love the PlatformIO project. That suits me way better than the Docker process.

Try this:https://struttfolk.com/SparkFun/RTK_Everywhere_PIO.zip

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.

Good luck, let me know if it works.

Len

Holy Smokes…
I pointed VS Code to the \RTK_PIO folder and the build completed on the first swing.

As a total rookie, that was not at all what I was expecting :slight_smile:

Only 3 little problems showing on the first try.

Thank You for sharing this @LenS !

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.

I got all brave and flashed a PostCard… No smoke and it worked !
RTK Fixed solution soon after :wink:

Thanks Again Len !

Great! Please be aware that:

  1. This build is NOT supported by the fine folk at SparkFun. This is outside of their control or interest.
  2. It does not support OTA (Over The Air) updates.
  3. It does not include the SparkFun_Apple_Accessory.h library.

Enjoy! Len

Hi everyone
Hi @Sparky and @PaulZC

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

Hi Angel (@amlago ),

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.

Very best wishes,
Paul

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.

Regards, Angel