Hello, can anyone share his experience with the new ARM Chips for Windows on ARM in terms of compiling speeds etc. ?
Mine will arrive tomorrow and after a bit of research, some say Windows on ARM x86 emulation slows down the compiling time to minutes for easy Sketches.
Thank you
1 Like
Same question here. How about running Arduino IDE with a Snapdragon X Elite or X Plus?
@25matzero how is it working for you?
1 Like
Uno R3 works fine, no issues, no slowness.
Uno R4 minima and ESP32 however, are unusable. It seems that there is no DFU-RT driver available for windows on arm. The IDE can see the board, but can't upload. Both work fine with the same cable on my x86 laptop
Cannot open DFU device 2341:0069 found on devnum 1 (LIBUSB_ERROR_NOT_FOUND)
No DFU capable USB device available
Failed uploading: uploading error: exit status 74
1 Like
Hi @amoore204.
I suggest using Zadig to install the WinUSB driver. I don't have a Windows ARM machine so I can't try it out, but the Zadig developer seems to be quite involved in the Windows ARM world and they say it works:
https://github.com/pbatard/libwdi/issues/155#issuecomment-1450642313
I have verified that the UNO R4 Minima works fine with the WinUSB driver installed via Zadig on a Windows x86 machine. I didn't bother to test it with an ESP32 board, but I'm sure it will work as well.
Unfortunately, Zadig has failed to install any drivers.
ESP32 will work, but you can't use the setup.exe. Download the Windows Universal Driver from Silicon Labs. Find silabser.inf and right-click>install to get the driver to install. Don't use setup.exe. It will tell you that it's not compatible. Just got this working today.
Please provide a detailed description of what you mean by this in a reply on this forum thread, including:
- What did you do?
- What were the results you expected from doing that thing?
- What were the results you observed that did not match your expectations?
Make sure to include the full and exact text of any error or warning messages you might have encountered.
Quite simply,
- I run Zadig as an admin with the R4 connected.
- Zadig identifies the device as DFU-Port (Interface 2).
- I have tried to install WinUSB, USB Serial, and libusb-win32
- Install Driver, or Install WCID Driver, neither changes the outcome.
- Zadig gives the same errors each time.
- As a popup: "The driver installation failed."
- At the bottom of the Zadig window: "Driver Installation: FAILED (Operation not supported or not implemented)"
I have also tried installing the DFU-RT_Port_(Interface_2).inf file directly by extracting them, but they also fail with: "A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider"
pbatard has stated that Win11 on arm64 won't accept Zadig drivers without disabling DSE. And my Galaxy Book4 Edge steadfastly refuses to boot with DSE disabled.
https://github.com/pbatard/libwdi/issues/289#issuecomment-1848986132
Edition |
Windows 11 Home |
Version |
24H2 |
Installed |
2024-08-26 |
OS build |
26100.1591 |
Experience |
Windows Feature Experience Pack 1000.26100.18.0 |
Zadig WinUSB Log:
Using inf name: DFU-RT_Port_(Interface_2).inf
Successfully extracted driver files.
Installing driver. Please wait...
libwdi:info [extract_binaries] Successfully extracted driver files to 'C:\Users\amoor\usb_driver'
libwdi:info [wdi_prepare_driver] Successfully created 'C:\Users\amoor\usb_driver\DFU-RT_Port_(Interface_2).inf'
libwdi:info [wdi_prepare_driver] Creating and self-signing a .cat file...
libwdi:info [wdi_prepare_driver] Test signing is: Disabled
libwdi:debug [AddFileHash] 'wdfcoinstaller01011.dll': PE type
libwdi:info [ScanDirAndHash] added hash for 'C:\Users\amoor\usb_driver\amd64\wdfcoinstaller01011.dll'
libwdi:debug [AddFileHash] 'winusbcoinstaller2.dll': PE type
libwdi:info [ScanDirAndHash] added hash for 'C:\Users\amoor\usb_driver\amd64\winusbcoinstaller2.dll'
libwdi:debug [AddFileHash] 'dfu-rt_port_(interface_2).inf': INF type
libwdi:info [ScanDirAndHash] added hash for 'C:\Users\amoor\usb_driver\dfu-rt_port_(interface_2).inf'
libwdi:debug [AddFileHash] 'wdfcoinstaller01011.dll': PE type
libwdi:info [ScanDirAndHash] added hash for 'C:\Users\amoor\usb_driver\x86\wdfcoinstaller01011.dll'
libwdi:debug [AddFileHash] 'winusbcoinstaller2.dll': PE type
libwdi:info [ScanDirAndHash] added hash for 'C:\Users\amoor\usb_driver\x86\winusbcoinstaller2.dll'
libwdi:info [CreateCat] Successfully created file 'C:\Users\amoor\usb_driver\DFU-RT_Port_(Interface_2).cat'
libwdi:info [RemoveCertFromStore] Deleted existing certificate 'CN=USB\VID_2341&PID_0069&MI_02 (libwdi autogenerated)' from 'Root' store
libwdi:info [RemoveCertFromStore] Deleted existing certificate 'CN=USB\VID_2341&PID_0069&MI_02 (libwdi autogenerated)' from 'TrustedPublisher' store
libwdi:debug [CreateSelfSignedCert] Set Enhanced Key Usage, URL and CPS
libwdi:debug [CreateSelfSignedCert] Created new key container
libwdi:debug [CreateSelfSignedCert] Generated new keypair...
libwdi:info [CreateSelfSignedCert] Created new self-signed certificate 'CN=USB\VID_2341&PID_0069&MI_02 (libwdi autogenerated)'
libwdi:debug [SelfSignFile] Successfully created certificate 'CN=USB\VID_2341&PID_0069&MI_02 (libwdi autogenerated)'
libwdi:info [SelfSignFile] Added certificate 'CN=USB\VID_2341&PID_0069&MI_02 (libwdi autogenerated)' to 'Root' and 'TrustedPublisher' stores
libwdi:info [SelfSignFile] Successfully signed file 'C:\Users\amoor\usb_driver\DFU-RT_Port_(Interface_2).cat'
libwdi:info [SelfSignFile] Successfully deleted private key
libwdi:debug [wdi_install_driver] Using progress bar mode
libwdi:debug [installer process] got parameter DFU-RT_Port_(Interface_2).inf
libwdi:debug [process_message] Got request for device_id
libwdi:debug [installer process] got device_id: 'USB\VID_2341&PID_0069&MI_02\5&17EB51C6&0&0002'
libwdi:debug [process_message] Got request for hardware_id
libwdi:debug [installer process] got hardware_id: 'USB\VID_2341&PID_0069&REV_0100&MI_02'
libwdi:debug [installer process] got user_sid: 'S-1-5-21-2089560545-203185343-3362014413-1001'
libwdi:debug [installer process] using syslog 'C:\WINDOWS\inf\setupapi.dev.log'
libwdi:debug [installer process] syslog reader thread started
libwdi:debug [installer process] successfully disabled the system restore point creation setting
libwdi:debug [process_message] Switching timeout to infinite
libwdi:debug [installer process] Installing driver for USB\VID_2341&PID_0069&REV_0100&MI_02 - please wait...
libwdi:debug [syslog] {Unconfigure Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.689
libwdi:debug [syslog] inf: Config Options = IsolationCompat
libwdi:debug [syslog] inf: Class GUID = {4d36e972-e325-11ce-bfc1-08002be10318}
libwdi:debug [syslog] inf: Class Options = Configurable
libwdi:debug [syslog] sto: No active drivers -- nothing to unconfigure.
libwdi:debug [syslog] sto: {Unconfigure Driver Package: exit(0x00000000)} 18:43:55.704
libwdi:debug [syslog] idb: {Unpublish Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.720
libwdi:debug [syslog] idb: Clearing active driver package 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4'.
libwdi:debug [syslog] cpy: Unpublished 'oem169.inf'.
libwdi:debug [syslog] idb: Deindexed 136 device IDs for 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4'.
libwdi:debug [syslog] sto: Flushed driver database node 'DRIVERS'. Time = 0 ms
libwdi:debug [syslog] sto: Flushed driver database node 'SYSTEM'. Time = 0 ms
libwdi:debug [syslog] idb: {Unpublish Driver Package: exit(0x00000000)} 18:43:55.770
libwdi:debug [syslog] idb: {Unregister Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.779
libwdi:debug [syslog] idb: Unregistered driver package 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4' from 'oem169.inf'.
libwdi:debug [syslog] idb: Deleted driver package object 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4' from DRIVERS database node.
libwdi:debug [syslog] idb: Deleted driver INF file object 'oem169.inf' from DRIVERS database node.
libwdi:debug [syslog] idb: {Unregister Driver Package: exit(0x00000000)} 18:43:55.784
libwdi:debug [syslog] cpy: {Delete Directory: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4} 18:43:55.784
libwdi:debug [syslog] cpy: {Delete Directory: exit(0x00000000)} 18:43:55.786
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE END} 18:43:55.787
libwdi:debug [syslog] sig: Uninstalled catalog 'oem169.cat'.
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE END: exit(0x00000000)} 18:43:55.791
libwdi:debug [syslog] sto: {Core Driver Package Delete: exit(0x00000000)} 18:43:55.795
libwdi:debug [syslog] sto: {Unstage Driver Package: exit(0x00000000)} 18:43:55.796
libwdi:debug [syslog] dvs: {Driver Setup Delete Driver Package - exit (0x00000000)} 18:43:55.797
libwdi:debug [syslog] dvs: {DrvSetupUninstallDriver - exit(00000000)}
libwdi:debug [syslog] <<< Section end 2024/08/29 18:43:55.801
libwdi:debug [syslog] <<< [Exit status: SUCCESS]
libwdi:debug [syslog] >>> [Verify Driver Store Integrity]
libwdi:debug [syslog] >>> Section start 2024/08/29 18:43:55.804
libwdi:debug [syslog] cmd: "C:\WINDOWS\system32\cleanmgr.exe" /autocleanstoragesense /d C:
libwdi:debug [syslog] sto: Flags = 0x00000102
libwdi:debug [syslog] sto: Verified 186 driver packages.
libwdi:debug [syslog] <<< Section end 2024/08/29 18:43:55.988
libwdi:debug [syslog] <<< [Exit status: SUCCESS]
libwdi:debug [syslog] >>> [Device Install (UpdateDriverForPlugAndPlayDevices) - USB\VID_2341&PID_0069&REV_0100&MI_02]
libwdi:debug [syslog] >>> Section start 2024/08/29 19:52:47.218
libwdi:debug [syslog] cmd: "C:\Users\amoor\usb_driver\installer_arm64.exe" "DFU-RT_Port_(Interface_2).inf"
libwdi:debug [syslog] Unpublished 'oem147.inf'.
libwdi:debug [syslog] idb: Deindexed 22 device IDs for 'rtu55arm64_0001_ext.inf_arm64_be119edb0205f8ae'.
libwdi:debug [syslog] sto: Flushed driver database node 'SYSTEM'. Time = 0 ms
libwdi:debug [syslog] idb: {Unpublish Driver Package: exit(0x00000000)} 18:43:55.555
libwdi:debug [syslog] idb: {Unregister Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu55arm64_0001_ext.inf_arm64_be119edb0205f8ae\rtu55arm64_0001_ext.inf} 18:43:55.565
libwdi:debug [syslog] idb: Unregistered driver package 'rtu55arm64_0001_ext.inf_arm64_be119edb0205f8ae' from 'oem147.inf'.
libwdi:debug [syslog] idb: Deleted driver package object 'rtu55arm64_0001_ext.inf_arm64_be119edb0205f8ae' from SYSTEM database node.
libwdi:debug [syslog] idb: Deleted driver INF file object 'oem147.inf' from SYSTEM database node.
libwdi:debug [syslog] idb: {Unregister Driver Package: exit(0x00000000)} 18:43:55.565
libwdi:debug [syslog] cpy: {Delete Directory: C:\WINDOWS\System32\DriverStore\FileRepository\rtu55arm64_0001_ext.inf_arm64_be119edb0205f8ae} 18:43:55.565
libwdi:debug [syslog] cpy: {Delete Directory: exit(0x00000000)} 18:43:55.570
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE END} 18:43:55.571
libwdi:debug [syslog] sig: Uninstalled catalog 'oem147.cat'.
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE END: exit(0x00000000)} 18:43:55.573
libwdi:debug [syslog] sto: {Core Driver Package Delete: exit(0x00000000)} 18:43:55.576
libwdi:debug [syslog] sto: {Unstage Driver Package: exit(0x00000000)} 18:43:55.576
libwdi:debug [syslog] dvs: {Driver Setup Delete Driver Package - exit (0x00000000)} 18:43:55.579
libwdi:debug [syslog] dvs: {DrvSetupUninstallDriver - exit(00000000)}
libwdi:debug [syslog] <<< Section end 2024/08/29 18:43:55.581
libwdi:debug [syslog] <<< [Exit status: SUCCESS]
libwdi:debug [syslog] >>> [SetupUninstallOEMInf - oem169.inf]
libwdi:debug [syslog] >>> Section start 2024/08/29 18:43:55.581
libwdi:debug [syslog] cmd: "C:\WINDOWS\system32\cleanmgr.exe" /autocleanstoragesense /d C:
libwdi:debug [syslog] inf: Flags: 0x00000000
libwdi:debug [syslog] dvs: {DrvSetupUninstallDriver - C:\WINDOWS\INF\oem169.inf}
libwdi:debug [syslog] dvs: Flags: 0x00000001
libwdi:debug [syslog] dvs: {Driver Setup Delete Driver Package: oem169.inf} 18:43:55.638
libwdi:debug [syslog] ump: Delete flags: 0x00000002
libwdi:debug [syslog] pol: {Driver package policy check} 18:43:55.658
libwdi:debug [syslog] pol: {Driver package policy check - exit(0x00000000)} 18:43:55.660
libwdi:debug [syslog] sto: {Unstage Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.660
libwdi:debug [syslog] inf: Provider = Realtek
libwdi:debug [syslog] inf: Class GUID = {4d36e972-e325-11ce-bfc1-08002be10318}
libwdi:debug [syslog] inf: Driver Version = 07/27/2023,1153.13.19.420
libwdi:debug [syslog] inf: Catalog File = rtu53cx22arm64.cat
libwdi:debug [syslog] inf: Version Flags = 0x00000003
libwdi:debug [syslog] sto: {Core Driver Package Delete: rtu53cx22arm64d.inf_arm64_8f16925bab3853c4} 18:43:55.679
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE BEGIN} 18:43:55.679
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE BEGIN: exit(0x00000000)} 18:43:55.689
libwdi:debug [syslog] sto: {Unconfigure Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.689
libwdi:debug [syslog] inf: Config Options = IsolationCompat
libwdi:debug [syslog] inf: Class GUID = {4d36e972-e325-11ce-bfc1-08002be10318}
libwdi:debug [syslog] inf: Class Options = Configurable
libwdi:debug [syslog] sto: No active drivers -- nothing to unconfigure.
libwdi:debug [syslog] sto: {Unconfigure Driver Package: exit(0x00000000)} 18:43:55.704
libwdi:debug [syslog] idb: {Unpublish Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.720
libwdi:debug [syslog] idb: Clearing active driver package 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4'.
libwdi:debug [syslog] cpy: Unpublished 'oem169.inf'.
libwdi:debug [syslog] idb: Deindexed 136 device IDs for 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4'.
libwdi:debug [syslog] sto: Flushed driver database node 'DRIVERS'. Time = 0 ms
libwdi:debug [syslog] sto: Flushed driver database node 'SYSTEM'. Time = 0 ms
libwdi:debug [syslog] idb: {Unpublish Driver Package: exit(0x00000000)} 18:43:55.770
libwdi:debug [syslog] idb: {Unregister Driver Package: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4\rtu53cx22arm64d.inf} 18:43:55.779
libwdi:debug [syslog] idb: Unregistered driver package 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4' from 'oem169.inf'.
libwdi:debug [syslog] idb: Deleted driver package object 'rtu53cx22arm64d.inf_arm64_8f16925bab3853c4' from DRIVERS database node.
libwdi:debug [syslog] idb: Deleted driver INF file object 'oem169.inf' from DRIVERS database node.
libwdi:debug [syslog] idb: {Unregister Driver Package: exit(0x00000000)} 18:43:55.784
libwdi:debug [syslog] cpy: {Delete Directory: C:\WINDOWS\System32\DriverStore\FileRepository\rtu53cx22arm64d.inf_arm64_8f16925bab3853c4} 18:43:55.784
libwdi:debug [syslog] cpy: {Delete Directory: exit(0x00000000)} 18:43:55.786
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE END} 18:43:55.787
libwdi:debug [syslog] sig: Uninstalled catalog 'oem169.cat'.
libwdi:debug [syslog] sto: {DRIVERSTORE DELETE END: exit(0x00000000)} 18:43:55.791
libwdi:debug [syslog] sto: {Core Driver Package Delete: exit(0x00000000)} 18:43:55.795
libwdi:debug [syslog] sto: {Unstage Driver Package: exit(0x00000000)} 18:43:55.796
libwdi:debug [syslog] dvs: {Driver Setup Delete Driver Package - exit (0x00000000)} 18:43:55.797
libwdi:debug [syslog] dvs: {DrvSetupUninstallDriver - exit(00000000)}
libwdi:debug [syslog] <<< Section end 2024/08/29 18:43:55.801
libwdi:debug [syslog] <<< [Exit status: SUCCESS]
libwdi:debug [syslog] >>> [Verify Driver Store Integrity]
libwdi:debug [syslog] >>> Section start 2024/08/29 18:43:55.804
libwdi:debug [syslog] cmd: "C:\WINDOWS\system32\cleanmgr.exe" /autocleanstoragesense /d C:
libwdi:debug [syslog] sto: Flags = 0x00000102
libwdi:debug [syslog] sto: Verified 186 driver packages.
libwdi:debug [syslog] <<< Section end 2024/08/29 18:43:55.988
libwdi:debug [syslog] <<< [Exit status: SUCCESS]
libwdi:debug [syslog] >>> [Device Install (UpdateDriverForPlugAndPlayDevices) - USB\VID_2341&PID_0069&REV_0100&MI_02]
libwdi:debug [syslog] >>> Section start 2024/08/29 19:52:47.218
libwdi:debug [syslog] cmd: "C:\Users\amoor\usb_driver\installer_arm64.exe" "DFU-RT_Port_(Interface_2).inf"
libwdi:debug [process_message] Switching timeout back to finite
libwdi:debug [installer process] This version of Windows is refusing to trust the installed certificate.
libwdi:debug [process_message] Installer process completed
Driver Installation: FAILED (Operation not supported or not implemented)
1 device found.
libwdi:debug [wdi_create_list] Hardware ID: USB\VID_2341&PID_0069&REV_0100&MI_02
libwdi:debug [wdi_create_list] Compatible ID: USB\COMPAT_VID_2341&Class_fe&SubClass_01&Prot_01
libwdi:debug [wdi_create_list] Driverless USB device (5): USB\VID_2341&PID_0069&MI_02\5&17EB51C6&0&0002
libwdi:debug [wdi_create_list] Device description: 'DFU-RT Port (Interface 2)'
Thanks for the clarification, and for the link to the valuable information in that related issue.
Unfortunately I'm completely out of my depth here due to lack of knowledge regarding the low level workings of driver certificates and Zadig, and due to lack of a Windows ARM machine to run any experiments on. So I don't think I can be of further assistance to you. Hopefully one of the other forum helpers who are more knowledgeable on the subject matter can help.
If you haven't already, I would recommend spending some time investigating this. If you can find a way to disable driver signing enforcement then I think you will be home free, and although you should be very careful when it comes to drivers, I do think you can trust the driver provided by Zadig; most especially WinUSB since this actually Microsoft's own driver.
I recommend focusing your efforts on WinUSB.
I don't think USB Serial will work since this is the DFU-RT device rather than the CDC device.
Although it probably is appropriate for the device, I'm not sure whether the libusb-win32 driver is available for ARM hosts. The situation for libusb-win32 might be similar to that described for libusbK:
https://github.com/pbatard/libwdi/issues/155#issuecomment-1446020096
there will be no libusbK.sys for ARM/ARM64. Rather the focus is to support WinUSB.