Stream deck using Arduino and Python

This is a little project I started due to the fact that I wanted to stream and didn't want to spend lots on a simple stream deck. So I programmed one using an Arduino nano, custom numpad and Python.


  • OBS websocket library for python
  • pySerial - pip install pyserial
  • Arduino (nano would be enough)
  • Numpad for the arduino


There isn't much to do:

  1. Connect the numpad to the arduino (As explained below)
  2. Connect the arduino to the PC
  3. Run python3
  4. Upload the arduino code
  5. Enjoy!

How to use

After you ran python3 you can start using the strean deck. But what if you want to check layout?

To do so go to and follow this steps:

Create a new class that inherits from class profile

class my_profile(profile):
	def __init__(self):

Add your wanted commands to the list of commands

class my_profile(profile):
	def __init__(self):
		self.commands = [self.start_stream, self.start_record]
  • Note: More than 16 commands wont be usable due to a 4x4 numpad

For developers

GitHub - 0rphan/pydeck at
Stream deck using Arduino and Python. Contribute to 0rphan/pydeck development by creating an account on GitHub.