Retro Arcade Clock - Arduino

19K14651

Intro: Retro Arcade Clock - Arduino

*** If you want to build your own Pacman Clock check out the ESP32 Pacman Clock with simplified Design ***

Build an interactive arcade bedside clock, with a touchscreen, and animated arcade figures that you can record a sound of your choice for the alarm.

This is an update of a previous project which now includes a 3D Printed Case and four separate programs to choose from

1. Arcade Clock - DK Mario, Space Invaders & Pacman animation

2. Pacman Clock - Interactive Animated Pacman game with clock functions

3. DK Clock - Interactive Animated DK game with clock functions

4. Tumble Ghost - Animated Pacman Ghost game based on Flappy Bird

Lots of fun to build and a great gift for anyone who likes to relive the nostalgia of 80s arcade game characters

** If you like this instructable please vote for it in the "Clocks Contest" by pushing the button at the bottom of the page ***

Many thanks !!

STEP 1: Gather the Materials

  1. Arduino Board - Arduino Mega 2560 (Items 1, 2 and 3 can be purchased as one bundled order)
  2. Touch Screen Arduino Shield - 3.2 inch Mega Touch LCD Expansion Board Shield
  3. Touch Screen - 3.2" TFT LCD Display + Touch Screen for Arduino's Mega 2560
  4. Real Time Clock module - DS3231 RTC
  5. Voice Recorder Module - ISD1820 Voice Recorder
  6. PLA Filament for 3D Printer
  7. Two Part Epoxy Resin for gluing case together
  8. USB Cable 2m length USB charger (used for the power supply for the clock)
  9. Hot glue gun
  10. Cable Ties X 3

Optional Auto Back Light Dimming Components only required if a Bedside Clock

  1. Resistor 270k Ohm
  2. Zener Diode 3.3v
  3. 0.5 watt Resistor 47 Ohm
  4. Light Dependent Resistor (LDR)

STEP 2: Print the 3D Case

I printed the clock case on a Creality Ender 3. All of the 3D print files and instructions for the case can be found here on Thingiverse

STEP 3: Build the Circuit

The overall circuit contains a Real Time Clock, Arduino Mega, Sound Module, Touch Screen and a Screen Sheild.

1. Real Time Clock

Mount the Realtime clock on the back of the Arduino Mega as in the picture provided. I used a hot glue gun and packing foam to ensure they are not touching and there is some cushioning to absorb movement. In my case, I soldered 2 of the RTC legs directly to the Arduino and used hookup wire to connect 5v and GND to the Arduino.

2. Sound Recording Module

These are really cool and easy to use. In a similar fashion as above, use foam and hot glue to position the module and the speaker on the back of the Arduino taking care to ensure they are insulated from touching. The Sound Module is triggered by D8 on the Arduino, so this and the power supply need connecting as per the circuit diagram provided.

3. Auto Backlight Dimmer (Optional)

If you intend on using as a bedside clock, then you will likely want to automatically dim the backlight at night so it doesn't affect your sleep. (If not then you can skip this step!) Unfortunately, the backlight in the TFT screen is hard-wired into +3.3v and cannot be adjusted with the Arduino. This means we have to disconnect it and reconnect to a PWM pin on the Arduino to control the Backlight brightness. I wanted to do this with minimal damage to pins or tracks on the components so took the following approach. Follow the steps below carefully

(a) To achieve this a Light Dependent Resistor (LDR) is positioned at the back of the unit to detect the light. Drill two 3mm holes in the case and push the LDR legs through the holes. Use hot glue on the inside of the cabinet to hold the legs in place. Solder two wires on the inside of the case and connect them as per the circuit diagram. Add a 270k Ohm Resistor to A7 of the Arduino as per the circuit diagram.

(b) Remove the TFT Display, and place it on a firm surface. Identify pin 19 (LED_A) and carefully remove a few millimeters of the plastic at the base of the pin. Bend the pin flat and away from the connector as per the picture above. Check that the TFT Sheild can plug in snugly and that the bent pin does not obstruct the plug or socket.

