OLED/Pixel Wierdness

Hey all! I’ve had a few issues with my OLED screen in my build that have now been fixed, but I have a new problem. More often than not the OLED turns on and functions as expected, however, sometimes the screen either doesn’t turn on or displays static, where random pixels are white and random ones are black. Usually this can be fixed by taking out the battery and putting it back in. I previously had some issues with this saber that I had fixed by an installer, but this only started after he fixed it. He said he noticed it as well, but neither of us could figure out why it happens. I also noticed that my crystal chamber pixel will function as intended until the kill switch is flipped - once it’s turned off it glows a very dim pink and stays on until the kill switch is flipped on and then off again fairly quickly. I have it (and a button pixel) wired to data1 and the LED4 pad with #define SHARED_POWER_PINS in my config file.

Usually the answer to glowing pixels is to add a resistor on the data line.

The OLED screen problem is trickier though. Having random pixels show up is not normal, and it’s also not a common problem, so I’m not sure exactly what’s causing it.

Where is the OLED + and - wired to?

@profezzorn Negative is to the ground pin, positive is to the sdpower pin. And for the accent pixel, doesn’t data1 have resistance on that line?

That seems fairly normal.

Is there a specific time when this random pixel problem occurs?

Ultimately, it seems fairly likely that there is something wrong, either with the screen, or the connection to the screen. Both of which could be fixed by replacing the screen.

My apologies, I missed that part. (yes, it has a resistor)
Could you try adding #define ENABLE_DEVELOPER_COMMANDS to your config file, compile and upload, then when the gloing pixel problem occur, run the command blade state in the serial monitor to see what it says?

@profezzorn So I can only get that to happen when I flip off the kill switch. Im not entirely sure how I could get it to happen when the board has power.

I suppose it could be a timing thing then… Let me see…

Does it work better if you add a SLEEP(1000); or something here:

@profezzorn Whoops, sorry about that. I was talking about the pixel, not the screen. The screen does that at random.

If the screen does this at random, it almost has to be a hardware problem of some sort, because it seems to work well for most people. I’m not sure if it’s a problem with the screen itself or the wiring though.

As for the pixel: I’m guessing that your kill switch is hooked between BATT+ and battery positive? If so, maybe hook up the positive of this pixel to BATT+ (I’m guessing it’s currently hooked up to battery positive?)

@profezzorn He said he rewired it multiple times, so I’d assume it’s probably a broken screen. As for the pixel, I’m not sure how soon I’ll get around to trying that, he glued the board down with E6000 so it’s going to be a pain to get in there.