darkxst / silabs-firmware-builder

Silicon Labs firmware builder

Home Page:https://darkxst.github.io/silabs-firmware-builder/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

Capture d'écran 2024-02-24 160149
Capture d'écran 2024-02-24 160909

silabs_flasher.2.log

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

Capture d'écran 2024-02-26 095029
Capture d'écran 2024-02-26 095306

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 added the variable to the path we can see that python is recognized however still the same problem

I must be doing something wrong but I can't see
Capture d'écran 2024-02-26 113712
Capture d'écran 2024-02-26 113926

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
Capture d'écran 2024-02-27 094808

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

Guys, what firmware is suitable for this dongle? Devices are falling off on this one (SDK Version | 4.3.1 -- | -- 7.3.1.0) , I want to roll back to the previous version PS I didn’t reconnect the devices, I just updated the firmware and connected the dongles.

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

Yep is does
grafik

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.