LogoAccessKit

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:

  1. Admin Dashboard — set the mediaplayer's Multi-channel Sync Mode to GPIO Triggered and link the player to a Work so mobile captions and audio stay synchronized when playback starts.
  2. SD card — optional gpio.json file to choose which pins and edges start, stop, and toggle on-screen captions.

Requirements

RequirementDescription
AccessKit WorkYou should have already created a Work with any captions or synchronized audio you need.
AccessKit BrightSign MediaplayerThe BrightSign should be registered with AccessKit, assigned to the Work, and running a recent AccessKit Player Package.
GPIO wiringStart/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.

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

EventBehavior
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 videoSame as a stop edge: rewind to the beginning and wait in idle for the next start edge.
UDP stop commandSame as a GPIO stop edge; useful for bench testing without wiring. Not affected by stopOnOppositeEdge.
UDP start commandSame 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.

FilenameDescriptionControllable from Admin Dashboard
gpio.jsonGPIO pin numbers, start/stop edges, and caption-toggle pin for the player.No
{
  "captionsPin": 1,
  "triggerPin": 0,
  "startEdge": "down",
  "stopOnOppositeEdge": true
}

Pin assignments

BrightSign GPIO pins are numbered 07. AccessKit reserves pins as follows:

Pin(s)RoleDirectionNotes
0 (default)Playback triggerInputUsed when sync mode is GPIO Triggered. Default avoids conflicting with captions and timeline output pins.
1 (default)On-screen captions toggleInputdown activates captions; up deactivates. Only handled while the sync clock is idle so toggles do not disturb loop timing.
27Event timeline actionsOutputTimeline GPIO actions may only use pins 27. 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

FieldDescription
captionsPinInteger 07 (default 1). Physical pin for toggling on-screen captions. See also on-screen captions.
triggerPinInteger 07 (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.
stopOnOppositeEdgeBoolean (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

{
  "captionsPin": 1,
  "triggerPin": 0,
  "startEdge": "down",
  "stopOnOppositeEdge": false
}

Pressing the button starts playback; releasing it does not stop the video. After the file ends, the player waits for another press.

{
  "captionsPin": 1,
  "triggerPin": 0,
  "startEdge": "down",
  "stopOnOppositeEdge": true
}

Closing the switch starts playback; opening it stops and rewinds immediately.

{
  "captionsPin": 1,
  "triggerPin": 0,
  "startEdge": "up",
  "stopOnOppositeEdge": true
}

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:

CommandEffect in GPIO Triggered mode
startStarts playback from idle (same as the GPIO start edge).
stopStops and rewinds (same as the GPIO stop edge), even when stopOnOppositeEdge is false.

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.