issues with my 3 new mcufriend 3.5" touchscreen displays

Hi all,

my first post so i apologies if its in the wrong place or all been said before.

ive purchased 3 of the above displays, tested them all with the mcufriend library and they all work fine.... to a point... non of the touchscreens work. ive already sent messages to the vendors on ebay but all they are saying is they will send me new ones...

on another note, i want to use the bitmap function, which does work with the sample bitmaps, (woof) etc. but the code takes up far too much flash memory, and i need lots of space for my own code, so my thoughts are to use an ATMega1284 processor and connect the pins similar to the UNO.

anyone done this before, i will also be using Atmel studio 6.2 with visual micro rather than arduino IDE.

i have ran the LCD_ID readreg code and this is the results, also in other mcufriend examples it shows my display ID is 0x1581

thanks for any help, guidance here

Read Registers on MCUFRIEND UNO shield controllers either read as single 16-bit e.g. the ID is at readReg(0) or as a sequence of 8-bit values in special locations (first is dummy)

reg(0x0000) 00 00 ID: ILI9320, ILI9325, ILI9335, ... reg(0x0004) 00 00 00 00 Manufacturer ID reg(0x0009) 00 00 00 00 00 Status Register reg(0x000A) 08 08 Get Powsr Mode reg(0x000C) 66 66 Get Pixel Format reg(0x0061) 00 00 RDID1 HX8347-G reg(0x0062) 00 00 RDID2 HX8347-G reg(0x0063) 00 00 RDID3 HX8347-G reg(0x0064) 00 00 RDID1 HX8347-A reg(0x0065) 00 00 RDID2 HX8347-A reg(0x0066) 00 00 RDID3 HX8347-A reg(0x0067) 00 00 RDID Himax HX8347-A reg(0x0070) 00 00 Panel Himax HX8347-A reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963 reg(0x00B0) 00 00 RGB Interface Signal Control reg(0x00B4) 00 00 Inversion Control reg(0x00B6) 00 00 00 00 00 Display Control reg(0x00B7) 00 00 Entry Mode Set reg(0x00BF) 01 01 22 15 81 00 ILI9481, HX8357-B reg(0x00C0) 00 00 3B 00 02 00 01 00 43 Panel Control reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA reg(0x00CC) 00 00 Panel Control reg(0x00D0) 00 00 00 Power Control reg(0x00D2) 03 03 24 04 00 NVM Read reg(0x00D3) 03 03 24 04 ILI9341, ILI9488 reg(0x00DA) 00 00 RDID1 reg(0x00DB) 00 00 RDID2 reg(0x00DC) 00 00 RDID3 reg(0x00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-P reg(0x00E1) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA-N reg(0x00EF) 00 00 00 00 00 00 ILI9327 reg(0x00F2) 07 07 00 00 00 00 00 00 00 00 00 00 Adjust Control 2 reg(0x00F6) 00 00 00 00 Interface Control

Have you run the diagnose_Touchpins.ino sketch? Is the glass cracked on your display(s) ?


I have David, and this is all i get

Making all control and bus pins INPUT_PULLUP Typical 30k Analog pullup with corresponding pin would read low when digital is written LOW e.g. reads ~25 for 300R X direction e.g. reads ~30 for 500R Y direction

non of the 3 displays look like they have cracked or damaged screens


So the diagnosis sketch does not find any Touch pins !

That means that you don't have a Touch Panel. Can you see a 4-way ribbon? Can you see a thin glass panel mounted on top of the TFT?


Yes I've checked, they all have the 4 way ribbon and you can see around the edge of the glass where the tracks are. I pulled one of the displays away from the red PCB to check where the 4 way ribbon attaches and it joins onto other tracks on the pcb. Tried belling the tracks out with meter but not appear to go to any of the pins... Weird really. Could I have 3 fake displays, surely not..

I've read a lot of your posts on checking whether the display you've received is the actual one on the vendors site, and these differ in track work slightly... I've put this to the vendors but as yet no reply.

Moving on to showing bit maps using a larger micro, got any thoughts on that, seems very feasible.

Thanks for your replies

Just to add to this I have used various Atmel processors with AT6.2 with arduino libraries, from the attiny to the mega1284. All work fine. Never used these displays before though. I've used the oled i2c ones on many occasions..

Post a link to the actual Ebay sale. Describe any differences in the component or track layout.

If my diagnosis and your DMM do not find a Touch Panel, I would conclude that your Panel is broke. If the Ebay "deal" was too good to be true, it probably is not true. Just look at the wording of any email that you get from the Vendor. When they offer a refund but are reluctant to supply a replacement, it often means that they know they are selling broken goods.

There is a lot of work to create a full working Arduino core on a foreign AVR. And then you have to make a pcb with Arduino Shield header sockets. I can run the library on a non-Arduino target but since God created both Mega2560 and Due, why make life difficult?


Thanks David

link to vendors...

the vendors have already offered replacements which ive accepted, but they havent answered my question on which pins the touch screen comes out on...

i havent used the arduino serial headers or bootloader to load code into my projects, i use the atmel-ice debugger and SPI port.

reason for not using a Mega or such is there size, far too big when all i need is a SMD chip measuring 15mm square or so..

but agree the mega and other arduino boards are brilliant for developing purposes and hobbyists. so i see where your coming from using the mega/Due, even the tiny pro minis are great. ive got loads of those

i am using the UNO with these displays for now.


ive cropped the photo to fit in the forum specs, you can see the tracks differ coming off the 74hc245 buffers.


I purchased the "same" item in October 2016 from the same Vendor. It arrived in a thin plastic envelope with insufficient foam/bubblewrap. The Touch Panel was broken. (the HX8357-D TFT controller works ok) They gave a refund.

The 3.5 inch screen is about the same size as a Due. It plugs in and goes. I can understand your point if it was a 2.4 inch screen.

I would avoid Visual Micro like the Plague. If you have an ATMEL-ICE, Visual Micro will stop you using debugWIRE.

If you have a working Arduino core for the ATmega1284 and real-life Shield headers, I will write a SPECIAL for you. If you have a lash-up, you can write it yourself.


Post a photo of the whole pcb. Adjust the resolution for a reasonable file size. The Ebay photos show an empty footprint for a Flash memory.

It is a fairly pointless exercise. You say that the TFT works ok. So the "big" ribbon is obviously connected correctly.


yes it works fine with most of the examples, ive got GLUE_DEMO 480x320 running on it now.

attached resize, my displays have no flash chip either


i dont use the debug wire, generally debug with the serial port, i have the 1284 core from jack christensens mighty 1284P, works a treat.

ill get this hooked up to this display in the near future and see how it goes.