No description
Find a file
sekigon-gonnoc 442af43256
Some checks failed
Build / build (1.5.1) (push) Has been cancelled
Build / build (2.0.0) (push) Has been cancelled
Build / build (2.1.0) (push) Has been cancelled
Build Arduino / build (rpipico) (push) Has been cancelled
Merge pull request #157 from adafruit/rp2350b
Enable use of pins >32 on RP2350B
2025-02-04 20:22:25 +09:00
.github run CI on 2.1.0 2024-12-20 11:54:22 -06:00
.vscode Fix vscode setting 2022-12-30 18:41:10 +09:00
examples Deprecate host stack 2024-09-23 11:29:10 +09:00
src sdk 1.5 compat 2025-01-26 11:07:55 -06:00
.gitignore First prototype 2021-12-18 23:32:54 +09:00
CMakeLists.txt Created cmake file for this as a proper library. 2022-05-21 15:47:31 -06:00
library.properties Bump to 0.6.1 2024-08-26 18:11:19 +09:00
LICENSE Initial commit 2021-12-18 10:49:37 +09:00
README.md Deprecate host stack 2024-09-23 11:29:10 +09:00

Pico-PIO-USB

USB host/device implementation using PIO of raspberry pi pico (RP2040).

You can add additional USB port to RP2040.

Demo

https://user-images.githubusercontent.com/43873124/146642806-bdf34af6-4342-4a95-bfca-229cdc4bdca2.mp4

Project status

Planned Features Status
FS Host
LS Host
Hub support
Multi port
FS Device

Examples

  • host_hid_to_device_cdc.c which print mouse/keyboard report from host port to device port's cdc. TinyUSB is used to manage both device (native usb) and host (pio usb) stack.
  • usb_device.c is a HID USB FS device sample which moves mouse cursor every 0.5s. External 1.5kohm pull-up register is necessary to D+ pin (Default is gp0).
cd examples
mkdir build
cd build
cmake ..
make
# Copy UF2 file in capture_hid_report/ or usbdevice/ to RPiPico

Another sample program for split keyboard with QMK

https://github.com/sekigon-gonnoc/qmk_firmware/tree/rp2040/keyboards/pico_pico_usb

Resource Usage

  • 1 PIO, 3 state machines, 32 instructions
  • Two GPIO for D+/D- (Series 22ohm resitors are better)
  • 15KB ROM and RAM
  • (For Host) One 1ms repeating timer
  • (For Device) One PIO IRQ for receiver