juj / fbcp-ili9341

A blazing fast display driver for SPI-based LCD displays for Raspberry Pi A, B, 2, 3, 4 and Zero
MIT License
1.58k stars 265 forks source link

Can't get ILI9341 screen to work! Please help! #86

Closed Melonhead60 closed 3 years ago

Melonhead60 commented 5 years ago

I've been trying to get this screen to work with this driver for about a week now and i'm at my wits end. I keep running into problems faster then I can fix them. When it's not white screening after 5 seconds, it's displaying a garbled mess. When it's not doing either of those, it's just not updating half the pixels on the screen (or stops updating pixels at all). I've supplied better power, I've tried changing the DIVISOR to every multiple of 2 from 2 up to 200, I've tried every solution found on this forum, and I've redone and rechecked my soldering job more times then I can count. At this point I'm just curious if this screen is compatible with the code at all, so if anyone wants to take a stab at getting it to work PLEASE let me know if you can.

Plus, this screen would be AMAZING with this driver. 2.8 inches, 60fps, AND for only 6$? Sign me up!

juj commented 5 years ago

ILI9341 should be compatible with this driver. You can try using ILI9340 driver code path instead, which is very similar, but works to avoid some initialization time incompatibilities that were observed in #47. (If trying that out, use a new build directory or delete the previous intermediate build directory, or the CMakeCache.txt file in it before reconfiguring to a different driver)

Also you can try using the built-in Linux fbtft+spi driver for the display - if that works, then it suggests it could be some incompatibility in the fbcp-ili9341 initialization sequence for the particular display. You can try commenting out some of the initialization directives starting at https://github.com/juj/fbcp-ili9341/blob/0b46b04f1d05a5f5088e750bfde28b2099b8da7d/ili9341.cpp#L34 . Especially those that affect power, vcom or timing might have an impact here. When switching between different init directives in this manner, it is best to hard power off the display and then reconnect it between attempts so that the internal registers of the display get cleared for each test run.

Melonhead60 commented 5 years ago

Thanks for the quick response! I'll try that, and get back to you :)

juj commented 3 years ago

Closing out old issues.