Posts | Comments

Planet Arduino

Archive for the ‘peripherals hacks’ Category

[Blake]’s interest in building keyboards happened naturally enough — he was looking for a new project to work on and fell into the treasure chest that is the mechanical keyboard community. It sounds like he hasn’t built anything but keyboards since then, and we can absolutely relate.

This tidy 40% ortholinear is [Blake]’s third build, not including macro keebs. It’s based on an open source case and plate from Thingiverse, and uses an Arduino Pro Micro running the popular QMK firmware to read input from 47 Gateron blues and a rotary encoder.

We particularly like the double rainbow ribbon cable wiring method [Blake] used to connect each row and column to the controller. It looks beautiful, yes, but it’s also a great way to maintain sanity while programming and troubleshooting.

Keyboard builds can look daunting, even at 40% of standard size. But as [Blake] discovered, there are some really good guides out there with fantastic tips for hand-wiring in small spaces. And now there is another well-written guide with clear pictures to point to.

Looking to split from the standard rectangle form factor but don’t know what to go with? Divine your next clacker with this split keyboard finder.

Thanks for the tip, [jrdsgl]!

We have seen quite a few DIY joystick designs that use Hall effect sensors, but [Akaki]’s controller designs (YouTube video, embedded below) really make the most of 3D printing to avoid the need for any other type of fabrication. He’s been busy using them to enhance his Microsoft Flight Simulator 2020 experience, and shares not just his joystick design, but makes it a three-pack with designs for throttle and pedals as well.

Hall effect sensors output a voltage that varies in proportion to the presence of a magnetic field, which is typically provided by a nearby magnet. By mounting sensors and magnets in a way that varies the distance between them depending on how a control is moved, position can be sensed and communicated to a host computer. In [akaki]’s case, that communication is done with an Arduino Pro Micro (with ATmega32U4) whose built-in USB support allows it to be configured and recognized as a USB input device. The rest is just tweaking the physical layouts and getting spring or elastic tension right. You can see it all work in the video below.

Hall effect sensors have featured in DIY joystick builds, but for something as delightful as it is different, don’t miss this fantastic high-speed magnetic imager based on them.

The Arduino platform is one of the most versatile microcontroller boards available, coming in a wide variety of shapes and sizes perfect for everything from blinking a few LEDs to robotics to entire home automation systems. One of its more subtle features is the ability to use its serial libraries to handle keyboard and mouse duties. While this can be used for basic HID implementations, [Nathalis] takes it a step further by using a series of Arduinos as a KVM switch; although admittedly without the video and mouse functionality yet.

To start, an Arduino Uno accepts inputs from a keyboard which handles the incoming serial signals from the keyboard. From there, two Arduino Pro Micros are attached in parallel and receive signals from the Uno to send to their respective computers. The scroll lock key, which doesn’t do much of anything in modern times except upset Excel spreadsheeting, is the toggle switch between the two outputs. Everything is standard USB HID, so it should be compatible with pretty much everything out there. All of the source code and schematics are available in the project’s repository for anyone who wants to play along at home.

Using an Arduino to emulate a USB input device doesn’t have to be all work and no play, the same basic concept can also be used to build custom gaming controllers.

Sometimes you might want to browse your favorite social media site while eating a sandwitch, or throwing darts, or fending off an attacker with a sword. You know, normal things that might occupy only one of your hands. If you’ve ever found yourself in such a situation, then this custom Reddit keyboard could be for you.

Built by [jangxx], this little board is about as simple as it gets. Even if you aren’t looking for a way to browse /r/cooking while practicing your single-handed egg cracking technique, the same principles could be used to quickly throw together a macro keyboard for whatever your particular needs might be.

Inside the 3D printed enclosure is nothing more exotic than an Arduino Pro Micro and five Cherry MX Red switches. The switches have been wired directly to the GPIO pins on the Arduino, and a simple Sketch takes care of the rest. [jangxx] has written the code in such a way that you can easily define the mapping of USB HID keys to physical switches right at the top of the file, making it easy to reuse for your own purposes.

As simple as this project is, we really like the trouble that [jangxx] went through on the 3D printed key caps. The white up and down arrows allow you to navigate through the posts, and the center key selects the one you want to view. Since it’s for Reddit, naturally the red and blue buttons for rapid voting. When you want to go back to the list of posts, just hit the center button again.

Back in 2011 we saw a dedicated Reddit voting peripheral, but we think the addition of simple navigation keys makes this project a bit more compelling. Incidentally, if you can think of any other reason you might want a one-handed keyboard for browsing Reddit…we definitely don’t want to hear about it.

