Hello,
I've made a custom board with the RP2350B microcontroller where I've accidentally swapped the USB data lines and I'm trying to fix it in software.
I'm using the USB for stdio.
So far I've tried setting the SWAP_DPDM bit in the USB_MUXING register. Calling stdio_init_all() resets the bit and setting the bit after calling stdio_init_all() still doesn't make it work and Windows throws a USB device error.
Is there anything else I can try in software besides setting the swap in OTP? I don't wanna touch the OTP as I plan on potentially reusing the chip on future hardware. And I wanna avoid attempting a wire bodge due to the narrow traces and spacing. And I don't have time to order a new board.
I've made a custom board with the RP2350B microcontroller where I've accidentally swapped the USB data lines and I'm trying to fix it in software.
I'm using the USB for stdio.
So far I've tried setting the SWAP_DPDM bit in the USB_MUXING register. Calling stdio_init_all() resets the bit and setting the bit after calling stdio_init_all() still doesn't make it work and Windows throws a USB device error.
Is there anything else I can try in software besides setting the swap in OTP? I don't wanna touch the OTP as I plan on potentially reusing the chip on future hardware. And I wanna avoid attempting a wire bodge due to the narrow traces and spacing. And I don't have time to order a new board.
Statistics: Posted by AtonDuke — Fri Feb 20, 2026 5:27 pm — Replies 1 — Views 60