From 650281d96e7819bb8fd8f34b23a7a07eae57c0d6 Mon Sep 17 00:00:00 2001 From: Mikey Sklar Date: Wed, 22 Jul 2026 12:24:44 -0700 Subject: [PATCH] ports/raspberrypi: pull Pico-PIO-USB deterministic SYNC realignment The PIO USB receiver can lock onto an incoming packet a few bits early, so every byte arrives shifted and the aligned CRC check fails on wire data that is perfectly valid. The device retransmits forever and the endpoint is stuck until reboot. On the Fruit Jam this presents as hub hot plug delivery dying permanently, gated by unrelated build flags (vectorio compiled in but never imported), because the firmware memory layout steers the timing that decides the framing. Pulls sekigon-gonnoc/Pico-PIO-USB#211, which keys the realignment on the SYNC byte (0x80) to derive the exact shift and recover the packet. Fixes the 3-year-old sekigon-gonnoc/Pico-PIO-USB#97. DRAFT: submodule temporarily points at the mikeysklar fork so CI can fetch the commit. Repoint to the upstream sekigon-gonnoc SHA and restore the .gitmodules URL once #211 merges. --- .gitmodules | 2 +- ports/raspberrypi/lib/Pico-PIO-USB | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index a7b67b8d860..3c8f6af9cde 100644 --- a/.gitmodules +++ b/.gitmodules @@ -346,7 +346,7 @@ url = https://github.com/adafruit/Adafruit_CircuitPython_Wave.git [submodule "ports/raspberrypi/lib/Pico-PIO-USB"] path = ports/raspberrypi/lib/Pico-PIO-USB - url = https://github.com/sekigon-gonnoc/Pico-PIO-USB.git + url = https://github.com/mikeysklar/Pico-PIO-USB.git branch = main [submodule "lib/micropython-lib"] path = lib/micropython-lib diff --git a/ports/raspberrypi/lib/Pico-PIO-USB b/ports/raspberrypi/lib/Pico-PIO-USB index a5a2f5ae919..1a25a395458 160000 --- a/ports/raspberrypi/lib/Pico-PIO-USB +++ b/ports/raspberrypi/lib/Pico-PIO-USB @@ -1 +1 @@ -Subproject commit a5a2f5ae91988449ba576ec9d237e806d5cd4416 +Subproject commit 1a25a395458f2cf8c1760f94b72f6fbcb421343b