How to: Flash SonOff USB Dongle to be a Zigbee Repeater/Router & Set Transmit Power

I wanted to flash a SonOff USB Zigbee dongle to use it as a repeater (SonOff refers to this as flashing it to be a "router") on HE. These things are great Zigbee repeaters! After flashing them just plug them into any USB power supply that provides at least 0.5A at 5V. Most phone chargers will work fine.

image

These things especially like the C8 - they can repeat for a lot of devices...example from my setup:


![2023-04-29 08_26_51-|690x148]

Flash from Pi/Linux or from Windows
You can flash from a Pi/Linux box, or from Windows, both methods are described below. I'd say have fun flashing, but that would sound a little weird... :wink:

Flash from Pi/Linux

I got a lot of help from @aaiyar on this guide. I documented the process and added some helpful info about the dongle in an "easy-as-pie" PDF for others like me who need more than the usual level of support to figure things out. :wink:

Flash from Raspberry Pi
Instructions and links for flashing the "P/Plus" version w/the router firmware using a Raspberry Pi are in the PDF below. Enjoy. And thanks again to @aaiyar.

How to Flash SonOff USB "P/Plus" Dongle to be a Zigbee Repeater/Router using Pi or Linux box

Remember, this guide is for the "P/Plus" version of the dongle, chip info from Amazon page on the P/Plus version:

Flash from Windows
If you prefer to flash from a Windows device, @jtmpush18 found and used this video guide to flash a P/Plus dongle successfully. Great option if you don't have a Pi or Linux device or prefer to use Windows.

Important reminder The video demonstrates flashing the dongle, but he's flasing the coordinator FW rather than the router FW. You want to flash to the router FW. That is found here. So follow the steps in the video, but make sure you get the router FW files, not the coordinator FW files that the video links to. Thanks to @mpoole32 for reminding me to put this reminder here. :slight_smile:

E version of the dongle
There is also a newer "E" version using a different chip. Newer isn't always better, at this point for best results it is recommended that you say with the "P" version above.

@Stan1 has provided a write up below for flashing the "E" version of the dongle. Thanks for the contribution, Stan!

See the next post in this topic for more info on the dongle and flashing.

Change History
4/29/2023 - Added reminder to get the router FW files when following the video to flash from Windows - the video has links to the coordinator FW, but you want to be sure to use the router FW. Link is provided above in the reminder next to the video.
3/6/2023 - Added comment that I had to reboot my SonOff USB dongles after doing a migration from C-7 to C-8. Before I rebooted them they weren't working well for me. After reboot they've been fine.
12/11/2022 - Added info on a method to flash using Windows that @jtmpush18 provided. So now you can use Pi/Linux or Windows to flash your dongle. (Hey, not my fault that sounds funny... :wink: )
11/8/2022 - Confirmed that new dongle launchpad router FW 20221102 can be flashed using cc2538-bsl or uniflash 8.0.0 (not 8.1.0). More info in PDF.
11/2/2022 - New dongle launchpad router FW has been released, with ability to set transmit power. Default is still 9dbm (added in 20220125 FW). Updated PDF to the bin folder so that when new FW versions show up there will be a working link to the FW directory. Thanks to @jtmpush18 for notifying about the updated FW version. Changelog for the new FW includes " * Allow to set transmit power" so hopefully any issues will be resolved so we have easier access to transmit power setting.
10/25/2022 - Added link to second post to another discussion related to flashing the P and E dongles. That discussion also includes information about how to set the dongle transmit power. P evidently defaults to 5db, E defaults to 20db
10/18/2022 - Additional information on P vs. E version of the dongle, added more general information/links on the dongle to the second post.
10/17/2022 - Initial release

15 Likes

Some additional information on this device

Note on C-8 Migration: I had to reboot my SonOff USB dongles after doing a migration from C-7 to C-8. Before I rebooted them they weren't working well for me. After a reboot (unplug, plug in again) they've been fine.

SonOff USB Dongle P/Plus version router FW changelog.

Pairing with your hub after flashing - important tips!
Important: In many cases pairing w/your hub after flashing can be difficult. It will pair, but it could take a few tries in some cases.

The most effective pairing approach I've seen is below - thanks to @kahn-hubitat for this:

  1. Complete flashing of the dongle
  2. Unplug & remove the dongle from it's black case (two tiny screws at the USB end - don't lose them!!) You'll have to unscrew the dongle antenna to remove the dongle from its case after you remove the screws at the USB end.
  3. Start Zigbee pairing on your hub
  4. Press and hold the top round (Reset) button (the closest button to the antenna). Press the round button, don't change the slider above the two buttons.
  5. Connect the dongle to power while holding the button, and continue to hold the button for 15s to 17s after connecting the dongle to power. The red LED on the dongle will be on, but won't do anything.
  6. A few seconds after releasing the button the dongle should pair.

Above has worked every time I've tried it. Recommended.

The approach below has worked for several people now, when the other options have failed Thanks to @Johnnyvaneddie for pioneering this, and to @Biggsyboi and @mluck for confirming it worked for them as well.

This may also work: It has not worked for me.

  1. Start Zigbee pairing on your hub
  2. Complete the flash of the dongle on your pi/computer.
  3. When the flashing ends the dongle automatically goes into pairing mode so it will be ready to join your hub and should be picked up.

After Pairing

  1. Change the driver from the default "Device" to "Ikea Tradfri Signal Repeater." The default Device driver results in unnecessary noise in the logs.
    image

  2. Only the "Get Link Quality" button on the Device page works, you'll see output in your logs from that button.

Selecting a driver:
After pairing the dongle it will work as a driver by default. Check the automatically chosen driver - sometimes the driver selected may not match w/the Dongle. You can choose a specific driver. Options include:

  • Device: Built into HE, can make the device a little noisey in terms of log events. This is sometimes the driver selected by HE by default.
  • Ikea Tradfri Signal Repeater: Built into HE, all the commands don't work, doesn't cause any problems.
  • Zigbee Monitor Driver. Should be in HPM, full featured powerful driver to get info on your repeater.
  • Zigbee - Generic Repeater (w/ healthStatus): Updated version of relatively simple zigbee repeater driver w/Health Status (health = is the repeater connected to the hub).

Transmit Power
As of the 20220125 Sonofff dongle P/Plus router FW release the transmit power (normally 5dbm) is set to 9dbm. (Changelog here.) The more recent dev 20221102 release allows the transmit power to be customized, but we haven't worked out yet how to access that setting. Default power on 20221102 is still 9dbm.

HE forum post from about a year ago when the P/Plus version of the device was released:

Github that contains the different FW versions for the P/Plus version of the dongle:

Some discussion about potential thread compatibility for both the P and E versions of the dongle:

Another SonOff dongle flashing thread recently created with info on the "E" version. Includes Information from @NoWon on how to set the power level of the Sonoff USB Dongle: See Stan's E dongle flashing process here in this thread as well. I believe it's a little simpler to follow.
Thread:

Post on Setting Transmit Power

6 Likes

Former convicted flasher here. My wife blew the whistle on me when I replied to her "what are you doing", I said "flashing my dongle", she said "that's it, It's one thing to blow hundreds of dollars on your stupid electronic toys, but when you start being lewd...." I interrupted, babe it's not what you think.

7 Likes

Question:
If I flash these to be a repeater, is the firmware available to flash it back to being a coordinator?

Yes. Flash to your heart’s content.

2 Likes

I think you need to be more cautious about you how you use that phrase. :wink:

6 Likes

@danabw
Thanks very much for the write up... I'm doing it now...
There is a new version of the lanunchpad_router hex file, the version that you quoted has been removed...

Thanks, glad you find it helpful.

Do you have a link for the newer version so I can update the PDF?

NVM...got it. Just updated today!

PDF is updated w/the new FW...I'm also going to add a link to the bin directory so after updates the link will still work.

1 Like

It’s already been 15 minutes! You don’t have your dongles updated yet? :rofl:

Shamefully going to update mine now :disappointed:

I'm not worthy, please sir, may I have another?! :wink:

1 Like

Interested if you have to re-pair after updating...one of mine was a real pain to join to the hub, not sure I want to go through that again.

Yes. The update ends with the dongle in pairing mode. Pair it back before disconnecting it and you should be good.

OK...guess I'll see if there is a changelog before I flash.

Changelog: @NoWon, you may be interested in the new transmit power option. Do you know how this release supports setting transmit power? I.e., what steps?

image

Also can anyone "translate" the updated SimpleLink SDK changelog - just high-level highlights of any obviously interesting additions or fixes?

SDK Changelog:
https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/6.30.00.84/exports/changelog.html

@danabw :slight_smile: another small issue:

(I have tried to install Intelhex and intelhex but I seem to still have an error... after doing "pip install intelhex)

(I got over this error by using: sudo pip install intelhex)

1 Like

@danabw
I'm afraid that I'm in the crowd that can't get this device paired with Hubitat.
I've tried to switch channels (19,25, 15), and also to move the dongle and hub close together.
Does the following look like a complete flash:

It looks like the new firmware isn’t fully baked. I tried to install it and kept getting an error. I reinstalled the previous version uneventfully and paired it back to Hubitat. :disappointed:
So much for 20dbm output.

Can you please send me a copy of that firmware?
I can't find it anywhere online.

2 Likes

Well, I downloaded that version, but it doesn't seem to work either (ch 19, 24, 15)


Hubitat and Sonoff dongle are withing 6 inches of each other.
Unfortunately, it just doesn't want that dongle!

I had to hold the button while inserting it into the usb port, then release and immediately start pairing. They only stay in pairing mode for a few seconds it seems.

1 Like