Add support for RP2350-One LED driver. #239

Open
daimiaopeng wants to merge 6 commits from daimiaopeng/main into main
5 changed files with 24 additions and 4 deletions

View File

@@ -75,6 +75,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)
@@ -115,7 +122,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()

View File

@@ -75,6 +75,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:
@@ -118,6 +119,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.

View File

@@ -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}"

View File

@@ -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)