Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>GPIO Pin HoverNew to Visual Studio Code? Get it now.
GPIO Pin Hover

GPIO Pin Hover

Portalsbase

|
4 installs
| (0) | Free
Hover a Raspberry Pi GPIO pin in Python to see it on the header diagram, browse pinouts for every Pi model, and catch pin conflicts.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

GPIO Pin Hover

Hover over a Raspberry Pi GPIO pin in Python code to see exactly where it is on the header, browse the pinout of every Pi model from the sidebar, and catch pin mistakes before you wire anything up.

Screenshot placeholder

Features

Hover diagrams

Hover a pin used with RPi.GPIO, gpiozero, lgpio or pigpio to see the header for your board with that pin highlighted, plus its physical number, BCM number, alternate functions (I2C, SPI0/SPI1, UART, PWM, PCM, GPCLK, 1-Wire, HAT EEPROM) and notes such as the fixed I2C pull-ups. Links at the bottom of the hover open the full pinout, the board panel, or the board picker.

Pins passed through named constants are resolved too: hover LED_PIN in GPIO.setup(LED_PIN, GPIO.OUT) or the 17 in LED_PIN = 17.

Raspberry Pi Models sidebar

Click the GPIO Pin Hover icon in the Activity Bar:

  • Pick any board, from the 2012 Pi 1 Model B (Rev 1) to the Pi 5 and Pi 500, grouped by family, with its chip, release year and quirks.
  • The correct header for each board, including the 26-pin Rev 1 and Rev 2 layouts.
  • Search pins by number or function (17, pin 11, SDA, PWM, GND…).
  • Toggle labels between names (GPIO17) and functions (SPI1 CE1).
  • Click a pin for its full details.
  • Pins used in the Python file you're editing are highlighted live, with a warning if any don't exist on the selected board.
  • Use for hover & warnings makes the selected board the active one.

Board-aware warnings

Yellow squiggles for:

  • the same GPIO set up or claimed more than once in a file,
  • pins that are also a commonly enabled interface (I2C, SPI0, serial UART) or reserved for the HAT EEPROM,
  • power/ground pins used as GPIO, and pin numbers that don't exist on the selected board,
  • import RPi.GPIO when the board is a Pi 5 or Pi 500 (RPi.GPIO doesn't support the RP1 chip).

Calls inside comments, docstrings and strings are ignored.

Numbering modes

GPIO.setmode(GPIO.BCM) / GPIO.setmode(GPIO.BOARD) is tracked through the file, so each RPi.GPIO call is read in the mode in effect at that point. gpiozero, lgpio and pigpio always use BCM, except gpiozero "BOARD11"-style strings, which are physical pin numbers.

Full pinout view

GPIO Pin Hover: Show Pinout (Command Palette, or the button in the sidebar title bar) opens the header with every pin in the current file highlighted, plus a table of each usage and its line number.

Supported libraries

Library Detected
RPi.GPIO setup, output, input, add_event_detect, add_event_callback, remove_event_detect, wait_for_edge, event_detected, PWM, gpio_function, including list/tuple channels like setup([17, 18], …)
gpiozero LED, PWMLED, RGBLED, Button, Buzzer, TonalBuzzer, Servo, AngularServo, Motor, PhaseEnableMotor, Robot, PhaseEnableRobot, DistanceSensor, MotionSensor, LightSensor, LineSensor, RotaryEncoder, TrafficLights, LEDBoard, LEDBarGraph, ButtonBoard, Digital*/PWMOutputDevice; positional pins, pin keywords (pin=, echo=, trigger=, forward=, backward=, enable=, red=…), tuples like left=(4, 14), and "GPIO17" / "BOARD11" / "17" strings
lgpio lgpio.gpio_claim_output/input/alert, gpio_write, gpio_read, gpio_free (pin is the argument after the chip handle)
pigpio pi.write, pi.read, pi.set_mode, pi.set_pull_up_down, pi.callback, pi.set_PWM_*, pi.set_servo_pulsewidth, only on the conventional pi variable name

Try it

Open samples/gpio_sample.py. It covers every detection case above, including constants, multi-pin devices, both numbering modes and each kind of warning. Switch boards with GPIO Pin Hover: Select Board (or click the board name in the status bar) to see the board-specific warnings appear.

Settings

Setting Default Description
gpioPinHover.board generic-40 Board your code targets; drives the hover diagram and board-specific warnings. Saved per workspace when set from the picker or sidebar.
gpioPinHover.defaultNumberingMode BCM Mode assumed for RPi.GPIO calls before any GPIO.setmode(...) in the file.

Known limitations

  • Pins are resolved from literals and simple module-level constants (NAME = 17). Computed values, function arguments and imports from other files aren't followed.
  • pigpio detection is limited to calls on a variable named pi.
  • Warnings are per file; pin usage isn't tracked across modules.
  • Compute Modules aren't included (they use an edge connector, not the GPIO header).

Development

npm install
npm run compile   # or: npm run watch
npm test          # parser and pin-table unit tests (node:test, no extra deps)

Press F5 in VS Code with this folder open to launch an Extension Development Host with samples/gpio_sample.py already open.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft