darkxst / silabs-firmware-builder

Silicon Labs firmware builder
https://darkxst.github.io/silabs-firmware-builder/
261 stars 25 forks source link

Cannot flash my Sonoff ZBDongle-E with web flasher #56

Open Blazzert77 opened 4 months ago

Blazzert77 commented 4 months ago

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

darkxst commented 4 months ago

Do you have drivers installed? you either need Silabs universal cp2102 driver or Qinheng CH343 drivers. Either should work.

Blazzert77 commented 4 months ago

I think I installed the cp210 driver correctly

Once I download them, I unzip them then double click on silabser.inf, is that right?

darkxst commented 4 months ago

I though they had an installer, but that would work also.

Blazzert77 commented 4 months ago

it still doesn't work I tried with both drivers

darkxst commented 4 months ago

in that case it maybe a permission error also.

Blazzert77 commented 4 months ago

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?

Blazzert77 commented 4 months ago

Or can we do it manually with flash software without going through the web?

Nerivec commented 4 months ago
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:

I got a couple of users' adapters back from the "seemingly dead" using this exact procedure...

darkxst commented 4 months ago

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
Nerivec commented 4 months ago

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 😉

darkxst commented 4 months ago

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

Blazzert77 commented 4 months ago

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
darkxst commented 4 months ago

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

darkxst commented 4 months ago

--device /dev/ttyACM0

Also on windows device will be COM# which you check what the number in device manager

Blazzert77 commented 4 months ago

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

darkxst commented 4 months ago

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
Blazzert77 commented 4 months ago

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

darkxst commented 4 months ago

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)?

Blazzert77 commented 4 months ago

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

Nerivec commented 4 months ago

@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.

Blazzert77 commented 4 months ago

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

Nerivec commented 4 months ago

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.

Hedda commented 3 months ago

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

Sr-psycho commented 3 months ago
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.
lanwin commented 2 months ago

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.

darkxst commented 2 months ago

Or just use universal-silabs-flasher with --bootloader-reset sonoff. No disassembly required then.

lanwin commented 2 months ago

Or just use universal-silabs-flasher with --bootloader-reset sonoff. No disassembly required then.

That did not worked for me.

darkxst commented 2 months ago

Do you have the latest version installed? prior to v0.0.16 it was a different flag.

lanwin commented 2 months ago

Not sure. It did not print its version number.

darkxst commented 2 months ago

if it shows --bootloader-reset on the help page, its new enough, if it doesnt upate using pip

lanwin commented 2 months ago

Yep is does grafik

darkxst commented 2 months ago

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.