NHD-0420DZW-AY5 Rev1B not working the same as Rev1A
Hello,
I've been using the NHD-0420DZW-AY5 OLED with my ATmega328P (the Arduino Uno chip) projects for the past 9 years with great success. I really like this display. However, after installing my most recently purchased one, I am getting just a bunch of junk characters all over the screen. I noticed that it had a slightly different front than the previous ones that I've used - it has 2 crimped holes in the trim on either side of the screen - not a big deal, it shows those holes on the latest datasheet as well. Looking further, I saw the sticker on the back say "NHD-0420DZW-AY5_Rev1B". On the latest datasheet, in the revision history, I see for Revision 15 made on 2/25/21: "Part Revision Upgraded from Rev1A to Rev1B". So I'm now thinking that there's something about Rev1B that is messing with my project. I swapped out the new OLED with an older one (one without Rev 1B on the sticker, and without the holes in the trim) just to confirm it wasn't my project, and it worked as it should.
So my question: what changed from Rev1A to Rev1B that could be affecting my project?
I can give more details, but I thought I'd start with the basics to see if an obvious answer pops up. In my initial design with this OLED 9 years ago, I did have to include a PNP transistor on the power to force a delayed power-up of the display because I was getting some garbage, especially if I toggled the power on and off quickly. So I know that's a thing, and I haven't had a single issue with that since.
Any thoughts or input would be appreciated.
Thanks,
Don
-
Hi Don,
Please note that there was a engineering change to this product. Please see our ECN here for more information. What interface communication are you using? I wonder if your initialization is causing power up issues.
0 -
Sorry for the delayed response. The problem is solved! I was just about to respond with how I'm using the 4-bit parallel interface with the Adafruit_CharacterOLED library for the Arduino, and I went to get a link to that library, and I noticed there was a newer version of it available. So I tried it, and it worked! There is an extra argument to the init() function for the hardware version you're using (OLED_V1 or OLED_V2). Looking at the code briefly, it seems like the code used for the newer version is what I was using before, but obviously there's something different. Regardless, it's working, and I'm happy. Thanks!
0 -
Hi Don,
We are glad it is now working for you! Thank you for updating us in your progress.
0
Please sign in to leave a comment.
Comments
3 comments