When [easyjo] picked up this late ’80s Marconi mil-spec keyboard for cheap, he knew it wouldn’t be easy to convert it to USB — just that it would be worth it. Spoiler alert: those LEDs aren’t a mod, they’re native. They get their interesting shape from the key traces, which are in the four corners.

Despite having way-cool buttons such as WPNS HOLD, and the fact that Control is on the home row where it belongs, this keyboard does not look fun to type on at all for any length of time. Of course, the point of this keyboard is not comfort, but a reliable input device that keeps out dust, sweat, liquids, and the enemy.

This is probably why the controller is embedded into the underside of the key switch PCB instead of living on its own board.  [easyjo] tried to analyze the signals from the existing 26-pin connector, but it didn’t work out.

So once he was able to decode the matrix, he removed the controller chip and wired the rows and columns directly to an Arduino Leonardo. Fortunately, the LEDs were just a matter of powering their columns from the front side of the board.

The availability of certain kinds of military surplus can make for really interesting modernization projects, like adding POTS to a field telephone.

Via r/duino

You’ve (probably) got four limbs, so why are you only using half of them when you’re working on the computer? Just because your toes don’t have the dexterity to type (again, probably) doesn’t mean your feet should get to just sit there doing nothing all day. In a recent project, [MacCraiger] shows you just how easy it can be to put some functionality under foot by building a pair of media control stomp switches.

Crimp pin connectors grant +50 professionalism.

If the devices pictured above look a lot like guitar effects, that’s because they share a lot of parts. [MacCraiger] used the same sort of switch and aluminum case that you might see on a pedal board, as he figured they’d be better suited to a lifetime of being stepped on than something he 3D printed.

Up on the desk, and this time in a printed case, is the Arduino Leonardo that they connect to. The wiring for this project is very straightforward, with the switches connected directly to the GPIO pins. From there, the Arduino firmware emulates a USB Human Interface Device and fires off the appropriate media control keystrokes to skip to the next track or pause playback depending on which switch has been engaged.

This hardware isn’t exactly breaking any new ground here, but we did like how [MacCraiger] used standard 3.5 mm audio cable and the associated jacks to connect everything up. It’s obviously on-theme for what’s essentially a music project, but more importantly, gives the whole thing a very professional look. Definitely a tip to mentally file away for the future.

For the more accomplished toe-tapper, our very own [Kristina Panos] recently recently took us through the construction of her macro slinging footstool. Between these two examples of bespoke peripherals, you should have everything you need to create your own custom input devices. We suppose you could even make one that’s hand operated if you’re into that sort of thing.

[Giovanni Bernardo] has a very important job – managing the audio for several Christmas events. Desiring a simple and effective control interface, he designed a dedicated media keyboard to run the show.

The project began with an Arduino Leonardo, commonly used in projects that aim to create a USB Human Interface Device. [Giovanni] then installed the HID-Project library from [Nicohood]. This was used to enable the device to emulate media buttons typically found on keyboards, something the standard Arduino HID libraries were unable to do. It’s a useful tool, and one that can be implemented on even standard Arduino Unos when used in combination with the HoodLoader2 bootloader.

For ease of use and a little bit of cool factor, arcade buttons were used for the media functions. Simple to wire up, cheap, and with a great tactile feel, they’re a popular choice for fun human interface projects. It’s all wrapped up in a neat plastic box with Dymo labels outlining the functions. It’s a neat and tidy build that should make running the Christmas show a cinch!

Considering their hardware specification, graphing calculators surely feel like an anachronism in 2019. There are plenty of apps and other software available for that nowadays, and despite all preaching by our teachers, we actually do carry calculators with us every day. On the other hand, never underestimate the power of muscle memory when using physical knobs and buttons instead of touch screen or mouse input. [epostkastl] combined the best of both worlds and turned his broken HP-48 into a Bluetooth LE keyboard to get the real feel with its emulated counterpart.

Initially implemented as USB device, [epostkastl] opted for a wireless version this time, and connected an nRF52 based Adafruit Feather board to the HP-48’s conveniently exposed button matrix pins. For the software emulation side, he uses the Emu48, an open source HP calculator emulator for Windows and Android. The great thing about Emu84 is that it supports fully customizable mappings of regular keyboard events to the emulated buttons, so you can easily map, say, the cosine button to the [C] key. The rest is straight forward: scanning the button matrix detects button presses, maps them to a key event, and sends it as a BLE HID event to the receiving side running Emu84.

