2.4" touch screen display ili9341

arduino123456789: ok, so if i not connect correct it will be broken?

ok, so if i not connect correct it will MAY be broken...

sorry, so if i not connect correct it MAY be broken?

or is there a way to convert xpt2046 to normal touch output or to STMPE610 becouse i don't will solder wires to the chip and the pins are to smal for my to do that. so is there another way? or can i disconnect the ribbon cable of the touchscreen to an touch connector? if yes: wich connector will i use for that?

arduino123456789: or is there a way to convert xpt2046 to normal touch output or to STMPE610 becouse i don't will solder wires to the chip and the pins are to smal for my to do that. so is there another way? or can i disconnect the ribbon cable of the touchscreen to an touch connector? if yes: wich connector will i use for that?

I have never heard of anyone doing this in this forum. Anything can likely "be done" but finding the right materials could be difficult. I am afraid you are on your own on this unless someone has actually done something like this.

Why is that display so cheap?

Bob808: Why is that display so cheap?

You should send an e-mail to the manufacturer, how are we, the end users, supposed to know?

Figured that's something well known like "it's so cheap because it's already old tech" or "doesn't have much support" or "it gives a crappy experience to the user". Of-course I was not asking from a business point of view :) It costs just a bit more than a 20x4 LCD and at first glance it's way better for a display. OP, did you manage to work with it?

Bob808:
Figured that’s something well known like “it’s so cheap because it’s already old tech” or “doesn’t have much support” or “it gives a crappy experience to the user”.
Of-course I was not asking from a business point of view :slight_smile:
It costs just a bit more than a 20x4 LCD and at first glance it’s way better for a display.
OP, did you manage to work with it?

If that is the case its just a matter of making the question the smart way. If you don’t bother loosing the time why should we bother doing the same writing a detailed description?

“I am doing a research to implement this LCD in a business use. I noticed it is priced very similar to other less capable displays such as the HD44780 while offering advantages to the end user. Can someone give some advice about possible drawbacks and things to have in mind when opting to use this solution?”

I'm not actually trying to implement it in a business use :roll_eyes: I'm just being careful with my money. Just attracted to the price but curious about the down sides of it. I really don't know what is wrong with this forum, as whenever I had an issue with my arduino related stuff there's always some smart-dude trying to be "more Catholic than the Pope". I guess all the knowledge could go to one's head? :relaxed:

In general, the TFT ILI93xx series of displays, in my opinion, are inexpensive because they are inexpensive to build. They are also toward the slower end for graphic use with a 16MHz uC, and finally they take significant uC resources to incorporate them into common projects - and Arduino is the largest of the user-project base.

Still, these are quiet adequate for many things and I use the 2.2" unit in many Arduino projects: http://www.hackster.io/rayburne/blazing-paddles http://www.hackster.io/rayburne/the-qbf-signal-generator http://www.hackster.io/rayburne/color-glcd-terminal-26-ch-x-15-ln http://www.hackster.io/rayburne/5-billion-arduino-gps-clock-for-25 http://www.hackster.io/rayburne/psoc-4-using-the-color-glcd-ili9341 PSoC ARM implementation

My recommendation is to find a library that works for you that balances SRAM and Flash usage, pick a readable font, and then use that library and settings for all similar projects. By keeping a common set of support software you will make you life far easier.

Ray

http://www.adafruit.com/datasheets/ILI9341.pdf PDF manual hosted by Adafruit

Thank you Mr. Burne. Actually I have looked at your projects last night after I posted the question while looking for more info. I am at the moment tied to the Uno or better said atmega 328. I have a few of them for small projects, dip package, easy to replace if I damage them. I'm not yet ready to move up as most of my needs are met by this chip at the moment. I like the GPS clock thou :) Good work!

Bob808:
Thank you Mr. Burne.
Actually I have looked at your projects last night after I posted the question while looking for more info.
I am at the moment tied to the Uno or better said atmega 328. I have a few of them for small projects, dip package, easy to replace if I damage them. I’m not yet ready to move up as most of my needs are met by this chip at the moment.
I like the GPS clock thou :slight_smile: Good work!

Most of my projects are AVR’ish in nature. The ARM PSoC was a summer diversion for my own edification as some of my friends and acquaintances are die-hard ARM folk. The PSoC was an inexpensive way to explore both ARM and also re configurable silicon hardware… a pretty amazing technology.

The ILI9xxx TFT displays are inexpensive enough that you can even build toys: (actually the ILI9163C chip)
http://www.hackster.io/rayburne/fortune-telling-arduino

Everyone seems to get ‘hung-up’ with the 3.3V requirements and then try and do silly stuff like resistor dividers and level shifters and such… the cheap way to do this is to simply run the AVR at 3.3V too. There are Chinese sellers lined up on their east cost to sell us 3.3V Arduino mini’s that run at 8MHz (similar to the Sparkfun offering.) I have yet to have an issue with the 16MHz 328 mini boards running at 3.3 Volts… I may one day, but never have yet. Also, for many of the 328P projects, all you have to do is set the fuses to run at 8MHz and the internal clock… good 'nuff.

As you mentioned the GPS clock, here is a memory breakdown of Flash/SRAM using the ILI9341 TFT and the following libraries:

#include <SPI.h>
#include "Adafruit_GPS.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9340.h"
#include "GLCD.h"
#include "Utilities.h"  // my own lib for DayOfWeek, Month Names, DaysInMonth and other algorithms
#include <SoftwareSerial.h>
#include <Streaming.h> // note this library does not generate any flash usage

C:\Users\Public\ELFtemp*GPS_GLCD_uBlox_BIG.cpp.elf*
AVR Memory Usage

Device: Atmega-328P

Program: 19572 bytes
(.text + .data + .bootloader)

Data: 1275 bytes
(.data + .bss + .noinit)

So, even with only 2K of SRAM, there is plenty of expansion room for a few additions… temperature via thermistor is already incorporated, but history and barometric pressure would be a fun thing to implement. Maybe even an alarm.

Ray

Interesting stuff with 328 at 3.3V. I will check that out for sure. I also have a barometric pressure sensor, and that could open the way to weather predictions on screen :) I think I might give it a go, worst case scenario I learn some things along the way. By the way OP, anything new with your display? Did you manage to use it?

Bob808: I'm just being careful with my money.

Great, why not donate to people that make this displays available as opensource and therefore locally available for such little money? This is a good display and support is widely available, so its a safe choice.

Bob808: I really don't know what is wrong with this forum, as whenever I had an issue with my arduino related stuff there's always some smart-dude trying to be "more Catholic than the Pope". I guess all the knowledge could go to one's head? :relaxed:

The only thing wrong with the forum is people that want to have the work done but don't want to bother doing any research, other than that the forum is a nice place and newcomers here are much more welcome that if you try, for instance, the microchip forum. I cant stress enough - we all been newcomers and we all had lack of experience once.

Just try to make the questions in a sensible way that reflects the problem and I am sure people will do their best to try and help you out.

ILI9341 has to be one of the best selling displays right now. Libraries are widely available. Touchscreen wise the 2.4" went into market very recently so there is still some work to do on that. If you want a plug and play touchscreen solution look elsewhere. The ST778x displays are a good bet and cheap as well. For a bit more you can buy a HY28B which has all the interfaces - 8bit, 16 bit and SPI and it is widelly supported (ILI9325) on both adafruit and UTFT.

Now in regards to your previous post "the display is hard to use": Have you ever bought a display from a reputable supplier like Farnell? They don't give you libraries, they give you a datasheet and you write your code from scratch. Yet you pay much more.

What I am trying to say is newcommers take everything for granted and don't bother trying to learn how stuff works. The reason HD44780 displays are so popular is because they are old and they have been used in virtually anything. ILI9341 displays are new technology and thankfully someone wasted the time contributing to make them supported in open source (not just arduino).

