Open Source Stream Deck Does It Without Touch Screens

[Adam Welch] has built macro pads in the past out of pre-fab key matrices and handfuls of Cherry MX clones. But all the stickers and custom keycaps in the world wouldn’t make those macro pads as versatile as a stream deck — those visual shortcut panels with tiny touchscreens for each button that some streamers use to change A/V settings or switch between applications.

Let’s face it, stream decks are expensive. But 0.96″ OLED displays are not, and neither are SMD tactile buttons. Why not imitate a screen deck on the cheap by making it so the screens actuate buttons behind them? [Adam] based this baby on the clever design of [Kilian Gosewisch]’s FreeDeck, and they ended up working together to improve it with a dedicated PCB.

The brains of the operation is an Arduino Pro Micro, which addresses each screen individually via two 74HC4051 mux ICs. Thanks to an SD card module, there’s no need to flash the ‘duino every time you want to change a shortcut or its picture. Even if this deck doesn’t hold up forever, it won’t break the bank to build another one. Poke past the break for the build video, which has all the links you’d need to make your own, including a handy configurator.

There’s more than one way to do a visual macro pad. Here’s one that uses a single screen and splits it Brady Bunch style to match the matrix.

Thanks for the tip, [arturo182]!

32 thoughts on “Open Source Stream Deck Does It Without Touch Screens

  1. Nice project!

    I like the fact that each button is tactile but another option is just a signle larger touch screen with buttons drawn on it.

    On the tactile switches, you could ‘probably find a better suited switch with the correct height, or glue something to the top of the used switches.
    The SD card used to hold the switch labels… get rid of that and make an app to update just the Arduino over USB would be nice.
    Also maybe use SPI screens so the multiplexers are not required and full colour ones are only slightly more expensive.

    One more thing… a few days ago this was on HD (USB volume thinger) It might be nice to have a mutant child off these projects.

    I hope this isn’t to negative (I tried to be constructive!) as I do like the project, and now I would like to build the mutant version (think I would use muliple colour screen), just don’t think I should add another ‘project’ to my stupidly large unfinnished projects tub’s

    1. If you want to go color screen, i guess going for a 32Bit controller is just the next logical step forward to have enough RAM for handling the graphics… so every design decision has its rats tail or consequences.
      What i really don’t understand is, why you need to make the screen the touchable button. With these big bezels inbetween each screen, it would seem to be very easy to just make part of the framing a button to push. Has the advantage of not getting fingerprints all over the screens and probably extends the life of the device a lot.

      1. I’m with Magpie that this method isn’t going to last all that well. So why not a ‘lens’ over the screen that is also the keycap? That seems like the best of both worlds – I can see how that would be done quite simply with some sheet plastic layers for the top -cut the lower thick layer with some integral spring areas in the bezel sections around each key, add a few drilled holes for the pins to trigger a tac-switch and then a nice laser/inkjet overhead projector printout for the top – with bezel frames for each button in lovely decorated colourful patterns and hides the spring sections so no dirt etc can get in!

        if you have no cnc/laser but do have a 3d printer and cutting those spring areas by hand is too much you could always print the springs and fit in the clear lens parts. If you are going to own a 3d printer you really should learn and play with the flexture and print in place rotational mechanisms – it opens up huge worlds of creative options and makes use of the tool’s unique talents! (Its also usually much much much cheaper than using screws, bolts, hinges and pivots as additional parts – though the forces and sizes may make extra hardware required of course)

      2. “so every design decision has its rats tail or consequences.”… yup the very rabbit hole that fills my project tub’s!

        Might as well make do some animations… wifi… and it’s gonna have to run Doom!

  2. The pads on the PCB where the OLED header is soldered to the main PCB are likely to eventually break if the buttons get pressed often. That’s been my ZeroPhone experience – there, I don’t even have a button behind the screen, the screen just has no other supports, and it’s resulted in me having to add jumper wires to compensate for lost connections.

  3. One of the key features of the stream deck is the software. It interfaces with the apis of various programs and services in ways that no other software seems to have implemented yet.

    1. I still think Touch Portal is a good solution for your “DIY streamdeck”. Just get an old smartphone (or a new cheapo), install the software, and you can go pretty nutz on that phones touchsceen with your personalized streamdeck.

    2. Streamdeck functions for control are enabled on some of corsair keyboards. No key screens of course, but being able to store 6gkeys, fullkeyboard and numpad, plus mediakeys and volscroll u/d.. multiplied by 3 profiles..

      I get 180usd for a k95platinum is a lot ( yes the new streamdeck macro functions are not xt only), but compared to 6 key for 80 or even 20usd..

      I dunno. Tough sell.

      Use hw lighting effects and print up custom keycaps.

    1. seems like a stonkingly good price to me. You can pay more than that per switch for any switch at all in small batches.
      Sure its alot if you don’t need to buy in bulk, but that is when you either make more of whatever you are using them for or do a group buy with your fellow hackers to get as many as you want.

      ALSO REMEMBER TO KEEP SOME SPARES! If you buy 10 because that is all you need its certain you will have one fail or be damaged as you solder to it etc in short order. I like to keep no less than 5% extra of the harder to source/ faster wearing uncommon components for anything I repair/make’s needs (the prone to failure common components you should always have plenty in stock as you are bound to need them)- its a small enough minimum volume to store, and half the time you will use some of them on other projects because you had them. While having peace of mind that whatever you worked on should be easy to keep running for a while.

  4. Maybe I’m missing something by why are two demultiplexers needed for six buttons with the Arduino Pro Micro? Seems like there are 18 GPIO pins. 2 * 6 (for LCD control) = 12, still leaves six pins for direct button control, and it isn’t like you need to support multiple presses at the same time so you could get away with far fewer if needed.

  5. So wouldn’t a raspberry pi zero w with a 5″ touch screen give even better performance? Could even be wirelessly connected via Bluetooth or wifi and customized with downloadable python scripts. I’m not getting why these are expensive or difficult.

  6. Hey guys. Thanks for all your input. I want to answer some of your questions.
    – Why SD card and no USB software?:
    I want this thing to work without any platform specific software at all. That’s why the configurator is in the browser and that’s also why the freedeck only emulates keypresses and midi sequences.
    – why no raspberry pi zero?
    A raspberry pi zero is more expensive than a complete freedeck. If you order on Ali Express it will cost you 15$. And the raspberry pi zero is painfully slow for booting etc. A micro controller is better fitted for this purpose in my opinion.
    – the pads that connects the OLEDs will break.
    Maybe true, but the travel of the displays is only 0.13mm and we discussed this topic in our discord. We don’t think this will happen before the OLEDs burn in. And when one of those two thing happen just replace it with another 1$ OLED.
    -why no touchscreen?
    Like chr e said: But muh tactile feedback.
    It’s very very nice tactile feedback indeed
    -why no color version?
    Color display were to expensive for me while i planned this project. Maybe they are cheaper now.
    -why i2c with multiplexing?
    I could use spi and chain the buttons with resistors. True.
    But then I don’t have enough pins for the 16 display version which is planned and I have no pins to add the rotary encoders. With i2c multiplexing I use less pins which I need later

    1. If the main PCB pads break, you’ll need to replace the whole PCB (or jumper wire the pads), not just the OLED module. Might want to add some SMD pads for emergency jumpers in the next revision, and avoid routing traces (i.e. VCC) through the pads themselves.

    2. Much as I love Pi’s I agree this isn’t a job best suited to them (unless you want more features than just being a keyboard emulation device)

      I’m with CRImier make sure to have some spare pads for the jump wires you will likely need when/if the connection breaks. I do think this method will be alright, don’t expect really really rapid failure – so you might well be right the OLED will burn in before it breaks but it may not be a simple drop in replacement when it does (though I’d give it reasonable odds to be simple most of the time that one time it isn’t will be really really annoying).

      Also you should perhaps look to minimise the burn in problems by implementing a subtle motion to the icons displayed – shift a few pixels up/down left/right slow enough to be very hard to see but often enough to slow the burn-in – the button icons can get noticeably off centred and still look good enough – partly as you’d expect that off-centre look due to parallax of viewing angle anyway (assuming you are not doing it already).

  7. You know the Corsair (Formerly Elgato) Streamdeck doesn’t use a touch screen, right? It uses a single LCD display, with a bezel that divides it up into the individual buttons. The switches for the buttons are in the bezel. Honestly I’m surprised no one’s rolled their own version of *that* it seems ripe for 3D printing, laser cutting, and some custom PCBs.

  8. Question: what are the violations of privacy when using ANY stream deck? I used to be tech savvy, but the wave of tech over the last 15 years has overwhelmed me. I absolutely despise any new tech that is invasive. Do I have to sign away my life, all my passwords, contacts, etc to run a stream deck?

    1. I don’t actually know about what’s out there and what are the possiblities, but based on my experience with such products, I’m going to hazard a guess that it depends on whoever produces the software for the streamdeck in question. Fundamentally, there ought to be no privacy violations involved, as the most basic streamdeck can just be a small keypad that switches scenes in your OBS install. However, if the software manufacturer decides that the streamdeck has to be linked to your Facebook account, you will likely need to search for another cyberdeck or a substitute software. If they decide that you have to link your Twitch account for some Twitch integration features to work, that’s more of a gray area, it seems to me – what data do you compromise by that, exactly? You can try using an open-source streamdeck, of course – it seems to me that there’s nothing preventing a featureful open-source solution from existing, and I’ve seen quite a few on Crowdsupply, I wouldn’t expect the same level of polish that closed-source streamdecks have, and I’d expect to have to get my hands dirty with debugging/coding at some point while setting it up.

    2. I have both the original and XL StreamDeck models. The software does not require any account linking, the only link you make are optionally to stream services like Twitch or YouTube to interact with those services (i.e. Set the current streaming title or interact with your chatroom)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.