Skip to main content

Radio Sticks Getting Started Guide

This guide covers the shared setup flow for the zzh Stick, zzhp Stick and zzhp-lite Stick.

A radio stick connects USB through a serial bridge to the wireless microcontroller and antenna

1. Connect the stick​

Plug the stick into the host and confirm that a serial port appears before doing anything with firmware.

  • Linux: inspect dmesg and /dev/serial/by-id/.
  • Windows: look under Ports (COM & LPT) in Device Manager.
  • macOS: compare ls /dev/tty.* before and after connecting the stick.

zzh uses a CH340 USB-to-serial bridge. zzhp-family revisions use a bridge that also exposes the modem-control lines used for Auto-BSL. Current operating systems normally install the required driver automatically.

New boards run a small LED blink test. This confirms that the hardware is alive; it is not Zigbee coordinator firmware.

2. Choose firmware​

Use the compiled images in the Koenkk Z-Stack firmware repository. Its tested-adapter table is the source of truth for the target mapping.

BoardCoordinator firmwareRouter firmware
zzhCC2652R_coordinator_*.zipCC2652R_router_*.zip
zzhp / zzhp-liteCC1352P2_CC2652P_other_coordinator_*.zipCC1352P2_CC2652P_other_router_*.zip

Choose coordinator firmware when the stick will be used by Zigbee2MQTT, Home Assistant ZHA or another TI ZNP application. Choose router firmware only for a stand-alone device that will join and extend an existing Zigbee network.

Check the target before flashing

Firmware for the wrong target can change the bootloader pin configuration and make the BSL button stop working. Recovery then requires an external cJTAG/JTAG debugger.

3. Enter the ROM bootloader​

For zzh, or as the manual fallback on zzhp:

  1. Unplug the stick.
  2. Press and hold BSL.
  3. Plug the stick into the host while holding the button.
  4. Wait a few seconds, then release it.

The BSL pushbutton on a zzh Stick

If the factory blink test is still installed, the LED stops blinking while the ROM bootloader is active. zzhp hardware can also enter BSL through DTR/RTS when the flashing tool supports its Auto-BSL sequence.

4. Flash the image​

Unzip the selected archive to obtain the .hex image. Two established flashing paths are available.

cc2538-bsl​

cc2538-bsl is cross-platform. Install it from a checkout:

git clone https://github.com/JelmerT/cc2538-bsl.git
cd cc2538-bsl
python -m pip install .

With the board in BSL mode and every Zigbee application stopped:

cc2538-bsl -p PORT -e -w -v FIRMWARE.hex

Use the stable /dev/serial/by-id/... path on Linux when possible, or the appropriate COM port on Windows.

TI SmartRF Flash Programmer 2​

SmartRF Flash Programmer 2 provides a Windows GUI.

  1. Select the stick's COM port. A CH340 serial port and its unknown radio target in SmartRF Flash Programmer 2
  2. Select CC2652R for zzh or CC2652P for zzhp. Selecting the CC2652R target for zzh in SmartRF Flash Programmer 2
  3. Choose the unzipped .hex file.
  4. Enable Erase, Program and Verify, then start the operation.

SmartRF Flash Programmer 2 ready to erase, program and verify

A successful operation finishes with every page verified and the target reset:

Successful verification and reset in SmartRF Flash Programmer 2

5. Configure the host application​

Reconnect the stick normally and continue with Home Automation Setup. If flashing or serial communication fails, use TI CC Series Radios Troubleshooting.