The shield has, in addition to the connections to the display module, connections to a battery-backed real time clock that has been implemented in the shield. The display module consists of the display panel (the screen), a touch controller and a SD Card socket.

The iTead description says:

The ITDB02 LCD module is work in 3.3V voltage level and it’s not compatible with Arduino MEGA pins, so we make a shield for Arduino MEGA. Now user can directly plug the ITDB02 in the shield and stand on the Arduino MEGA board.

In reality, the ITDB02 module IS fully compatible with Arduino MEGA pins. The shield just makes it much, much easier to connect to the Arduino board. With respect to the 3.3 power, the shield merely connects the Arduino 5V power pin to the display module’s VCC pin which feeds a local LDO regulator that generates the required 3.3V.

(Update 9/7/12): The resistors in the shield are there to limit the current to the protection diodes in the display module, so they are just in series with the signal lines. The inputs of the display must be 5V tolerant even thought the display operates at 3.3V. The better solution is to implement a level conversion 5V->3.3V and this has been done in the new version of the shield. More information in the Arduino forums [link]

The library (“UTFT” for “Universal TFT”) for this display has been developed by Mr Karlsen and is available here: [link]. Support for the 240×400 pixel display is available with version 1.10 and higher as this is a new display. The software also supports the wiring of the Mega shield shown above. (The control pins are assigned through s/w, though).

The controller for this screen is HX8352-A (apparently it replaces the ILI9327 controller). You will need to enter the controller model in the code as “HX8352A”. The enclosed documentation in the code tells you more. In addition, you need to know this controller model to take advantage of “memory saving” as specified in memorysaver.h

Touch control:

The library is ITDB02-TOUCH, also developed by Mr. Karlsen: [link]. Is also compatible with the wiring of the Mega shield shown above and any other wiring configuration as the 5 interface wires are assignable through s/w.

Real Time Clock:

Here is a tutorial on how to interface to the RTC device: [link]. Here is another using a library: [link].

SD Card:

Mr. Karlsen also developed a library for the SD Card socket/reader [link]. However it is limited to FAT16 formatted SD cards up to 2GB in size and 8.3 characters file names. There is also the Arduino SD Library [link] that supports both FAT16 and FAT32 file systems on standard SD cards and SDHC cards. It is also limited to 8.3 characters file names. There is also a tutorial on SD Card interfacing at LadyAda [link].

PINS USED

Even though the shield takes up all the pins in the Arduino MEGA board, not all the pins are used for the display module and the real time clock. You can connect other devices (e.g. soldering wires) to the free pins.

Pin-out assignment of display module

Includes the screen, touch controller, SDCard reader and Flash. Designation to the different device interfaces are as follows:

Dxx: TFT screen

SDxx: SDCard reader

D_xx: Touch controller

F_xx: Flash (not populated in this particular module)

Here is the pin mapping of the Ardino MEGA 2560 board:

Obviously the shield matches the 40-pin output of the display module with the pins of the Arduino. In addition, the shield has a real time clock that is separate from the display module and exports the interface pins of this device as well.

These are the pins that are used by the shield. You can refer to the pin basic pin mapping [link] and the manual in pdf [link] (I saved a local copy because this is now a discontinued product: ITDB02MEGAshield_DS ):

Note: a readier discovered an error in diagram for the SD pins. Look at the pin assignment in the following diagram from the vendor’s website. The diagram corresponds to the new V2 shield, thus there is no real time clock (which is an I2C device). However if you use the shield, you don’t have to worry about the pin assignments except to figure out which pins are free for other functions:

There is sample code for the 400×240 display in the arduino-1.0\libraries\UTFT\examples\Arduino folder. Comment the code for UNO and un-comment the code for MEGA (follow the instructions written in the code). Modify the UTFT function with the model for your controller. For the above display I used “HX8352A”

// Uncomment the next line for Arduino MegaUTFT myGLCD(HX8352A,38,39,40,41); // Remember to change the model parameter to suit your display module!

