GPIO
Found under IO on the device's panel list.
GPIO
Live view of the general purpose IO pins, with per-pin direction control and a built-in PWM generator.
The screen
A list fills the screen, one row per pin: its name, its pin number, and a scrolling trace of its level behind it. A row is yellow while its pin reads high and cyan while it reads low. An icon after the pin number marks a pin that is currently set as an output. Up and Down move the highlighted row, shown with a gray band behind its name; the highlighted pin is the one Gray, Blue and Centre act on.
Controls
| Button | Action |
|---|---|
| Centre | Flip the highlighted pin's output value |
| Gray | Start a PWM signal on the highlighted pin |
| Yellow | Labeled Wave, but not wired to anything on this screen - pressing it does nothing |
| Green | Shows the IO bank voltage; opens the IO voltage-source picker |
| Blue | Toggle the highlighted pin between input and output |
| Red | Labeled Trig, but not wired to a trigger on this screen - pressing it returns to the main menu |
| AI | Open the Logic Analyzer view |
| Cancel | This help page |
Pin direction
Blue swaps the highlighted pin between input and output. This is the same setting as the IO Directions menu found elsewhere in the device - changing it here changes it there too, and it is remembered after a restart. Centre's level flip only has a visible effect once a pin is set as an output; on an input pin there is nothing for it to drive.
PWM
Gray opens a frequency entry. It does not enforce a range - you can type any number - but the generator itself only works from about 7.5 Hz to 62.5 MHz; ask for something outside that and nothing happens, silently. Within range it starts a square wave on the highlighted pin at that frequency with a fixed 50 percent duty cycle. Starting one on a different pin does not stop an earlier one - each pin runs its own generator independently.
There is no dedicated stop control. Toggling the pin back to input with Blue silences a running signal as a side effect, since that hands the pin back to plain IO.
IO voltage
Green's own label shows the current IO bank voltage, for example "vio 3.30", and blinks a low-voltage warning below 0.9 V. Pressing Green opens a list titled Select IO Voltage Source, offering 3.3V, 5.0V, Prog Vout, Trig_IN/VREF and Disconnect. Choosing an item sends the selection to the DISPLAY CPU, which switches the corresponding VREF connection through its IO expander; Disconnect leaves the VREF rail unpowered.
Choosing Prog Vout first asks for the output voltage (1.00 to 5.50 V, enforced by the entry dialog), powers up the programmable supply at that voltage, and only then switches VREF over to it - cancelling the entry leaves the previous source connected.
The Logic Analyzer view
AI opens the Logic Analyzer, a separate screen that shares this screen's pins as its capture channels for a proper triggered, timed capture. This screen's own scrolling trace is a live, unsynchronized view only - use the Logic Analyzer when you need a trigger or a precise sample rate.
Logic Analyzer
Captures a burst of digital pins over time and draws them as waveforms, so you can see fast signal changes a live view would miss.
The screen
A title line across the top names what this view is doing: the mode it is capturing, the sample rate, and its state - for example "SPI analyzer 1M idle", changing to armed once you start a capture and to done once the capture lands. Once a capture is loaded, the title also adds a position, such as "done 2/4", showing which slice of the buffer the trace below is panned to.
Below the title, each row is one channel: its name on the left, its waveform trace beside it. Which pins appear here, and what they are named, depends on which tool you opened this screen from. Once a capture lands, a red vertical line marks the sample where the trigger fired.
On screens with a long channel list - GPIO in particular - Up and Down move a highlighted row, shown with a gray band behind its name, and whichever channel is highlighted when you arm a capture becomes its trigger source. On screens with only a few channels, there is no highlighted row: Up and Down do nothing here, and the trigger source is always the first channel shown.
The title costs some of the screen's height, so the GPIO capture - the one with the longest channel list, 13 rows - now shows 12 at a time and scrolls with Up and Down to reach the last one. The shorter protocol channel lists still show every row at once.
Controls
| Button | Action |
|---|---|
| Yellow | Cycle the trigger edge: rising, falling, or none (one-shot) |
| Green | Cycle the capture rate: 10M, 1M, 100k, or 10k samples per second |
| Blue | Arm the capture, or stop it while armed |
| Red | Force the trigger while armed |
| Left / Right | Pan through a finished capture |
| Gray / Page | Back - returns to the protocol panel this view was opened from |
| Cancel | This help page |
Red forces the trigger and keeps its Trig label to say so. Home leaves the app from here the same as it does everywhere else.
Capturing
Blue arms the capture - its label changes from Arm to Stop while armed - and waits for the trigger condition set by Yellow on its trigger source (see The screen above for how that source is chosen): a rising edge, a falling edge, or none, which starts capturing right away without waiting for either. Red forces the trigger early if you do not want to wait for it. Green sets how fast the capture samples, from 10 million samples a second down to 10 thousand; faster rates see less time but finer detail.
Capture depth
The sample buffer behind a capture is a fixed size, so the number of samples it holds depends on how many channels you are watching, not just the rate - fewer channels leaves room for more samples in the same buffer. A faster rate always covers less time, and how much less depends on that channel count.
After a capture
Once a capture lands, the waveform fills the screen with the trigger point placed roughly three-quarters of the way across, so more of what happened before the trigger is visible than after it. Left and Right step the view through the rest of the buffer around it; before a capture finishes, they do nothing.
Shared by several tools
This screen appears inside several different tools - GPIO, I2C, SPI, UART and MDIO all open it with their own Page button, each showing that tool's own pins or bus signals as the channels here. Gray or Page on this screen returns you to whichever one opened it.
The capture itself runs on the RP2350's own PIO hardware, not the FPGA, so opening this screen never needs the FPGA power zone. SPI, UART, GPIO and MDIO route their own header lines through the FPGA and need that zone regardless of this screen; I2C reaches the header directly and needs no FPGA zone at all.
See also: GPIO — the console/GUI commands for this panel.