From c5d12bead4287b3c06fd1cc27afca8a28453245a Mon Sep 17 00:00:00 2001 From: daimiaopeng <844362911@qq.com> Date: Fri, 2 Jan 2026 01:05:13 +0800 Subject: [PATCH 1/8] Add support for RP2350-One LED driver. --- CMakeLists.txt | 7 +++++++ README.md | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cc83a2..9927bc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,13 @@ else() endif() set(USB_ITF_HID 1) + +option(WAVESHARE_RP2350_ONE "Enable Waveshare RP2350-One LED support" OFF) +if(WAVESHARE_RP2350_ONE) + add_definitions(-DWAVESHARE_RP2350_ONE=1) + message(STATUS "Waveshare RP2350-One: \t enabled") +endif() + include(pico-keys-sdk/pico_keys_sdk_import.cmake) if(NOT ESP_PLATFORM) diff --git a/README.md b/README.md index 77f34ce..2bfd17d 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ PICO_SDK_PATH=/path/to/pico-sdk cmake .. -DPICO_BOARD=board_type -DUSB_VID=0x123 make ``` Note that `PICO_BOARD`, `USB_VID` and `USB_PID` are optional. If not provided, `pico` board and VID/PID `FEFF:FCFD` will be used. +For Waveshare RP2350-One board, add `-DWAVESHARE_RP2350_ONE=ON` to enable RGB LED support on GPIO 16. Additionally, you can pass the `VIDPID=value` parameter to build the firmware with a known VID/PID. The supported values are: @@ -117,6 +118,18 @@ While processing, the Pico FIDO is busy and cannot receive additional commands u ![Processing](https://user-images.githubusercontent.com/55573252/162009007-df45111e-2473-4a92-97c5-15c3cd19babd.gif) +### Waveshare RP2350-One RGB LED + +The Waveshare RP2350-One uses a WS2812 RGB LED on GPIO 16. Different colors indicate different states: + +| State | Color | Pattern | +| ---------------- | --------- | ------------------------------- | +| Not mounted | 🔴 Red | 500ms on / 500ms off | +| Mounted (active) | 🟢 Green | 500ms on / 500ms off | +| Suspended (idle) | 🔵 Blue | 1000ms on / 2000ms off | +| Processing | 🟢 Green | 50ms on / 50ms off (fast blink) | +| Press to confirm | 🟡 Yellow | 1000ms on / 100ms off | + ## Driver Pico FIDO uses the `HID` driver, which is present in all operating systems. It should be detected by all OS and browser/applications just like normal USB FIDO keys. -- 2.34.1 From 524deea038b8d429732fefce19dbd54b36a5c5d8 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 28 Jan 2026 00:57:38 +0100 Subject: [PATCH 2/8] Upgrade Pico Keys SDK 8.4 Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 668b1ac..8075611 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 668b1ac1dd2fdd0934ae1f92bea8e266e8319f4f +Subproject commit 8075611f1565a12de6326e18afbc212d3d3c8548 -- 2.34.1 From 370be2cd47f2e424d1e0d59b25ca76826ba4316d Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 28 Jan 2026 00:57:51 +0100 Subject: [PATCH 3/8] Upgrade to v7.4 Signed-off-by: Pol Henarejos --- CMakeLists.txt | 2 +- build_pico_fido.sh | 2 +- src/fido/version.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd9fd12..9ef3dba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,7 +115,7 @@ set(SOURCES ${SOURCES} ) endif() -SET_VERSION(ver_major ver_minor "${CMAKE_CURRENT_LIST_DIR}/src/fido/version.h" 2) +SET_VERSION(ver_major ver_minor "${CMAKE_CURRENT_LIST_DIR}/src/fido/version.h" 3) if(ESP_PLATFORM) project(pico_fido) endif() diff --git a/build_pico_fido.sh b/build_pico_fido.sh index 497d70d..d120690 100755 --- a/build_pico_fido.sh +++ b/build_pico_fido.sh @@ -1,7 +1,7 @@ #!/bin/bash VERSION_MAJOR="7" -VERSION_MINOR="2" +VERSION_MINOR="4" SUFFIX="${VERSION_MAJOR}.${VERSION_MINOR}" #if ! [[ -z "${GITHUB_SHA}" ]]; then # SUFFIX="${SUFFIX}.${GITHUB_SHA}" diff --git a/src/fido/version.h b/src/fido/version.h index f8625ce..dbf1962 100644 --- a/src/fido/version.h +++ b/src/fido/version.h @@ -18,7 +18,7 @@ #ifndef __VERSION_H_ #define __VERSION_H_ -#define PICO_FIDO_VERSION 0x0702 +#define PICO_FIDO_VERSION 0x0704 #define PICO_FIDO_VERSION_MAJOR ((PICO_FIDO_VERSION >> 8) & 0xff) #define PICO_FIDO_VERSION_MINOR (PICO_FIDO_VERSION & 0xff) -- 2.34.1 From 22de41bfe0f257372a17d65c6109199d15b0aee7 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Thu, 29 Jan 2026 16:22:25 +0100 Subject: [PATCH 4/8] Upgrade to Pico Keys SDK 8.5 Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- src/fido/kek.c | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 668b1ac..61d4515 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 668b1ac1dd2fdd0934ae1f92bea8e266e8319f4f +Subproject commit 61d4515eccf7add9d39689734eccd2cdf0aab83b diff --git a/src/fido/kek.c b/src/fido/kek.c index a7b380f..5110eef 100644 --- a/src/fido/kek.c +++ b/src/fido/kek.c @@ -36,19 +36,6 @@ extern uint8_t session_pin[32]; uint8_t mkek_mask[MKEK_KEY_SIZE]; bool has_mkek_mask = false; -#define POLY 0xedb88320 - -uint32_t crc32c(const uint8_t *buf, size_t len) { - uint32_t crc = 0xffffffff; - while (len--) { - crc ^= *buf++; - for (int k = 0; k < 8; k++) { - crc = (crc >> 1) ^ (POLY & (0 - (crc & 1))); - } - } - return ~crc; -} - void mkek_masked(uint8_t *mkek, const uint8_t *mask) { if (mask) { for (int i = 0; i < MKEK_KEY_SIZE; i++) { -- 2.34.1 From fbbf1feb49bd37d49537ae980c58033318400654 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Sun, 1 Feb 2026 20:37:17 +0100 Subject: [PATCH 5/8] Fix phy marker write. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 61d4515..6f996c6 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 61d4515eccf7add9d39689734eccd2cdf0aab83b +Subproject commit 6f996c67c20e28df8d5be89948c8e274a479c2c4 -- 2.34.1 From bbbbcadf4ce19de6ccd76506beae8a79765490df Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Sun, 1 Feb 2026 20:37:29 +0100 Subject: [PATCH 6/8] Upgrade to v7.4 Signed-off-by: Pol Henarejos --- CMakeLists.txt | 2 +- build_pico_fido.sh | 2 +- src/fido/version.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bd9fd12..9ef3dba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,7 +115,7 @@ set(SOURCES ${SOURCES} ) endif() -SET_VERSION(ver_major ver_minor "${CMAKE_CURRENT_LIST_DIR}/src/fido/version.h" 2) +SET_VERSION(ver_major ver_minor "${CMAKE_CURRENT_LIST_DIR}/src/fido/version.h" 3) if(ESP_PLATFORM) project(pico_fido) endif() diff --git a/build_pico_fido.sh b/build_pico_fido.sh index 497d70d..d120690 100755 --- a/build_pico_fido.sh +++ b/build_pico_fido.sh @@ -1,7 +1,7 @@ #!/bin/bash VERSION_MAJOR="7" -VERSION_MINOR="2" +VERSION_MINOR="4" SUFFIX="${VERSION_MAJOR}.${VERSION_MINOR}" #if ! [[ -z "${GITHUB_SHA}" ]]; then # SUFFIX="${SUFFIX}.${GITHUB_SHA}" diff --git a/src/fido/version.h b/src/fido/version.h index f8625ce..dbf1962 100644 --- a/src/fido/version.h +++ b/src/fido/version.h @@ -18,7 +18,7 @@ #ifndef __VERSION_H_ #define __VERSION_H_ -#define PICO_FIDO_VERSION 0x0702 +#define PICO_FIDO_VERSION 0x0704 #define PICO_FIDO_VERSION_MAJOR ((PICO_FIDO_VERSION >> 8) & 0xff) #define PICO_FIDO_VERSION_MINOR (PICO_FIDO_VERSION & 0xff) -- 2.34.1 From 8d709cf7456c8d16ccee9a20d8d69f381e7fdc31 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Wed, 4 Feb 2026 23:46:41 +0100 Subject: [PATCH 7/8] Add support for HIGH/LOW ESP32 LED Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 6f996c6..87e9f9e 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 6f996c67c20e28df8d5be89948c8e274a479c2c4 +Subproject commit 87e9f9e58b562ca08b1cac4533a0c48b5f0d1d15 -- 2.34.1 From bb20a75ef4eafce0dfac18f92709804dfb2ba328 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Mon, 16 Feb 2026 16:29:53 +0100 Subject: [PATCH 8/8] Fix secure boot enable. Signed-off-by: Pol Henarejos --- pico-keys-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pico-keys-sdk b/pico-keys-sdk index 87e9f9e..7abedc5 160000 --- a/pico-keys-sdk +++ b/pico-keys-sdk @@ -1 +1 @@ -Subproject commit 87e9f9e58b562ca08b1cac4533a0c48b5f0d1d15 +Subproject commit 7abedc5b0e6bf390913b68f5e5f37a997f54a92b -- 2.34.1