
Security News
n8n Tops 2025 JavaScript Rising Stars as Workflow Platforms Gain Momentum
n8n led JavaScript Rising Stars 2025 by a wide margin, with workflow platforms seeing the largest growth across categories.
Provides clean API to interact with RP2040/RP2350 on-board Programable Input/Output (PIO) block. See chapter 3 of the RP2040 datasheet for more information.
This module contains the piolib package which contains importable drivers for use with a PIO such as:
The PIO is a versatile hardware interface. It can support a variety of IO standards, including:
PIO is programmable in the same sense as a processor and has a total of nine instructions: JMP, WAIT, IN, OUT, PUSH, PULL, MOV, IRQ, and SET. These are programmed in PIO assembly format describing a PIO program, where each command corresponds to one instruction in the output binary. Below is an example program in PIO assembly:
.program squarewave
again:
set pins, 1 [1] ; Drive pin high and then delay for one cycle
set pins, 0 ; Drive pin low
jmp again ; Set PC to label `again`
To develop new code using PIO with this package, you must build and install the pioasm tool. It can be be built from the pico-sdk:
git clone git@github.com:raspberrypi/pico-sdk.git
cd pico-sdk/tools/pioasm
cmake .
make
sudo make install
To develop a PIO program you first start out with the .pio file. Let's look at the Pulsar example first.
pulsar.pio: specifies a binary PIO program that can be loaded to the PIO program memory.all_generate.go: holds the code generation command on the line with //go:generate pioasm -o go pulsar.pio pulsar_pio.go which by itself generates the raw binary code that can be loaded onto the PIO along with helper code to load it correctly inside pulsar_pio.go.pulsar_pio.go: contains the generated code by the pioasm tool.pulsar.go: contains the User facing code that allows using the PIO as intended by the author.go generate ./...
Keep in mind PIO programs are very finnicky, especially differentiating between SetOutPins and SetSetPins. The difference is subtle but it can be the difference between spending days debugging a silly conceptual mistake. Have fun!
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
n8n led JavaScript Rising Stars 2025 by a wide margin, with workflow platforms seeing the largest growth across categories.

Security News
The U.S. government is rolling back software supply chain mandates, shifting from mandatory SBOMs and attestations to a risk-based approach.

Security News
crates.io adds a Security tab backed by RustSec advisories and narrows trusted publishing paths to reduce common CI publishing risks.