GPIO

The ten routable GPIOs (GPIO 1-8 plus the UART Tx and Rx pins) can be set up from the board itself, no terminal needed: direction, pull resistors, PWM, and a counter that drives a group of them as one number. All of it shows on the OLED and the terminal. Nothing here paints the breadboard, so the LEDs keep showing your circuit.

To connect a GPIO to a row, use the GPIO pad by the logo while probing (see Getting Started). This page is about what the pin does once it's connected.

Set up a pin

Two ways in:

Highlight it and click. Land the highlight on a row that has a GPIO on it (scroll there with the wheel, or tap it with the probe). The OLED shows the pin and its level, like GPIO 3 out / HIGH, with an options? tag. While that tag is showing, click the wheel and the pin's options open. The tag goes away after a second, and a click after that just opens the regular menu. Turning the wheel only ever scrolls, so you can scroll right past a GPIO row without opening anything. This one needs an OLED.

From the menu. Click > GPIO > Set Pins lists all ten pins with what they're doing right now: 3 out HIGH, 5 in pull-up, 2 PWM 1.0k, Tx UART. Pick one.

Either way you get the same options. Turn to move between them, click to edit one, hold to leave. The probe buttons work too: Connect is click, Remove is hold.

  • Dir - in or out
  • Pulls - down, up, none, or keep. On an input it takes effect right away. On an output it's remembered for when the pin becomes an input.
  • PWM - on or off. Turning it on gives you Freq and Duty to set with the wheel, and the pin changes live while you turn. Click keeps what you landed on, hold puts the old value back and drops you on the Freq / Duty picker (so it's one more hold to get out of PWM than the others). Not offered on Tx / Rx.
  • BCD - jumps to the counter

If something else is using the pin, the OLED tells you what (GPIO 7 / OLED) and the options don't open. That's the OLED's I2C pins, a pin a MicroPython script has claimed, the probe's power pin, or the UART passthrough.

Try it
  1. Connect GPIO 1 to row 20 as an output (GPIO pad, right side of 1, tap row 20).
  2. Tap row 20 to highlight it. While the OLED says options?, click the wheel.
  3. Turn to PWM, click, turn to on, click. Pick Freq, and turn the wheel while watching the row's LED brightness change. Click to keep it.
  4. Hold to back out of PWM. Hold again to leave the options.

The counter

Pick some pins, and the Jumperless drives them as the bits of one number that you turn up and down with the wheel. It's for things like feeding a 7447 that's driving a 7-segment display, or stepping through the addresses of a memory chip by hand. (The menu calls it BCD, but it's plain binary and the readout is hex.)

GPIO 1 is the lowest bit, then up through GPIO 8, then Tx, then Rx. With 4 pins you count 0-F, with 8 you count 00-FF, and it wraps around at both ends.

Counting

Click > GPIO > BCD Counter > Count. (Or pick BCD from a pin's options.) The OLED shows every pin in the range along the top with its current level underneath, and the count in hex next to it. Turn the wheel: clockwise counts up, and the rows those pins are wired to change right along with it. Click or hold to leave. Whatever's on the pins stays there.

If you haven't set a range yet, it picks one for you: every GPIO you've already wired to the board, or if there aren't any, a run of 4 free pins. If no pin is free it says no free pins and stays put.

Range

GPIO > BCD Counter > Range picks the pins yourself. The first option is Routed, which is just the pins you've wired (1-4, or 1,3,T if they're not next to each other). Click it and that's your range. Turn past it for Start and Width to pick a run of pins by hand. Click sets it, hold cancels.

Counting with the logo pads

You can put counting on the pads by the logo so you don't have to open a menu at all. In your config:

Type it into the terminal, backtick and all (the backtick is the config command):

`[logo_pads] top_guy_idle = bcd_up;
`[logo_pads] bottom_guy_idle = bcd_down;

Then with the probe idle and its switch on Select, tapping the top guy counts up and the bottom guy counts down, one step per tap. The OLED shows the new count each time. (building_pad_top_idle and building_pad_bottom_idle take the same values.)

Try it
  1. Connect GPIO 1, 2, 3, and 4 as outputs to rows 10, 11, 12, and 13.
  2. Click > GPIO > BCD Counter > Count.
  3. Turn the wheel and watch the four rows count in binary. Hold to leave.

Choosing a GPIO on the OLED

When you tap the GPIO pad while probing, the chooser draws on the breadboard as always, and the OLED mirrors it: 1-4 across the top, 5-8 across the bottom, with i and o marks where the input and output tap zones are. When you tap one it confirms what you picked (GPIO 3 / Input). Picking a pin something else owns tells you who has it and cancels instead of taking it.

What's saved

Direction, pulls, PWM, and the counter's pins and value are all saved with the slot, so loading a slot puts the pins back the way they were.