Skip to content

πŸ’Ύ Flashing the Firmware

Jonathas Barbosa edited this page Jun 22, 2025 · 2 revisions

Once your Clockwise hardware is assembled, it's time to upload the firmware and bring your clock to life!

There are 3 supported methods for flashing Clockwise:
1️⃣ Web flashing (recommended for beginners)
2️⃣ PlatformIO (for developers)
3️⃣ ESP-IDF (for advanced users)


1️⃣ Web Flashing Guide (Recommended)

This is the easiest and fastest way to flash Clockwise β€” no coding required!

Steps:

  1. Go to https://clockwise.page/ and select the desired clockface
  2. Connect the ESP32 device on your computer's USB port
  3. Click on the Flash button
  4. A dialog will appear, select the correct USB port and click in Connect (screenshot)
  5. Select the INSTALL and INSTALL again (screenshot)
  6. Wait while the flash tool uploads the firmware and finish (screenshot)
  7. From the version 1.1.0, click in NEXT on step 6, Improv will start looking for available WiFi networks to connect
  8. Select your local network (must be a 2.4GHz) and enter with your password (screenshot)
  9. If connection was successful, a message with button VISIT DEVICE will pop up and you can visit the Clockwise setting page (screenshot)

Configuring only WiFi

After flashing your clockface, you will have a step to configure the WiFi. But in case you change your access point or password, you can set up just the WiFi connecting the Clockwise on USB, opening https://clockwise.page and clicking in Flash button, a window will pop up with a few options where you can re-configure your WiFi network (screenshot) as well as open the Settings page to change preferences using button VISIT DEVICE. Remember: it is important to use a 2.4GHz WiFi, it will not work on 5GHz.

Requirements:

  • USB cable with data support (some cheap cables only provide power)
  • Google Chrome or Edge browser (desktop)
  • A 2.4 GHz WiFi network (Clockwise does not support 5 GHz WiFi)

2️⃣ Flashing using PlatformIO

Clockwise uses PlatformIO as IDE, so the configuration is already done if you use the same. The Clockwise structure consists mainly of three folders

  • clockfaces: contains the collection of available clockfaces. This folder is not included when compiling
  • lib: contains the basic code for Clockwise to work and in addition a symbolic link to the current clockface
  • src: contains the entry point for the clock code
.
β”œβ”€β”€ clockfaces
β”‚   β”œβ”€β”€ cw-cf-0x01
β”‚   β”œβ”€β”€ cw-cf-0x02
β”‚   └── cw-cf-0x03
β”œβ”€β”€ lib
β”‚   β”œβ”€β”€ cw-commons
β”‚   β”œβ”€β”€ cw-gfx-engine
β”‚   └── timeinwords -> ../clockfaces/cw-cf-0x02/
└── src
    └── main.cpp

Clone this repository and then run the following command to clone the clockface submodules

.../clockwise$ git submodule update --init firmware/clockfaces

To create the symbolic link run the following command inside lib/ folder:

.../clockwise/firmware/lib$ ln -s ../clockfaces/cw-cf-0x02/ timeinwords

Or, if you prefer, you can get the same result by copying the desired clockface folder into lib/

The same way as web flashing, when connecting for the first time you will have to configure the wifi, follow the instructions in Configuring WiFi section above.

Prerequisites:

  • Install PlatformIO
  • Clone the Clockwise repository following the instructions above

3️⃣ ESP-IDF (for advanced users)

You can use the official Esspressif IoT Development Framekwork (aka esp-idf) to build and upload this project to an ESP32 device, including the ESP32-Trinity board.

Install esp-idf

Follow the Step By Step installation instructions.

Setup the environment variables

Follow the instructions here.

Clone and build this project

  • git clone --recurse-submodules https://github.com/jnthas/clockwise.git
  • idf.py reconfigure
  • idf.py menuconfig (select Clockwise Configuration and choose the clockface)
  • idf.py flash
  • idf.py monitor