minimum clock speed needed for lcd tft display supplier
Low voltage differential signaling (LVDS, also known as OpenLDI) thin-film transistor (TFT) liquid crystal (LCD) displays typically have a specified resolution and minimum required clock frequency to meet desired resolution. Normally, you will find this information listed in the display data sheet and won’t need to perform any calculations.
However, if you do not yet have access to your display data sheet and only know what resolution you want your system to support, you can estimate what clock frequency you need and determine which serializer/deserializer (SerDes) is appropriate for your application.
%Blanking: The blanking period, or the percentage of time when active video is not being displayed. As shown in Figure 1, it is represented horizontally as horizontal pulse width (HPW), horizontal back porch (HBP) and horizontal front porch (HFP). It is also represented vertically as vertical pulse width (VPW), vertical back porch (VBP) and vertical front porch (VFP).
The values for these blanking parameters are listed in display data sheets. The total blanking period varies from 3% to 39%. If your system uses reduced blanking, then you can estimate %Blanking at 10%. If you are not sure what blanking period your system uses, estimate around 20% and above to be conservative.
Frame rate (or refresh rate):the frequency at which consecutive images (frames) are displayed, and is measured in hertz or frames per second (fps). 60Hz is the most common frame rate, but this value can vary from 24Hz to 70Hz.
Throughput is another metric that you can use to determine whether or not a device will support your desired display resolution. The throughput is the effective payload of video data, and is derived from the required pixel clock frequency and color depth of your system, as shown in Equation 2:
Color depth: For a first-generation SerDes like the SN65LVDS93A, color depth is typically 24-bit red-green-blue (RGB) or 18-bit RGB for single pixel in, single pixel out (SISO) applications, and 48-bit RGB or 36-bit RGB for dual pixel in, dual pixel out (DIDO) applications.
The color depth will determine how many LVDS data lanes your display requires. SerDes serialize data at a rate of 7x the pixel clock frequency on each LVDS data lane. If the color depth is 24-bit RGB, then you will need four LVDS data lanes (there are an additional four bits used for control, which brings the total bit count to 28 bits) and can use a SerDes like the SN65LVDS93A. If the color depth is 18-bit RGB, then you will need three LVDS data lanes (there are an additional 3 bits used for control, which brings the total bit count to 21 bits) and can use a SerDes like the SN74LVDS84A or the SN65LVDS93A.
If the color depth is 48-bit RGB, then you will need eight LVDS data lanes (there are an additional 8 bits used for control, which brings the total bit count to 56 bits) and will need to use a device like the DS90C387 or DS90C189-Q1, which can output as many as eight LVDS data lanes.
When calculating the throughput for DIDO applications, you need to calculate the throughput for the odd pixels and even pixels separately and then add them together. For example, for a 48-bit DIDO application, the total required throughput would be 2 x Pixel Clock x 24.
Since the color depth is 24-bit RGB, you will need four LVDS data lanes. The SN65LVDS93A is a good fit for this application, since it has a pixel clock frequency range of 10MHz to 135MHz. Additionally, the maximum throughput for each LVDS data lane on this device is 135 x 7 = 945Mbps. Because this device has four LVDS data lanes, the total maximum throughput is 945 x 4 = 3780Mbps, which is higher than the minimum required throughput.
So the minimum pixel clock frequency to support a 2048 x 1536 resolution display is 208MHz. However, since this is a 48-bit DIDO application, there are actually two clocks: the frequency is split between them. Each clock must have a frequency of at least 104MHz.
Since the color depth is 48-bit RGB, you will need eight LVDS data lanes. The DS90C387 and DS90C187 are a good fit for this application, since they have a pixel clock frequency range of 32.5MHz to 112MHz (the DS90C387) and 25MHz to 105MHz (the DS90C187) for each channel in DIDO applications. Thus, if you don’t have access to the display data sheet yet, you can still estimate the required pixel clock frequency and throughput to support your desired resolution. If the SerDes does not meet these parameters, data on the display may display incorrectly, or not display at all.
Since the display includes the Ilitek ILI9320 controller, then your interface requirements are much lower, as the microcontroller no longer has to interface directly with the TFT and instead only talks to the controller chip via a simple interface: either SPI, which takes six wires: RS, CS, CLK, MOSI, MISO and RESET. Or you can use an 8080-compatible parallel interface which takes 13 wires: an 8-bit data bus, and RS, CS, WR, RD and RESET. (There are options to use larger data-buses, up to 18 bits, but I don"t recommend that for a low end microcontroller.)
There are two optional interfaces in which the microcontroller generates all of the clock signals (VSYNC, HSYNC and DOTCLK); you don"t want to do that since it would require a high-end controller.
So just about any microcontroller will do, however you need to have enough flash memory to hold whatever static items you want to display; for example if you are going to be displaying text then you will need to allocate arrays to store bitmaps for whatever fonts you will use. Even a small font can take 60KB.
This note will discuss the considerations made when choosing a microcontroller that will work for your display. A few requirements need to be met depending on the display’s features, interface, and size. These can also be determined by the embedded IC in the display. An overview of the considerations when choosing a microcontroller can be seen below. It should be noted that these items are separated for definition but may serve the same purpose and be interconnected in the ecosystem of the controller.
Application and display specific peripheral requirements. I2C, SPI, UART, Parallel, MIPI, LVDS, HDMI etc. Determines pin connections and required architecture of the device.
Flash and RAM memory requirements. Minimum frame buffer memory is dependent on the size andresolution of the display. Location of memory (external or internal) can restrict interface speed and must becompatible with the chosen interface.
Communication speed requirements defined by the interface and intended application. Refresh rateis determined on the size of the display and location of memory. This will indicate which processors arecompatible.
A displays embedded IC can offer resources such as internal RAM, clock generators and power control.This can save resources otherwise needed to be provided externally. Check the datasheet of the display’s ICcontroller for device function specifics.
Availability of resources for programming and debugging the microcontroller. Online resources andexampleprograms to leverage from can a lot of save time. Compatibility with a familiarprogramming environment isadditionally beneficial.
The interface selection is dependent on the intended application of the display. Each display has a different interface or different choices for a connection interface. For smaller displays a 3/4-wire serial interface would be sufficient. For larger display’s with high resolution a faster interface should be chosen. A parallel RGB interface is capable of high-speed data transmission however requires many pin connections. If the intended application for the display is video a MIPI, LVDS or HDMI connection would be a good choice.
The available memory of a microcontroller often becomes a highlighted issue when determining which microcontroller to select. The microcontroller needs a minimum amount of RAM to hold the frame buffer of the display. Even small displays require more RAM than a typical microcontroller possess. To verify that your microcontroller will have enough memory, it is important to calculate the frame buffer.
The minimum RAM required for the frame buffer in this example would then be 768kB. It is important to note that external RAM can be provided for the frame buffer if the microcontroller does not provide it internally. Clocking speed should be verified if using external RAM as the microcontroller cannot access external RAM as quickly. The clock frequency constrained by external RAM sometimes does not meet the minimum requirements of some very high-speed interfaces (ex. DSI-MIPI). Additionally, the display can contain some form of RAM depending on the IC controller inside the display. This can be verified on the specification sheet of the IC.
The speed of the microcontroller is heavily dependent on the interface used in the application. The minimum and maximum of the clock frequency is specified in the datasheet of the display and in the specification sheet of the display’s controller IC. The frame rate is typically around 50-60Hz, which is the median oscillation frequency to refresh the display to maintain an image. The display will often provide an internal high frequency clock that can be initialized to certain frequencies.
It is important to verify in the controller data sheet which resources are provided by the internal IC of the display. Some key information to look for would be: Does the display have sufficient RAM or does this need to be provided? Does the display have an internal oscillator for clock generation for the interface chosen? An additional graphics controller can be used to interface the display with the microcontroller to meet these requirements. Features like these can be utilized to avoid additional cost, space, and memory of your application.
After a brief consideration of intended application and interface of the display you can get some idea of which microcontroller processor and architecture you will need. There are a few different microcontroller processors to choose from. The main choices are ARM, AVR, PIC, and 8051. The difference between them is the bit size of the processor, 8-bit, 16-bit, 32-bit or 64-bit data . The data bit width is the amount of data that can be sent at a time. This determines the speed of data transfer and thus compatible applications and interfaces.
The AVR has an 8-bit processor and is a RISC type microcontroller. This type of processor is compatible with low speed interfaces (SPI, I2C) and smaller displays. A common AVR microcontroller board is the Arduino which has the embedded 8-bit ATMEL RISC processors. These processors are widely popular which provide the benefit of numerous online resources and availability. The Arduino processors (ATmega/SAM3X) are typically available in most microcontroller programming environments. Additionally, Arduino offers 32-bit AVR development boards which function closely to the ARM processors.
The AVR microcontrollers are constrained by the low frequency, internal memory availability and power costs. AVR’s cannot use external program memory but some may allow expansion of external SRAM. These microcontrollers alone would be incompatible for high frequency applications such as video, large displays, or capacitive touch panels.
The ARM microprocessors have a RISC architecture. They offer 32-bit or 64-bit processors and are great options for high speed interfaces (Parallel, LVDS, MIPI, HDMI) and high-resolution displays. Common ARM processors can be found from STMicroelectronics and Raspberry Pi. The most common version of the ARM processors is the “Microcontroller” Arm-M group which include the Cortex-M0 and Cortex-M4 series.
The ARM processors are compatible with most displays and connection interfaces. These microcontrollers have become increasingly popular, so the cost has become comparable between the ARM and the AVR types. These processors provide the speed, but it is recommended to verify the available RAM as these boards vary widely on included features.
The PIC architecture consists of 8, 16, and 32-bit processors developed by Microchip. The PIC 32-bit series of microcontrollers have been geared toward graphical embedded applications and there are a lot of resources online for these devices. There is a huge variety of PIC controllers which make them easily available. These microcontrollers are known for being low cost and are comparable to the ARM processors. The drawback of the PIC controllers is using Microchips programming environment, but this is based on preference.
The Intel MCS-51, more commonly known as the 8051 microcontrollers have a CISC architecture and an 8-bit processor. These processors differ in architecture from the previous and are programmed using a combination of C and assembly languages. The program memory is read only and does not have an on-board ISP. A special programming device is needed to rewrite the EEPROM or flash memory. These processors are typically small, low cost and low powered. This can make them favorable for battery powered devices. These processors are commonly used to initialize TFT displays and are combined with a graphics controller to provide the required resources such as RAM and clock frequency.
Development environments and online resources become considerably valuable when creating an application for your display. A brand new or uncommon microcontroller will have very few resources for reference. Even knowledgeable engineers can find frustrations with the manufacturers programming environments. There are many microcontroller choices that will support your display with similar and overlapping features. Choosing a microcontroller with an available FAQ, application notes or is accessible on a familiar programming platform can save a lot of time.
Buyers and others who are developing systems that incorporate FocusLCDs products (collectively, “Designers”) understand and agree that Designers remain responsible for using their independent analysis, evaluation and judgment in designing their applications and that Designers have full and exclusive responsibility to assure the safety of Designers" applications and compliance of their applications (and of all FocusLCDs products used in or for Designers’ applications) with all applicable regulations, laws and other applicable requirements.
Designer agrees that prior to using or distributing any applications that include FocusLCDs products, Designer will thoroughly test such applications and the functionality of such FocusLCDs products as used in such applications.
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
This application note describes the i.MX6 CPU graphical system and the steps to define a new custom TFT (Thin Film Transistor) display panel in Digi Embedded Yocto and discusses the most standard panels available. Some panels may need special consideration.
An LCD panel is a matrix of pixels that are divided into rows and columns. These pixels are individually painted according to different signals and timing parameters, and you can control each pixel"s color individually. The panel is continuously refreshed, typically at around 60 Hz, from the contents of the frame buffer memory. Each memory location on the frame buffer corresponds to a pixel on the LCD panel.
A 1024 x 600 resolution display requires 614400 memory locations, with each location having a number of possible colors. The number of bits needed to describe the available colors is called bits per pixel (bpp). For example, 16 bpp can describe 65536 colors and 24 bits can describe 16777216 colors (known as true color). A panel with 614400 24-bit locations requires a 1800 KB frame buffer.
Every manufacturer provides display timings in a slightly different way and some provide more detail than others. Most LCD panels work with a range of timing parameters.
The ConnectCore 6 system-on-module is designed in different module variants with both the i.MX6 Quad/Dual or i.MX6 DualLite/Solo System-On-Chips. The i.MX6 Quad/Dual has two Image Processing Units (IPU0, IPU1), each containing two Display Interfaces (DI0, DI1) while the i.MX6 DualLite/Solo has just one IPU.
NoteIf you are working on the ConnectCore 6 SBC, the corresponding IOMUX settings for the different interfaces are already configured on DEY. If you are working on a custom carrier board, you must provide the corresponding IOMUX settings on the machine"s device tree.
The i.MX6 Dual/Quad has two IPUs, each containing two DIs. Additionally, the driver allows for an overlay frame buffer per IPU (to be displayed over the frame buffer of DI0). These overlay frame buffers are also represented by nodes /dev/fbN.
Frame buffer devices provide an abstraction for the graphics hardware. You must create a frame buffer entry on your platform"s device tree file and bind it to a graphics driver through the compatible property.
The driver"s binding documentation at Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt describes additional properties for the frame buffer. You must complete the node with required and optional properties that match your hardware, for example:
You can create as many frame buffer entries as you have available display interfaces in your platform. For example, the i.MX6 Dual/Quad has two IPUs, each containing two display interfaces, equaling a total of four displays:
NoteYou can configure the LVDS display bridge for different modes (separate 0 mode on the above example). Refer to the driver"s binding documentation at Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt and to the i.MX6 CPU reference manual for details about the different supported modes.
LCD displays must be created as nodes in the device tree with a display-timings subnode. Display timings binding documentation at Documentation/devicetree/bindings/video/display-timing.txt explains the required timing properties to describe an LCD.lcdname {
Digi Embedded Yocto for the ConnectCore 6 SBC platform supports the Fusion 10.1" LVDS display out of the box. This section describes how this display was added so that you can use it as reference for similar displays.
With the information on the datasheet you must fill in the display-timings property of your display node in the device tree. This example uses the values on the typical column:
hfront-porch is the horizontal front porch, the number of clock pulses (pixels) between the last valid pixel data in the line and the next HSYNC pulse. According to the LCD data format, this value is zero.
hback-porch is the horizontal back porch, the number of clock pulses (pixels) between HSYNC signal and the first valid pixel data. According to the image above, this value is zero.
hsync-len is the number of clock pulses (pixels) during which the HSYNC signal is active. On the datasheet this corresponds to t6 Horizontal Blanking Time (176).
vfront-porch is the vertical front porch, the number of lines (HSYNC pulses) between the last valid line of the frame and the next VSYNC pulse. According to the LCD data format, this value is zero.
NoteThe recommended timings from the LCD datasheet often do not work perfectly, as each platform introduces noise and delays that affect the display"s signals and timings.
Using the information on the datasheet, you must fill in the display-timings property of your display node in the device tree. This example uses the values on the typical column:
hfront-porch is the horizontal front porch, the number of clock pulses (pixels) between the last valid pixel data in the line and the next HSYNC pulse. The datasheet does not provide this number but it provides the complete Horizontal period (TH) and the Horizontal period (High) (THd) so you can calculate the horizontal front porch as TH - THd = 1680 - 1280 = 4001.
This color chart displays a white one-pixel frame at the edges of the LCD (which allows you to verify correct position and width/height), and gradients of red, green, blue, and white (which allow you to verify correct color depth and format).
Let us start with the basics first; refresh the knowledge about TN and LCD displays in general, later we will talk about TFTs (Thin Film Transistors), how they differ from regular monochrome LCD displays. Then we will go on to the ghosting effect, so we will not only discuss the technology behind the construction of the TFT, but also some phenomena, like the ghosting effect, or grayscale inversion, that are important to understand when using an LCD TFT display.
Next, we will look at different technologies of the TFT LCD displays like TN, IPS, VA, and of course about transmissive and transflective LCD displays, because TFT displays also can be transmissive and transflective. In the last part we will talk about backlight.
Let us start with a short review of the most basic liquid crystal cell, which is the TN (twisted nematic) display. On the picture above, we can see that the light can be transmit through the cell or blocked by the liquid crystal cell using voltage. If you want to learn more about monochrome LCD displays and the basics of LCD displays, follow this link.
What is a TFT LCD display and how it is different from a monochrome LCD display? TFT is called an active display. Active, means we have one or more transistors in every cell, in every pixel and in every subpixel. TFT stands for Thin Film Transistor, transistors that are very small and very thin and are built into the pixel, so they are not somewhere outside in a controller, but they are in the pixel itself. For example, in a 55-inch TV set, the TFT display contains millions of transistors in the pixels. We do not see them, because they are very small and hidden, if we zoom in, however, we can see them in every corner of each pixel, like on the picture below.
On the picture above we can see subpixels, that are basic RGB (Red, Green, Blue) colors and a black part, with the transistors and electronic circuits. We just need to know that we have pixels, and subpixels, and each subpixel has transistors. This makes the display active, and thus is called the TFT display. TFT displays are usually color displays, but there are also monochrome TFT displays, that are active, and have transistors, but have no colors. The colors in the TFT LCD display are typically added by color filters on each subpixel. Usually the filters are RGB, but we also have RGBW (Red, Green, Blue, White) LCD displays with added subpixels without the filter (White) to make the display brighter.
Going a little bit deeper, into the TFT cell, there is a part inside well known to us from the monochrome LCD display Riverdi University lecture. We have a cell, liquid crystal, polarizers, an ITO (Indium Tin Oxide) layer for the electrodes, and additionally an electronic circuit. Usually, the electronic circuit consists of one transistor and some capacitors to sustain the pixel state when we switch the pixel OFF and ON. In a TFT LCD display the pixels are much more complicated because apart from building the liquid crystal part, we also need to build an electronic part.
That is why TFT LCD display technologies are very expensive to manufacture. If you are familiar with electronics, you know that the transistor is a kind of switch, and it allows us to switch the pixel ON and OFF. Because it is built into the pixel itself, it can be done very quickly and be very well controlled. We can control the exact state of every pixel not only the ON and OFF states, but also all the states in between. We can switch the light of the cells ON and OFF in several steps. Usually for TFT LCD displays it will be 8-bit steps per color, so we have 256 steps of brightness for every color, and every subpixel. Because we have three subpixels, we have a 24-bit color range, that means over 16 million combinations, we can, at least theoretically, show on our TFT LCD display over 16 million distinct colors using RGB pixels.
Now that we know how the TFT LCD display works, we can now learn some practical things one of which is LCD TFT ghosting. We know how the image is created, but what happens when we have the image on the screen for a prolonged time, and how to prevent it. In LCD displays we have something called LCD ghosting. We do not see it very often, but in some displays this phenomenon still exists.
If some elements of the picture i.e., your company logo is in the same place of the screen for a long period of time, for couple of weeks, months or a year, the crystals will memorize the state and later, when we change the image, we may see some ghosting of those elements. It really depends on many conditions like temperature and even the screen image that we display on the screen for longer periods of time. When you build your application, you can use some techniques to avoid it, like very rapid contrast change and of course to avoid the positioning the same image in the same position for a longer time.
You may have seen this phenomenon already as it is common in every display technology, and even companies like Apple put information on their websites, that users may encounter this phenomenon and how to fix it. It is called image ghosting or image persistence, and even Retina displays are not free of it.
Another issue present in TFT displays, especially TN LCD displays, is grayscale inversion. This is a phenomenon that changes the colors of the screen according to the viewing angle, and it is only one-sided. When buying a TFT LCD display, first we need to check what kind of technology it is. If it is an IPS display, like the Riverdi IPS display line, then we do not need to worry about the grayscale inversion because all the viewing angles will be the same and all of them will be very high, like 80, 85, or 89 degrees. But if you buy a more common or older display technology type, like the TN (twisted nematic) display, you need to think where it will be used, because one viewing angle will be out. It may be sometimes confusing, and you need to be careful as most factories define viewing direction of the screen and mistake this with the greyscale inversion side.
On the picture above, you can see further explanation of the grayscale inversion from Wikipedia. It says that some early panels and also nowadays TN displays, have grayscale inversion not necessary up-down, but it can be any angle, you need to check in the datasheet. The reason technologies like IPS (In-Plane Switching), used in the latest Riverdi displays, or VA, were developed, was to avoid this phenomenon. Also, we do not want to brag, but the Wikipedia definition references our website.
We know already that TN (twisted nematic) displays, suffer from grayscale inversion, which means the display has one viewing side, where the image color suddenly changes. It is tricky, and you need to be careful. On the picture above there is a part of the LCD TFT specification of a TN (twisted nematic) display, that has grayscale inversion, and if we go to this table, we can see the viewing angles. They are defined at 70, 70, 60 and 70 degrees, that is the maximum viewing angle, at which the user can see the image. Normally we may think that 70 degrees is better, so we will choose left and right side to be 70 degrees, and then up and down, and if we do not know the grayscale inversion phenomena, we may put our user on the bottom side which is also 70 degrees. The viewing direction will be then like a 6 o’clock direction, so we call it a 6 o’clock display. But you need to be careful! Looking at the specification, we can see that this display was defined as a 12 o’clock display, so it is best for it to be seen from a 12 o’clock direction. But we can find that the 12 o’clock has a lower viewing angle – 60 degrees. What does it mean? It means that on this side there will be no grayscale inversion. If we go to 40, 50, 60 degrees and even a little bit more, probably we will still see the image properly. Maybe with lower contrast, but the colors will not change. If we go from the bottom, from a 6 o’clock direction where we have the grayscale inversion, after 70 degrees or lower we will see a sudden color change, and of course this is something we want to avoid.
To summarize, when you buy older technology like TN and displays, which are still very popular, and Riverdi is selling them as well, you need to be careful where you put your display. If it is a handheld device, you will see the display from the bottom, but if you put it on a wall, you will see the display from the top, so you need to define it during the design phase, because later it is usually impossible or expensive to change the direction.
We will talk now about the other TFT technologies, that allow us to have wider viewing angles and more vivid colors. The most basic technology for monochrome and TFT LCD displays is twisted nematic (TN). As we already know, this kind of displays have a problem with grayscale inversion. On one side we have a higher retardation and will not get a clear image. That is why we have other technologies like VA (Vertical Alignment), where the liquid crystal is differently organized, and another variation of the TFT technology – IPS which is In-Plane Switching. The VA and IPS LCD displays do not have a problem with the viewing angles, you can see a clear image from all sides.
Nowadays all TV sets, tablets and of course mobile phones are IPS or VA. You can turn them around and see the image clear from all sides. But, for monitor applications the TN technology is still widely used, because the monitor usually is in front of you and most of the time you look directly at it, from top, left or right side, but very rarely from the bottom, so the grayscale inversion viewing angle can be placed there. This technology still is very practical because it is affordable and has some advantages for gamers because it is very fast.
Apart from the different organization of the liquid crystals, we also organize subpixels a little bit differently in a VA and IPS LCD displays. When we look closer at the TN display, we will just see the subpixels with color filters. If we look at the VA or IPS display they will have subpixels of subpixels. The subpixels are divided into smaller parts. In this way we can achieve even wider viewing angles and better colors for the user, but of course, it is more complicated and more expensive to do.
The picture above presents the TN display and grayscale inversion. For IPS or VA technology there is no such effect. The picture will be the same from all the sides we look so these technologies are popular where we need wide viewing angles, and TN is popular where we don’t need that, like in monitors. Other advantages of IPS LCD displays are they give accurate colors, and wide viewing angles. What is also important in practice, in our projects, is that the IPS LCD displays are less susceptible to mechanical force. When we apply mechanical force to the screen, and have an optically bonded touch screen, we push the display as well as squeeze the cells. When we have a TN display, every push on the cell changes the image suddenly, with the IPS LCD displays with in-plane switching, different liquid crystals organization, this effect is lesser. It is not completely removed but it is much less distinct. That is another reason IPS displays are very popular for smartphones, tablets, when we have the touchscreens usually optically bonded.
If we wanted to talk about disadvantages, there is a question mark over it, as some of them may be true, some of them do not rely on real cases, what kind of display, what kind of technology is it. Sometimes the IPS displays can have higher power consumption than others, in many cases however, not. They can be more expensive, but not necessarily. The new IPS panels can cost like TN panels, but IPS panels definitely have a longer response time. Again, it is not a rule, you can make IPS panels that are very fast, faster than TN panels, but if you want the fastest possible display, probably the TN panel will be the fastest. That is why the TN technology is still popular on the gaming market. Of course, you can find a lot of discussions on the internet, which technology is better, but it really depends on what you want to achieve.
Now, let us look at the backlight types. As we see here, on the picture above, we have four distinct types of backlight possible. The most common, 95 or 99 per cent of the TFT LCD displays on the market are the transmissive LCD display type, where we need the backlight from the back. If you remember from our Monochrome LCD Displays lecture, for transmissive LCD displays you need the backlight to be always on. If you switch the backlight off, you will not see anything. The same as for monochrome LCD displays, but less popular for TFT displays, we have the transflective LCD display type. They are not popular because usually for transflective TFT displays, the colors lack in brightness, and the displays are not very practical to use. You can see the screen, but the application is limited. Some transflective LCD displays are used by military, in applications where power consumption is paramount; where you can switch the backlight off and you agree to have lower image quality but still see the image. Power consumption and saving energy is most important in some kind of applications and you can use transflective LCD displays there. The reflective type of LCD displays are almost never used in TFT. There is one technology called Low Power Reflective Displays (LPRD) that is used in TFT but it is not popular. Lastly, we have a variation of reflective displays with frontlight, where we add frontlight to the reflective display and have the image even without external light.
Just a few words about Low Power Reflective Displays (LPRD). This kind of display uses environmental light, ambient light to reflect, and produce some colors. The colors are not perfect, not perfectly clear, but this technology is becoming increasingly popular because it allows to have color displays in battery powered applications. For example, a smartwatch would be a case for that technology, or an electrical bike or scooter, where we can not only have a standard monochrome LCD display but also a TFT LCD color display without the backlight; we can see the image even in
You have app. 15% of the article left. That content is exclusive for our Riverdi University members only. Please fill out the Riverdi University Membership form below and join our community!
strong sunlight and not need backlight at all. So, this kind of TFL LCD display technology is getting more and more popular when we have outdoor LCD displays and need a low power consumption.
On the picture above, we have some examples of how transmissive and reflective LCD displays work in the sunlight. If we have a simple image, like a black and white pattern, then on a transmissive LCD display, even with 1000 candela brightness, the image probably will be lower quality than for a reflective LCD display; if we have sunlight, we have very strong light reflections on the surface of the screen. We have talked about contrast in more detail in the lecture Sunlight Readable Displays. So, reflective LCD displays are a better solution for outdoor applications than transmissive LCD displays, where you need a really strong backlight, 1000 candela or more, to be really seen outdoors.
To show you how the backlight of LCD displays is built, we took the picture above. You can see the edge backlight there, where we have LEDs here on the small PCB on the edge, and we have a diffuser that distributes the light to the whole surface of LCD screen.
In addition to the backlight, we have something that is called a frontlight. It is similar to backlight, it also uses the LEDs to put the light into it, but the frontlight needs to be transparent as we have the display behind. On the example on the picture above we can see an e-paper display. The e-paper display is also a TFT display variation, but it is not LCD (liquid crystal), it is a different technology, but the back of the display is the same and it is reflective. The example you see is the Kindle 4 eBook reader. It uses an e-paper display and a frontlight as well, so you can read eBooks even during the night.
Please remember to SUBSCRIBE to our YouTube channel and fill out the MEMBERSHIP FORM, to be informed about our Riverdi University materials and live events!
It"s based on an RGB TFT display controlled by an ATtiny814. It uses a crystal-controlled oscillator to keep accurate time, and takes advantage of the routines for reading from a TFT display described in my earlier article Reading from a TFT Display.
This started as a demo program for my TFT Graphics Library with support for reading from the display, but it grew in complexity, so I decided to write it up as a stand-alone project.
Without the ability to read back from the display you would have to redraw the whole display every time the hands move, which will be once a second if the clock has a seconds hand. This would require a fast processor.
This clock avoids the need to do this by using the ability to read from the TFT display to exclusive-OR the colour of each hand onto the image of the clock face. When the hand moves, you can remove it from its last position by drawing it again, which will restore the background to its previous state. This ensures that features under the hands, such as the hour numbers, aren"t wiped out when the hands pass over them.
The clock is designed to work with a 240x240 or 320x240 RGB TFT display available from AliExpress. I"ve also made a lower-resolution version that will work on a 128x128 or 160x128 display; see Lower resolution version. The following displays are suitable:
Unfortunately Adafruit displays aren"t compatible with this application, because they don"t support reading from the display; there"s more information about this in my article Reading from a TFT Display.
The clock uses the ATtiny814 Real-Time Clock to generate an interrupt every second, with the timing controlled by a 32.768kHz crystal. For the crystal I used a low-cost cylindrical clock crystal L - CS), where CL is the load capacitance, and CS is the stray capacitance which is usually estimated to be 2.5pF on a PCB. This gives C=20pF.
Orient Display provides standard andhighly customized embedded display boards with the option of touch panel. The displays are embedded with software to save your valuable development time and cost. Your development time can be as long as several months or even years with little support and few crew members. It can also be as short as a few weeks or days with yourselves and Orient Display engineering team.
AGN series are designed for fast and reliable interactive interface for full-graphic display with touch panels. They are easy to develop, flexible, UI user friendly, and reliable. They save a lot of work on single-chip coding volume.
Orient Display has focused on ARM processor-related technologies for many years, and has accumulated rich experience in the development and implementation of ARM architecture products. While continuously launching development platforms and core board that meet the general needs of the market, it also addresses the individual project needs of customers.
Our Hardware team make prototypes in the shortest time according to your design ideas and requirements. We specialize in the design of cost-effective embedded ARM hardware solutions to meet your requirement for high reliability in a short development cycle.
Our Software team will help you customize all the functions of the cutting driver layer. As a complete solution provider for Linux, Android and WinCE in embedded systems, we can solve the end-to-end system-related problems of your products.
Select the Display kit that best suits your application requirements for microprocess, software and display. Orient Display kits come with ARM and Intel processors with various display sizes, touch panel technologies, software and interface options.
After fully discussion and evaluation with you, Orient Display engineering team can tailor make the Display Kit to fully fit your application requirements. Orient Display engineering team will work side by side with you to provide customization for firmware, hardware, software, mechanical design, and many more. Our engineering team will also fully test the customized embedded display prototypes to make sure they fully meet your original design target.
The above information can be overwhelming. Actually, we design a lot of embedded touch panels and LCD displays projects without being provided with so detailed information. Our engineers and customer service can quickly decide the parameters based on the customer’s applications. Please feel free to contact our engineers for details.
The content is intended to be updated from time to time, I will add more details if I found new display or library update. You can also help me enrich the content by leaving comments below.
You can run various IoT projects prefectly without any display. But not all IoT project only feed data in single direction (IoT to server), some IoT also gather real time information from the server for displaying.
My previous instructables, ESP32 Photo Clock is am example, it download a current minute photo from the Internet, decode the JPEG photo and display it.
There are various real time information in your server or Internet, such as all rooms temperature in your home, server CPU usage, weather forecast, news, stock price, your downloading file is done, your Youtube channel views :>
Many Arduino projects use monochrome display, one of the reason is the limited resources of a MCU. 320 pixels width, 240 pixels height and 8 bits color for each RGB color channel means 230 KB for each full screen picture. But normal Arduino (ATmega328) only have 32 KB flash and it is time consuming (over a second) to read data from SD card and draw it to the color display.
ESP32 have changed the game! It have much faster processing power (16 MHz vs 240 MHz dual core), much more RAM (2 KB vs over 200 KB) and much more flash (32 KB vs 4 MB), so it is capable to utilize more color and higher resolution image for displaying. At the same time it is capable to do some RAM hungry process such as Animated GIF, JPEG or PNG file decoding, it is a very important feature for displaying information gathered from the internet.
Color display have many type of interfaces: Serial Peripheral Interface (SPI), 6-bit, 8-bit, 16-bit, 18-bit and 24-bit parallel interfaces and also NeoPixel!
SPI dominate the hobby electronics market, most likely because of fewer wire required to connect. Most display in my drawer only have SPI pins breaking out, so this instructables focus on SPI display and a few 8-bit display.
NeoPixel matrix is a very special type of color display. If you are interested in NeoPixel matrix display, here are some of my instructables using it:
There are various color display for hobby electronics: LCD, IPS LCD, OLED with different resolutions and different driver chips. LCD can have higher image density but OLED have better viewable angle, IPS LCD can have both. OLED have more power efficient for each light up pixel but may have burn-in problems. Color OLED operate in 14 V, it means you need a dedicate step-up circuit, but it is not a problem if you simply use with a break-out board. LCD in most case can direct operate in 3.3 V, the same operating voltage as ESP32, so you can consider not use break out board to make a slimmer product.
Software support on the other side also influence your selection. You can develop ESP32 program with Arduino IDE or direct use ESP-IDF. But since ESP-IDF did not have too much display library and not much display hardware supported, so I will concentrate on Arduino display libraries only.
For the beginner, I think buying adafruit, or similar supportive vendor, hardware and using its Arduino library can have good seamless experience (though I have no budget to try it all). TFT_eSPI library have better performance but configuration require make changes in the library folder. Ucglib and UTFT-ESP run a little bit slow but it support many hardware and it is a popular library, you can find many Arduino projects using it. LovyanGFX library start appear at 2019, it support many dev device such as M5Stack, M5StickC, TTGO T-Watch, ODROID-GO, ESP-WROVER-KIT, WioTerminal and more. I am also writing a new library called Arduino_GFX since 2019.
OLED have a big advantage, the pixel only draw power if it lights up. On the other hand, LCD back light always draw full power even you are displaying a black screen. So OLED can help save some power for the project powered by a battery.
This is a 1.5" 128 x 128 color OLED, this form factor is very fit for smart-watch-like wearable project. The most barrier of select this should be the price tag is around 4 times of a normal LCD.
ST7735 is a very popular LCD driver model for the resolution 128x128 and 128x160. It may cause by its popularity, there are many manufacturer produce compatible product. However, they are not fully compatible.
Thanks for the popularity of wearable gadget, I can find more small size IPS LCD in the market this year(2018). The above picture is an 0.96" 80x160 IPS color LCD using ST7735 driver chip. As you can see in the 3rd picture, you can treat it as a 128x160 color display in code but only the middle part is actually displaying. The 4th picture is the display without breakout board, it is thin, tiny and very fit for a wearable project!
SSD1283A is 1.6" 130x130 display, it claim only consume 0.1 in sleep mode and backlight turned off. In sleep mode the last drawn screen still readable under sufficient lighting.
It is a 2.2" 176x220 color LCD. It is relatively fewer projects using this chips and resolution. It may caused by the success of its chip family brother, ILI9341 (0.2" larger in size but have near double resolution).
I think ILI9341 is the most popular LCD driver chip in the hobby electronics market. In most case it is 240x320 resolution and have many screen size from 1.7" to 3.5". Some breakout board also built-in touch screen feature.
This also the highest pixel density color display in my drawer. As same as normal LCD, it can direct operate in 3.3 V, so it is very good for making slim wearable device.
There are many display libraries that can support various hardware. I have picked 4 of most popular Arduino library for comparison:Adafruit GFX Family
The display speed is one of the most important thing we consider to select which library. I have chosen TFT_eSPI PDQ test for this comparison. I have made some effort to rewrite the PDQ test that can run in 4 libraries. All test will run with the same 2.8" ILI9341 LCD.
As I found TFT_eSPI is the most potential display library for ESP32 in this instructables, I have paid some effort to add support for all my display in hand. The newly added display support marked letter M in red at the above picture, here is my enhanced version:
Adafruit sell various display module in hobby electronics market and they also have very good support in software level. Their display libraries all built on a parent class called Adafruit_GFX, so I call it Adafruit GFX Family. This library generally support most Arduino hardware (also ESP32).
In Arduino Library Manager simply search "adafruit display", you can see all the family members. If you want to install it, say ILI9341, simply select "Adafruit ILI9341" and then click install. Remember also install its dependent library "Adafruit GFX Library".
This library method signature is very similar to Adafruit GFX, but it is tailor-made for ESP8266 or ESP32. I think the source code is optimised for ESP32, so the PDQ result is much faster than other libraries.
Note: The most difficult part using this library is you are required to configure this library before you can use it. The configuration file is located at the library folder, it should be "Arduino/libraries/TFT_eSPI/User_setup.h" under you own documents folder. It have many comments help you to do that, please follow the comments step by step to finish the configuration. Here is my User_setup.h for ILI9341:
#define LOAD_GLCD // Font 1. Original Adafruit 8 pixel font needs ~1820 bytes in FLASH
#define LOAD_FONT2 // Font 2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
ESP32 + ILI9341 can run at SPI speed 40 MHz, it require some code change at library folder. The above pictures are the fine tuned result. Here are the code change summary:
ST7735 and ILI9341 are the most popular display, this 2 are better option for the beginner. You may notice LCD have a big weakness, the viewable angle, some color lost outside the viewable angle and the screen become unreadable. If you have enough budget, OLED or IPS LCD have much better viewable angle.
In most case, we study how to use a code library by searching sample on the web. I have tried search four libraries keyword in Github, Adafruit is most popular and UTFT the second.
ILI9341 should be most valuable display for the beginner. Adafruit GFX Library should be most easy to use for the beginner, and since TFT_eSPI have very similar method signature, it is very easy to switch to a faster library later on.
OLED require 14 V to light up the pixel so it is not easy to decouple the breakout board. On the other hand, LCD (also IPS LCD) usually operate in 3.3 V, as same as the ESP32. In most case, there are only the LED control circuit required between LCD and ESP32, i.e. a transistor and few resistors. So it relatively easy to make it.
It is very important to read the data sheet first before you decide not using breakout board. The pins layout, pin pitch size, the sample circuit connection and maximum rating all you can find in data sheet. The maximum voltage is especially important, you should sticky follow the rating or you will blow your LCD. The chip can operate in 3.3 V but LED may be 2.8 - 3.0 V so it require some electronics in the middle, most data sheet have the sample circuit. You may ask your seller send a soft copy of data sheet to you or simply Google it by the model number.
My special hint: I like to soldering a FPC cable with the same pin pitch size as the LCD to help the connection with the MCU. I have used this technique in these instructables:
If you read through the data sheet of the color display, you may find most of color display can support 18 bit color depth (6 bit for each RGB channel). 18 bit color depth can have a better image quality that 16 bit color depth (5 bit in red and blue channel, 6 bit for green channel). However, only Ucglib actually run at 18 bit color depth (262,144 colors), other 3 libraries all run at 16 bit color depth (65,536 colors). It is because 18 bit color depth actually require transfer 3 bytes (24 bit) of data for each pixel, it means 50% more data require to transfer and store in memory. It is one of the reason why Ucglib run slower, but it can have a better image quality.
Thank you very much for posting this detailed review of the color display option available for "Duino users. You have saved me hours, maybe days of time wandering the web looking for information.0
Great article! Very interested in round displays. There are available round displays based on st7687s (128 * 128) and st7789 (240 * 240), but I have not found any information on practical use.
Hello! Yes, I purchased this display from keyestudio, connected it to esp32 using this library from dfrobot. It is only necessary to consider that the pinout of the display connectors differs from dfrobot and keyestudio.
I"m wanting to connect a VGA camera, the sort you find as a little module on eBay with OVPxxxx chip, to a screen such as ILxxxx family, which appears to have direct VGA input. I think it will work if I connect the camera directly with no MCU, but I"d also like to add a cross-hair to the display (for a drill targetting system). I wonder is it possible to intercept the serial video data and change individual pixels in a streaming fashion, instead of loading a whole screen into memory, changing it and passing it on? I ask because it seems to me it would need a much less powerful MCU.0
Thank you so much for such a great article. I have been trying to choose the best library to use for a project that will use either a SSD1351 or a ST7735 both being 128x128. The key to my project is to be able to dump a frame buffer in to the display and then recalculate the next frame buffer. :)
CS stands for cable select, it tell the device the SPI is active for that device. If you only have 1 device connected to the the SPI, you can simply pull down the CS pin to tell it always active. It can also simplify the code no need turn CS on and off for each message and run a little bit faster. Some breakout board not wire out CS pin and simply pull it down for you.0
So, basically I make a reset in the beggining (read datasheet) then next I use only SPI_DAT and SPLI_CLK. If I destroy the sequence touching with an oscilloscope, the LCD stops to understand the sequence DAT/CLK and I have to make another reset.
Those 2 pins must be dedicated to the display, otherwise the display will get confused without the CS pin. One DAT/CLK to LCD and another DAT/CLK to I2C.
Hello! Thank"s for your instruction. I want to use your 8pin ili9486 320x480 spi display with one of your presented libraries and esp32. 1.) Could you please tell me the connections between the display and the esp32 and 2.) which numbers do I have to write into the line utft myglcd (ili9486,?,?,?,?)?
The wide range of conditions over which LCD monitors are used means that it is desirable to produce displays whose luminance (brightness) can be altered to match both bright and dim environments. This allows a user to set the screen to a comfortable level of brightness depending on their working conditions and ambient lighting. Manufacturers will normally quote a maximum brightness figure in their display specification, but it is also important to consider the lower range of adjustments possible from the screen as you would probably never want to use it at its highest setting. Indeed with specs often ranging up to 500 cd/m2, you will certainly need to use the screen at something a little less harsh on the eyes. As a reminder, we test the full range of backlight adjustments and the corresponding brightness values during each of our reviews. During our calibration process as well we try to adjust the screen to a setting of 120 cd/m2 which is considered the recommended luminance for an LCD monitor in normal lighting conditions. This process helps to give you an idea of what adjustments you need to make to the screen in order to return a luminance which you might actually want to use day to day.
Changing the display luminance is achieved by reducing the total light output for both CCFL- and LED-based backlights. By far the most prevalent technique for dimming the backlight is called Pulse Width Modulation (PWM), which has been in use for many years in desktop and laptop displays. However, this technique is not without some issues and the introduction of displays with high brightness levels and the popularisation of LED backlights has made the side-effects of PWM more visible than before, and in some cases may be a source of visible flicker, eyestrain, eye fatigue, headaches and other associated issues for people sensitive to it. This article is not intended to alarm, but is intended to show how PWM works and why it is used, as well as how to test a display to see its effects more clearly. We will also take a look at the methods some manufacturers are now adopting to address these concerns and provide flicker-free backlights instead. As awareness grows, more and more manufacturers are focusing on eye health with their monitor ranges.
Pulse Width Modulation (PWM) is one method of reducing the perceived luminance in displays, which it achieves by cycling the backlight on and off very rapidly, at a frequency you can’t necessary detect with the naked eye, but which could lead to eye issues, headaches etc. This method generally means that at 100% brightness a constant voltage is applied to the backlight and it is continuously lit. As you lower the brightness control the perceived luminance for the user reduces due to a number of possible controlling factors:
1) Frequency –The backlight is cycled on and off very rapidly, and this cycling typically occurs at a fixed frequency (in Hz). How fast this cycling occurs can impact whether flicker is visible or perceivable to the user, with higher frequencies being potentially less problematic. PWM has been known to operate at low frequencies of 180 – 240Hz for example which are likely to be more problematic than higher frequencies ranging up in to the Kilohertz range (e.g. 18,000Hz).
2) Modulation –The modulation of the cycling has an impact on the perceived brightness, and this describes the difference between the luminance in an “on” and in an “off” state. In some examples the backlight is completely turned off during the cycle so it is literally being turned on/off rapidly across the full brightness adjustment range. In those examples the luminance output is controlled really by the duty cycle only (see point 3). In other examples the backlight is not always being completely turned off but rather the voltage applied to the backlight is being rapidly alternated, resulting in less extreme differences between the on and off states. Often this modulation will be narrow in the high brightness range of the display, but as you reduce further, the modulation becomes wider until it reaches a point where the backlight is being switched completely off. From there, the change in the duty cycle (point 3) controls the further changes in the luminance output.
3) Duty Cycle – The fraction of each cycle for which the backlight is in an “on” state is called the duty cycle. By altering this duty cycle the total light output of the backlight can be changed. As you reduce the brightness to reach a lower luminance, the duty cycle becomes progressively shorter, and the time for which the backlight is on becomes shorter, while the time for which it is off is longer. This technique works visually since cycling the backlight on and off sufficiently fast means the user cannot see this flickering, because it lies above their flicker-fusion threshold (more on this later).
Above we can see graphs of a backlight’s output using “ideal” PWM for several cycles. The maximum output of this backlight in the example is 100 cd/m2, and the perceived luminance for the 90%, 50% and 10% cases are: 90, 50 and 10 cd/m2 respectively. The modulation percentage is the ratio between the minimum and maximum luminance during the cycle, and is 100% here, so it is being completely turned on and off. Note that during the duty cycle the backlight is at its maximum luminance.
The analogue (non-PWM) graphs corresponding to these perceived luminance levels would appear as shown below. In this case there is no modulation. This is the method used for flicker-free backlights which we will discuss more a little later.
The main reasons for the use of PWM is that it is simple to implement, requiring only that the backlight can be switched on and off rapidly, and also gives a large range of possible luminance.
The luminance of LED backlights can be adjusted greatly by altering the current passing through them, though this has the effect of altering the colour temperature slightly. This analogue approach to LED luminance is also undesirable since the accompanying circuits must take into account the heat generated by the LED’s. LED’s heat up when on, which reduces their resistance and further increases the current flowing through them. This can quickly lead to runaway current use in very high-brightness LED’s and cause them to burn out. Using PWM the current can be forced to hold a constant value during the duty cycle, meaning the colour temperature is always the same and current overloads are not a problem.
While PWM is attractive to hardware makers for the reasons outlined above, it can also introduce distracting visual effects if not used carefully. Flicker from LED backlights is typically much more visible than for older CCFL backlights at the same duty cycle because the LED’s are able to switch on and off much faster, and do not continue to “glow” after the power is cut off. This means that where the CCFL backlight showed rather smooth luminance variation, the LED version shows sharper transitions between on and off states. This is why more recently the subject of PWM has cropped up online and in reviews, since more and more displays are moving to W-LED backlighting units now.
It is important to remember that this is entirely due to the backlight, and the display itself is showing a static image. Often it is said that humans cannot see more than 24 frames per second (fps), which is not true and actually corresponds to the approximate frame rate needed to perceive continuous motion. In fact, while the eyes are moving (such as when reading) it is possible to see the effects of flicker at several hundred hertz. The ability to observe flicker varies greatly between individuals, and even depends on where a user is looking since peripheral vision is most sensitive.
It is also important to distinguish the difference between flicker in CRT displays and CCFL and LED backlit TFT displays. While a CRT may flicker as low as 60Hz, only a small strip is illuminated at any time as the electron gun scans from top to bottom. With CCFL and LED backlit TFT displays the entire screen surface illuminates at once, meaning much more light is emitted over a short time. This can be more distracting than in CRTs in some cases, especially if short duty cycles are used.
The flicker itself in display backlights may be subtle and not easily perceptible for some people, but the natural variation in human vision seems to make it clearly visible to others. With the use of high-brightness LED’s on the rise it is becoming increasingly necessary to use short PWM duty cycles to control brightness, making flicker more of a problem. With users spending many hours every day looking at their monitors, shouldn’t we consider the long term effects of both perceptible and imperceptible flicker?
If you find PWM backlight flick