2025-09-15 5:22 PM
Hello everyone,
I’m working on a custom board based on the STM32L4R9 with a 2.1" round 480×480 display from Newhaven, which uses the ST7701S controller. My goal is to get it running with MIPI DSI / LTDC and TouchGFX.
So far, I’ve managed to display a solid color by manually filling a framebuffer. However, once I integrated TouchGFX and started rendering shapes, the lines appeared shifted. This makes me think the issue is related to timing parameters (HSYNC, VSYNC, VBP, VFP, HBP, HFP).
The problem is that the display datasheet doesn’t provide typical timing values. I contacted Newhaven’s support, and they shared example code for the same panel but using the SSD1963 controller. Unfortunately, using those values didn’t work. Looking deeper into their example, I noticed that the comments mention one set of values, but the actual register settings differ. When I reached out again, they simply said the comments might be wrong, but the code should work. Not very helpful.
Here is the example that they have provided and as you can clearly see:
command(0xb4); //SET HBP data(0x03); //SET HSYNC Total=1056 data(0xA0); data(0x00); //SET HBP 88 data(0x58); data(0x80); //SET HSYNC Pulse Width=128=127pixels+1 data(0x00); //SET Hsync pulse start position data(0x00); data(0x00); //SET Hsync pulse subpixel start position command(0xb6); //SET VBP data(0x02); //SET Vsync total 525 data(0x0d); data(0x00); //SET VBP=32 data(0x1F); data(0x01); //SET VSYNC Pulse Width= 0=0lines+1 data(0x00); //SET Vsync pulse start position data(0x00);
HSYNC total value in the comment is 1056 but the real value is 0x03A0 which is 928, that made me doubt all the values.
Has anyone here worked with this display before? If so, could you share the correct timing parameters?
I’ll attach both the expected output and the actual result I’m getting.
Thanks in advance!