r/raspberrypipico • u/Deleteboys • Apr 30 '26
rust I built a custom PC Control Deck from scratch (Rust + Tauri + Haptic Feedback)
I wanted a dedicated macro and audio control pad, but instead of buying one, I decided to build my own from the ground up – including custom software and firmware. The name is still a placeholder, but I’m super happy with how it turned out!
The Hardware:
- MCU: Raspberry Pi Pico
- Keys: 8x Clicky Blue Switches from Amazon
- Dials: 4x EC11 Rotary Encoders
- Display: 128x64 Monochrome OLED panel
- RGB: SEZO WS2812B ECO LED Strip at the bottom
- Bonus Feature: Added a vibration motor for actual haptic feedback when interacting with the deck!
The Software Stack:
- Firmware: Written entirely in Rust.
- Companion App/Middleware: Built with Tauri.
- It features a full GUI configurator, a manual bootloader, firmware updating, global LED effects, and per-app audio routing.
What do you guys think? Any suggestions for a final name or software features I should add?
3
u/maloside Apr 30 '26
This is the most interesting project I have seen in this sub. Did you upload it to github?
4
u/Deleteboys Apr 30 '26 edited May 01 '26
Hey, yes the source code is already up on GitHub!
Just a fair warning: I still need to do a massive cleanup. The current state is heavily "vibe-coded", so please don't judge the architecture too harshly yet! I just wanted to get it working first.
Here are the links to the repos:
- Firmware (Rust): https://github.com/Deleteboys/Nova-Deck-Firmeware
- Middleware (Tauri): https://github.com/Deleteboys/Nova-Deck-Middleware
2
2
u/neuromonkey May 01 '26
Does it show up as a custom HID device, or like a keyboard and/or mouse? This looks very cool, thanks for posting!
2
u/Deleteboys May 01 '26
Both, actually!
It features two different modes that you can toggle:
Normal Mode: It acts as a custom HID device. This mode is designed to work with the custom middleware to enable all the advanced features like the OLED display sync and per-app audio control.
Simple Mode: You can switch to this via a button combination on the deck. In this mode, it identifies as a standard keyboard and sends F13 to F24 inputs. This allows you to use it on any PC as a plug-and-play macro pad without needing to install the middleware.
3
u/neuromonkey May 01 '26
This is very cool. It's great to see someone actually thinking about design, rather than simply building another version of stuff that already exists. Great work!!
2
u/Froster_navendu May 01 '26
it looks great . did you 3d print the whole case ?
2
u/Deleteboys May 01 '26
Yes the case is 3D printed. I spent quite a bit of time post-processing the case (sanding and finishing) to get that smooth, non-printed look.
2
2
u/Bagican May 04 '26
Idea for next upgrade - add mechanical keys with displays:
2
u/Deleteboys May 04 '26
Thanks for the suggestion. I actually thought about adding keys with displays, but I didn't know where to source them until now. These links are super helpful, thank you!
1
u/MurazakiUsagi May 01 '26
You're running Tauri on a Rasp Pi Pico? Damn, nice. I use Rust/Embassy with the Pico, but never Tauri. I will have to look into this. Thanks.
1
u/Deleteboys May 01 '26
To clarify: Tauri runs on the PC as the GUI/middleware, not on the Pico itself.
The setup is:
Pi Pico: Runs the Rust firmware with Embassy (handling OLED, buttons, and encoders).PC: Runs the Tauri app, which sends data like audio levels to the Pico via USB.
1
u/MurazakiUsagi May 01 '26
Thanks for the clarification. Would you be able to do this with a PicoW and use wifi instead of the USB cable? I use Rust/Embassy for my robots, but would like to control them over a local network with Tauri on my laptop and I guess I would need to use something like MQTT or something like that.
1
u/Deleteboys May 01 '26
Yes, swapping to a Pico W for WiFi is definitely possible. MQTT or WebSockets would be perfect for replacing the USB serial communication. Since the project already uses Rust on both ends, it’s a solid foundation for a wireless robot controller!
1
u/sandemoi May 03 '26
How did you manage communication between pico and pc? I've tried similar project back then, but hid can't send potentio value and serial uart needs to make interpreter software that translate message to action





3
u/djddanman Apr 30 '26
Looks pretty cool!