arduino 5 tft lcd touch screen shield ra8875 quotation

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.
Of course, we wouldn"t just leave you with a datasheet and a "good luck!" - we"ve written a full open source graphics library at the bottom of this page that can draw pixels, lines, rectangles, circles and text. We also have a touch screen library that detects x,y and z (pressure) and example code to demonstrate all of it. The code is written for Arduino but can be easily ported to your favorite microcontroller!
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.
If you"ve had a lot of Arduino DUEs go through your hands (or if you are just unlucky), chances are you’ve come across at least one that does not start-up properly.The symptom is simple: you power up the Arduino but it doesn’t appear to “boot”. Your code simply doesn"t start running.You might have noticed that resetting the board (by pressing the reset button) causes the board to start-up normally.The fix is simple,here is the solution.

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 (18 white-LED backlight) and colorfu 800x480 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.
Of course, we wouldn"t just leave you with a datasheet and a "good luck!" - we"ve written a full open source graphics library at the bottom of this page that can draw pixels, lines, rectangles, circles and text. We also have a touch screen library that detects x,y and z (pressure) and example code to demonstrate all of it. The code is written for Arduino but can be easily ported to your favorite microcontroller!
If you"ve had a lot of Arduino DUEs go through your hands (or if you are just unlucky), chances are you’ve come across at least one that does not start-up properly.The symptom is simple: you power up the Arduino but it doesn’t appear to “boot”. Your code simply doesn"t start running.You might have noticed that resetting the board (by pressing the reset button) causes the board to start-up normally.The fix is simple,here is the solution.

ER-TFTM050-2-4125 is 5 inch tft lcd display with RA8875 controller board,arduino shield,examples,library.Optional touch panel,arduino mega2560,due or uno board.

ER-TFTM050-3 is 5 inch tft lcd module WVGA 800x480 display,serial,spi,i2c parallel interface,RA8875 controller,capacitive or resistive touch screen panel
which I"m looking to use with the Arduino Mega, to do this the datasheet say that logic level is 3.3V which means i need a logic level converter. So I"ve connected the Arduino Mega to the logic level converter then onto the screen SPI pins on the screen.
ER-TFTM050-3-4125 is 5 inch tft lcd display with RA8875 controller board,arduino shield,examples,library.Optional touch panel,arduino mega2560,due or uno board.
at the bottom of the page is an Arduino library for driving the graphics chip with the shield, from what i can see all the shield is just a logic level converter for the screen, I"ve got this from the schematics and my understating of Arduino logic.
So will the library that they supply with the shield work with the set up i have created? I cant see why it wouldn"t but when i connect it all up the screen is not working, its black but their is data on the pins on both side of logic level converter, I was using one of Buy Displays Arduino Mega examples that come with the library on the shield page, I"ve made sure I"ve changed the CS but its still not working and i cant see why it wouldn"t work.

Have you gazed longingly at large TFT displays - you know what I"m talking about here, 4", 5" or 7" TFTs with up to 800x480 pixels. Then you look at your Arduino. You love your Arduino (you really do!) but there"s no way it can control a display like that, one that requires 60Hz refresh and 4 MHz pixel clocking. Heck, it doesn"t even have enough pins. I suppose you could move to ARM core processors with TTL display drivers built in but you"ve already got all these shields working and anyways you like small micros you"ve got.
What if I told you there was a driver chip that could fulfill those longings? A chip that can control up 800x480 displays, and heck, a resistive touchscreen as well. All you need to give up is 5 or so SPI pins. Would you even believe me? Well, sit down because this product may shock you.
The RA8875 is a powerful TFT driver chip. It is a perfect match for any chip that wants to draw on a big TFT screen but doesn"t quite have the oomph (whether it be hardware or speed). Inside is 768KB of RAM, so it can buffer the display (and depending on the screen size also have double overlaying). The interface is SPI with a very basic register read/write method of communication (no strange and convoluted packets). The chip has a range of hardware-accelerated shapes such as lines, rectangles, triangles, ellipses, built in and round-rects. There is also a built in English/European font set (see the datasheet section 7-4-1 for the font table) This makes it possible to draw fast even over SPI.
The RA8875 can also handle standard 4-wire resistive touchscreens over the same SPI interface to save you pins. There"s an IRQ pin that you can use to help manage touch interrupts. The touchscreen handler isn"t the most precise driver we"ve used, so we broke out the X/Y pins so you can connect them up to something like the STMPE610 which is a very classy touchscreen controller.
On the PCB we have the main chip, level shifting so you can use safely with 3-5V logic. There is also a 3V regulator to provide clean power to the chip and the display. For the backlight, we put a constant-current booster that can provide 25mA or 50mA at up to 24V. The connector to the screen is a classic "40 pin" connector. All the 40-pin TFT"s in the Adafruit shop are known to work well. There are other 40-pin displays that have different pinouts or backlight management and these may not work - they may even damage the driver or TFT if the boost converter pushes 24V into the display logic pins! For that reason, we only recommend the displays we"ve tested and sell here.
Each order comes with an assembled, tested RA8875 breakout and a stick of header. You"ll also need to purchase a 40-pin TFT screen. We currently have 4.3", 5.0" and 7.0" screens available.
To get you started we"ve written a graphics library that handles the basic interfacing, drawing and reading functions. Download the Adafruit RA8875 library from github and install as described in the tutorial. Connect a 40 pin TFT to the FPC port and wire up the SPI interface to an Arduino as described in the example code. Once started you"ll be able to see the graphic/text demo and then touch the screen to "paint". For more advanced details on what the RA8875 can do (and it can do a lot) check the datasheet.

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.

ER-TFTM050-3 is 5 inch tft lcd module WVGA 800x480 display,serial,spi,i2c parallel interface,RA8875 controller,capacitive or resistive touch screen panel
which I"m looking to use with the Arduino Mega, to do this the datasheet say that logic level is 3.3V which means i need a logic level converter. So I"ve connected the Arduino Mega to the logic level converter then onto the screen SPI pins on the screen.
ER-TFTM050-3-4125 is 5 inch tft lcd display with RA8875 controller board,arduino shield,examples,library.Optional touch panel,arduino mega2560,due or uno board.
at the bottom of the page is an Arduino library for driving the graphics chip with the shield, from what i can see all the shield is just a logic level converter for the screen, I"ve got this from the schematics and my understating of Arduino logic.
So will the library that they supply with the shield work with the set up i have created? I cant see why it wouldn"t but when i connect it all up the screen is not working, its black but their is data on the pins on both side of logic level converter, I was using one of Buy Displays Arduino Mega examples that come with the library on the shield page, I"ve made sure I"ve changed the CS but its still not working and i cant see why it wouldn"t work.

635 arduino tft lcd products are offered for sale by suppliers on Alibaba.com, of which lcd modules accounts for 64%, lcd touch screen accounts for 14%.

How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due . Welcome to my blog, where I explore the rich and complex world of How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due! As a How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due enthusiast, I"m thrilled to share with you my insights and experiences on this fascinating subject. You"ll find a diverse range of content that covers everything from the fundamentals of How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due to the latest trends and innovations in the field. My goal is to provide you with thought-provoking articles that will deepen your understanding of How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due and help you see the world in new and exciting ways. So, whether you"re a student, a professional, or simply a curious learner, I invite you to join me on this journey of discovery, and let"s explore the wonders of How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due together! Thank you for stopping by, and I can"t wait to share with you all that I have in store Attach 4 in- corrugated pipe to hub 4 in- sampd pipe or fitting to spigot also connects 4 in- corrugated pipe to select drainage products that accommodate 4 in- sampd connections adapter made of high density polyethylene hdpe using a combination of virgin and recycled content treated with uv inhibitors to prevent fading and cracking-
Download the adafruit ra8875 library from github and install as described in our tutorial. connect a 40 pin tft to the fpc port and wire up the spi interface to an arduino as described in the example code. once started you"ll be able to see the graphic text demo and then touch the screen to "paint". Download the adafruit ra8875 library from github and install as described in our tutorial. connect a 40 pin tft to the fpc port and wire up the spi interface to an arduino as described in the example code. once started you"ll be able to see the graphic text demo and then touch the screen to "paint". Start by opening up the file > examples > adafruit ra8875 > buildtest: be sure to set the screen size in the sketch to the appropriate size and upload it to your arduino. you"ll see a graphics test program run, showing drawing lines, text, rectangles, ellipses, triangles, etc. feel free to touch the screen if your lcd display is a touchscreen. In the setup section we need to initiate the screen and the touch, define the pin modes for the connected sensor, the led and the button, and initially call the drawhomesreen () custom function, which will draw the home screen of the program. You can get buy some really cheap lcd and touchscreen modules from places like ebay. they"re actually great devices that let you add a display to your arduin.
Figure out how to hook up the hardware, i.e., which display pins are wired to which pins of the arduino. load an example sketch into the arduino ide, and then upload it to the attached arduino board with wired up tft display. with luck, you will see text and or graphics. 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. Description er tft043a1 7 is 4.3 inch ips tft lcd 800x480 dots display, with driver ic st7262e43 and optional capacitive touch panel or resistive touch panel,superior display quality,full view angle and easily controlled by mcu such as pic, avr, arduino,arm and raspberry portable or handheld device.pi.
And here is a list of image How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due greatest After simply inserting syntax you can one Article to as many completely Readable versions as you may like that any of us say to and also demonstrate Creating articles is a rewarding experience for your requirements. We get best lots of Cool article How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due beautiful picture yet many of us simply present the articles that we feel are classified as the finest image.
The particular images How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due is regarding amazing tryout if you decide to like the about make sure you pick the original reading. Support your reader through buying the first words How To Connect 4 3 Inch 800×480 Tft Lcd Module Ra8875 With Touch Shield To Arduino Due and so the admin provides the most beneficial images in addition to proceed working At looking for perform all kinds of residential and commercial services. you have to make your search to receive a free quotation hope you are okay have a good day.
where to buy buydisplay default 800x480 4 3 tft arduino shield capacitive touch screen for mega due uno where to buy buydisplay default 4 3 inch tft lcd arduino shield tutorial ssd1963 for mega due 1 description where to buy buydisplay default arduino 5 inch tft lcd touch screen shield ra8875 library for mega due uno where to buy buydisplay default 4 3 inch tft lcd arduino shield tutorial ssd1963 for mega due description spice where to buy buydisplay default serial spi arduino 8 inch tft lcd touch shield ra8875 for mega due uno where to buy buydisplay default serial spi arduino 9 inch tft lcd touch shield ra8875 for mega due uno where to buy buydisplay default serial spi arduino 7 inch tft lcd touch shield ra8875 for mega due uno where to buy buydisplay default serial spi arduino 5 inch tft lcd touch shield ra8875 for mega due uno in this arduino tutorial we will learn how to use tft lcd touch screen with arduino. where to buy buydisplay default 7 inch arduino touch screen shield ssd1963 library for mega due description where to buy buydisplay default 9 inch arduino touch screen shield ssd1963 library for mega due description in a previous video, we looked at how to attach a tft lcd screen to a raspberry pi to build a small form factor project. but what if

After creating an Internet connected digital clock using the Adafruit RA8875 driving an Adafruit seven inch LCD display (Figure 1), my thoughts turned to making a different model that didn’t use a slave Arduino Nano to drive the LCD display. (Refer to my previous article
My desire was to include several additional features as well, which would require more program space in the microcontroller that drives the LCD display. This new program would also make use of the LCD touch screen to allow a user to select different features of the device.
I selected the Arduino MKR Wi-Fi 1010 for replacing the ESP32 and Arduino Nano. It was tested with the RA8875 and LCD connected, and it worked fine. The MKR Wi-Fi 1010 has 256k program space — a vast improvement over the Nano. Plus, it has Internet connectivity. The WiFiNINA library the Wi-Fi 1010 uses for Internet connectivity includes an SSL client which allows access to secure websites.
After having built this project with the single Arduino MKR Wi-Fi 1010, I was unhappy with it. Yes, that’s correct, I didn’t like it. The goal of having only one microcontroller in the project was achieved but, in my opinion, it was a mistake. There is something to be said for using a separate microcontroller for Internet connectivity and another one to drive the RA8875 and LCD display.
The microcontroller driving the LCD display doesn’t have to deal with the relatively slow Internet retrieval. Receiving data from the Internet takes some time; at least a fraction of a second and sometimes longer than a second or two. With the digital clock needing to be updated once a second, this can be a problem.
There was also another option I wanted to add: an SD card interface to allow me to store and display images on the LCD similar to a photo frame. An SD card interface utilizes the SPI library which is also used to drive the Adafruit RA8875. With Adafruit’s warning about needing to tri-state at least one SPI pin when sharing the SPI interface, a better solution would be a microcontroller with at least two SPI interfaces.
The Teensy 3.5 microcontroller looked like a good choice since it has three SPI interfaces, with one used by the built-in microSD card socket. It also has 512k Flash memory, 120 MHz clock speed, and is compatible with the RA8875 driving the LCD. The Arduino MKR Wi-Fi 1010 could still be used for the Internet connectivity, but an ESP32 has a faster clock speed and is one third the cost.
Both of these devices are available on small breakout boards and with the addition of a pair of two inch speakers, it was possible to squeeze everything into the case I had already 3D printed. A VS1053 board was used for the MP3 decoder (labeled from LC Technology; see Figure 2) and is available from Amazon or eBay.
This board measures only 29 x 20 mm. Because the wall thickness of my project box is almost 5 mm and the threaded portion of the potentiometer was only about 5.5 mm, I elected to epoxy the potentiometer into a hole on the box face.
Instead of having the ESP32 sending updated information to the Teensy 3.5 on a regular schedule, the Teensy 3.5 sends requests for specific data to the ESP32. The ESP32 waits for these requests and when one arrives, it fetches the information from the Internet and returns it to the Teensy in a concise data string.
It’s similar to a simple client-server architecture except the two microcontrollers are connected by their serial ports running at 38,400 baud. Serial3 on the Teensy 3.5 is connected to Serial2 on the ESP32 (Figure 4).
When one of these request strings is received, the ESP32 sends its request through the Internet for the appropriate data. When the data is received, it’s parsed and then sent to the Teensy 3.5 as a concise string, which is then parsed by the Teensy to retrieve the data it requested.
When the Teensy 3.5 sends a radio string, the ESP32 connects to the current radio station and then enters an endless loop to read the continuous stream of the digitized radio signal sent from the Internet.
At this point, the ESP32 can’t read any requests sent from the Teensy 3.5 since it’s locked in the tight loop to read the radio stream. The only way to break out of the loop is through an external interrupt request.
The Teensy pin 14 is tied to the ESP32 pin 13, and pin 17 is tied to 14. You only need to go from a HIGH to a LOW state on pin 14 or 17 of the Teensy 3.5 for a few milliseconds to initiate an interrupt on the ESP32:
When you try to download a program into the ESP32, pin 12 will be held HIGH by the Teensy 3.5 in its default state unless you remove it from its socket on the PCB. With pin 12 held HIGH, the ESP32 will not be able to receive a download.
It should also be noted that while the radio is playing, you can exit the radio menu and return to the default time and date screen, but there will not be any updates of the weather or the time from the Internet.
A flowchart for the ESP32 program is shown in Figure 5 and the Teensy 3.5 program in Figure 6. The bulk of the software resides in the Teensy 3.5 — about 2,000 total lines, including blanks and comments. However, that only uses 14% of the program space available.
The vast majority of the Teensy program code deals with writing to the LCD screen and reacting to the touch screen. Moving from graphic to text mode has a lot of overhead. After declaring text mode, you must set the size, set the color, place the cursor where you want to write the text, and then finally write the text from a character array.
The library for the RA8875 LCD driver also requires a character array when writing text on the screen which can be awkward. A string would have been preferred.
The software for both the Teensy 3.5 and ESP32 can be found in the download section for this article. Both programs contain several comments and Serial.print statements to help with understanding and debugging.
Both programs also use several included libraries. These libraries must be resident in the Arduino IDE to be able to compile the two programs. If you need help with this, refer to
The Teensy 3.5 program operates in eight different modes. For example, Mode 0 displays the default time, temperature, humidity, and weather screen, while Mode 1 allows you to set and display a timer. A description of what each mode does follows.
Mode 0 is the default mode and does a lot of additional things besides displaying the time in large numbers at the top of the LCD display. One of the little tricks in this program is to only draw one of the large numbers if it changes. If we re-draw every number, it takes too long, and the result is a noticeable flicker in the time display. During seconds 0 through 3, we do specific things. Otherwise, we just wait for the next second to occur and then redraw the time:
After this, it breaks out of the switch statement that decodes the different modes and then checks to see if the screen has been touched, which would then jump to a menu screen.
If the LCD screen is touched while in Mode 0, it will display a simple menu screen allowing the mode to be changed. Touching the LCD screen or an Exit button when in one of the other modes will return you to Mode 0.
The weather at 10 different chosen locations is displayed. The format is the same as the local weather display in Mode 0. The screen fills with the first five locations and then clears and displays the second five. The display hesitates between drawing each brief weather condition as a request is made to the ESP32 for each location, and then waits until the ESP32 returns the weather data.
Setting this mode displays a series of bitmap images that are stored on a microSD card. The Teensy 3.5 has a slot for the microSD card on the end opposite of the USB connector. These bitmap images can be any size that doesn’t exceed the LCD screen size. I purposefully made mine exactly 800x480 pixels. File names need to be restricted to eight characters and adhere to the 8.3 file naming system.
Using the program example Adafruit supplied with the RA8875 library for reading bitmaps from an SD card, it takes about 30 seconds to write the 800x480 pixel image to the screen. This is not surprising since the image is drawn pixel by pixel. With the drawPixelmethod commented out, the bmpDraw method only takes 1.25 seconds to read and decode the image.
The number of options this site has for requesting data is almost overwhelming. I chose something simple, and although it sends a compact format, there is still a lot of information returned. I only extract the current price, but there is a lot more potential here. The program loops through the 10 chosen stocks and displays the current price. It then clears the LCD and repeats the display.
For my own amusement, I also included a function that draws 10 different Mandelbrot fractal images on the screen at a size of 480x480. I’ve been writing software to compute Mandelbrot images since the August 1985 issue of the Scientific American revealed them to the public. These have been my “Hello World” programs whenever I learned a new programming language. My millennial son says these images on the LCD make the best night light he’s ever had!
In this mode, an Internet radio station is streamed and decoded by the VS1053 breakout board. Five different stations are stored and can be selected from the Radio menu. Turning the radio on and off can only be done through the Radio menu.
I use ExpressPCB for this service and was just able to fit what was needed on their 3.8 x 2.5 inch Miniboard. An ExpressPCB file is included in the download area. You can download the free Express PCB software (
This PCB mounts the Teensy 3.5 and ESP32 along with a few other parts. In addition, it also has connectors to five other small breakout boards. These are the: RA8875 LCD driver; BME280 temperature and humidity sensor; DS3231 real time clock (RTC); VS1053 MP3 decoder; and the PAM8403 audio amplifier. The PCB pads for the ESP32 have been doubled up on one side allowing the use of an ESP32 with pin spacing across the board of either 0.9 or 1.0 inches wide.
Pins 2 and 4 on the Teensy 3.5 have been brought out to drive an NPN transistor. One of these can be used to drive an optional speaker for the clock alarm or timer and the other is a spare. I also elected to turn the radio on for the alarm or timer ending. Additional unused pads of both microcontrollers were also brought out on the PCB for optional future use.
The RA8875 LCD driver board is also a tight fit. There is a hole for a 4-40 machine screw on the PCB near pin 1 of the Teensy 3.5; a single stand-off was used here to mount the RA8875 driver board under the main PCB. Unfortunately, the Adafruit RA8875 board uses 2-56 size mounting holes, so a small printed tab with 2-56 and 4-40 holes was 3D printed to connect the RA8875 board to the 4-40 stand-off beneath the main PCB. This is illustrated in Figure 18.
Short six-pin jumpers were used to connect the headers on the RA8875 driver board to identical headers on the main PCB. There is a four-pin header to connect the tiny BME280 board via a jumper. This jumper is brought out the back of the project box so the BME280 is not affected by any heat from the circuitry inside the box.
The VS1053 MP decoder and the PAM8403 audio amplifier are also on separate small breakout boards. There are two stand-offs to mount the VS1053 MP decoder in the project box. All the stand-offs have holes in them sized for a 4-40 machine screw tap. Be careful when tapping these as they can be split if you tap too far down.
I used 1/4 inch long 4-40 machine screws when attaching the VS1053 MP decoder. Six-pin jumpers were also used here to connect the VS1053 MP decoder to the main PCB, although only five of the pins are used on each jumper. I originally soldered headers onto the PAM8403 audio amplifier to make connections to the speakers, five volt power, and the VS1053 MP decoder. These small headers can very easily make poor connections. My recommendation is to solder connecting wires directly to the PAM8403 audio amplifier board.
The audio lines out of the VS1053 MP decoder are connected to a mini stereo jack, so a mini stereo plug was used, and its wires connected to the PAM8403 audio amplifier. I used screw-down connectors to attach the wires from the five volt power jack on the back panel. These wires could be soldered directly to the PCB.
For the project box itself, I designed and used my 3D printer to produce the custom design. Sketchup files along with object files are included in the download material. Also included are a back cover, the tabs for mounting the LCD display, the knob for the audio amplifier, and the tab to connect the RA8875 to the stand-off.
The object files can be used with the Cura slicer to produce gcode for many different 3D printers. I recommend this custom project box — especially because of the difficulty in mounting the Adafruit LCD which has no mounting holes or tabs whatsoever, making mounting a real challenge.
The project box mounts the LCD by placing it between three 1/4 inch stand-offs which then have small 3D printed tabs screwed down on the top of the stand-offs to press the LCD against the box wall.
Care needs to be taken to not press down on the LCD display too hard as the touch panel may register a continual touch, making reading it impossible. In retrospect, this box should have been made larger, allowing for an easier fit of the components. The two inch speakers just fit; anything larger will require a larger project box.
A skilled builder could eliminate the PCB and use a breadboard with solder pads as well as a standard project box, but it will be a challenge — especially the mounting of the LCD display.
In reviewing the two programs that run this project, a lot more time could be spent on giving them more polish. No doubt programmers with more skill and artistic talent than I have could improve the overall appearance of the individual screens. The Internet radio portion of the code could also use some improvement, like displaying the radio station.
Given the program size available on both the ESP32 and Teensy 3.5, I suspect most of the ideas mentioned above could be programmed into this project without any hardware changes.
The great thing about having an Internet connected clock is that you never need to set it, and its accuracy is always good to a second or two. The breakout board for the DS3231 has a built-in socket for a CR2025 coin battery. When power is removed, this battery keeps the DS3231 running and the time is preserved.
The pool.ntp.orgaddress doesn’t need to be changed. The gmtOffset_sec value should reflect your time zone; mine is Eastern Standard Time, which is five hours less the Greenwich Mean Time; thus, the 3,600 seconds in an hour multiplied by -5.

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Thomas\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10809 -build-path C:\Users\Thomas\AppData\Local\Temp\arduino_build_239535 -warnings=none -build-cache C:\Users\Thomas\AppData\Local\Temp\arduino_cache_222093 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Thomas\Documents\Arduino\CDU_USB_sketch_5_inch\CDU_USB_sketch_5_inch.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Thomas\Documents\Arduino\libraries -fqbn=arduino:avr:uno -vid-pid=0X2341_0X0043 -ide-version=10809 -build-path C:\Users\Thomas\AppData\Local\Temp\arduino_build_239535 -warnings=none -build-cache C:\Users\Thomas\AppData\Local\Temp\arduino_cache_222093 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.2.1.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino14.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-5.4.0-atmel3.6.1-arduino2.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Thomas\Documents\Arduino\CDU_USB_sketch_5_inch\CDU_USB_sketch_5_inch.ino
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_RA8875" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_RA8875" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_RA8875" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\dcs-bios-arduino-library-master\\src" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o nul
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_RA8875" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\dcs-bios-arduino-library-master\\src" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\EEPROM\\src" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\SPI\\src" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_RA8875" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\Adafruit_GFX_Library" "-IC:\\Users\\Thomas\\Documents\\Arduino\\libraries\\dcs-bios-arduino-library-master\\src" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\EEPROM\\src" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp" -o "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp.o"
Using previously compiled file: C:\Users\Thomas\AppData\Local\Temp\arduino_build_239535\libraries\dcs-bios-arduino-library-master\internal\Protocol.cpp.o
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535/CDU_USB_sketch_5_inch.ino.elf" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\sketch\\CDU_USB_sketch_5_inch.ino.cpp.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\libraries\\SPI\\SPI.cpp.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\libraries\\Adafruit_RA8875\\Adafruit_RA8875.cpp.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\libraries\\Adafruit_GFX_Library\\Adafruit_GFX.cpp.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\libraries\\Adafruit_GFX_Library\\Adafruit_SPITFT.cpp.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\libraries\\Adafruit_GFX_Library\\glcdfont.c.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535\\libraries\\dcs-bios-arduino-library-master\\internal\\Protocol.cpp.o" "C:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535/..\\arduino_cache_222093\\core\\core_arduino_avr_uno_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\\Users\\Thomas\\AppData\\Local\\Temp\\arduino_build_239535" -lm
Using library dcs-bios-arduino-library-master at version 0.2.10 in folder: C:\Users\Thomas\Documents\Arduino\libraries\dcs-bios-arduino-library-master
Ms.Josey
Ms.Josey