Raspberry Pi GPIO
The GpioPin5 class is a specialized controller designed specifically for the Raspberry Pi 5. It interacts directly with the new RP1 Southbridge architecture (Chip 4) to control General Purpose Input/Output (GPIO) pins.
Use this class when running your application on a Raspberry Pi 5 to read sensors, control LEDs, or interact with other hardware components. It includes software-based polling for detecting value changes (interrupts) and manages pin ownership to prevent conflicts.
You must create an instance of this class to control a specific pin.
Static Functions
isAccessible
Checks if the specific GPIO hardware (the RP1 chip used on Raspberry Pi 5) is present and accessible on the current system.
Output
Returns true if the system is a Raspberry Pi 5 with accessible GPIO, otherwise false.
getPinConsumer
Checks if a specific GPIO pin is currently being used by another process or driver, and if so, returns the name of that consumer.
Parameters
gpio: The GPIO pin number (BCM numbering).
Example
# gpio
17Output
Returns the name of the consumer (e.g., 'GpioPin5', 'spi0') as a string, or null if the pin is free.
isPinFree
A convenience function to check if a specific GPIO pin is currently available for use.
Parameters
gpio: The GPIO pin number (BCM numbering).
Example
Output
Returns true if the pin is free, false if it is busy.
release
Forcefully releases a GPIO pin if it is currently held by an internal GpioPin5 instance. This is useful for cleaning up resources if a pin was not disposed of correctly.
Parameters
gpio: The GPIO pin number to release.
Example
Output
Returns true if the pin was found and released, false otherwise.
Constructor and Member Functions
create
Creates a new instance to control a specific GPIO pin. This initializes the pin with the specified direction and behavior settings.
Parameters
options: An object containing the configuration for the pin.gpio: The GPIO pin number (BCM).direction: How the pin should behave.'in': Input mode (for reading values).'out': Output mode (initialized to 0).'high': Output mode (initialized to 1).'low': Output mode (initialized to 0).
pullUpDown: Internal resistor configuration ('none','pullup','pulldown'). Note: On RPi 5, software control of bias is limited; system-level configuration is often required.edge: For input pins, defines which changes trigger an event ('rising','falling','both'). Defaults to'rising'.debounceTimeout: Time in milliseconds to wait for the signal to stabilize. Defaults to10.activeLow: Iftrue, inverts the logic (1 becomes 0, 0 becomes 1). Defaults tofalse.pollInterval: The interval in milliseconds for checking the pin state. Defaults to5.
Example 1: Configure an Output Pin (e.g., for an LED)
Example 2: Configure an Input Pin (e.g., for a Button)
Output
Returns a new GpioPin5 instance.
write
Asynchronously sets the value of an output pin.
Parameters
value: The value to write. Accepts0,1,true, orfalse.
Example
Output
Returns null (resolves the promise) when the write is complete.
read
Synchronously reads the current value of the pin.
Output
Returns 0 or 1.
onChange
Registers a listener to monitor the pin for changes. The listener is triggered when the pin's value changes according to the edge configuration set in the constructor.
Parameters
listener: The function to execute when the event occurs. The function receives the new value (0or1) as an argument.
Output
Returns the string 'subscribed'.
removeListeners
Removes all active listeners and stops the internal polling loop used to detect changes.
Returns true.
dispose
Releases the GPIO pin, freeing the hardware resource and cleaning up all internal listeners and timers.
Returns true.
Last updated