{"id":782,"date":"2025-07-07T18:24:39","date_gmt":"2025-07-07T16:24:39","guid":{"rendered":"https:\/\/exchangetimes.net\/?p=782"},"modified":"2025-07-07T18:45:27","modified_gmt":"2025-07-07T16:45:27","slug":"how-to-flash-sonoff-zigbee-usb-zbdongle-p","status":"publish","type":"post","link":"https:\/\/exchangetimes.net\/?p=782","title":{"rendered":"How to Flash Sonoff Zigbee USB (ZBDongle-P)"},"content":{"rendered":"\n<p>In this article I will go through the steps to easily flash a <a href=\"https:\/\/dongle.sonoff.tech\/guide\/zbdongle-p\/introduction-2\/\" target=\"_blank\" rel=\"noopener\">Sonoff Zigbee USB Dongle<\/a> (ZBDongle-P)\u00a0<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/JelmerT\/cc2538-bsl\/tree\/main\/cc2538_bsl\" target=\"_blank\" rel=\"noopener\">Download<\/a> the python program<\/li>\n<li><a href=\"https:\/\/github.com\/Koenkk\/Z-Stack-firmware\/tree\/master\/router\/Z-Stack_3.x.0\/bin\" target=\"_blank\" rel=\"noopener\">Download<\/a> the firmware (in this article I use the router firmware)<\/li>\n<li>Extract the files to a folder on your PC<\/li>\n<\/ul>\n<p><strong>Flashing your Sonoff Zigbee USB Stick<\/strong><\/p>\n<ul>\n<li>Open your terminal<\/li>\n<li>cd to the folder where you extracted the python program and firmware<\/li>\n<li>Plug in your Sonoff Zigbee USB stick<\/li>\n<li>type <code>ls -l \/dev\/serial\/by-id <\/code>and press enter<\/li>\n<li>This should show you what the device is recognised as i.e. \/ttyUSB0 but it might be different on your PC<\/li>\n<li>Make a note of the output above<br \/>(Before you run the below, make sure you replace the firmware with what you downloaded and use the output above to specify your USB device)<\/li>\n<li>now run this: <code>sudo .\/cc2538_bsl.py -ewv -p \/dev\/ttyUSB0 --bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_router_20221102.hex<\/code><\/li>\n<li>Enter your password<\/li>\n<li>You have now flashed your Sonoff Zigbee USB stick and should be able to pair it with your home automation system as a Zigbee Router<\/li>\n<\/ul>\n<p>Note the the above was done using Linux. I do not know if this will work in Windows using Power Shell. Just ditch Windows and use Linux.<\/p>\n<p>Below is a quick video showing you the steps above:<\/p>\n<p><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"\/\/www.youtube.com\/embed\/8IqenjDU3M8?si=wryqXOu1PXDE8HD9\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article I will go through the steps to easily flash a Sonoff Zigbee USB Dongle (ZBDongle-P)\u00a0 Download the python program Download the firmware (in this article I use the router firmware) Extract the files to a folder on your PC Flashing your Sonoff Zigbee USB Stick Open your terminal cd to the folder where you extracted the python program and firmware Plug in your Sonoff Zigbee USB stick type ls -l \/dev\/serial\/by-id and press enter This should show you what the device is recognised as i.e. \/ttyUSB0 but it might be different on your PC Make a note of the output above(Before you run the below, make sure you replace the firmware with what you downloaded and use the output above to specify your USB device) now run this: sudo .\/cc2538_bsl.py -ewv -p \/dev\/ttyUSB0 &#8211;bootloader-sonoff-usb CC1352P2_CC2652P_launchpad_router_20221102.hex Enter your password You have now flashed your Sonoff Zigbee USB stick and should be able to pair it with your home automation system as a Zigbee Router Note the the above was done using Linux. I do not know if this will work in Windows using Power Shell. Just ditch Windows and use Linux. Below is a quick video showing you the steps above:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[615,614,5],"tags":[],"class_list":["post-782","post","type-post","status-publish","format-standard","hentry","category-home-assistant","category-home-automation","category-linux"],"_links":{"self":[{"href":"https:\/\/exchangetimes.net\/index.php?rest_route=\/wp\/v2\/posts\/782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exchangetimes.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exchangetimes.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exchangetimes.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exchangetimes.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=782"}],"version-history":[{"count":7,"href":"https:\/\/exchangetimes.net\/index.php?rest_route=\/wp\/v2\/posts\/782\/revisions"}],"predecessor-version":[{"id":792,"href":"https:\/\/exchangetimes.net\/index.php?rest_route=\/wp\/v2\/posts\/782\/revisions\/792"}],"wp:attachment":[{"href":"https:\/\/exchangetimes.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exchangetimes.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exchangetimes.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}