NT35510_t4x_p - a parallel display driver for Teensy 4.x boards

NXP might have used the NT35510 is one or some of its development boards, but I don’t recall specific application notes to interface with one.

There is a FlexIO app note for the K series that uses an HX3857 for example, but the focus is less on the lcd config and more on the NXP config
 
In fact I want to use some old phones lcd (as far as I know based on NT35510, and from readed manufacture id: 55 bc c0 seems so) but without positive result.
Capturing data with logic analyzer I see that phone at startup initialize lcd but in DCS Command mode only and I need in video mode. I try to set bit 4 in DOPCTR but also no result. All I get is an image with noisy pixels, like an old TV with no signal (or snow may be called on some context) but instead black-white is color pixels. (hope you understand my example)
Datasheet is a little scarcity in information
Forget to mention that working mode is MIPI-DSI.
Also is not for NXP but for RPi instead.
 
Datasheet is a little scarcity in information
That .8 version that @BriComp linked to, is about the most complete version I have seen. has more information than the version up on BuyDisplay.com.

My guess is that you may not find anything more complete, except maybe by contacting Novatek and they might have additional documents, that they may require you to sign some NDA... Otherwise, the only way I have had any success is through trial and error, plus looking around for other
display drivers for the display...

Good luck
 
In fact I want to use some old phones lcd (as far as I know based on NT35510, and from readed manufacture id: 55 bc c0 seems so) but without positive result.
Capturing data with logic analyzer I see that phone at startup initialize lcd but in DCS Command mode only and I need in video mode. I try to set bit 4 in DOPCTR but also no result. All I get is an image with noisy pixels, like an old TV with no signal (or snow may be called on some context) but instead black-white is color pixels. (hope you understand my example)
Datasheet is a little scarcity in information
Forget to mention that working mode is MIPI-DSI.
Also is not for NXP but for RPi instead.
Some of these displays support multiple interfaces; SPI, MIPI DBI (8080/6800), RGB dot clock, MIPI DSI.

The Teensy 4.1 and Teensy Micromod can drive these displays in 8080 mode ocer 8 or 16 bit bus. Or over 8 bit RGB.

MIPI DSI is not supported by the Teensy

How are you driving your display? Confirm wiring and lib config.

The colored snow you are seeing is probably the random values in the display’s internal GRAM
 
I realize what you need, I forgot they named the support documentation this way, too. This document helped when I was figuring out some stuff for the NT35510 a few years ago....I'll PM you a link to the NT35510 Application Notes PDF I have, v0.07. I haven't seen this file distributed much online either, just the datasheet.
 
I just found this, I think it's great that we finally get some parallel display support for teensy.

I'm having troubles getting a display to work, I have a buy display NT35510 4 inch display, the one listed at the beginning of this thread. I have had this display working with the arduino GFX library in 16 bit 8080 mode with a rp2040, so I thought I would just wire it up to a T4.1 and see if I could get something on the screen. No luck so far, but I am unsure how to use the library, how do I tell it what buss to use, 8,16 or 18? I've used the T4.1 pins as called out in the parallel library, and I even set the display up for 18 bit mode and tried that, connecting the last 2 wires to pins 8 and 7 I think. I don't have my laptop in front of me at the moment, but I was hoping someone might just post a working "hello world" scetch, set up for an 18 or 16 bit bud on a t4.1, and I could start there.

As is, I'm trying to run one of the graphics test examples, and it will load up, but the TFT TEST fails, and I get a good serial debug, but the screen is just white. I can post more details later if needed. Thanks
 
I thought I might take another crack at this. Before I started again with the Teensy 4.1, I wired the display ( the same ER-TFTM040-1 as the OP )
up to an RP2350, using the Arduino GFX library, also using 16bit parallel interface, the display works. So I know the display is set up correctly, and it functions. Then I desoldered the RP2350 board, and started moving the wires over 1 at a time to the T4.1, following the pin callouts in the flexIO.h file. I cannot get it to work, just a white screen, and it doesnt appear to be reading any data from the LCD ( when using the libraries included demo sketch ) . Here is a slimmed down test sketch I treid, it also just results in a white screen.