(c) Solder a 47 Ohm register to the bent over the pin and connect a wire from the resistor to D9 of the Arduino Mega. The Arduino D9 pin can sink up to 40mA so the resistor limits this to less than this. Attach a 3.3v Zener Diode to the same pin (LED_A) and connect this to earth as per the diagram. The purpose of this is to protect the backlight from overvoltage as it will regulate the voltage to 3.3v.

4. TFT Screen and Arduino Shield

Carefully push the 3.2' TFT Touch Screen connectors into the TFT Arduino Shield. Then carefully connect to the top of the Arduino as per the picture provided. The RTC has a battery so will retain the correct time even if power has been removed. The Alarm time is stored in Eeprom on the Arduino which means it will be retained if there is a power cut.

STEP 4: Load the Code

The Project will require the following files and libraries to be loaded before it will compile and run. The code is unique and built around the capability of the libraries, the hardware, some custom graphics and other projects that I've borrowed from.

Please Note: Development of the code for this project has used IDE v1.06 and some of the required libraries are dated. This means some people are having issues with the new IDE version 1.6 and above when loading code. Therefore in the interests of simplicity, I recommend people use IDE v1.06 and have included the correct version library files in zip files at the bottom of step 4 of the instructable.

*** Also note recent changes to the Time library mean you need to change the code to accommodate the new library see below

#include

replace with

#include

1. Arduino IDE

I have been using an earlier version of the Arduino IDE, therefore in the interests of simplicity, I recommend that you download Arduino IDE version 1.06 on your desktop machine before you install the code. You can get his version from here .

2. Libraries

These need to be downloaded and added to the IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the physical board.

  • UTFT.h and URtouch.h located in zip file below
  • Time.h located in zip file below
  • DS1307RTC.h located in zip file below
  • Wire.h and EEPROM.h are already included in IDE V1.06

Credit for UTFT.h and URtouch.h goes to Rinky-Dink Electronics I've included these zip files as it appears the source Website is down.

4. TFT Screen Variations

The vagueries of TFT screens and manufacturers have led to these notes.

(a) Sainsmart - If you have purchased a 3.2' TFT screen that is branded Sainsmart on the back of the TFT device you will have found they have to modify libraries to resolve display issues. If you have purchased a Sainsmart TFT Display already there is a fix below

Edit the file "initlcd.h" and modify the following line from

LCD_Write_COM_DATA(0x01,0x2B3F);

to

LCD_Write_COM_DATA(0x01,0x3B3F);

You will need to restart the IDE and then reload the code to the Arduino.

(b.) TFT Controller Chipset - People who have purchased a 3.2" TFT screen may find they could also have one of two different chipsets "SSD1289" or "ILI9341" The annoying thing is that it's not easy to distinguish the difference online. The good news is that its easy to fix. If you get a blank screen after loading the code then it's probably because it's an ILI9341 controller.

To fix you need to make the following changes to the code. Edit the code and modify the following line of code

from

UTFT myGLCD(SSD1289,38,39,40,41); //Parameters should be adjusted to your Display/Schield model

to

UTFT myGLCD(ILI9341_16,38,39,40,41); //Parameters should be adjusted to your Display/Schield model

Now try reloading the code to the Arduino.

(c.) Inverted Touch Screen Controls

Some makers have reported that the Y axis touch screen buttons has been reversed. A fix for this was identified by @dissy where two lines of code to change to flip the touch screen reading.

Do a find for: "yT = myTouch.getY();" Change it to be: "yT = 240 - myTouch.getY();"

Don't forget to search twice, the first instance is for controlling pacman in clock mode, the second is for in the setup menu.

5. Graphics Files

There are a group of bitmap files that I have included below that need to sit in the same subdirectory as the Arduino code when you begin to load into the Arduino. Therefore download the files below and use the IDE to load.

6. Setup the Clock

Once the code has loaded successfully press the center of the screen and this should bring up the setup screen. Use the menu to set the time and the alarm in 24-hour format. Press the SAVE button to store the setting. The RTC has a battery so will retain the correct time even if power has been removed. The Alarm time is stored in EEPROM which means it will be retained if there is a powercut.

7. Testing the Alarm

