Skip to main content

Firmware Updates

This page describes how to update ZSWatch firmware on WatchDK.

Enable Updates on the Watch​

The ZSWatch companion app enables update mode automatically when you start a firmware update — no manual step is needed on the watch.

For the web updater (zswatch.dev/update) or nRF Device Manager, you still need to enable updates manually:

  1. On the watch, go to Apps → Update.
  2. Set USB and/or BLE to ON.

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 Actions downloads

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.

FileDescription
dfu_application.zipFirmware images (zip, for USB/BLE update)
watchdk@1_nrf5340_cpuapp_debug.hexFirmware image (hex, for SWD flashing)
zswatch_nrf5340_CPUNET.hexNetwork core image (hex, for SWD flashing)
lvgl_resources_raw.binImage resources (icons, graphics) for USB/BLE upload
lvgl_resources_raw.hexRAW filesystem image for nrfjprog flashing
qspi_mx25u51245.iniQSPI 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)​

  1. Enable USB and/or BLE updates on the watch.
  2. Open https://zswatch.dev/update.
  3. 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)​

  1. Download the latest firmware hex from one of:
  2. Connect the debugger to the WatchDK SWD header.
  3. 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.

  1. 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