However, ILI9341 is a high resolution graphical display. CPU usage is much higher than a HD44780 and may not suit all projects, so there is still place for the HD44780 that can print 32 characters in about 2ms

This gets more complicated and its why again some "smart-dud" asks all the details before telling you pros and cons. Just asking why the display is so cheap is a very raw way to define a suitability for a project.

Good info, thx. I was just wondering why it is so cheap thou... :relaxed: That's all. Nothing serious, I still don't get your attitude. If you check my other posts you'll see that I do my homework before and after I've asked for help, it's not like I want to be given code with no work. But I guess you kinda go this way without thinking first, now. Not everyone is lazy, and sometimes it is way faster to just ASK a simple question, like mine, than read for an hour searching the internet for that controller type etc. More than that, you are not getting paid for answering on this forum, you have no authority, you are just like everyone else. If you'd like to educate someone, please do it in your own private and personal space, don't take it out on me or who ever else might post a simple question. If you don't like it, look away :) Worst case scenario only OP can get mad for posting on his thread, even thou my curiosity is related to the subject matter of this thread. So, thank you anyway but please mind your own business and don't ever reply to one of my questions again, if you can help it.

My suggestion is: traslate your code to Adafruit ILI9341 or Adafruit ILI9340 librarys

This is a Utouch-calibration sketch modified to work with ILI9341_due NEW library and the XPT2046, so it can be traslate to Adafruit´s librarys like ILI9341 or ILI9340, to work on Arduino Mega for example.

I don´t have a 2.4" TFT-SPI with touch panel, but my test-ring consist in a touch panel from HY32D TFT (320x240 px) and a 2.2 SPI TFT (320x240 px), both on arduino Due board.

thanks for all your work. i know now how to do it. i will post it if it work

thanks all

Hi all I'm very interested to hear how this goes. I have exactly the display of this topic, and neither can I get it working. I get device ID back from the ILI9341 (most of the time), and I also get a white screen.

The eBay listing claims it works on also 5v logic level, so I tried this (still powered @3.3v since it said nothing about power). I also tried using TXB0108 level converter, over which I failed to get the device ID at all. I can put a scope on the clock/data lines and I see the high and low side bouncing up and down together with a plausible looking signal.

I've noticed some issues with the spec and have commented accordingly: http://forum.arduino.cc/index.php?topic=200126.60

I've also tried many libraries but settled on the one that was referenced in the listing, which is a version of the TFTv2.cpp/.h source.

Not sure where to go from here. I have read this topic from end to end :)

Thanks, Phil

davies46:
The eBay listing claims it works on also 5v logic level, so I tried this (still powered @3.3v since it said nothing about power).

It does not. You can power it from a 5V supply as there is an onboard LDO, but data is 2.7~3.9V

davies46:
I also tried using TXB0108 level converter, over which I failed to get the device ID at all. I can put a scope on the clock/data lines and I see the high and low side bouncing up and down together with a plausible looking signal.

Thanks,
Phil

Try exactly as described here

http://forum.arduino.cc/index.php?topic=181679.180 → Post #191

Thanks for the info. I'm not having a problem with the software, it's driving the levels etc. that's causing me trouble. Having read the device ID in a loop and seen the odd bad byte I can see that the comms isn't reliable. This would suggest when the going gets tough it won't stand a chance. Every so often I can now actually get it to start to write to the screen, usually a few tens of pixels before the screen whites out again. It might well white out when there's an error in the command/data flow. It's a hypothesis.

I have shortened the jumper leads and I can even see "Hello World" occasionally. I'm now using a 4050 for Arduino outbound level conversion and direct in for MISO and would very much like to hear any suggestions on getting fewer dropouts on comms, e.g. max jumper length (I've dropped from 8" to 3" on most).

When I have reliability I'll start to look at speed optimisations although tbh not a major concern for my project.

Thanks again - Phil