Clone
9
Flashing SiLabs based M3 Newton Displays
Skip Hansen edited this page 2026-03-14 13:36:34 -07:00

Note

Most of the following information on this page pilfered from https://github.com/OpenEPaperLink/Tag_FW_EFR32xG22/issues/13

Debugger

A J-Link compatible debug adapter is required to flash the firmware using Simplicity Commander.

The cheapest officially compatible debugger known is this one at $35, but note that it will only program Silicon Labs parts.

If you want a J-Link that can do 'all' ARM-based MCUs, the cheapest would be a mini edu at around $70, e.g. here.

J-Link clones exist on AliExpress etc, but we can't vouch for them - they might be incompatible, have weird quirks, or otherwise not be fit for purpose. It is known that some of them are being touted as 'J-Link' while in reality they are ST-Link clones and will thus only work with ST parts. If you feel confident that you've found an actual J-Link clone and want to give that a shot, feel free to report back with your experience.

Software for flashing

Of course Silicon Labs Simplicity Studio or Segger's Ozone debugger can also be used to flash tags.

Note

Neither Simplicity Studio nor Ozone are lightweight installs. Only install them if you are planning on doing development.

Debugger connections

The programming test point layout on M3 Displays are the same for ZBS, NRF and EFR32xG22 based displays so the same you can 3D print a universal pogo pin jig.

Various pogo pin programming jigs available here to choose from. E.g. the handheld universal one here.

Of course wires can also be soldered directly to the test points, the pads are relatively large and easy to solder to.

Pinout connections for Silicon Labs debugger, see sections 2.3.2/2.3.3 in the user guide:

Tag Debugger Note
VDD VTARGET make sure either the debugger (see section 4 in the user manual) or another power source is providing 3.3V to the tag
GND GND
SWDIO (DIO) SWDIO
SWDCLK (CLK) SWCLK
nReset (RST) RST
P0.25 (TX) VCOM_RX serial debug output (optional)
P0.26 (RX) VCOM_TX serial input (not used currently)
P0.27 (MP) -
P0.22 (D/L> -
image image

*On later J-Link products like the J-Link ULTRA+, these pins are reserved for firmware extension purposes

Tag Debugger Suggested Color
for flying wires
Note
VCC 1 Red Input only does not provide power to Tag
GND 4,6,8,10 Black Pick one
SWDIO 7 White
SWDCLK 9 Blue
nRESET 15 Green

Debug-locked devices

Some EFR32xG22 devices are debug-locked by their manufacturer to prevent unauthorised reading of their (trade secret) firmware. As long as 'unauthenticated debug unlock' is not disabled on the chip, it is possible to unlock the chip for reflashing. The side- effect of this is that the original firmware is erased before gaining access to the chip (as this function intended).

Unlocking is best done using Simplicity Commander (works with any J-Link based probe). Use 'unlock debug access' in the 'flash' tab in the GUI, or issue the command commander device unlock.

User Data

The user data portion of flash contains tag configuration information that is used by the universal software to determine how to drive the display.
If the doesn't work the contents of the user data is needed to add support. For this reason it is recommended that user data be read and saved when a new tag is flashed.

This script can be used on Linux to automate the complete flashing process for a fresh tag, including dumping the user data.

#!/bin/bash

log=flash.log
device=EFR32BG22C222F352GM40
commander=~/.local/bin/commander/commander
version=41
image=full_binaries/v${version}/SOLUM_AUTODETECT_FULL_v${version}.s37

echo "----" >> ${log}
${commander} device unlock -d ${device} 2>&1 | tee -a ${log}
${commander} device info -d ${device} 2>&1 | tee -a ${log}
${commander} readmem -d ${device} --region "@userdata" 2>&1 | tee -a ${log}
${commander} flash -d ${device} ${image} 2>&1 | tee -a ${log}

Universal M2/M3 Pad Layout for ZBS/nRF/EFR32

ZBS2 nRF EFR32 Note
GND GND GND
Reset Reset Reset
Rxd Rxd P0.26 / VCOM_TX serial input (not used currently)
Test - P0.27
Clk SWDCLK SWDCLK
MISO SWDIO SWDIO
VCC VCC VCC
MOSI - No Pad
CS - P0.22
Txd Txd P0.25 / VCOM_RX serial debug output