The Sound module is used to provide the Alarm. The ISD1820 is controlled by the Arduino D8 pin. Sound can be easily added by playing sound into the microphone while simultaneously pushing the record button on the ISD1820. In my case, I recorded the original Pac-Man introduction music from an audio file played through another device. Once the sound is recorded the recording can be tested by pushing the PLAY-E button which should play the sound through the speaker. Use the setup menu to set the clock time and the alarm time a few minutes apart. Be sure to "SET" the alarm and push the "SAVE" menu buttons. Once back to the main screen the Alarm should sound when the time occurs. Turning off the Alarm can be done by pressing the center of the touch screen panel resulting in the Setup Screen.

8. Touch Screen Calibration

Some makers have found that the Buttons on the Setup Screen do not align with the TFT touch controls. In these cases the Touch Screen needs calibration. This can be easily done by using the Touch Screen Calibration code and instructions provided in the URtouch library. Follow these instructions if you observe this issue.

9. Four Different Programs to choose from

1. Arcade Clock - DK Mario, Space Invaders & Pacman animation
2. Pacman Clock - Interactive Animated Pacman/Ms Pacman game with clock functions

3. DK Clock - Interactive Animated DK game with clock functions

4. Tumble Ghost - Animated Pacman Ghost game based on Flappy Bird

STEP 5: Putting It Altogether

1. Adding External Power

The final step is to add the external power. Using a drill bit, add a hole in the back of the cabinet. Thread the USB cable through the back panel and then attach the USB cable VCC, GND, D+ and D- wires to the base of the Arduino USB Connector as per the circuit diagram. This has two advantages, firstly the USB input to Arduino Mega Boards has overcurrent protection, and secondly, you can use the USB cable to upload code changes without having to dismantle the box. Hot glue the power cable insulation to the back of the Arduino to provide protection from cable tension when assembling front and back panels. Add a cord grip to the cable by placing a cable tie tightly around the cable on the inside of the case on the power cable 6-8 cm from the Arduino connection. The cable tie should avoid tension on the joints when the USB cable is pulled by butting up against the inside of the case.

2. Mounting the Electronics in the case

Place the Circuit on top of the front panel with the four hole guides which should align the screen centrally in the cutout. Power on the circuit so you can see the front panel screen, check the screen image is in the correct position then glue into place with Hot Glue. The outcome is a snug fit with a square screen which is centered in the cutout hole.

3. Final Assembly

Gently push the Front Panel onto the Back Panel and gently pulling the USB power cord to take up the slack in the back panel. The cord grip is useful here and should protect any damage to wiring. Plug into the USB charger and you're good to go.

I hope you enjoy!!

STEP 6:

39 Comments

Hello,
I was trying to upload the code into my Arduino Mega 2560 and it said:
'setSyncProvider' was not declared in this scope
How do I fix this?
Thanks
I tried but nothing changed
Check you have recommended version of IDE. Load the set time sketch and see if you can set time on the rtc. Message me if still having issues
So I tried loading it, while using 1.0.6 and it just says, that the sketch is too big
Hello!
I have just one small problem with this project. Project work just fine,but in 12h format. I am from Europe, so I want use 24h format.

How to switch to 24h format. I have read a lot about DS1307RTC library and still can't set this clock to 24h format.

What change and where ?

Tnx for any anwser............

Regards from Croatia !
Hello i have this error can you please help i cant solve it


