-
Notifications
You must be signed in to change notification settings - Fork 261
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unifying Dongle: Marking firmware complete takes 24 Seconds, doesn't boot into firmware mode #42
Comments
Additional info on the Device: Unifying [bootloader-nordic] |
I sovled this error by this step: |
The last operation in Marc's USB flasher writes a single byte to flash address 0×0000. This write triggers the CRC check for the whole firmware blob, and thus takes some seconds. On dongles with latest bootloader, this additionally would trigger a signature check. The signature check would take longer and fail in any case, as the firmware just has no valid 256byte signature (which has to be send to the receiver with additional commands). Trying to flash a Nordic dongle which has a signed Bootloader, would wipe the firmware, although flashing fails. In such a case the dongle would be stuck in bootloader mode. For Nordic dongles, signed bootloader start with version >=BOT01.04 So make sure you have <=BOT01.03 before trying to flash |
damn.. where is my post from a couple of days ago? |
@mame82 any way we can update bootloader if we are stuck in booterloader mode? |
First of all: Thank you for the amazing work.
When flashing my unifying dongle (all preparations ahead no errors) i get the following results:
2019-05-07 07:52:11.419] Mark firmware update as completed
Traceback (most recent call last):
File "./prog/usb-flasher/logitech-usb-flash.py", line 61, in
response = dongle.send_command(0x21, 0x09, 0x0200, 0x0000, "\x20\x00\x00\x01\x02" + "\x00"*27)
File "/root/nrf/nrf-research-firmware/prog/usb-flasher/unifying.py", line 180, in send_command
response = self.dongle.read(ep, 32, timeout=timeout)
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 988, in read
self.__get_timeout(timeout))
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 851, in intr_read
timeout)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 936, in __read
_check(retval)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 595, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 110] Operation timed out
Makefile:33: recipe for target 'logitech_install' failed
make: *** [logitech_install] Error 1
When i alter the usb_timeout in unifying.py from 2500 to 32500 it seems to work:
[2019-05-07 07:54:46.032] Mark firmware update as completed
[2019-05-07 07:55:09.883] 24:00:00:00:00:6B:32:FF:FF:FF:FF:FF:FF:FF:32:FF:FF:FF:FF:FF:FF:6F:B7:FF:41:A0:B4:15:FB:7E:79:B3
[2019-05-07 07:55:09.884] Restarting dongle into research firmware mode
[2019-05-07 07:55:09.886] 70:00:00:00:00:6B:32:FF:FF:FF:FF:FF:FF:FF:32:FF:FF:FF:FF:FF:FF:6F:B7:FF:41:A0:B4:15:FB:7E:79:B3
But the device still shows up as:
Bus 001 Device 024: ID 046d:aaaa Logitech, Inc.
Any advice would be appreciated.
The text was updated successfully, but these errors were encountered: