Thursday, May 15, 2025

Compiling and Flashing Artemis Watch Firmware




Download and Install ESP-IDF 5.1.6


The Espressif compiler takes all the individual files and packs them into a binary file that can be flashed to the Artemis Watch.

When I tried the latest version of the compiler, it didn't work with the Artemis source.  The Artemis GitHub page specifies version 5.1, so I downloaded the 5.1.6 installer from https://dl.espressif.com/dl/esp-idf/?idf=4.4



After installing, you can open ESP-IDF in a command prompt window:


It might look a bit daunting, but you only need two commands most of the time.
  To compile a project, go to the project folder and type idf.py build
  Once the build process is complete, plug your watch into your computer and type idf.py flash

Download and Unzip the Artemis Source Code


Go to the Artemis GitHub page (https://github.com/CircuitMess/GC_Artemis-Firmware) and click the latest release on the right-hand side:


Download the zip file and unzip it into the ESP-IDF "examples" folder:

You can't build the firmware yet as it requires some extra files from other GitHub pages.  The "components" and "lib" folders have links to these external projects:


There should be a way to get these linked libraries to download automatically with a GitHub tool, but I haven't been able to make it work.  Any suggestions in the comments would be welcome!

What you can do is click each of these links, then download the zip for each project:

You should download the versions that are linked, rather than looking for the latest release, to ensure everything is compatible.

Unzip the contents of each zip file into the relevant subfolders of the Artemis firmware folder:

It's necessary to rename the "JPEGDEC" folder to "jpegdec" as the compiler seems to be looking for a lower-case name.

Compile the Firmware


In your ESP-IDF command prompt window, go to the Artemis firmware folder and type idf.py build

Even with the right versions of everything, you'll still see some warnings, but as long as the process doesn't stop you can ignore these:

If the build is successful, you'll see a message telling you to run the flash command:

You shouldn't have to worry about specifying the port number unless you have multiple devices plugged in at once, just run idf.py flash

When it finishes flashing, your watch will reboot and you can unplug it!

No comments: