Skip to content
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

On firmware install: Spike Prime hub did not show DFU device and Robot Inventor did #1690

Open
BertLindeman opened this issue Jun 26, 2024 · 12 comments
Labels
hub: primehub/inventorhub Issues related to the LEGO SPIKE Prime hub and LEGO MINDSTORMS Robot Invetor hub platform: essentialhub Issues related to the LEGO SPIKE Essential hub topic: flashing firmware Issues related to fhe firmware flashing process

Comments

@BertLindeman
Copy link

BertLindeman commented Jun 26, 2024

After some time, I wanted to flash newer firmware (for #1678) on the primehub that was still at this CI firmware (build 3380 I think).

  1. Bluetooth is enabled on the hub.
  2. Press the bluetooth button and insert the USB cable to Win11 and wait for a colorful led blinking.
  3. No DFU device to connect to.
  4. windows device manager shows an exclamation mark on the device.

Without any change on the windows side tried the same action on a Robot Inventor hub.
And that went fine.

Re-tried the PrimeHub and again no DFU device.

Did a re-install of the dfu driver as you document.
Now the PrimeHub is shown as DFU device and can have it's firmware updated.

So no problem in the end, but I add this in case anyone has this problem too.

Bert

Originally posted by @BertLindeman in #1615 (comment)

[EDIT]
Environment:

  • Windows 11 at 23H2
  • v3.5.0 (Pybricks Beta v2.6.0-beta.2)
  • beta.pybricks.com used as app.
@laurensvalk
Copy link
Member

laurensvalk commented Jun 26, 2024

Doing the DFU driver steps seems to be required on Windows for every new hub you use.

I wonder if Windows "forgets" about certain devices eventually, so it would treat it like a new hub? (Just as it does with Bluetooth devices)

@laurensvalk laurensvalk added hub: primehub/inventorhub Issues related to the LEGO SPIKE Prime hub and LEGO MINDSTORMS Robot Invetor hub topic: flashing firmware Issues related to fhe firmware flashing process platform: essentialhub Issues related to the LEGO SPIKE Essential hub labels Jun 26, 2024
@BertLindeman
Copy link
Author

"eventually" is the key word I think.

The last hub I installed yesterday was the prime hub, so to test I now updated the RobotInventor Hub.
No problem.
So it's not really a simple one usb hub only.

@dlech
Copy link
Member

dlech commented Jun 26, 2024

Robot Inventor and SPIKE Prime and SPIKE Essential all have different USB product IDs, so I would expect that we would have to configure the WinUSB driver for each type of hub individually.

Windows should not "forget" unless you manually uninstall the driver/remove the device from the Device Manager.

@laurensvalk
Copy link
Member

I would expect that we would have to configure the WinUSB driver for each type of hub individually.

I think it is each hub, not just each hub type.

@dlech
Copy link
Member

dlech commented Jun 26, 2024

Interesting, I wonder if Windows is looking at the serial number as well when we manually configure a driver.

@laurensvalk
Copy link
Member

Oh, nice - if that means that there might be a slightly different setup path that would make it necessary just once, that would be pretty neat for classroom use.

@dlech
Copy link
Member

dlech commented Jun 26, 2024

For for that, I think https://github.com/pbatard/libwdi/wiki/Zadig can help.

It will basically create a signed driver for you that just uses the VID/PID match.

@laurensvalk
Copy link
Member

laurensvalk commented Jun 26, 2024

I suppose we could test if that generic windows driver installer Zadig we had once upon a time makes it necessary once or for every hub.

EDIT: beat me to it :)

@dlech
Copy link
Member

dlech commented Jun 26, 2024

I wonder if we could use Zadig to create a .inf file and then just share that file rather than everyone having to install Zadig?

@laurensvalk
Copy link
Member

🚀

@afarago
Copy link

afarago commented Aug 22, 2024

I wonder if we could use Zadig to create a .inf file and then just share that file rather than everyone having to install Zadig?

Tried it and does not work.

Background
Zadig creates a self-signed .cat catalog file and installs a custom root certificate for the local device.
When moving the file to another computer the root cert / trust provider is not there, thus this message will pop up.
image

Per hub
Unfortunately Windows does need this step every hub, therefore the text here is not entirely correct.
image
Last week I have done a workshop and flashed/re-flashed 8 devices, requiring a devmgr step 8 times.

@laurensvalk
Copy link
Member

Thank you for trying this Attila. To be complete, is Zadig required only once per computer, or also once per hub like the device manager method?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hub: primehub/inventorhub Issues related to the LEGO SPIKE Prime hub and LEGO MINDSTORMS Robot Invetor hub platform: essentialhub Issues related to the LEGO SPIKE Essential hub topic: flashing firmware Issues related to fhe firmware flashing process
Projects
None yet
Development

No branches or pull requests

4 participants