Skip to content

DDRBoxman/gadgetdeck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gadgetdeck

Crates.io

Rust library and companion software to allow Raspberry Pi devices to show up as a Streamdeck over USB to another computer.

Timeline.1.mp4
gadgetdeck

Supported Streamdeck devices

  • Stream Deck Mini
  • Stream Deck Mk2
  • Stream Deck XL
  • Stream Deck Pedal
  • Stream Deck Plus
  • Stream Deck Neo

Gadgetdeck Library

The rust library and core of both programs. It uses FunctionFS to emulate a Stream Deck device.

More Info

Programs

gadgetdeck-display

Emulate a streamdeck on a PI device that has a touchscreen. Renders directly to the framebuffer without a desktop environemnt.

More Info

gadgetdeck-server

Emulate a streamdeck on a PI device and allow it to be accessable in a web browser.

More Info

Setup examples

Headless Pi zero 2 W

Install Raspberry Pi OS lite (no desktop) (Raspberry pi imager makes this easy https://www.raspberrypi.com/software/)

Use the image to configure your device and configure wifi and setup ssh credentials.

Plug in the device to the second usb port (not the power one) and plug that into the computer running the streamdeck software.

SSH into the device once it connects to wifi.

sudo vi /boot/firmware/config.txt

Add dtoverlay=dwc2 to the bottom of the file and reboot

Caution

The below command runs a web server with root permissions this is dangerous. There is a config script and systemd configs coming soon to work around this

sudo ./gadgetdeck-server --device mk2

Visit the local address of the pi on port 3000 from another machine ex: http://10.0.0.10:3000

Screenshot 2026-01-25 at 10 16 39 PM

Pi 5 with touchscreen

I'm currently using a Pi 5 and this waveshare touchscreen https://www.waveshare.com/wiki/9.3inch_1600x600_LCD

Install Raspberry Pi OS lite (no desktop) (Raspberry pi imager makes this easy https://www.raspberrypi.com/software/)

Use the image to configure your device and configure wifi and setup ssh credentials.

Plug in the device to the main usbc port and plug that into the computer running the streamdeck software.

SSH into the device once it connects to wifi.

sudo vi /boot/firmware/config.txt

Add dtoverlay=dwc2 to the bottom of the file and reboot

sudo ./gadgetdeck-display --device plus

The device should show up on your display and respond to touch events.

screenshot_drm

Pi with a super cheap tft touchscreen

This was the one I grabbed: https://www.amazon.com/dp/B0DY5BVGNH

sudo apt install libgles2 libegl1 libgbm1 libdrm2

sudo tee /etc/systemd/system/tft-symlink.service << 'EOF'
[Unit]
Description=Create TFT DRM symlink
After=systemd-udev-settle.service

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'mkdir -p /dev/dri/by-path && for card in /dev/dri/card*; do if grep -q ili9486 /sys/class/drm/$(basename $card)/device/uevent 2>/dev/null; then ln -sf $card /dev/dri/by-path/platform-gpu-card; break; fi; done'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl restart tft-symlink.service
sudo vim /boot/firmware/config.txt

Add:

dtoverlay=dwc2
dtoverlay=piscreen,drm,speed=32000000,invy

Reboot

sudo ./gadgetdeck-display -W 480 -H 320 -d mini

IMG_0780

Helpful Dev Tools

5V USB-C Dual Supply

Allows you to power a Raspberry PI with a USB C cable while splitting the data off into another cable to hook up to your dev computer.

https://www.tindie.com/products/8086net/5v-usb-c-dual-supply-dual-ideal-diodes/

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors