DLO-138
DLO-138 copied to clipboard
Blank screen (lii9325)
Hi. I have a white screen issue. "afio_cfg_debug_ports(AFIO_DEBUG_NONE)" and "disableDebugPorts()" don't help. But the factory firmware works fine. Also, the serial port works fine, so the problem is definitely with the display. I tried to build the firmware from the sources, as well as precompiled binaries from the repository. Perhaps some hardware modification is needed?
So, in my case, the display controller is lii9325. If I change it in the tft.display function it starts working, but it looks like fillScreen is not working properly. I tried the examples taken from the Adafruit_TFTLCD_8bit_STM32 library repository, they also do not work correctly.
I think I have the same display or variant. Looking at the ribbon cable under the screen it says CL9325-115. TFT board is PN 109-13700-00A1.
I tried adding #include "src/TFTLib/ili932x.h"
to DLO-138 and put tft.begin(0x9325);
in display; I get some upside down images not quite drawn correctly. Well, it is better than just white screen.
After updating to Adafruit GFX 1.2.7 library I get some waveform too. But still upside down and draw problems.
Setting getrotate to landscape 3 to flip it, also uncommented the breakout since we don't have breakout board on DSO-138, now I can see some more text (sampling), but still some small text is not visible i.e. when it boots it only displays "DLO-138" and the bottom row with voltage etc never displays.
I may try SPI instead as the TFT and later Adafruit supports it, however already I notice how slow the oscilloscope feels compared to stock firmware.
So, in my case, the display controller is lii9325. If I change it in the tft.display function it starts working, but it looks like fillScreen is not working properly. I tried the examples taken from the Adafruit_TFTLCD_8bit_STM32 library repository, they also do not work correctly.
Comparing this project code to Adafruit_TFTLCD_8bit_STM32 there's sections that could be causing some elements to display upside down like in your second picture. Additionally there is some 8bit or 32bit vs originally 16bit variables that could be messing with display.
I haven't looked into the project for a long time, but the screen has worked for me. I replaced "tft.begin(0x9341)" with "tft.begin(0x9325)", "tft.setRotation(LANDSCAPE)" with "tft.setRotation(3)", "tft.full Screen(ILI9341_BLACK)" with "tft.fillRect(0, 0, TFT_WIDTH, TFT_HEIGHT, ILI9341_BLACK);". But the oscilloscope was not working correctly. The values on the display were updated only by pressing the keys. There may be a problem with interrupts.
I've been poring over the code and it seems like the main problem is fillScreen GFX function isn't working. Everything else is drawing correctly. It's just a mess without fillScreen. But there is a snag, fillScreen function seems to rely on setAddrWindow but for me I can't call it directly or it crashes.
I replaced fillScreen with fillRect and that helped, but I'm still missing a lot of the size1 text.
Not sure why the text isn't working, I can get these functions to work fine in a simple sketch. I see on your pics this small text from banner is displaying, whereas I only get DLO-138 in a box.