Tap = next page, on release, not on press. Pages wrap 3 → 0.
Hold = shift. While it's held, A/B/C send the shift layer (JS 13–24) instead of the base layer (JS 1–12).
Hold + any gameplay press cancels the page advance. Let go and you stay on the same page. Fire as many shift presses as you like in one hold.
While held, the pixel shows halfway between this page's colour and the next one's: a preview of where a plain release would land.
The page button sends nothing over USB. The page lives only on the device.
state
Unplugging resets to page 0 (white). Nothing is saved. That replug is the only reset; there's no reset combo.
This page can't read the device's page. It guesses from the last button fired, so it's stale until you press A, B or C.
A button held across a page change releases the JS button it pressed, not the new page's.
The on-board led flashes once per page press and per gameplay press.
if the led won't stop blinking
The firmware only ever flashes the on-board led once per event. It never loops.
Slow pulse or breathing right after plugging in or resetting: that's the bootloader waiting for an upload. It runs about 8 s. If it never stops, no sketch is running: reflash with upload.sh.
Rapid steady blinks with no button touched: a button is bouncing or shorted to GND. Watch the log above for repeated events from one button.
The ESP8266 WiFi/OSC footjob (footjob/footjob.ino, not this pedal) blinks fast forever while it can't join its hard-coded network, and goes dark once it connects.