Skip to content

TENSTAR RP2350-USB: BOOT button does not work as FIDO2 user presence with default v0.4.11 preset #125

Description

@onecent1

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions