ZZH! A zigbee 3 stick based on CC2652R

0
6055
zzh! CC26X2R1 build +antenna

We wrote several articles with Zigbee as topic, because it’s hot! In my opinion it competes Z-Wave totally, because of the enormous choice of brand and products that are widely available, for affordable prices. But because we don’t like the vendor locks we like the Zigbee2mqtt project. With the open-source software on a cheap stick you create a DIY Zigbee gateway that’s better than Philips, ikea and Xiaomi together! We always used the CC2531 stick and a zigbee router, but now there are more options. Different boards with texas instrument chips, they have a bigger formfactor then the C2531 and more expensive. But then I saw a new kid on the block, called zig-a-zig-ah!  In short it’s zzh!. A “USB stick” form-factor development board for multiprotocol RF tinkering based on the CC2652 chip.

elektrolama

Contents

Usage of the ZZH! zigbee stick

This stick is acc2652r multiprotocol rf stick. This means it’s support multiple protocols for example bluetooth. But most of the buyers will use it for one thing: Build a great and stable Zigbee gateway. With this stick, a zigbee2MQTT firmware and the zigbee2MQTT software you have a fast and rockstable zigbee network.
Replace your philips hue bridge, Ikea tradfri and xiaomi gateways and if you already make use of a cc2531 network it is also worth upgrading.

Compared to the popular CC2531

zzh!CC2531
TI CC2652R CC2531
external antennaantenna in pcb
USBUSB
No external devices needed for flashingRequires CC debugger to be flashed
Limited range, ~30m line of sight
100+ devices30/40 devices
Plastic case included
30 Euroaround 6 Euro
zzh vs cc2531

We received the zzh!

The zzh! stick come in a tiny box and is well packed. Beside the casing and the stick itself there were lama stickers and PCB prints. just a nicely extra.

Migrate from cc2531 to the zzh (CC26X2R1)

zzh! CC26X2R1 build +antenna

Migrate from cc2531 to the zzh (CC26X2R1)

Total Time: 20 minutes

Stop the zigbee2mqtt add-on if your are using it.

Disconnect the CC2531 adapter from the USB port of your Home-Assistant computer.

Check zzh stick

When you ordered a new zzh stick there is no zigbee firmware installed. But a test firmware. when inserting the stick into a USB port: it only flash the light that indicates that the stick is working correct and can be flashed.
If you are ready for the next step: Unplug the stick and insert it again with pressing and holding the BSL button on the stick. Hold it for a few seconds and release, the zzh stick should now in a flashable mode.

Flash firmware on the new zzh stick on a Linux system

Follow this procedure (linux part) : https://electrolama.com/projects/zig-a-zig-ah/

Note : your zzh stick might not be on the same port (eg, /dev/ttyACM0 for CC2531 and /dev/USB0 for zzh). use following command to know your configuration
ls -l /dev/serial/by-id

Download and unzip the Z-Stack firmware for your coordinator
wget https://github.com/Koenkk/Z-Stack-firmware/raw/master/coordinator/Z-Stack_3.x.0/bin/CC26X2R1_20200805.zip && unzip CC26X2R1_20200805.zip
Note : this link is for the current firmware (2020-08-05), check firmware version on following page : https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin

Now, you should have a file named CC26X2R1_20200805.hex

Flash your coordinator with this firmware
./cc2538-bsl.py -p /dev/ttyUSB0 -evw CC26X2R1_20200805.hex

Flash firmware on the new zzh stick on Windows

check system to see which com port is used. Mine was COM4

Download Python for Windows and install. After installation verify Python is correctly installed by running python -V in Command Prompt. It should return Python and the version number.

Open Command Prompt and check if pip is installed by running pip -V which will show its version and install location.
from the same command prompt run:
pip3 install pyserial intelhex

