Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Install USB Relay on a Raspberry Pi
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← Install USB Relay on Linux
Next
Get started with the Control API →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/Integrations/USB Relay/Install USB Relay on a Raspberry Pi

Install USB Relay on a Raspberry Pi

A Raspberry Pi is a common, low-cost way to run USB Relay near the Stream Decks it's relaying: this guide covers choosing a model, imaging the SD card, and getting it ready for the software. Installing and managing the software itself is identical to Install USB Relay on Linux, so this page links there rather than repeating those steps.

Choose a model#

USB Relay only needs a 64-bit ARM Raspberry Pi (the current package targets arm64) and isn't especially memory-hungry: a 4GB model comfortably covers most setups. As an informal guideline from Bitfocus' own testing, not an exhaustive benchmark:
Model
Test case
Recommendation
3B, 1GB
15 buttons
A single Stream Deck with feedbacks that don't need high frame rates; avoid scrolling text.
4B, 4GB
42 buttons
Comfortably handles 1–3 Stream Decks depending on model.
5, 8GB
50–100+ buttons
Should suffice for most setups: you're more likely to be limited by available USB power than the Pi itself. If you need more than 4 USB ports, use a powered hub and confirm it's compatible with your Pi first.
If in doubt, test with your actual hardware and button count rather than relying on this table alone.

Image the SD card#

  1. Download Raspberry Pi Imager from raspberrypi.com/software and insert your SD card.
  2. Select your Raspberry Pi model.
  3. Choose Raspberry Pi OS (other) → Raspberry Pi OS Lite (64-bit): a CLI-only image keeps boot time and resource use down, and USB Relay has no need for a desktop environment.
  4. Select your SD card (double check you haven't selected another connected drive by mistake).
  5. Set a Hostname: this also becomes the relay's name when it shows up in Buttons, so make it something recognizable.
  6. Set your localization settings.
  7. Set a username and password for the Pi's admin account, and record it somewhere safe.
  8. Configure Wi-Fi if you're not using a wired connection.
  9. Enable SSH, with password authentication or a key pair as you prefer.
  10. Write the image, then move the card to the Pi, connect it to the network, and plug in your Stream Deck and power supply.

Connect and install#

  1. Connect to the Pi, either over SSH or with Raspberry Pi Connect (a remote-access service from the Raspberry Pi Foundation, useful if the Pi isn't on your local network):
   ssh <username>@<ip of the Pi>
  1. Download the arm64 USB Relay package and transfer the .deb file to the Pi (an SFTP client such as FileZilla, connecting to sftp://<pi ip>:22, works well for this).
  2. Install it exactly as on any other Linux system:
   sudo apt install ./bitfocus-buttons-usb-relay-headless_*.deb
  1. Confirm it started:
   systemctl status bitfocus-buttons-usb-relay
From here, everything else (checking logs, configuring outbound connection mode, managing the service, uninstalling, and handling a Buttons certificate change) is exactly as described in Install USB Relay on Linux.

If you get stuck#

What you see
What to try
The Pi feels underpowered for your button count.
Compare your setup against the model guidance above, and consider a higher-memory model or fewer Stream Decks per Pi.
USB devices behave inconsistently with several Stream Decks attached.
Use a powered USB hub, and confirm it's actually compatible with your specific Pi model before assuming the software is at fault.
Everything past installation: service status, logs, discovery, uninstall.
See Install USB Relay on Linux; the software behaves identically once installed.

Where to go next#

  • Install USB Relay on Linux
  • Add and attach a surface

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful