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.