Download the zipped code and extract to a folder.
I used: c:\cc2538-bsl-master
download the latest zigbee2mqtt firmware
This link is for the current firmware (2020-08-05), check firmware version on following page : https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin
save this file in the same folder. in my case it was c:\cc2538-bsl-master

Go to the command prompt again and enter that directory by:
cd c:\cc2538-bsl-master
in this folder you have now the software to flash and the file that you want to flash.

typ in the following command but change it to your comport
python cc2538-bsl.py -p COM4 -evw CC26X2R1_20200805.hex

the command i used:
c:\cc2538-bsl-master>cc2538-bsl.py -p COM4 -evw CC26X2R1_20200805.hex

Check if flashing of the cc26x2r1 file is succeeded

at the end of the flashing procedure you see something like:
Opening port COM4, baud 500000
Reading data from CC26X2R1_20200805.hex
Your firmware looks like an Intel Hex file
Connecting to target…
CC1350 PG2.0 (7x7mm): 352KB Flash, 20KB SRAM, CCFG.BL_CONFIG at 0x00057FD8
Primary IEEE Address: 00:12:4B:00:21:60:06:07
Performing mass erase
Erasing all main bank flash sectors
Erase done
Writing 360448 bytes starting at address 0x00000000
Write 104 bytes at 0x00057F980
Write done
Verifying by comparing CRC32 calculations.
Verified (match: 0x1aded532)

Now your coordinator is ready. The LED should be turned off (seems normal).

That was easy, right?

Update Zigbee2mqtt configuration

  • Ensure that you have the latest version of zigbee2mqtt (for updates, see https://www.zigbee2mqtt.io/getting_started/running_zigbee2mqtt.html)
  • Go to the zigbee2mqtt folder
    cd /share/zigbee2mqtt/
  • Backup your data folder in case of issue
  • Remove you database.db file
  • Edit your configuration file (configuration.yaml
  • under section serial : If needed, update your Serial (eg. Port : /dev/ttyUSB0)
  • under section advanced: (to create is not present), add or edit pan_id to 0x1a63 (or higher if you already update it)
  • OPTIONAL : As you’ll have to repair all devices, if not already done, you can add more security by adding a network key. Always under section advanced, add : network_key: GENERATE
  • Set the permit_join to true
  • Save your configuration file

PART 3. Validation and new pairing

  • Start zigbee2mqtt addon again
  • You should see that you have currently 0 devices joined (as we deletes database.db file)
  • For each device you have, follow the pairing procedure. You only have to pair the device, then the friendly name and all associated parameters will be automatically recovered (configuration.yalm wasn’t removed).

Note : If you have groups. repairs all device from the group and simply restart zigbee2mqtt for have them working again.

Where to buy the zzh! CC2652R Multiprotocol RF Stick?

zzh! A powerful Zigbee 3 usb stick that you can use as gateway 29,52
  • Design
    (5)
  • Quality
    (5)
  • Usability
    (5)
  • Home-Automation compatibility
    (5)
  • Price
    (5)
5

Summary

The zzh! Zigbee 3 USB stick is based on the populair TI CC2652R chip, but than in a USB form factor instead of the big development board. Everything is well documented and it’s very easy to install. When bought you only have to flash it so it can act as a Zigbee gateway. Flashing is easy because you don’t need another debugger cable of something, just plug in and follow the instruction from the documentation.
It’s even very easy to migrate from a CC2531. And because of the prise and the support, I think a lot of users will do this! Buy it if you want to start with a good zigbee network or if you want to improve your current cc2531 network, you wont regret.

Pros

  • Good range
  • Damn Fast
  • No flashing cables of debugger needed, it’s integrated
  • No drivers needed
  • Powerful enough to pair with 100+ devices
  • Good looking plastic case
  • External antenna

Cons

  • A little more expensive than the cc2531 but worth every cent!
  • Not always on stock (due to the popularity)

Alternatives

As an alternative for the zzh! you can choose for a cheaper, but less powerful option is the cc2531 stick with an extra zigbee router.