Arduino: 1.8.9 (Windows 10), Board: "Arduino Mega ADK"
In file included from C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:26:0:
C:\Users\edgar\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:19:22: error: 'tmElements_t' has not been declared
static bool read(tmElements_t &tm);
^
C:\Users\edgar\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:20:23: error: 'tmElements_t' has not been declared
static bool write(tmElements_t &tm);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino: In function 'void setup()':
Retro_Pacman_Clock_V10:164:26: error: 'setSyncProvider' was not declared in this scope
setSyncProvider(RTC.get); // the function to get the time from the RTC
^
Retro_Pacman_Clock_V10:165:21: error: 'setSyncInterval' was not declared in this scope
setSyncInterval(60); // sync the time every 60 seconds (1 minutes)
^
Retro_Pacman_Clock_V10:166:17: error: 'timeStatus' was not declared in this scope
if(timeStatus()!= timeSet){
^
Retro_Pacman_Clock_V10:166:21: error: 'timeSet' was not declared in this scope
if(timeStatus()!= timeSet){
^
Retro_Pacman_Clock_V10:169:24: error: 'setTime' was not declared in this scope
setTime(1408278800);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino: In function 'void loop()':
Retro_Pacman_Clock_V10:317:30: error: 'hour' was not declared in this scope
if ( (alarmhour == hour()) && (alarmminute == minute())) { // Sound the alarm
^
Retro_Pacman_Clock_V10:317:59: error: 'minute' was not declared in this scope
if ( (alarmhour == hour()) && (alarmminute == minute())) { // Sound the alarm
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino: In function 'void UpdateDisp()':
Retro_Pacman_Clock_V10:3854:12: error: 'hour' was not declared in this scope
h = hour(); // 24 hour RT clock value
^
Retro_Pacman_Clock_V10:3855:14: error: 'minute' was not declared in this scope
e = minute();
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4016:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("AM", 299, 147);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4018:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("PM", 299, 147);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4023:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("AS", 7, 147);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino: In function 'void clocksetup()':
Retro_Pacman_Clock_V10:4671:21: error: 'hour' was not declared in this scope
int timehour = hour();
^
Retro_Pacman_Clock_V10:4672:25: error: 'minute' was not declared in this scope
int timeminute = minute();
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4713:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("+ +", 135, 38);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4714:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("- -", 135, 82);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4722:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("+ +", 135, 138);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4723:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("- -", 135, 182);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4733:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("SAVE", 13, 213);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4734:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("EXIT", 245, 213);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4755:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("SET", 220, 160);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4757:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("OFF", 220, 160);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4763:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("TEST", 50, 110); // Triggers alarm sound
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4768:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Time", 40, 60);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4775:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("0", 130, 60);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4779:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(":", 160, 60);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4784:32: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("0", 175, 60);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4791:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Alarm", 40, 160);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4798:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("0", 130, 160);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4804:31: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print(":", 160, 160);
^
C:\Program Files (x86)\Arduino\libraries\2.+Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10\Retro_Pacman_Clock_V10.ino:4809:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
myGLCD.print("0", 175, 160);
^
Retro_Pacman_Clock_V10:4958:29: error: 'setSyncProvider' was not declared in this scope
setSyncProvider(RTC.get); // the function to get the time from the RTC
^
Retro_Pacman_Clock_V10:4959:24: error: 'setSyncInterval' was not declared in this scope
setSyncInterval(60); // sync the time every 60 seconds (1 minutes)
^
exit status 1
'setSyncProvider' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
It looks like the timelibrary has not loaded correctly in the Arduino IDE.

Reload as per instructions and let me know how you get on.
Hello, i´m having a issue, #include <DS1307RTC.h> // a basic DS1307 library that returns time as a time_t
#include <Time.h>
does not appears as orange text and im using V.1.0.6.
I upload the code and the screen just makes a little change to gray and then white again, no change at all. ¿Any advice? I´m using a OPEN-SMART shield
I just see that mi shield driver is: HX8352A
Ok it sounds like the Time library has not loaded into the Arduino IDE correctly. Follow the instructions on line to ensure the library is loaded correctly. You should be able to see this in the IDE menus to confirm it has loaded. Also once loaded try restarting the IDE application before attempting to upload to the Arduino.
Let me know if you are still having issues
I loaded the librarys like 3 or 4 times each and it does not appear in orange, might need to change some values in other files or change the inputs for analog? Because the size of my shield an mega is different, i do not use the digital inputs in the bottoms, i use the one on the sides
Thanks for this great project. I have received the kit from Aliexpress that you recommended and have printed the case and purchased all of the components. However, I have most of the project assembled, except for connecting the LDR and bending the pin on the LCD. I wanted to check out the code before continuing, and this is the problem. I am using Arduino IDE v 1.06 and have download all of the zip files. I place the extracted files,(ex: Time.h, UTFT.h,etc.) into the library of my sketch. I also checked the type of LCD I received and printed on the back of the screen is TFT_320QDT_9341, I am assuming it is the ILI9341 version. I have changed the code to UTFT myGLCD(ILI9341_16,38,39,40,41); //Parameters should be adjusted to your Display/Schield model. I cannot get the sketch to compile without errors. I can send you a copy of the error codes that display at the end of the compile, but the file is very large, not sure I can send it without problems, but I can if you let me know how to send to you. Here is a small snippet of the errors I am getting:
Retro_DK_Clock_V3:92: error: 'UTFT' does not name a type
Retro_DK_Clock_V3:93: error: 'URTouch' does not name a type
Retro_DK_Clock_V3.ino: In function 'void setup()':
Retro_DK_Clock_V3:171: error: 'class DS1307RTC' has no member named 'get'
Retro_DK_Clock_V3:171: error: 'setSyncProvider' was not declared in this scope
Retro_DK_Clock_V3:172: error: 'setSyncInterval' was not declared in this scope
Retro_DK_Clock_V3:173: error: 'timeStatus' was not declared in this scope
Retro_DK_Clock_V3:173: error: 'timeSet' was not declared in this scope
Retro_DK_Clock_V3.ino:175: warning: overflow in implicit constant conversion
Retro_DK_Clock_V3:176: error: 'setTime' was not declared in this scope
Retro_DK_Clock_V3:190: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:192: error: 'myTouch' was not declared in this scope
Retro_DK_Clock_V3:193: error: 'PREC_LOW' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void loop()':
Retro_DK_Clock_V3:228: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:292: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:356: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:380: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:398: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:415: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:433: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1045: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1283: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1465: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1646: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1829: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1858: error: 'hour' was not declared in this scope
Retro_DK_Clock_V3:1858: error: 'minute' was not declared in this scope
Retro_DK_Clock_V3:1886: error: 'myTouch' was not declared in this scope
Retro_DK_Clock_V3:1953: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void UpdateDisp()':
Retro_DK_Clock_V3:2006: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:2022: error: 'hour' was not declared in this scope
Retro_DK_Clock_V3:2023: error: 'minute' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void drawscreen()':
Retro_DK_Clock_V3:2227: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void clocksetup()':
Retro_DK_Clock_V3:2382: error: 'hour' was not declared in this scope
Retro_DK_Clock_V3:2383: error: 'minute' was not declared in this scope
Retro_DK_Clock_V3:2404: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:2520: error: 'myTouch' was not declared in this scope
Retro_DK_Clock_V3:2651: error: 'class DS1307RTC' has no member named 'get'
Retro_DK_Clock_V3:2651: error: 'setSyncProvider' was not declared in this scope
Retro_DK_Clock_V3:2652: error: 'setSyncInterval' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void drawbarrel(int, int, int, int, int)':
Retro_DK_Clock_V3:2681: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void drawMario(int, int, int, int, int)':
Retro_DK_Clock_V3:2866: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void redraw(int, int, int)':
Retro_DK_Clock_V3:3291: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3298: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3314: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3329: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3341: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3356: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3364: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3374: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3387: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3399: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3404: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3414: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3424: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3433: error: 'myGLCD' was not declared in this scope

Thanks again for your time working on this project, I would like very much to finish it. Hopefully what I have done is correctable.
Danny
Hey this is a common problem Ive had when loading libraries. it looks like the libraries are not loading correctly into the Arduino IDE.
Firstly try this, exit the IDE then restart the IDE and try load again. Sometimes this is an issue.
If still not working manually add the libraries. If they are correctly installed you can view them in the IDE libraries menu. Once done ensure you exit the IDE then restart the IDE and try load again. Let me know if this helps.
Thanks for you quick response, I have followed your suggestions but am still getting a compile error. Error listing:
Retro_DK_Clock_V3.ino:5:19: warning: UTFT.h: No such file or directory
Retro_DK_Clock_V3.ino:6:21: warning: URTouch.h: No such file or directory
Retro_DK_Clock_V3.ino:8:20: warning: Time.h: No such file or directory
Retro_DK_Clock_V3.ino:10:80: warning: DS1307RTC.h: No such file or directory
Retro_DK_Clock_V3:92: error: 'UTFT' does not name a type
Retro_DK_Clock_V3:94: error: 'URTouch' does not name a type
Retro_DK_Clock_V3.ino: In function 'void setup()':
Retro_DK_Clock_V3:172: error: 'RTC' was not declared in this scope
Retro_DK_Clock_V3:172: error: 'setSyncProvider' was not declared in this scope
Retro_DK_Clock_V3:173: error: 'setSyncInterval' was not declared in this scope
Retro_DK_Clock_V3:174: error: 'timeStatus' was not declared in this scope
Retro_DK_Clock_V3:174: error: 'timeSet' was not declared in this scope
Retro_DK_Clock_V3:177: error: 'setTime' was not declared in this scope
Retro_DK_Clock_V3:191: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:193: error: 'myTouch' was not declared in this scope
Retro_DK_Clock_V3:194: error: 'PREC_LOW' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void loop()':
Retro_DK_Clock_V3:229: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:293: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:357: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:381: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:399: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:416: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:434: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1046: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1284: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1466: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1647: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1830: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:1859: error: 'hour' was not declared in this scope
Retro_DK_Clock_V3:1859: error: 'minute' was not declared in this scope
Retro_DK_Clock_V3:1887: error: 'myTouch' was not declared in this scope
Retro_DK_Clock_V3:1954: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void UpdateDisp()':
Retro_DK_Clock_V3:2007: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:2023: error: 'hour' was not declared in this scope
Retro_DK_Clock_V3:2024: error: 'minute' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void drawscreen()':
Retro_DK_Clock_V3:2228: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void clocksetup()':
Retro_DK_Clock_V3:2383: error: 'hour' was not declared in this scope
Retro_DK_Clock_V3:2384: error: 'minute' was not declared in this scope
Retro_DK_Clock_V3:2405: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:2521: error: 'myTouch' was not declared in this scope
Retro_DK_Clock_V3:2652: error: 'RTC' was not declared in this scope
Retro_DK_Clock_V3:2652: error: 'setSyncProvider' was not declared in this scope
Retro_DK_Clock_V3:2653: error: 'setSyncInterval' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void drawbarrel(int, int, int, int, int)':
Retro_DK_Clock_V3:2682: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void drawMario(int, int, int, int, int)':
Retro_DK_Clock_V3:2867: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3.ino: In function 'void redraw(int, int, int)':
Retro_DK_Clock_V3:3292: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3299: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3315: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3330: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3342: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3357: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3365: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3375: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3388: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3400: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3405: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3415: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3425: error: 'myGLCD' was not declared in this scope
Retro_DK_Clock_V3:3434: error: 'myGLCD' was not declared in this scope

End of errors..
The compiler highlights the following line:

UTFT myGLCD(SSD1289,38,39,40,41); //Parameters should be adjusted to your Display/Schield model
I have used both options the above and the other for the "ILI9341_16", with the same results.
What am I doing wrong?

Thanks,
Danny
These 3 lines indicate that these libraries are not loaded.
Retro_DK_Clock_V3.ino:5:19: warning: UTFT.h: No such file or directory
Retro_DK_Clock_V3.ino:6:21: warning: URTouch.h: No such file or directory
Retro_DK_Clock_V3.ino:8:20: warning: Time.h: No such file or directory

These library files need to be loaded into the Arduino IDE before compiling. See this link for the procedure https://www.arduino.cc/en/Guide/Libraries
I have tried to copy the libraries into the sketch , and on the version of Arduino IDE that you have suggested to use I don't see any option to add a zip library. So with the version 1.06 how do you get these libraries into the proper location?
Thanks
Danny
Well I now have the PacMan screen to display. I think the problem was that I had wired some parts of the clock and LDR to the Arduino, and must have grounded the LCD, so I pulled out all of the wires and it loads and displays the graphics. However I cannot get the touch to work. I tried loading an example in the URTOUCH library but couldn't get the calibration program to load. Which one of these files will let me test and calibrate the screen?
Many thanks (almost there)
Danny
I have managed to get all the libraries where they are supposed to be and can compile without any errors (do see some warnings), the sketch does upload successfully, but I am only seeing a white blank screen??
Thanks,
Danny
More Comments