Compile with Arduino 1.0 (does not work with earlier versions of the Arduino software and upload

Here is all I can for now…

(Update 9/7/12)

NEW VERSION OF THE SHIELD

The shield has been replaced with a newer mode. It does away with the real-time clock chip and replaces the resistors with logic chips (74xx541) for buffering and voltage level conversion, which is a better implementation. In addition it has a input voltage selection switch to make it compatible with Arduino (5v operation) or ChipKit (3.3v operation).

Possibly the buffer chip used in the new shield is a part similar to 74LCX541 which has 5V tolerant inputs and output. This design further protects the display module.

The resistors that were used in the previous version of the shield are there to limit the current to the protection diodes in the display module, so they are just in series with the signal lines. Based on the implementation of the shield, the inputs of the display must therefore be 5V tolerant even thought the display operates at 3.3V. The better solution is to implement a level conversion 5V->3.3V as implemented in the new version of the shield. More information in the Arduino forums [link]

I too have adapted my hifiduino to use the UTFT library to drive a 2.8″ TFT. However, I am having problems with the remote control. There appears to be some sort of conflict between the UTFT library and your IR code or between my 2.8″ TFT and your IR code (I was using adafruit’s 2.8″ TFT with their library with no problems, but now I am testing a cheap 2.8″ off of ebay with the UTFT library and seeing problems..).

Hello, what kind of problems are you seeing? I have not integrated my display/Arduino MEGA with the code yet. Mostly just playing with the library code. LCDs are “noisy” even at the IR region. If you are seeing the remote “operating by itself”, try moving the IR sensor away from the display

It’s not that it is “operating by itself”. What happens is that when I point the remote at the sensor and send a command, every time I press a specific key the code reads a different (wrong!) value. It makes no sense. I have written into the code a couple of lines that display the remote code and I see it changing constantly, even though I am pressing the same button.

While troubleshooting, I tried running some other IR code on the same arduino, with the TFT connected, and everything seems to be OK. The trouble appears to begin when the TFT gets initialized.

Btw, my (well, actually “your” :p) code should run with almost no modifications on your mega + tft. Would you like to try it out and see for yourself?

My latest news are as follows. I replaced the problematic 2.8″ TFT with one like the one that you have purchased, and it works just fine. No problems with the remote. So it appears that the specific combination of 2.8″ TFT / library / IR code is problematic.

The “wide screen” aspect is very nice, giving us some much needed screen real estate. I am in the process of changing my screen layout from the old 4:3 ratio to the new 16:9. I am probably going for some radical redesign (shifting pretty much everything around).

Very nice to see your interest in this display. A new code with this device will give new life to your already great project, opening many new possibilities. I’m trying to buy one, so that I can test new code when available, but can’t find the same shield as your. Is that the new one you mentioned above?

The fonts are indeed a problem. I have spent many an hour creating & testing fonts. I have yet to come up with a single medium size (with a width of 16 pixels) that I like. However, for the volume display, I have created a nice big (48×70) numeric font.

Well, it is not trivial programming these displays. If you only use text, then there is no advantage using the graphics display. After you get comfortable with the code, then you can experiment with the graphics display and access the graphics and touch input functions.

Yes you can. You can follow some of the diagrams I’ve created, but there are 37 wires to hookup.

Stefan

August 24, 2012 at 20:59

I wired DB0 to DB15, RS, WR, CS, RST, LED-A, VCC and GND directly to the Mega 2560. I checked the wiring double. I’ve adapted the code like sayed in the comments, but despite the backlight lights up, the screen stays blank. What can be wrong?

BlogGeanDo

August 24, 2012 at 21:40

I just reviewed the diagrams. The shield has a voltage converter. Use a 3.3V instead of a 5V power. I don’t know if Mega’s 3.3V has enough power…

Does your board tolerate 5V logic levels? The display that I have (off of ebay) needed 3.3V so I wired a bunch of resistors in series with the signal lines.. other than that, I used Henning’s hookup diagram (UTFT).