As this turns [epostkastl]’s HP-48 essentially into a regular wireless keyboard in a compact package — albeit with a layout that outshines every QWERTY vs Dvorak debate. It can of course also find alternative use cases, for examples as media center remote control, or a shortcut keyboard. After all, we’ve seen the latter one built as stomp boxes and from finger training devices before, so why not a calculator?

Many people enjoy playing flight simulators or making the occasional orbit in Kerbal Space Program, but most are stuck controlling the onscreen action with nothing more exotic than a keyboard and mouse. A nice compromise for those that don’t have the space (or NASA-sized budget) to build a full simulator cockpit is a USB “button box” that you can plug in whenever you need a couple dozen extra knobs, switches, and lights.

If you’ve been considering building one for yourself, this incredible build by [nexprime] should prove quite inspirational. Now at this point, a box of buttons hooked up to a microcontroller isn’t exactly newsworthy. But there are a few features that [nexprime] packed in which we think make this particular build worth taking a closer look at.

For one, the powder coated 8.5” x 10” enclosure is absolutely gorgeous. The console itself was purchased from a company called Hammond Manufacturing, but of course it still took some work to turn it into the object you’re currently drooling over. A CNC machine was used to accurately cut out all the necessary openings, and the labels were laser etched into the powder coat.

But not all the labels. One of the things we like best about this build is that [nexprime] thought ahead and didn’t just design it for one game. Many of the labels are printed on strips of paper which slide into translucent plastic channels built into the front of the box. Not only does this allow you to change out the overlays for different games, but the paper labels look fantastic when lit with the LED strips placed behind the channels.

Internally, [nexprime] used a SparkFun Pro Micro paired with a SX1509 I/O expander. The electronics are all housed on professionally manufactured PCBs, which gives the final build an incredibly neat look despite packing in 68 separate inputs for your gaming pleasure. On the software side this box appears as a normal USB game controller, albeit one with a crazy number of buttons.

If this build doesn’t have enough switches and buttons for you, don’t worry. This Kerbal Space Program cockpit has banks of switches below and above the player, so one can more realistically scramble for the correct onet to flip when things start going sideways. On the other hand, we’ve seen slightly less intense builds if you’re not quite ready to take out a loan just to get into orbit.

In the era of touch screens and capacitive buttons, we’d be lying if we said we didn’t have the occasional pang of nostalgia for the good old days when interfacing with devices had a bit more heft to it. The physical clunk and snap of switches never seems to get old, and while you can always pick up a mechanical keyboard for your computer if you want to hear that beautiful staccato sound while firing off your angry Tweets, there’s a definite dearth of mechanical interface devices otherwise.

[Jeremy Cook] decided to take matters into his own hands (literally and figuratively) by designing his own multipurpose USB rotary input device. It’s not a replacement for the mouse or keyboard, but a third pillar of the desktop which offers a unique way of controlling software. It’s naturally suited to controlling things like volume or any other variable which would benefit from some fine tuning, but as demonstrated in the video after the break even has some gaming applications. No doubt the good readers of Hackaday could think of even more potential applications for a gadget like this.

The device is built around the diminutive Arduino-compatible PICO board by MellBell, which features a ATmega32u4 and native USB. This allowed him to very rapidly spin up a USB Human Interface Device (HID) with minimal headaches, all he had to do was hang his buttons and rotary encoder on the PICO’s digital pins. To that end, he [Jeremy] used the fantastic I2C rotary encoder designed by [fattore.saimon], which readers may remember as a finalist in the Open Hardware Design Challenge phase of the 2018 Hackaday Prize. He also added a NeoPixel ring around the encoder to use for some visual feedback and because, well, it just looks cool.

Since all of the core components are digital, there’s not a whole lot required in the way of wiring or passive components. This let [Jeremy] put the whole thing together on a piece of perfboard, freeing him up to spend time designing the 3D printed enclosure complete with translucent lid so he can see the NeoPixel blinkenlights. He got the tolerances tight enough that the whole device can be neatly press-fit together, and even thought to add holes in the bottom of the case so he could push the perfboard back out if he needed to down the line.

[Jeremy] spends a good chunk of the video going over the software setup and development of the firmware, and details some of the nuances he had to wrap his head around when working with the I2C encoder. He also explains the math involved in getting his encoder to emulate a mouse cursor moving in a circle, which he thinks could be useful when emulating games that originally used an encoder such as Tempest or Pong.

We’ve seen similar USB “knobs” in the past for controlling volume, but the additional inputs that [Jeremy] built into his version definitely makes it a bit more practical. Of course we’re suckers for interesting USB input devices to begin with.

  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook