Sparkpad is a reconfigurable control surface - primarily aimed at Streamers - with customisable keys and engraving options

Similar projects worth following
In October 2020, a friend of mine - James - who had recently got into Streaming introduced me to Streamdecks. We decided to have a go at designing our own, and after a few prototypes and surveys the Sparkpad was born.

Here's a quick breakdown of the Sparkpad's features:
- 12 mechanical keys with configurable HID output
- Encoder with LED bar graph indicator
- 8 lighting options, configurable via an OLED screen
- 32 key designs available
- Open source Arduino based firmware
- Ergonomic case with custom engraving options

Some of the developments currently in the pipeline:
- MIDI and Serial output
- Wireless compatibility
- Independent lighting options for each key
- Lighting triggered by key events


For an affiliate Twitch streamer, the name of the game is keeping viewers engaged with their content. More often than not this goes beyond simply playing a game and providing some interesting commentary. Responding to chat messages, adjusting audio levels, and handling scene transitions - these are all part of a streamers bread and butter. Juggling these tasks effectively creates an engaging viewer experience.

Streamers have several tools at their disposal. The biggest of these is Twitch itself, which distributes the content via it’s online platform, and provides the interface for viewer interaction. Audio/visual tasks are handled by software such as OBS, which is installed locally on the streamer’s PC or laptop.


While a standard mouse and keyboard are sufficient to use most types of software, there are instances when more specialised hardware can improve user workflow. Two good examples of this are DJ software and CAD software: DJs use rotary controls (jogwheels and potentiometers) to precisely synchronise tracks and adjust the mix, and mechanical designers use 6D mice to easily manipulate parts and assemblies. These tools improve the interface between the user and software by providing more tactile control over some or all of it’s features.

This is the same basic concept behind a Streamdeck, which improves the interface between a streamer and their software tools. The streaming tasks described earlier - responding to chat, adjusting audio, and handling transitions - are all tasks that can be performed with a normal mouse and keyboard, but a Streamdeck compartmentalises all these functions and improves usability as a result.

One of the major players in the Streamdeck market is Elgato, who offer 3 hardware streamdecks - in mini, regular (shown below) and XL flavours - and an app based streamdeck for mobile.

The first prototype

After some browsing on mechboards - a UK based supplier of mechanical keyboards - I discovered the RoMac. The RoMac is a 12 key macro pad (a macro pad is a miniature keyboard with keys tailored for a particular workflow) made from only a handful of components - 2 PCBs, 12 ‘Cherry MX’ style switches, 12 diodes, some fasteners and an Arduino Pro Micro. It is sold as a kit which you assemble yourself using a soldering iron and screwdriver. I purchased a kit and the parts were with me within matter of days.

Unfortunately I quickly realised the switches I bought were not of the correct type. As the RoMac does not have a switch panel, the switches needed two additional mounting pegs to provide lateral support. The switches I bought were lacking these pegs. Nevertheless, I soldered the switches on - doing my best to keep them aligned - and the end result wasn’t too bad. Since this was only a prototype I wasn’t too concerned with the keys being a bit wobbly.

Key caps

I also bought some relegenderable key caps along with the RoMac. These are blank key caps with a transparent cover, allowing you to use your own custom cap designs printed on paper or vinyl. I imported a template from the store page into my preferred vector graphics software - Inkscape - and made a set of custom caps. As a veteran streamer, my friend James was instrumental in helping me decide which icons to use for each cap. To save time I used icons from The Noun Project, which is a great resource for anyone designing user interfaces.

To complement the aesthetics of the RoMac, I chose a ‘dark mode’ colour scheme for the keys. I initially thought this would be expensive to print, but my local print-shop had no qualms printing the design on vinyl. I cut out each symbol using a scalpel and stuck them onto the key caps to complete the build.


The Arduino Pro Micro sold with the RoMac had QMK based firmware pre-installed on it. QMK is an open source project maintained by the custom keyboard community, and has a few key components including an online Configurator. I used the Configurator...

Read more »

  • Sparkpad diary 1

    Patrick Thomas07/04/2021 at 16:52 0 comments


    Although we're still a few months away from celebrating our first birthday, the Sparkpad project has come a long way. After many weekend and evening hours spent toiling, we've learnt some valuable lessons which have kept us on the road to growth (as anyone familiar with running a business can tell you, building a product is often the easy part).

    This diary is our way of sharing some of those lessons with you, and keeping you up to date with the latest Sparkpad developments.


    Since the first Sparkpads were shipped back in March, we have made a few revisions to the overall design.

    The case is one of the centrepieces of the Sparkpad, and has caused the majority of design headaches.

    Our initial rationale for settling on a laser cut design was to allow us to cut and engrave the Sparkpad panels in one step. This saves us a lot of manufacturing time, and we don't have to worry about misalignment. However, since a laser cutter can only give you flat panels, you inevitably need some way to turn those panels into a 3D shape. We opted for gluing the panels to keep the exterior of the Sparkpad as clean as possible by limiting the number of screws. We also engraved a slot along the top edges of each side panel for the top panel to sit in, thus hiding it's unsightly edges and boosting the aesthetics.

    While the design ticked many boxes, keeping the panels aligned while gluing them was very difficult without using a dedicated jig. In addition, since the glue was providing all the structural support, we needed to use superglue which - as a liquid - tended to go to places it wasn't wanted such as the edges of the top panel (as you can see in the above photo). As we wanted to offer the Sparkpad as an un-assembled kit, we quickly realised we wouldn't be able to ship a jig along with every single kit, so a revision was necessary. Thus we added fingers to the side panels to ease assembly, and provide additional structural support (which meant we could swap the superglue for glue gun, which is far less messy).

    While prototyping this we ran up against another problem - tolerances. For the fingers to slot together nicely, the tolerances of the laser cutter need to be up to scratch, and we had to make several tiny adjustments to get the fit we needed. As we look to scale up the manufacture of Sparkpads, we may have to adapt the design to suit different laser cutters (and materials), so the battle is far from over on this front.

    The PCB hasn't changed too much since it's original inception. The only revisions were necessitated by an update to the firmware, specifically the volume control knob driver. We made the swap to an interrupt based driver from a polling based one as new firmware features started taking up more and more of the Arduino's processing time. However, the Arduino has a limited number of interrupt-capable pins, and on the original PCB the knob was tied to pins which  weren't interrupt-capable. This was a relatively simple design revision, and while we waited for the new PCB's to arrive we were able to fix the issue using a wire mod.

    We also added Schmitt triggers (in the form of a 74HC14 chip) to the volume control knob's pins to improve noise resistance, and thus prevent the driver interrupts from triggering incorrectly.

    The selection of key cap stickers we now offer has been largely shaped by the Streaming community. The layout of our original Romac-based prototype was well received, so we didn't alter too much in the development stages besides inverting the colours to work with the Sparkpad's LEDs. We also added the Productivity and Mini packs to give people as many options as possible when customising their own Sparkpad layout.

    The Sparkpad's firmware has evolved to accommodate key design updates.

    We added support for platformio alongside the Arduino IDE, which involved adding a platformio.ini file to the Arduino library files. Platformio allows for...

    Read more »

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates