Cannot flash my Sonoff ZBDongle-E with web flasher
Blazzert77 opened this issue · comments
Good morning
I hope this is the right project to report such an issue. I'm trying to flash a newly acquired Sonoff ZBDongle-E. Never used,
I tried flashing it from 2 separate computers, both running Windows 11, with the latest versions of Chrome or Edge. Both fail
when flashing. The dongle is plugged into a USB port on the device, not a cable or a USB hub.
Project
I use the url: https://darkxst.github.io/silabs-firmware-builder/
There I select ZBDongle-E and Select. The browser then asks me to select a device, I select the one listed:
Do you have drivers installed? you either need Silabs universal cp2102 driver or Qinheng CH343 drivers. Either should work.
I think I installed the cp210 driver correctly
Once I download them, I unzip them then double click on silabser.inf, is that right?
I though they had an installer, but that would work also.
it still doesn't work I tried with both drivers
in that case it maybe a permission error also.
how can I correct this? from what I understand that I am the only one to have this problem is in the log nothing indicates any particular problem?
Or can we do it manually with flash software without going through the web?
2024-02-24 17:45:58 emscripten bellows.uart[42] DEBUG RSTACK Version: 2 Reason: RESET_POWER_ON frame: b'c102029b7b7e'
2024-02-24 17:45:58 emscripten bellows.ezsp[42] INFO NCP entered failed state. No application handler registered, ignoring...
That's definitely not the right reset reason here. And once the NCP is in failed state, it will refuse anything but a reset... that won't come because the flasher moves on to another probing method when one fails.
You can try this:
- Install SecureCRT (trial version is fine), or another similar software
- Use it to flash Sonoff factory NCP firmware (procedure described in Sonoff PDF)
- Come back to darkxst flasher and flash the new firmware you want
I got a couple of users' adapters back from the "seemingly dead" using this exact procedure...
I got a couple of users' adapters back from the "seemingly dead" using this exact procedure...
Same can be achieved with Universal-silabs-flasher and bootloader reset
universal-silabs-flasher --device /dev/ttyACM0 --bootloader-reset sonoff flash --firmware file.gbl
I tried the cmd flasher first, but it didn't work on the first adapter I revived (even with all manual params).
Then I guess I never tried it again, I just did it like I mentioned since I knew that worked...
I'll try again on the next one 😉
Bootloader reset forces the dongle into bootloader, just like pressing the physical buttons, from that point it is always flashable even if corrupt firmware on it.
also the --bootloader-reset
option is new, but previously it existed as --sonoff-reset
hello I tried your technique however I have lots of errors I have a little difficulty I am a beginner would it be possible for you to make a video from A to Z that I can understand because I have this error which persists
universal-silabs-flasher: The term "universal-silabs-flasher" is not recognized as a cmdlet name,
function, script file, or executable program. Check the spelling of the name, or if a path exists,
verify that the path is correct and try again.
To the character Line:1: 1
+ universal-silabs-flasher --device /dev/ttyACM0 --bootloader-reset sound ...
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: ObjectNotFound: (universal-silabs-flasher:String) [], CommandNotFoundException
+ FullyQualifiedErrorId: CommandNotFoundException
hello I tried your technique however I have lots of errors I have a little difficulty I am a beginner would it be possible for you to make a video from A to Z that I can understand because I have this error which persists
Did you install it?
On Windows you need to install Python and Pip first (there should be lots of guides for this). Then you can just run this to install
pip install universal-silabs-flasher
--device /dev/ttyACM0
Also on windows device will be COM#
which you check what the number in device manager
yes the command pip install universal-silabs-flasher
works however it is this one which blocks tell me if it is not good I type universal-silabs-flasher --device /dev/ttyACM4 --bootloader-reset sonoff flash --firmware ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl
I would like to point out that my key is called COM4
For COM4 you would do
universal-silabs-flasher --device COM4 --bootloader-reset sonoff flash --firmware ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl
However its not finding the command so you might need to add python package directory to your PATH Environment variable.
C:\Users\blazz\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages
I dont use windows so can't help much more, However you could try run universal-silabs-flasher from the folder its installed in (under site-packages)?
ok I had already tried that I took a skyconnect home assistant key to see if the problem does not come from the key then otherwise I would wait until matter is available on the sky connect
@Blazzert77
Open folder
C:\Users\blazz\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts
Then right click in that folder and select "Open Terminal"
Then run the command like this in that open terminal:
.\universal-silabs-flasher.exe --device COM4 --bootloader-reset sonoff flash --firmware ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl
PS: for future use, you will want to put that folder in the PATH Environment variable, then it should work from anywhere.
Ouvrir le dossier Cliquez ensuite avec le bouton droit de la souris dans ce dossier et sélectionnez « Ouvrir le terminal » Exécutez ensuite la commande comme ceci dans ce terminal ouvert :
C:\Users\blazz\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts
.\universal-silabs-flasher.exe --device COM4 --bootloader-reset sonoff flash --firmware ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl
PS : pour une utilisation future, vous voudrez mettre ce dossier dans la variable d’environnement PATH, alors il devrait fonctionner de n’importe où.
by following your instructions I got a new error that I didn't have before
That last part ncp-uart-sw_EZNet6.10.3_V1.0.1.gbl
needs to be the name of the firmware file you downloaded, and it needs to be in the same folder where you are executing the command.
The dongle is plugged into a USB port on the device, not a cable or a USB hub.
Probably not your problem, but FYI, due to their physicial design it is recommend always using a USB cable with the Sonoff ZBDongle-E (and Sonoff ZBDongle-P) because the made the casing/enclosure for those dongles too large that it affects how long the USB plug actually sticks out so is therefor does not always make proper physical contact, at least on some computers that have USB ports that are partially sunken into the computer chassi
To make that work, you need to open the device. Inside is a reset and boot button. You need to hold down the boot button before inserting the device and still hold it down until the flasher showing the flash progress. This at least works for me.
Or just use universal-silabs-flasher
with --bootloader-reset sonoff
. No disassembly required then.
Or just use
universal-silabs-flasher
with--bootloader-reset sonoff
. No disassembly required then.
That did not worked for me.
Do you have the latest version installed? prior to v0.0.16 it was a different flag.
Not sure. It did not print its version number.
if it shows --bootloader-reset
on the help page, its new enough, if it doesnt upate using pip
then it should work, but depending on firmware you may need to set baudrate to probe for example
--ezsp-baudrate 230400
or otherwise you can try probe only bootloader --probe-method bootloader
.