This is by far the best way to control your livestreams, any professional streamer uses
something like this.
This is a so-called STREAM DECK.
But this one is homemade and personalized with an Arduino MICRO, a TFT display, push
buttons, some RGB LEDs and the Keyboard library from Arduino.
You can use this with any streaming software such as twitch, OBS studio, X split and so
on.
Just press a button, and you could change the scene, disable the microphone or the webcam,
add music to your livestream, change to “be right back” and so on, anything that you
want.
The deck has 7 buttons on the display but if you press the next button you can change
to a different template with 7 more buttons.
On the side we have two more real push button and 3 more below the display.
To give it a cooler look, I’ve also placed some RGB LEDs inside and made them fade rainbow
colors.
In the code you can change which key you want to send to the PC and for the connection,
it uses a USB cable so you could connect it to any device.
Let me show you what you need, give you the Arduino code, the TFT file for the display
and the 3D files for the case so you could make your own
So guys, let’s get started.
What’s up my friends, welcome back.
To make this project we need a few components starting with an Arduino MICRO.
It can’t be the Arduino UNO or the NANO because the Keyboard library is compatible
with the Arduino MICRO or Leonardo which are using the ATmega32 U4 microcontroller.
Together with that we also need a Nextion display.
In my case I’ll be using their 3.2 inches model.
But here’s a great idea.
You could pay a little bit more and have the huge Nextion display.
I’ve used it on previous videos and it could have a lot more buttons.
Have in mind that a commercial stream deck with only 32 buttons is somewhere around 250
euros.
But the 10 inches Nextion display cost you around 120 euros and it could have somewhere
like 80 buttons or even more if you make them 80 by 80 pixels. 5 more dollars for the Arduino
and you get your huge stream deck for less than 140 dollars.
Anyway, my stream deck will be a bit smaller and together with the display I will also
add 2 real push buttons like these ones and 3 more buttons like these ones.
I also want to add RGB colors to the deck so I will use the addressable LED strip like
this one together with a separate Arduino NANO.
I don’t want to overload the Arduino MICRO too much so a separate Arduino will be in
charge of the RGB colors.
We also need some M3 screws and nuts together with the 3D design I’ve made for this project.
You can download my STL files from below the video and print them up.
I’ve used 2 perimeters, 30% infill and PLA material.
We need the main case and the cover together with the logo part.
I’ve printed this part separately so I could print it with this face downwards.
I will also add a buzzer for sounds clicks.
Together with a micro SD card and a USB cable for the Arduino, this is all we need to make
this project.
So first, let’s prepare the TFT display, so get the screen and a micro SD card formatted
as FAT32.
Download from below this TFT file.
Copy the file to the empty SD card.
Insert the card into the Nextion display.
Then power it up and you will see how the new TFT file is uploaded to the screen.
When you get 100% completed, power off the screen.
Remove the SD card and power back the display and you will get my design.
As you can see we have 7 button on this page and if you click next, you get a different
design.
Actually, like this you could add as many pages as you want.
Check my Nextion Editor video below and you will see how easy is to create a TFT file
for this type of display.
In the Nextion platform, as you can see, each button will send a different number from 0
to 13.
And later we read that with the Arduino.
Now we have the screen so having in mind that this is the connection schematic for the project,
let’s start assembling everything.
I add the screen to the cover 3D printed part using M3 screws and nuts.
Then I’ve printed some icons with my printer on white paper.
I glue those to the big buttons.
On top I add a clear coat of transparent nail polish.
Just like that we have some personalized buttons.
I add the big buttons to the cover as well.
Then I also screw in place the small push buttons.
I solder wires to all buttons as in the schematic.
The Arduino MICRO will later go here inside the case.
Make sure you can connect the USB cable.
Finally, solder all the wires to the Arduino.
From the screen, from the push buttons and for the buzzer.
Now the Arduino MICRO has all the connections and two wires for 5V and ground to supply
the other Arduino.
On the other side I prepare the Arduino NANO with the RGB strip.
I only use 7 LEDs so connect them to the Arduino 5V pin, ground and a digital pin.
Then we upload this code that will create the rainbow colors as you can see.
Now all we have to do is to connect this second Arduino to 5V and ground from the other Arduino.
Now we can close the case with everything inside.
But first I add a white diffuser in front of the logo 3D printed part.
Like that the RGB colors will look better.
I glue the RGB strip inside on the bottom part.
Then I glue the logo 3D printed part.
I secure in place the Arduino with hot glue.
Then fit all the wires and close the case using small screws.
And the deck case is ready.
Connect the USB cable and we are ready for the main code.
First import the Keyboard library.
This will mimic a real keyboard and send different keys using the function press, release or
write.
A normal PC keyboard could have the keys from F1 up to F12 usually.
But virtually we have keys up to F24 and we could also use those.
We do that so we won’t interfere with any other key.
So in the Arduino code I create a serial communication with the Nextion Display.
When I receive a 0, meaning that the first button was pressed, I will send through the
USB connection the F13 key using the keyboard library.
I do the same for the other numbers.
Also, when I detect that one of the real push buttons was pressed, I also send a different
key from F20 to F24.
That's it.
By the way, for me the basic Arduino MICRO board didn’t work to upload the code.
The PC would not recognize the board anymore.
So I’ve made a guide on my website on how to install the sparkfun pro MICRO boards and
how to burn the sparkfun bootloader in case that you have the same problem.
Once you do that, select the Pro MICRO board from the boards tab.
Then compile and upload the code.
Now we have a working stream deck and each button will send a different key to the PC.
With the stream deck connected to your PC, open your streaming platform.
In my case I will test it with OBS.
I go to settings and then to hotkeys.
You could palace hotkeys for anything.
Look, when I press any button on the stream deck, a different keys appears on my PC.
For example I place this key to change to the “be right back” scene.
This other key for the gameplay scene and so on.
Use them however you want.
Not save and let’s test them.
Look, each time I press a different Key I can change the scene without using the mouse
or keyboard.
This will help your livestreams a lot.
I can also mute the microphone, enable or disable the audio or the webcam, add different
transitions and so on.
And by the way, since we already have an Arduino, we could also use it to control real life
lights, sounds and so on.
Some streamers have fire and lights behind them so with just a push of a button you could
control the lights behind you for example.
Feel free to improve this project however you want.
Also, comment below if you want me to make a huge stream deck using the big Nextion display
and share it with you.
Have in mind, in the Arduino code you could change the keys to any other that you want
but make sure they won’t interfere with the keys from your keyboard otherwise that
might result into some problems.
Also, in the Arduino code you could send multiply keys at the same time such as CONTROL F13
for example.
For that, instead of Keyboard.write we use Keyboard.press, we send a key, then another
and then another and we finally add Keyboard.release all.
That will send 2 or 3 keys at the same time.
Play around with these options.
So, guys I hope that you like this project and that you find it useful.
If you have learned something new, consider giving me a like or comment below.
Thanks again and see you later guys.