Compare commits
6 Commits
main
...
daimiaopen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ebfe9b1ed4 | ||
|
|
370be2cd47 | ||
|
|
524deea038 | ||
|
|
954fe3ac8b | ||
|
|
46ed09a75e | ||
|
|
c5d12bead4 |
@@ -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)
|
||||
|
||||
13
README.md
13
README.md
@@ -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
|
||||
|
||||

|
||||
|
||||
### 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.
|
||||
|
||||
Submodule pico-keys-sdk updated: 7abedc5b0e...8075611f15
@@ -36,6 +36,19 @@ 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++) {
|
||||
|
||||
Reference in New Issue
Block a user