

While the simulator can be used to debug programs, step through instructions, and inspect waveforms, the ultimate value of bringing the PIO to other systems is that now we can re-use the code. It’s an incredible feat of reverse engineering.

The project is still incomplete but slowly making progress. A few example programs are included in the repo, such as outputting a pleasant guitar note over I2S and driving a chain of WS2812s. There’s a simulator to test different programs, and the project targets the Blackice MX and the Ulx3s.

For assembling PIO code, uses Adafruit’s pioasm assembler they use for their MicroPython framework. This particular implementation is based only on the spec that Raspberry Pi provides. Not content with it just being a part of RP2040-based projects, has been porting the PIO to Verilog so anyone can enjoy it. However, one of the most exciting bits of hardware onboard is the Programmable I/O (PIO). Connect a jumper wire from the other button pin to RUN, pin 30 on the Pico.We’ve seen some pretty incredible hacks using the Raspberry Pi 2040.Connect a jumper from one button pin to a GND pin on the Pico, we used pin 38.You can refer to this project for a step by step on how to do this. This project will show you how to do just that!Īs we’ll be building this on a breadboard, the first thing to do is to add some header pins to your Pico. Having a reset button on your Raspberry Pi Pico resolves this problem. Sometimes it is not convenient to keep unplugging the micro USB cable every time you want to upload a UF2 onto the Pico. You can then just drag and drop a UF2 file onto the board. When you press and hold the BOOTSEL button and connect your Pico to your computer, it mounts as a mass storage volume.
