On a TENSTAR RP2350-USB with 16 MB flash, the physical BOOT button does not work as FIDO2 user presence with the default tenstar-usb board configuration in RS-Key v0.4.11.
When registering a passkey on Windows 11, the browser asks to press the button on the authenticator. Pressing the physical BOOT button has no effect and the registration remains waiting for user presence.
The v0.4.11 tenstar-usb board configuration contains:
[presence]
source = "gpio"
pin = 15
active_high = false
The issue is resolved by rebuilding the firmware with:
env BOARD=tenstar-usb PRESENCE_PIN=bootsel VIDPID=Yubikey5 cargo build --release -p firmware
After flashing this build, the physical BOOT button works correctly as FIDO2 user presence and passkey registration on Windows 11 completes successfully.
Could you confirm whether PRESENCE_PIN=bootsel is the intended configuration for the TENSTAR RP2350-USB, and whether the tenstar-usb board preset should be updated accordingly?
Steps to reproduce
Build RS-Key v0.4.11 with the default TENSTAR configuration:
env BOARD=tenstar-usb VIDPID=Yubikey5 cargo build --release -p firmware
Flash the resulting firmware to a TENSTAR RP2350-USB 16 MB.
Connect the TENSTAR key to a Windows 11 PC.
Start registering a new FIDO2/passkey credential.
Enter the authenticator PIN.
When Windows asks to press the button on the authenticator, press the physical BOOT button.
The registration remains waiting for user presence.
Rebuild the firmware with PRESENCE_PIN=bootsel:
env BOARD=tenstar-usb PRESENCE_PIN=bootsel VIDPID=Yubikey5 cargo build --release -p firmware
Flash the new firmware and repeat the passkey registration.
Pressing the physical BOOT button now completes the user-presence step successfully.
Output / logs
Default build:
PK_USB_VID=4176
PK_USB_PID=1031
PK_PRESENCE_IS_GPIO=1
PK_PRESENCE_PIN=15
PK_PRESENCE_ACTIVE_HIGH=0
PK_FW_VERSION_MAJOR=5
PK_FW_VERSION_MINOR=8
PK_FW_VERSION_PATCH=0
Board configuration:
[presence]
source = "gpio"
pin = 15
active_high = false
Working build with PRESENCE_PIN=bootsel:
PK_USB_VID=4176
PK_USB_PID=1031
PK_PRESENCE_IS_GPIO=0
PK_PRESENCE_PIN=0
PK_PRESENCE_ACTIVE_HIGH=0
PK_FW_VERSION_MAJOR=5
PK_FW_VERSION_MINOR=8
PK_FW_VERSION_PATCH=0
After flashing the working build:
Device type: YubiKey 5A
Firmware version: 5.8.0
Enabled USB interfaces: OTP, FIDO, CCID
FIDO2 Enabled
The physical BOOT button then works correctly during Windows 11 passkey registration.
Anything else
The issue appears to be specific to the default tenstar-usb presence configuration. The same TENSTAR hardware works correctly when the firmware is built with PRESENCE_PIN=bootsel.
I have reproduced the issue on RS-Key v0.4.11.
On a TENSTAR RP2350-USB with 16 MB flash, the physical BOOT button does not work as FIDO2 user presence with the default tenstar-usb board configuration in RS-Key v0.4.11.
When registering a passkey on Windows 11, the browser asks to press the button on the authenticator. Pressing the physical BOOT button has no effect and the registration remains waiting for user presence.
The v0.4.11 tenstar-usb board configuration contains:
[presence]
source = "gpio"
pin = 15
active_high = false
The issue is resolved by rebuilding the firmware with:
env BOARD=tenstar-usb PRESENCE_PIN=bootsel VIDPID=Yubikey5 cargo build --release -p firmware
After flashing this build, the physical BOOT button works correctly as FIDO2 user presence and passkey registration on Windows 11 completes successfully.
Could you confirm whether PRESENCE_PIN=bootsel is the intended configuration for the TENSTAR RP2350-USB, and whether the tenstar-usb board preset should be updated accordingly?
Steps to reproduce
Build RS-Key v0.4.11 with the default TENSTAR configuration:
env BOARD=tenstar-usb VIDPID=Yubikey5 cargo build --release -p firmware
Flash the resulting firmware to a TENSTAR RP2350-USB 16 MB.
Connect the TENSTAR key to a Windows 11 PC.
Start registering a new FIDO2/passkey credential.
Enter the authenticator PIN.
When Windows asks to press the button on the authenticator, press the physical BOOT button.
The registration remains waiting for user presence.
Rebuild the firmware with PRESENCE_PIN=bootsel:
env BOARD=tenstar-usb PRESENCE_PIN=bootsel VIDPID=Yubikey5 cargo build --release -p firmware
Flash the new firmware and repeat the passkey registration.
Pressing the physical BOOT button now completes the user-presence step successfully.
Output / logs
Default build:
PK_USB_VID=4176
PK_USB_PID=1031
PK_PRESENCE_IS_GPIO=1
PK_PRESENCE_PIN=15
PK_PRESENCE_ACTIVE_HIGH=0
PK_FW_VERSION_MAJOR=5
PK_FW_VERSION_MINOR=8
PK_FW_VERSION_PATCH=0
Board configuration:
[presence]
source = "gpio"
pin = 15
active_high = false
Working build with PRESENCE_PIN=bootsel:
PK_USB_VID=4176
PK_USB_PID=1031
PK_PRESENCE_IS_GPIO=0
PK_PRESENCE_PIN=0
PK_PRESENCE_ACTIVE_HIGH=0
PK_FW_VERSION_MAJOR=5
PK_FW_VERSION_MINOR=8
PK_FW_VERSION_PATCH=0
After flashing the working build:
Device type: YubiKey 5A
Firmware version: 5.8.0
Enabled USB interfaces: OTP, FIDO, CCID
FIDO2 Enabled
The physical BOOT button then works correctly during Windows 11 passkey registration.
Anything else
The issue appears to be specific to the default tenstar-usb presence configuration. The same TENSTAR hardware works correctly when the firmware is built with PRESENCE_PIN=bootsel.
I have reproduced the issue on RS-Key v0.4.11.