5 ra8875 type color tft display free sample

Spice up your Arduino project with a beautiful large touchscreen display shield with built in microSD card connection. This TFT display is big (5" diagonal) bright (12 white-LED backlight) and colorfu 480x272 pixels with individual pixel control. As a bonus, this display has a optional resistive touch panel attached on screen by default.
The shield is fully assembled, tested and ready to go. No wiring, no soldering! Simply plug it in and load up our library - you"ll have it running in under 10 minutes! Works best with any classic Arduino (UNO/Due/Mega 2560).
This display shield has a controller built into it with RAM buffering, so that almost no work is done by the microcontroller. You can connect more sensors, buttons and LEDs.
For 5 inch screen,the high current is needed.But the current of arduino uno or arduino mega board is low, an external 5V power supply is needed. Refer to the image shows the external power supply position on shield ER-AS-RA8875.

ER-TFTM050A2-3-3661 is 800x480 dots 5" color tft lcd display with RA8875 controller board and capacitive touch panel with touch controller,superior display quality,super wide viewing angle and easily controlled by MCU such as 8051, PIC, AVR, ARDUINO,and ARM .It can be used in any embedded systems,industrial device,security and hand-held equipment which requires display in high quality and colorful image.
It supports 8080 6800 8-bit,16-bit parallel,3-wire,4-wire,I2C serial spi interface.Built-in MicroSD card slot. It"s optional for font chip, flash chip and microsd card. We offer two types connection,one is pinheader and the another is ZIF connector with flat cable mounting on board by default and suggested.
Of course, we wouldn"t just leave you with a datasheet and a "good luck!".Here is the link for5" TFT capacitive touch shield with libraries,examples,schematic diagram for Arduino Due,Mega 2560 and Uno. For 8051 microcontroller user,we prepared the detailed tutorial such as interfacing, demo code and development kit at the bottom of this page.

FocusLCDs.com sent me a free sample of a 4x3” TFT LCD (P/N: E43RG34827LW2M300-R) to try out. This is a color active matrix TFT (Thin Film Transistor) LCD (liquid crystal display) that uses amorphous silicon TFT as a switching device. This model is composed of a Transmissive type TFT-LCD Panel, driver circuit, backlight unit. The resolution of a 4.3” TFT-LCD contains 480x272 pixels, and can display up to 16.7M colors.
For this project, you would need the RA8875 driver board (available at AdaFruit for US$35) to interface the TFT display to the Arduino. It comes with a header which you can solder on as needed.

In this article, you will learn how to use TFT LCDs by Arduino boards. From basic commands to professional designs and technics are all explained here.
In electronic’s projects, creating an interface between user and system is very important. This interface could be created by displaying useful data, a menu, and ease of access. A beautiful design is also very important.
There are several components to achieve this. LEDs, 7-segments, Character and Graphic displays, and full-color TFT LCDs. The right component for your projects depends on the amount of data to be displayed, type of user interaction, and processor capacity.
TFT LCD is a variant of a liquid-crystal display (LCD) that uses thin-film-transistor (TFT) technology to improve image qualities such as addressability and contrast. A TFT LCD is an active matrix LCD, in contrast to passive matrix LCDs or simple, direct-driven LCDs with a few segments.
In Arduino-based projects, the processor frequency is low. So it is not possible to display complex, high definition images and high-speed motions. Therefore, full-color TFT LCDs can only be used to display simple data and commands.
In this article, we have used libraries and advanced technics to display data, charts, menu, etc. with a professional design. This can move your project presentation to a higher level.
In electronic’s projects, creating an interface between user and system is very important. This interface could be created by displaying useful data, a menu, and ease of access. A beautiful design is also very important.
There are several components to achieve this. LEDs, 7-segments, Character and Graphic displays, and full-color TFT LCDs. The right component for your projects depends on the amount of data to be displayed, type of user interaction, and processor capacity.
TFT LCD is a variant of a liquid-crystal display (LCD) that uses thin-film-transistor (TFT) technology to improve image qualities such as addressability and contrast. A TFT LCD is an active matrix LCD, in contrast to passive matrix LCDs or simple, direct-driven LCDs with a few segments.
In Arduino-based projects, the processor frequency is low. So it is not possible to display complex, high definition images and high-speed motions. Therefore, full-color TFT LCDs can only be used to display simple data and commands.
In this article, we have used libraries and advanced technics to display data, charts, menu, etc. with a professional design. This can move your project presentation to a higher level.
Size of displays affects your project parameters. Bigger Display is not always better. if you want to display high-resolution images and signs, you should choose a big size display with higher resolution. But it decreases the speed of your processing, needs more space and also needs more current to run.
After choosing the right display, It’s time to choose the right controller. If you want to display characters, tests, numbers and static images and the speed of display is not important, the Atmega328 Arduino boards (such as Arduino UNO) are a proper choice. If the size of your code is big, The UNO board may not be enough. You can use Arduino Mega2560 instead. And if you want to show high resolution images and motions with high speed, you should use the ARM core Arduino boards such as Arduino DUE.
In electronics/computer hardware a display driver is usually a semiconductor integrated circuit (but may alternatively comprise a state machine made of discrete logic and other components) which provides an interface function between a microprocessor, microcontroller, ASIC or general-purpose peripheral interface and a particular type of display device, e.g. LCD, LED, OLED, ePaper, CRT, Vacuum fluorescent or Nixie.
The display driver will typically accept commands and data using an industry-standard general-purpose serial or parallel interface, such as TTL, CMOS, RS232, SPI, I2C, etc. and generate signals with suitable voltage, current, timing and demultiplexing to make the display show the desired text or image.
The LCDs manufacturers use different drivers in their products. Some of them are more popular and some of them are very unknown. To run your display easily, you should use Arduino LCDs libraries and add them to your code. Otherwise running the display may be very difficult. There are many free libraries you can find on the internet but the important point about the libraries is their compatibility with the LCD’s driver. The driver of your LCD must be known by your library. In this article, we use the Adafruit GFX library and MCUFRIEND KBV library and example codes. You can download them from the following links.
By these two functions, You can find out the resolution of the display. Just add them to the code and put the outputs in a uint16_t variable. Then read it from the Serial port by Serial.println(); . First add Serial.begin(9600); in setup().
First you should convert your image to hex code. Download the software from the following link. if you don’t want to change the settings of the software, you must invert the color of the image and make the image horizontally mirrored and rotate it 90 degrees counterclockwise. Now add it to the software and convert it. Open the exported file and copy the hex code to Arduino IDE. x and y are locations of the image. sx and sy are sizes of image. you can change the color of the image in the last input.
Upload your image and download the converted file that the UTFT libraries can process. Now copy the hex code to Arduino IDE. x and y are locations of the image. sx and sy are size of the image.
In this template, We just used a string and 8 filled circles that change their colors in order. To draw circles around a static point ,You can use sin(); and cos(); functions. you should define the PI number . To change colors, you can use color565(); function and replace your RGB code.
In this template, We converted a .jpg image to .c file and added to the code, wrote a string and used the fade code to display. Then we used scroll code to move the screen left. Download the .h file and add it to the folder of the Arduino sketch.
In this template, We used sin(); and cos(); functions to draw Arcs with our desired thickness and displayed number by text printing function. Then we converted an image to hex code and added them to the code and displayed the image by bitmap function. Then we used draw lines function to change the style of the image. Download the .h file and add it to the folder of the Arduino sketch.
In this template, We created a function which accepts numbers as input and displays them as a pie chart. We just use draw arc and filled circle functions.
while (a < b) { Serial.println(a); j = 80 * (sin(PI * a / 2000)); i = 80 * (cos(PI * a / 2000)); j2 = 50 * (sin(PI * a / 2000)); i2 = 50 * (cos(PI * a / 2000)); tft.drawLine(i2 + 235, j2 + 169, i + 235, j + 169, tft.color565(0, 255, 255)); tft.fillRect(200, 153, 75, 33, 0x0000); tft.setTextSize(3); tft.setTextColor(0xffff); if ((a/20)>99)
while (b < a) { j = 80 * (sin(PI * a / 2000)); i = 80 * (cos(PI * a / 2000)); j2 = 50 * (sin(PI * a / 2000)); i2 = 50 * (cos(PI * a / 2000)); tft.drawLine(i2 + 235, j2 + 169, i + 235, j + 169, tft.color565(0, 0, 0)); tft.fillRect(200, 153, 75, 33, 0x0000); tft.setTextSize(3); tft.setTextColor(0xffff); if ((a/20)>99)
In this template, We display simple images one after each other very fast by bitmap function. So you can make your animation by this trick. Download the .h file and add it to folder of the Arduino sketch.
In this template, We just display some images by RGBbitmap and bitmap functions. Just make a code for touchscreen and use this template. Download the .h file and add it to folder of the Arduino sketch.
The speed of playing all the GIF files are edited and we made them faster or slower for better understanding. The speed of motions depends on the speed of your processor or type of code or size and thickness of elements in the code.

int ycursor[18] = {0, 0, 20, 110, 110, 110, 135, 135, 135, 160, 160, 160, 185, 185, 185, 210, 210, 210}; // place of the cursor in the editor window
int alphabet[38] = {32, 45, 48, 49, 50, 51, 52, 53, 54, 55 ,56 ,57, 65, 66 ,67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 ,78, 79 ,80, 81, 82, 83, 84, 85 ,86 ,87 ,88 ,89 ,90};
int alphabetconv[59] = {0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37};
drawString(redrtop, 110, 20, ms22_spacing, 8, String(oldtemperature) + "C", String(temperature) + "C", 1, txtcolor, backcolor, Monospaced_plain_22); // print the new temperature at the top of the screen
drawString(tinit, 10, 20, ms22_spacing, 8, oldrptext, rptext, 0, txtcolor, backcolor, Monospaced_plain_22); // draw reflow zone text at the left top of the screen
drawString(tinit, pos, 20, ms22_spacing, 10, rcptxt[oldrecipenr], rcptxt[recipenr], 1, txtcolor, backcolor, Monospaced_plain_22); // draw the recipe text at the right top of the screen
drawString(0, 35, 85+i*25, ms22_spacing, 3, valueoldstrm[i], valuestrm[i], 1, txtcolor, backcolor, Monospaced_plain_22); // draw the new time value on the screen
drawString(0, 148, 85+i*25, ms22_spacing, 3, valueoldstrT[i], valuestrT[i], 1, txtcolor, backcolor, Monospaced_plain_22); // draw the new temperature value on the screen
drawString(0, 241, 85+i*25, ms22_spacing, 10, valueoldstrtxt[i], valuestrtxt[i], 0, txtcolor, backcolor, Monospaced_plain_22); // draw the new temperature value on the screen
rtxtcur++; if (rtxtcur > 9){rtxtcur = 0; drawString(1, 241+rtxtcur*ms22_spacing, 30, ms22_spacing, 11, "-", " ", 1, txtcolor, backcolor, Monospaced_plain_22);}

This component is an inexpensive display module, and with a lot of options; different sizes, with and without touch, support for external font chips, scanning keypad, various micro interface types, and more.
The supporting library is for a display using an RA8875 Display Controller chip. The referenced web site Buy Display has several different displays, many of which are based on the RA8875 Display Controller - and therefore should be compatible with this library. More details are shown in the "Compatibility" section.
CAUTION: There is an undocumented defect in the RA8875 controller. The defect is that the controller does not always release its SPI data output pin when the chip is deselected.
The communications to the 2nd device will fail because of the RA8875 behavior. Best advice, keep those interfaces on separate SPI ports. Several users have added an external tristate buffer, gated by the chip select pin.
"Buy-Display" has several displays that have the RA8875. This library currently has a default setting of 480 x 272 definition in it, but it is designed to support the 800 x 480 display as well.
This library uses the 4-wire SPI interface, however the RA8875 controller chip, and the referenced display module support I2C, 3-Wire SPI, 4-Wire SPI, 8-bit Parallel and 16-bit Parallel. The RA8875 has on-board RAM sufficient for most needs, and it includes some fonts built-in. It supports an external serial flash for additional fonts (including UNICODE) and graphics, and has a micro SD interface, also for graphics. The RA8875 has integrated support for backlight control, resistive touch screen, and a matrix keypad. These options can simplify the system design.
BMP and JPG formats are supported. There are "variants" of each, so possibly not all variants will render. But it has been tested for BMP with monochrome, 4-bit, 8-bit, and 24-bit color.
With careful study of the image below, you can see a number of solder-blob jumpers. These jumpers are described quite well in the manual, and configure the many different options. The specific unit shown here is the "entry point" model, it does not have touchscreen, SD card, extra font memory, or the key pad interface. As you see in the top left, it is wired with an 8-signal ribbon cable (but note in the schematic that it only needs 6 as the two power and two ground are internally connected together in the module). The display can be powered from 5v or 3.3v; 5v as shown on this page.
Also note, that some configuration changes go beyond the jumpers. I decided to switch my as-purchased configuration to 4-Wire SPI and had to apply some changes (e.g. solder-blob jumpers). Had I ordered the display with the support for 4-Wire SPI, that would not have been necessary. The buydisplay web site makes the option selection quite easy.
The library should be able to work with any SPI port, and the Chip Select is a simple DigitalOut pin, shown here from the unallocated pins on this baseboard. The library also permits a definition for a reset pin, but in the initial work, this was unnecessary as a display reset function is easily activated via the SPI interface.
Schematic for the display module - I have not found a schematic for the display module itself, and by working through the various datasheets, it has not been necessary. For educational reasons, I wish I did have that to study.
NOTE In this second example, the display power requirements can be well over 300 mA. When combined with an LPC1768 (which can consume up to 200 mA), it can exceed the capacity of most USB ports. I have found that if you keep the brightness setting quite low, your PC source may adequately support this. If you don"t init( ) it with a low brightness level, you may see a blank white (or black) screen and try to troubleshoot the wrong issue.
Here is a full program that uses this library. As you can see, it is very simple to use. Be sure to have the mbed and the RA8875 libraries in your project.
This information is based on 4-wire SPI, where the answer is, "it depends". The driver is configured for 5 MHz by default, and the chip can support a faster clock rate. But be forewarned, this interface is not suitable for streaming video. That said, the RA8875 has a number of hardware accelerator features built-in - to draw text (using the internal fonts or optional external fonts), lines, circles, rectangles, triangles - all filled or unfilled. And it does this very fast. Because it supports these in the hardware, this can greatly reduce the memory footprint in the host micro. For displayable "information", the performance of this part is most likely more than good enough.
Starting with a 24-bit color picture, scaled to about 350 pixels wide by 272 tall, and saved as a 24-bit BMP file of about 382KB. The driver library parses the 24-bit data, down-scales it to 16-bit, and streams it to the RA8875 and therefore to the screen. Keeping in mind that the LPC1768 has less than 32KB of usable memory, the driver buffers only a single scanline as it does this processing.
(1) SDFileSystem v22 from https://developer.mbed.org/users/neilt6/code/SDFileSystem/ [On my hardware, I could only set the FileSystem to 17 MHz, and the RA8875 is set for the default of 5 MHz.
Burst SPI is another library on the site that may provide a significant performance boost. This has not been investigated, but note that while this RA8875 library mostly writes to the display, it also reads from the display. The Burst SPI library does not currently support reading. With some careful work it should be possible to integrate this performance enhancement.
The RA8875 has built-in support for a 4 x 5 matrix keypad. The library was updated to provide support for that interface. This has not been tested to any strong degree.
A Touchscreen example program showing the RA8875 driver library. This is easily configured for either the Resistive touch panel or the Capacitive touch panel.
The RA8875 has built-in support for a 4-wire resistive touch screen. This library was updated to support that interface, including methods for calibration.
Those using the GSL1680 capacitive touch controller will find two options, one supporting five fingers and the other supporting ten fingers simultaneously. Note that documentation for the GSL1680 is "limited", and the controller is a micro. The micro is booted from a binary image hosted by the RA8875 library, for which no source has been found.
Capacitive touch has numerous advantages, typically a "cleaner" and brighter looking display among them as there are fewer front-side layers. Take care if you choose one of those displays - since the RA8875 _does not_ have native support for this technology, the display module adds another chip set to it. This in itself is no problem, but this additional chip requires another interface to the mbed - that being I2C. Be sure your hardware design can support giving up 4 more pins!
Another major advantage is that a capacitive display requires a simple touch, where a resistive display requires sufficient "pressure" to be applied to close the contacts.
Additionally, with soft fonts, using the GLCD font tool, you can create your own fonts quite easily. A December 2015 update to this library more directly supports the GLCD fonts. See the Soft Fonts Instructions page for a step-by-step tutorial. Take note that this update is not backward compatible with the prior font support, but it requires less memory, and the time to create the soft fonts is reduced.
Another developer implemented support for the external font chip which you can purchase with this display (the driver software does not provide support at this time). See that work at External Font Chip
The display modules have an optional micro SD Card Interface. This is not wired into the display controller, but is made available on another connector, which you would then wire to the mbed. Thus, there is no support in the display driver library for this - instead find an mbed library that supports SD Cards.
Take note that some of these displays require significant power. Some of the mbed modules have an onboard regulator, and that power is provided on one of the available interface pins. In general, you should not try to power the display from the mbed regulator, as the display may require more than is available from the mbed. In some cases, it may appear to work, but it may also lead to power dips, and instability of the software on the mbed. If you have a USB wall adapter that is a higher power module, the 5v from it, coupled with a 5v display (or an additional 3.3v regulator) may be a good configuration. The mbed modules themselves can run from this same power source.
Recommendation: Choose a 5v display module after ensuring that your mbed module has 5v tolerant IO pins (the LPC1768 does, the others have not been evaluated). Use a high power USB power adapter, and run both the display and the mbed from that power supply.
CAUTION If you don"t wire power correctly, you may destroy the display"s touch controller. In the author"s experience, the display remains functional, but touch becomes non-functional. The I2C controller is no longer detected by the host micro.
Most of the development, and ongoing use of this library (by the library author), is based on mbed os v2. Unfortunately, some of the newer versions have "decayed", so most applications use OS 2 version 127 or 128. With newer versions of OS 2, and when using a multi file system (sdCard and USB) it is difficult to get it to work, and with even newer versions the display will not properly initialize - suspecting it is related to the SPI driver. That said, it has been proven to work with several newer versions of the OS 2 library.
The author has run some of the demo"s with OS version 5.10 quite successfully. There are some API changes in the RA8875 Library that accommodate the newer OS version. Some of those are configured in the library against a specific minor version change in OSv5, and not all minor version changes have been tested. What this means is that in some of the v5.x versions, it might fail to compile properly, and in the newer 5.x versions it will. Contact the author if you have trouble with a specific combination.
Powering an mbed and the 4" display from an under-powered USB port is one of the first things to check. The default init() function turns the backlight to the max, which may be more than your port can provide. And if you have the larger displays, they will take even more power. In the example below, try reducing the backlight value (its permissible range is 0 to 255) to something quite low - perhaps 20 or 40.
One user acquired a display module from another source. It had the RA8875 controller, and it was wired for 4-wire SPI. And yet it did not work with this library. We exchanged quite a few emails in an attempt to solve this compatibility issue. I had compared the source in the other library but it was so dramatically different that it was a challenging effort. The user found another library that met their needs. This went unsolved. If others find themselves in a similar situation, I am more than willing to collaborate.
A simple simulation of the game of life on the display. This was put together before the touchscreen support was added - that might be an interesting update.
This is more of a demo program that shows 3 bars (one each for Red, Green, and Blue). As you touch on the color bars, it creates a composite RGB value and shows that color to you. With a "Screen Capture" option, you can extract the image to a BMP on the local file system, and then compare the colors on your display with the actual values.

Im new to Arduino myself but i do have the same screen which works perfect,your problem is probably that the TFT shield is shorting off the top off the arduino usb put something non conductive there and reset. if your still having trouble, try removing the shield and watch each pin as you insert it to make sure they are all inserted in the correct pins, LCD_02 should be in Dig pin 2.
Ms.Josey
Ms.Josey