Firmware Updates
This page describes how to update ZSWatch firmware on WatchDK.
Enable Updates on the Watch
Before any update (USB, BLE, or SWD), enable updates on the watch:
- On the watch, go to Apps → Update.
- Set USB and/or BLE to ON if you plan to use the web updater.
Firmware Download Contents
When you download a firmware package from GitHub Releases or GitHub Actions, the zip contains both the firmware and the image resources:
GitHub requires you to be logged in to download GitHub Actions artifacts. If the link redirects you to sign in, log in and try again.
| File | Description |
|---|---|
dfu_application.zip | Firmware images (zip, for USB/BLE update) |
watchdk@1_nrf5340_cpuapp_debug.hex | Firmware image (hex, for SWD flashing) |
zswatch_nrf5340_CPUNET.hex | Network core image (hex, for SWD flashing) |
lvgl_resources_raw.bin | Image resources (icons, graphics) for USB/BLE upload |
lvgl_resources_raw.hex | RAW filesystem image for nrfjprog flashing |
qspi_mx25u51245.ini | QSPI flash configuration for nrfjprog (required for --qspiini) |
After updating firmware, you typically also need to upload the matching image resources so icons and graphics display correctly. See Image Resources for details.
Method A: Web Updater (USB or BLE)
- Enable USB and/or BLE updates on the watch.
- Open https://zswatch.dev/update.
- Select a WatchDK firmware image.
Firmware file naming
The WatchDK firmware build is named:
watchdk@1_nrf5340_cpuapp_debug
Method B: Flash via Debugger (SWD)
Use this method if you have a debugger connected (for example J-Link, or Nordic nRF54L15 DK) and a 10-pin 1.27mm SWD cable.
Option B1: Flash a pre-built firmware (nrfjprog)
- Download the latest firmware hex from one of:
- Connect the debugger to the WatchDK SWD header.
- Flash the application core (and external flash configuration):
nrfjprog -f nrf53 \
--program watchdk@1_nrf5340_cpuapp_debug.hex \
--chiperase --qspisectorerase --verify --reset \
--qspiini qspi_mx25u51245.ini \
--coprocessor CP_APPLICATION
The --qspiini flag expects the qspi_mx25u51245.ini file included in the downloaded zip.
- If you also need to re-flash the network core, flash CPUNET:
nrfjprog -f nrf53 \
--program zswatch_nrf5340_CPUNET.hex \
--chiperase --verify --reset \
--coprocessor CP_NETWORK
Option B2: Build from source and flash
If you are building the firmware yourself, see Compiling the Software for build and flash instructions using the nRF Connect VS Code extension or west.
Program external filesystems with nrfjprog
If you want to program the filesystem images using only nrfjprog, use the generated .hex files:
nrfjprog -f nrf53 \
--program lvgl_resources_raw.hex \
--qspisectorerase --verify --reset \
--qspiini qspi_mx25u51245.ini \
--coprocessor CP_APPLICATION
If you only have source assets and need to generate those .hex files locally first:
west upload_fs --type raw --generate_only