A couple of years ago I made a cursed USB 2.0 device, which got my first hackaday mention: https://hackaday.com/2021/03/22/cursed-usb-c-when-plug-orientation-matters/ This version was based on a pair of SAMD11s, which limited the device quite a bit.
Last year a friend asked for some help designing a dev board for an electronic badge which required a main MCU and a secondary MCU to be used as some sort of crypto chip. This gave me an excuse to use this technique again, but now with two RP2040s.
So, how does this work? This is the pinout of a USB-C socket:
![]()
What you can see is that the socket has two D+ and D- pairs, but the plug has only one pair. In a USB 2.0 device you're supposed to connect the D+, and D- pins, in your PCB to create a single pair. But there is nothing really stopping you from not doing that.
So what I did was connect one D+ and D- to one RP2040, and the others to the other RP2040. A bit of code in circuitpython later, and I have a device which blinks differently depending on the plug orientation. It also exposes a completely different mass storage device.
My friend took the design and ran with it, together with help from another friend (https://www.ankhaneko.art/) for the art. The inspiration was some kind of post apocalyptic device. It was made as a capture the flag challenge for an infosec event.
The usb connection is very normal for this version, it only connects to one of the RP2040s. The other RP2040 could only be reached via uart and was covered with black epoxy.
Fun fact: the design was made later than the hacker hotel badge, but released earlier.