This live screen grab is from one of my HamClocks. It updates automatically every minute after making a random tap. Click for an hour history.

Ham Clock

This page refers to my QST article in the October 2017 issue. All updates will be posted here.

Click on the tabs below for more information.

I would like to give a Big Shoutout to Adafruit for their great electronics, software and tutorials.


  • Added desktop versions for linux (including Raspberry Pi) and macOS. See Desktop tab below.
  • Added display of Earth satellites including sky track of next pass. See Controls tab below.
  • If you are experiencing touch lockout, try turning off RSS or upgrade to latest release.

73, Elwood Downey, WBØOEW

Original QST Article proof


Download current stable release source code Version 1.69.

Revision history:

Version 1.69: Version 1.68: Version 1.67: Version 1.66: Version 1.65: Version 1.64: Version 1.63: Version 1.62: Version 1.61: Version 1.60: Version 1.59: Version 1.58: Version 1.57: Version 1.56: Version 1.55: Version 1.54: Version 1.53: Version 1.52: Version 1.51: Version 1.50: Version 1.49: Version 1.48: Version 1.47: Version 1.46: Version 1.45: Version 1.44: Version 1.43: Version 1.42: Version 1.41: Version 1.40: Version 1.39: Version 1.38: Version 1.37: Version 1.36: Version 1.35: Version 1.34: Version 1.33: Version 1.32: Version 1.31: Version 1.30: Version 1.29: Version 1.28: Version 1.27: Version 1.26: Version 1.25: Version 1.24: Version 1.23: Version 1.22: Version 1.21: Version 1.20: Version 1.19: Version 1.18: Version 1.17: Version 1.16:

Here is a more detailed list of steps to prepare and load the software:

  1. Install the latest Arduino IDE with these these instructions. I am currently using version 1.8.5.
  2. Load up the ESP extension described here then Exit the Arduino IDE.
  3. Download and install the following Arduino libraries:

    If you need help with libraries in general try here

    • GFX
    • Sensor
    • BME280
    • TimeLib
    • RA8775

      This one has a bug you must fix. After installing this library:

      1. open the file Adafruit_RA8875.h with a text editor
      2. find the two places that contain virtual size_t write near line 133
      3. comment them both out so the result looks like this:

        /* Play nice with Arduino's Print class */
        /* comment out for HamClock ← add this line
        virtual size_t write(uint8_t b) {
        textWrite((const char *)&b, 1);
        return 1;
        virtual size_t write(const uint8_t *buffer, size_t size) {
        textWrite((const char *)buffer, size);
        return size;
        */ ← add this line

  4. Connect your computer to the Huzzah with a USB port
  5. Download current stable release Version 1.69, unzip it any place you wish.
  6. Start the Arduino IDE. Open the ESPHamClock.ino file you just unzipped. This will create a new project.
  7. In the IDE Tools menu make the following selections:
    If the options you see do not look exactly like mine do these steps:
    1. open Tools → Board → Boards Manager...
    2. In the search box type esp. Look for esp8266
    3. Click More Info
    4. Click Select version and select 2.4.0
    5. Click Update
    6. Click Close
  8. Run Sketch → Compile then Sketch → Upload
  9. Your HamClock should start running. Follow the touch screen and setup functions carefully.
For those who prefer not to build the software, I am making available the same Adafruit HUZZAH board used in the HamClock already programmed with the latest HamClock software. Just wire it up according to the schematic in the article and you are immediately ready to go. And with the built-in network update function you can stay up to date without having to purchase again in the future.

Click on the button below to order within the US; you may use your paypal account or any credit card.

Please use the button below if you are outside the US to include $10 additional shipping.

To use a 9" ER-TFTM090-2 from

Select these options during purchase:

This is the wiring list:

    EP = ESP Huzzah
    BM = BME280 sensor
    PC = photo cell
    DP = display

    EP_SCL    BM_SCK
    EP_SDA    BM_SDI
    EP_3V     BM_VIN
    EP_GND    BM_GND

    EP_ADC    PC_1, 330k
    EP_GND    PC_2
    EP_3V     330k

    EP_SCK    DP_8
    EP_MO     DP_7
    EP_MI     DP_6
    EP_2      DP_5
    EP_16     DP_11
    EP_USB    DP_3, 4, 37, 38
    EP_GND    DP_1, 2, 13, 31, 39, 40



The display stand from Adafruit can be made to work with a little ingenuity but is not perfect for the LCD. Send suggestions for better ideas and I will post here.

If you find your display idea works better if the cable exits from the top, let me know. I can share a software change contributed by N9DK that will rotate the entire scene. Hopefully this will eventually be picked up in a later rev of the effected library from Adafruit. For now you will have to do a few things manually in the software build procedure to make it work.

Shack photo showing 7" version.

Rear of 7" version

Both the 7" and 9" versions.

Rear of 9" version

This is a guide to the touch controls and map symbols of HamClock. Click for a printable view in a separate window.

HamClock may now be built for linux, Raspberry Pi, macOS and any other UNIX-like system with the X11 Windows development library. The operation is exactly the same as the ESP8266 version (including no keyboard!) with the following exceptions:

To give it a try, run these commands:

    curl '' >
    cd ESPHamClock
    make -j 3 hamclock

If you get compile errors, try:

You can also run make help to see two other build options:

If you want to use the Bosch BME280 environment sensor on RPi, follow these steps:

  1. connect the sensor to the Pi using the 40 pin connector as follows:
        Pi 1    BME Vin
        Pi 3    BME SDI
        Pi 5    BME SCK
        Pi 9    BME GND
  2. install i2c-tools:
        sudo apt-get install i2c-tools
  3. run sudo raspi-config and set the following options:
        Interface Options: I2C: enabled
  4. reboot
  5. Check the Bosch is connected correctly with these tests:
        sudo i2cdetect -y 1
            should see 77 in lower right corner of matrix
        sudo i2cdump -y 1 0x77 b
            should see a matrix of numbers, NOT XX
  6. Restart hamclock.
  7. Click in the lower half of SDO image pane to see environmental plots.