Om gebruik te maken van Zigbee2MQTT ben ik begonnnen met de goedkope CC2531 USB adapter met ingebouwde PCB antenne. Verder heb ik nog extra CC2530 + CC2591 routers gebouwd om het bereik te vergroten.

Dit werkt op zich erg goed, maar het kan altijd beter. Sinds kort ondersteunt Zigbee2MQTT ook de CC26X2R1 adapter. Deze is wat duurder (US$ 40,=), maar erg krachtig, ondersteunt meer directe connecties (50 vs. 20 met CC2531), meer cached routes (100/200 vs. 30/0 met CC2531) en heeft bovendien een erg groot bereik. Deze is verder krachtig genoeg om gebruik te maken van de nieuwste Zigbee 3.0 standaard.




Om bovenstaande redenen heb ik de CC26X2R1 adapter aangeschaft. Verder heb ik de planning om deze in een 3D geprinte behuizing te plaatsen.



Eventueel kun je ook nog een externe antenne aansluiten, maar dan moet je een weerstandje (erg klein) verleggen. Zie ook onderstaande uitleg van de connecties op het bord.



Om de externe antenne aan te sluiten moet je een weerstand 90 graden draaien op je bord, dus die moet je even los solderen, draaien en weer vast solderen.



Vooralsnog lijk ik deze externe antenne niet nodig te hebben. Mijn ervaring is dat dit bord duidelijk een veel beter bereik heeft dan de CC2531 adapter.

Flashen CC26X2R1

Om de CC26X2R1 van de juiste firmware te voorzien moet je onderstaande stappen zorgvuldig volgen:

  1. Sluit de CC26X2R1 aan op een vrije USB poort van je Windows PC
  2. Open de UniFlash Tool
  3. Wis de inhoud van de CC26X2R1 door te kiezen: “Settings & Utilities” menu, kies optie “Erase entire flash (You must reconnect to the target afterwards)” bij de ‘manual erase section’ en voer de actie uit. Ik kreeg nog de vraag om een update uit te voeren en dat heb ik gedaan. Hierna heb ik nogmaals een ‘Manual Erase Entire Flash’ gedaan.


  4. Sluit de UniFlash Tool
  5. Verwijder de CC26X2R1 van de USB poort en sluit hem weer opnieuw aan op vrije USB van je Window PC
  6. Open de UniFlash Tool
  7. Verander in het menu “Settings & Utilities” de “Erase Settings during Program Load” setting naar de waarde “All Unprotected Sectors”


  8. In het menu “Program” laad je de .hex file
  9. Flash de firmware door hier op de [Load Image] button te drukkken.



    Wacht tot er onderin verschijnt: ‘Program Load completed succesfully’
  10. Sluit de UniFlash Tool

Je hebt nu de CC26X2R1 succesvol van nieuwe firmware voorzien en kunt deze gaan gebruiken met Zigbee2MQTT.

Configuratie op Raspberry PI

Als je het CC26X2R1 device aansluit op je Raspberry Pi zul je zien dat deze bekend is onder 2 USB devices:

ttyACM0: deze wordt voor data gebruikt (en die moet je dus kiezen)
ttyACM1: deze wordt voor debugging gebruikt

Met het commando ‘ls -la /dev/serial/by-id’ vind je de volgende device-id’s:

usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_L1100DHL-if00 -> /dev/ttyACM0
usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_L1100DHL-if03 -> /dev/ttyACM1

Dit betekent dus dat je het ‘device id’ dat eindigt op if00 moet kiezen voor data.

Configuratie van Zigbee2MQTT

Ik ben weer volledig ‘schoon’ begonnen met de configuratie van Zigbee2MQTT door een default configuration.yaml te gebruiken en de database.db file te verwijderen uit de ‘/opt/zigbee2mqtt/data’ directory. Verder heb ik de ‘pan_id’ in de default ‘/opt/zigbee2mqtt/data/configuration.yaml’ file veranderd naar een nieuwe waarde. Start hierna Zigbee2MQTT opnieuw op en pair al je ZigBee devices weer.

homeassistant: false
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: 'mqtt://192.168.1.70:1883'
serial: 
  port: /dev/serial/by-id/usb-Texas_Instruments_XDS110__03.00.00.05__Embed_with_CMSIS-DAP_L1100DHL-if00
  disable_led: false
advanced:
  log_level: info
  
  # Optional: ZigBee pan ID (default: 0x1a62)
  pan_id: 0x1a68
  
  # Optional: ZigBee channel, changing requires re-pairing of all devices. Default: 11
  # (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)
  channel: 11

Zie ook mijn vorige blog met tips voor het pairen. Je zult merken dat dit pairen met de CC26X2R1 een stuk ‘soepeler’ gaat.

Bereik

Na een aantal weken werken met de CC26X2R1 in combinatie met drie CC2530 routers merk ik toch wel dat al mijn ZigBee sensoren een stuk stabieler zijn en een veel beter signaal hebben. Dit zie je mooi in een Grafana grafiek waarbij ik de Link Quality van elke ZigBee sensor handig in de gaten kan houden.



Conclusie

De CC26X2R1 is een erg krachtige adapter met veel mogelijkheden en ZigBee 3.0 support. Het verschil met een CC2531 oplossing merk je wel. Vooral de ondersteuning voor meer devices is erg prettig. Je kunt tenslotte je bestaande ZigBee 1.2 routers (CC2530) blijven gebruiken met deze adapter wat fijn is.