#include <Teensy_Parallel_GFX.h>
#include "NT35510_t4x_p.h"

#define TFT_DC 28
#define TFT_CS 29
#define TFT_RST 30

#define DISPLAY_TYPE NT35510
#define DISPLAY_SPEED_MHZ 30
#define DISPLAY_ROTATION 1

//NT35510_t4x_p lcd = NT35510_t4x_p(TFT_DC, TFT_CS, TFT_RST, 36, 37, 19, 18, 14, 15, 40, 41, 17, 16, 22, 23, 20, 21, 38, 39, 26, 27 ); //(dc, cs, rs

NT35510_t4x_p lcd = NT35510_t4x_p(TFT_DC, TFT_CS, TFT_RST ); //(dc, cs, rs

void setup() {
pinMode(30, OUTPUT); // reset
digitalWrite(33, LOW);
delay(100);
digitalWrite(33, HIGH);


Serial.begin(115200);
while (!Serial && millis() < 5000) {}
Serial.println("BOOT");

// Hard reset

digitalWrite(30, HIGH);
delay(20);
digitalWrite(30, LOW);
delay(20);
digitalWrite(30, HIGH);
delay(150);

lcd.setFlexIOPins( // ive tried commenting this out entirely.. still doesnt work
36, 37,
19, 18, 14, 15, 40, 41, 17, 16,
22, 23, 20, 21, 38, 39, 26, 27
);

Serial.println("before begin");
lcd.begin(NT35510, 20);
Serial.println("after begin");

lcd.setBitDepth(16);

Serial.println("fill red");
lcd.fillScreen(NT35510_RED);
delay(1000);

Serial.println("fill green");
lcd.fillScreen(NT35510_GREEN);
delay(1000);

Serial.println("fill blue");
lcd.fillScreen(NT35510_BLUE);
delay(1000);

Serial.println("done");
}

void loop() {
}

Any help would be awesome, thanks
 
Sorry, I have not looked at this stuff probably going on 2 maybe 1 3/4) years now...

Wild guess or what I would maybe try add:
Code:
lcd.setBusWidth(16);

Before lcd.begin()... or Maybe just before your call to setFlxIOPins (which you probably don't need as those are the default)
 
Sorry, I have not looked at this stuff probably going on 2 maybe 1 3/4) years now...

Wild guess or what I would maybe try add:
Code:
lcd.setBusWidth(16);

Before lcd.begin()... or Maybe just before your call to setFlxIOPins (which you probably don't need as those are the default)
I tried both of your suggestions, as well as adding delays before and after lcd.begin. No luck so far. Ive tried several of the included example scetches as well, nothing seems to work. one thing I do notice, and this may be something you touched on previously, It appears that it may be only using 8 bit parallel mode, even though I am declaring 16 pins. The reson I think this may be the case, is that if i make a change lcd.begin argument, ( I tried onle declaring the WR and RD pins, as well as the WR, RD and D0 pins ) it lists out the previous flex IO pins in the debug, and it only ever lists out 8 pins, not 16. I looked through the .h and .c files ( though most of it is a bit over my head ) I didnt see anything that stands out . I would like to get this working, as the only other option there seems to be for large displays ( driven directly without s seperate LCD controller ) is an ESP32. I need more IO than the ESP offers, and I just find the ESP32 a pain to work with. I can use an RP2350 and the Arduino GFX library and get the LCD to work, but I would like to play around with this library and what it offers with color depth etc, it seems like a GUI built with this would look much better ( at least your photos sure looked nicer ) vs the standard 565 color option.
 
I looked in my cabinet in box and found I still had the 3.97" version connected up to T4.1 and so tried running my example sketch
Kurts_NT35510_t4x_p_FB_and_clip_test... and it looks like it still works. Could still be some bugs like fillscreen in some cases did not do whole
screen or maybe it did... And other stuff wrote over it...
1776707744976.png
1776707774688.png


But at least it still runs
 
Back
Top