Configure GPIO triggered playback
Start and stop BrightSign playback from physical GPIO inputs, with optional caption toggling on a dedicated pin.
AccessKit BrightSign mediaplayers can wait for a physical GPIO input before starting each playback loop, instead of looping continuously in solo mode or waiting for a multi-channel leader. This is useful when a work should only run when a visitor presses a button, flips a switch, or when another piece of gallery hardware asserts a contact closure.
GPIO triggered playback pairs two configuration layers:
- Admin Dashboard — set the mediaplayer's Multi-channel Sync Mode to
GPIO Triggeredand link the player to a Work so mobile captions and audio stay synchronized when playback starts. - SD card — optional
gpio.jsonfile to choose which pins and edges start, stop, and toggle on-screen captions.
Requirements
| Requirement | Description |
|---|---|
| AccessKit Work | You should have already created a Work with any captions or synchronized audio you need. |
| AccessKit BrightSign Mediaplayer | The BrightSign should be registered with AccessKit, assigned to the Work, and running a recent AccessKit Player Package. |
| GPIO wiring | Start/stop hardware connected to the BrightSign's GPIO header (see BrightSign GPIO documentation). |
Not for multi-channel sync groups
GPIO Triggered replaces continuous looping (solo) or UDP-driven multi-channel sync (leader / follower). Use multi-channel synchronization when several BrightSigns must start together; use GPIO triggered playback when a single player should start on demand.
Enabling GPIO triggered playback (Admin Dashboard)
Open the Mediaplayer settings page
Find the BrightSign on the Admin Dashboard home page and open its settings by clicking its name (a link like mediaplayer-[id]).
See the mediaplayer reference if you need help locating a player.
Link the BrightSign to a Work
In Linked Work, select the Work whose captions and synchronized audio should track this player.
Enable work synchronization
Ensure Synchronize Linked Work Subtitles/Audio to This Player? is checked. For GPIO Triggered players this should remain enabled so each GPIO start submits a timestamp to AccessKit (the same behavior as solo and leader modes).
Set sync mode to GPIO Triggered
In Multi-channel Sync Mode, choose GPIO Triggered instead of solo, leader, or follower.
The player will boot into an idle state and will not start the video until it receives a start trigger on the configured GPIO pin (or a UDP start command).
Save and restart
Click Update Mediaplayer at the bottom of the form.
Restart the BrightSign via realtime controls or a power cycle so it reloads config.json with the new sync mode. If Poll for Config Changes is enabled, the mode may apply without a reboot, but a restart is still recommended when first enabling GPIO playback.
How playback behaves
| Event | Behavior |
|---|---|
| Start edge on the trigger pin (while idle) | Seeks to the beginning, plays the video, and submits a web timestamp if Update Web Timestamps is on. |
| Stop edge on the trigger pin (while playing) | Pauses, seeks to the beginning, submits a stop timestamp, and returns to idle. Ignored when stopOnOppositeEdge is false (see below). |
| Natural end of video | Same as a stop edge: rewind to the beginning and wait in idle for the next start edge. |
UDP stop command | Same as a GPIO stop edge; useful for bench testing without wiring. Not affected by stopOnOppositeEdge. |
UDP start command | Same as a GPIO start edge when the player is idle. |
While idle, the player does not loop. This differs from solo, which begins looping immediately at boot.
Configuration file (gpio.json)
GPIO pin assignments and edge polarity are controlled by a gpio.json file on the BrightSign's SD card. If the file is missing or contains invalid values, the player writes defaults on boot.
| Filename | Description | Controllable from Admin Dashboard |
|---|---|---|
gpio.json | GPIO pin numbers, start/stop edges, and caption-toggle pin for the player. | No |
Pin assignments
BrightSign GPIO pins are numbered 0–7. AccessKit reserves pins as follows:
| Pin(s) | Role | Direction | Notes |
|---|---|---|---|
0 (default) | Playback trigger | Input | Used when sync mode is GPIO Triggered. Default avoids conflicting with captions and timeline output pins. |
1 (default) | On-screen captions toggle | Input | down activates captions; up deactivates. Only handled while the sync clock is idle so toggles do not disturb loop timing. |
2–7 | Event timeline actions | Output | Timeline GPIO actions may only use pins 2–7. Do not wire external trigger hardware to these pins when using timeline events. |
If triggerPin equals captionsPin, the player logs a warning and disables the trigger (captions win). Change one of the pins in gpio.json before enabling GPIO Triggered mode.
Fields
| Field | Description |
|---|---|
captionsPin | Integer 0–7 (default 1). Physical pin for toggling on-screen captions. See also on-screen captions. |
triggerPin | Integer 0–7 (default 0). Pin monitored for start/stop when Multi-channel Sync Mode is GPIO Triggered. |
startEdge | "down" or "up" (default "down"). Which edge begins playback; the opposite edge stops playback when stopOnOppositeEdge is true. |
stopOnOppositeEdge | Boolean (default true). When false, the release edge of a momentary button does not stop playback—the video runs to completion, then returns to idle for the next press. Use true for toggle switches or maintained contacts where the off state should stop immediately. |
Example configurations
Pressing the button starts playback; releasing it does not stop the video. After the file ends, the player waits for another press.
Closing the switch starts playback; opening it stops and rewinds immediately.
Use when your hardware presents a logic-high pulse to start and logic-low to stop.
Testing without GPIO hardware
Send UDP commands to the player's command port using the same addressing rules as other UDP commands:
| Command | Effect in GPIO Triggered mode |
|---|---|
start | Starts playback from idle (same as the GPIO start edge). |
stop | Stops and rewinds (same as the GPIO stop edge), even when stopOnOppositeEdge is false. |
Related guides
- Configure audio and video outputs — other SD card JSON files (
audio.json,video.json,window.json). - Create custom event timelines — schedule GPIO outputs on pins
2–7during playback. - Communicate with a BrightSign via UDP — full command list and multicast addressing.
- Mediaplayer reference — all settings fields.
Player package update
GPIO triggered playback requires gpio.brs and gpio.json from a recent AccessKit Player Package. Update via the controls page if your package predates this feature.