Trouble Illuminating all pixels on NHD-0420CW-AW3
Hello,
I'm having my display turn off when trying to illuminate the entire screen, but only sometimes. I'm communicating over i2c with 3.3V supplied to the screen via an 3.3V power supply which can provide up to 500 mA.
I have 16 buttons hooked up to my microcontroller, each programmed to fill 1/16 of the screen with all pixels in that section illuminated; imagine the screen is divided into a 4x4 grid. I want to press all 16 buttons in a random sequence and have the entire screen illuminated, but sometimes the screen shuts off after only some of the sections of the screen have been illuminated. I can sometimes get the entire screen lit if I illuminate all cells in the first 3 columns, then fill in the last column. Other times, however, I can crash the screen if I activate only 3 cells in a row.
Resetting the microcontroller brings life back to the screen, resets the button pressing progress, and lets me try again. The behavior of what works and what doesn't is extremely inconsistent and occurs on multiple display units. What's going on here?
-
When I configure my code to simply illuminate all pixels upon device startup, the screen lights up about once every 10 resets. The other times, it looks like it draws about 1 line of pixels, then shuts off.
0 -
Hi Timothy,
What microcontroller are you using for this project? You will need to use a microcontroller with 3.3V logic levels, rather than 5V. Can you also confirm if your data and clock signals are connected to pull-up resistors?
Additionally, you will need to disable the internal VDD regulator in your initialization code. Please include the following in your initialization code:
command(0x2A); //enter extended command set
command(0x71); //enter function selection A
data(0x00); //disable internal VDD regulator0 -
I'm using a nRF9160 microcontroller on Zephyr. It does use 3.3V logic, and the i2c lines are pulled up through resistors. The internal VDD regulator is already disabled in my code.
In all other use cases, this screen works fine. I can fill the screen with any text I want, perfectly reliable. It's just when trying to fill the screen with full pixel blocks that I run into this issue.
0 -
Hi Timothy,
The display will draw the highest amount of current when all pixels are set to on. Are you able to swap the power supply with one rated for 1A? 500mA should be enough, even with all pixels on; however, power supplies may lose their ability to provide the rated current as they age.
0 -
I hooked up to a 1A power supply, no change in behavior; I even tried allowing up to 1.5 A.
0 -
Hi Timothy,
You stated that you can fill the screen with any text you want without issue. Can you try filling the screen with hex value 0x1F from the ROM A font table? This is a solid block. Does the display still malfunction in this case?
0 -
Yes, I tried the solid block. That's how I noticed this trouble in the first place.
0 -
Hi Timothy,
I have replicated your setup with I2C communication on NHD-0420CW-AW3, but I can't seem to recreate the issue you are seeing. Can you please refer to our example code https://support.newhavendisplay.com/hc/en-us/articles/4413876825111-NHD-0216CW-0220CW-0420CW-with-Arduino and check for any differences between your code and ours? In the example code, the blocks() function fills the screen with solid blocks.
0
Please sign in to leave a comment.
Comments
8 comments