OLED display eventually freeze
It's been few months that I'm trying to make my NHD-3.12-25664UCW2 works properly.
Basically it's works great, but after an unspecified amount of time, it freezes.
It's wired as 4-SPI.
I've tested 3 different setup :
1. Adafruit FTDP chip + python lib luma.oled (on Windows)
2. Arduino Nano V3 + u8g2 or u8x8
3. Raspbery Pi Zero + python lib luma.oled (on Raspbian)
Each time it's the same issue : OLED display works very well, but at some point it freeze (usually last displayed screen), while program still running normaly.
Just restarting the program usually doesn't work, display stays frozen.
But if I unplug the screen for a moment (event while program still runs), and plug it again, it start working again, but only for a short period of time. That time seems proportionnal to the time beeing power-off though.
Because it probably doesn't come from the software (same issue on different software stack), I don't provide any code here.
I've search the web a lot, found some persons with a similar issue (link1, link2, link3, link4, link5), but never with a solution.
Any idea how to resolve this please ?
Thanks :)
-
Hello Nicolas,
Thank you for your interest in Newhaven Displays!
I'm sorry you are experiencing this frustrating issue. I will look into the links you provided.
- Can you provide your Arduino Nano V3 interfacing circuit diagram or a photo of your setup?
- Would it be possible for you to capture this issue on video? If so, please send the video to nhtech@newhavendisplay.com.
- Please verify you are running a clean power line to your display with common ground to the rest of the interfacing circuit.
- Does the display recover with a hardware reset followed by the initialization sequence?
If you have any questions, don't hesitate to ask.
Best Regards,
Cody J
0 -
Hello Cody,
Thank you for your answer.
I did not provide any code or pictures of my setup because I've tested 4 différents boards (I've just tested the Adafruit QT Py RP2040 yesterday, same issue), so is unlikly comming from that.
In doudt, here is a picture of my latest test :
2. It would be quite hard to make a video because it's working for few hours, and then just freeze, as explained.
3. How can I check that ?
4. As explained above, juste restarting the program (and so the init sequence) does not help (please see details in my first post). Or maybe I miss-understood your question ?
Thanks !0 -
Nicolas,
Thank you for providing a photo of your setup.
You can check your power line by probing it with an oscilloscope and looking for noise on the waveform.
Restarting the host program may not perform a hardware reset. By a hardware reset, I mean the host toggles the /RST pin. Please verify if your initialization sequence toggles the /RST pin. (similar to our example code)
After talking with one of our quality engineers about your issue, I have a couple more questions:
- Does the display stop on the same screen every time?
- What is your interface clock speed?
If you have any questions, don't hesitate to ask.
Best Regards,
Cody J
0 -
Unfortunately I don't have that equipment.
Again, because I've tried several famous library, I really doubt the issue come from the code.
Again, because it stops at an unspecified amount of time, and because I've tried several different programs, no, it doesn't stops at the same screen.
I don't know about the speed, I've kept default recommend value for the SSD1322 controller.
Any advices?
Thanks.0 -
Nicolas,
I would recommend verifying your SPI bus clock speed is at or below 10MHz. (the maximum SPI clock speed for SSD1322) This was the same suggestion we made in a previous forum post.
As a test, you could try using our NHD-3.12-25664UC example code. Keep in mind you will need to modify the pin assignments for your board and add 50ms delays in the data() and command() functions if your host board is faster than an Arduino Uno or Mega.
If you have any questions, don't hesitate to ask.
Best Regards,
Cody J
0 -
I finally bought another oled screen (same size, same controller, another brand).
I've tested it on the QT Py RP2040, and it works perfectly well, even for hours (with same code).
So it definitely was a hardware default.
I lost so much time on that... But I also learn a lot!Now I can complete my project.
Thanks0
Please sign in to leave a comment.
Comments
6 comments