DIY SparkFun Pro Micro with USB-A Port

Lately I’ve been working on a project that will use an Arduino to translate signals from a wireless receiver into USB HID inputs for my computer. I had the perfect microcontroller picked out too: the SparkFun Pro Micro, which uses the Arduino-compatible ATmega32U4 and has enough I/O pins for my project and then some. There’s just one problem – the Pro Micro doesn’t have a USB-A port to plug directly into a computer! Instead it has a micro USB-B port, and requires a short cable to connect it to a PC.

Luckily for me the Pro Micro, like many of SparkFun’s designs, is open source and licensed under Creative Commons Share-alike. So I decided to dive in and modify the design to create my own version of the Pro Micro with a USB-A port!

(more…)

Playing Spin Rhythm XD with a Modified DJ Hero Controller

A few weeks ago, a friend of mine introduced me to a new rhythm game. Unlike previous titles such as Guitar Hero or Rock Band that use multiple discrete buttons in order to match different notes, this game used a virtual wheel – an analog input to slide, spin, and tap along with the beat. To top it off the game featured an electronic music tracklist and was a blast to play.

The game is called Spin Rhythm XD, and it was designed to be played with a DJ MIDI controller. Having no such professional DJ-ing equipment handy I decided to do the next best thing: convert my old plastic Wii DJ Hero turntable into a controller for Spin Rhythm XD!

(more…)

Building McCree’s Belt Buckle from Overwatch

I decided to try my hand at building my own version of McCree’s belt buckle from Overwatch! I used references from the game in order to create a comprehensive digital model which I then 3D printed, smoothed, molded, cast, mounted to a buckle blank, painted, and weathered. Start to finish (and with lots of breaks in-between!), this entire process took me a little over three years to complete.

(more…)

DIY Platform 9 ¾ Sign from King’s Cross

When the story of Harry Potter first took the world by storm in 1997, readers were enamored by J.K. Rowling’s magical universe and the enchanting places within. The ordinary house at 4 Privet Drive in Little Whinging, where “the boy who lived” grew up with his horrible Aunt and Uncle (and their son, Dudley). The Leaky Cauldron, the grubby little pub that serves as the gateway to the fantastical shops and stalls of Diagon Alley. And, of course, the world’s most famous non-existent train platform: Platform Nine and Three-Quarters.

The fictional platform is located in a real muggle-inhabited location – King’s Cross station in northern London. Wizards and witches running at the wall between platforms 9 and 10 would instantly be transported to the mythical platform, where they would say farewell to their families and depart on the scarlet train to Hogwarts School of Witchcraft and Wizardry. Celebrating this connection to the world of Harry Potter, the employees at King’s Cross erected a real-life “Platform 9 ¾” sign in the terminal, which has since become a place of pilgrimage for fans the world ’round.

My sister is one of these many Harry Potter devotees, so this past Christmas I decided to build her her own replica of this iconic sign.

(more…)

FrameVis – Video Visualizer and Movie Barcode Generator

FrameVis is a Python script for creating visualizations from video frames, also known as “movie barcodes” due to their vertical striping. The script uses the OpenCV library to read from a video file, load frames into memory, and then stack them together to make a new image visualizing the entire film. The resulting visualizations are as fascinating as they are beautiful… you can see the flow of the color grading, the pacing of the editing, and if you know the film well enough you can even pick out certain scenes or even shots.

This script works on Windows, Mac, and Linux and is compatible with all OpenCV file types and codecs. You can download it on GitHub.

(more…)

Logitech C270 Webcam Mount for 2020 Extrusion

I have an old Logitech C270 webcam that I use in combination with OctoPrint to monitor my 3D printer. Since my printer doesn’t have its own enclosure, I made a simple camera “pole” out of some spare 2020 aluminum extrusion I had lying around and stuck the webcam on top. There’s just one problem – the webcam’s bracket wasn’t designed for the shape of the extrusion, and sometimes the vibrations from the printer occasionally knock the webcam off! So I decided to put my skills to work and design a 3D printed mount to bolt the webcam directly to the aluminum extrusion.

(more…)

DIY Aperture Science “Dihydrogen Monoxide” Water Bottle

Aperture Science (a.k.a Aperture Laboratories) is a fictional scientific research corporation, whose facility is the setting for the 2007 puzzle-platform video game Portal, as well as its 2011 sequel Portal 2. Aperture’s approach to scientific research is a little… strange, to put it mildly. They have a penchant for testing exotic materials, building maniacal robots, and creating wholesome musical interludes. And, apparently, coming up with long-winded names for storage containers.

The Aperture Science Handheld Dihydrogen Monoxide Containment Unit was a stainless steel water bottle created and sold by Valve Corporation and ThinkGeek for the release of Portal 2, circa 2011. The bottle came in both 40 oz black and 22 oz white variations, with decals for Aperture Laboratories and a disclaimer about the deadly nature of H₂O. Unfortunately it looks like they stopped selling these several years ago – the product page from the Valve store has vanished entirely, while the ThinkGeek product page has both bottles listed as “no longer available”.

I’m not so easily deterred, so I spent this past weekend building my own “Aperture Science Dihydrogen Monoxide Containment Unit” using a stainless steel water bottle and some custom made vinyl decals.

(more…)

Arduino XInput Library

Recently I’ve been playing around with building various alternative controller projects for games, typically using an Arduino-compatible microcontroller acting as an HID input device of some sort. The Arduino ecosystem makes it easy to set up these projects to act as either a Keyboard, a Mouse, a DirectInput Joystick, or a composite device that’s a combination of the above. Unfortunately back in 2005 DirectInput was supplanted by XInput with the release of the Xbox 360 controllers, and modern games have been weaning off of it ever since.

These days, many mainstream games barely support DirectInput at all. Games like Rocket League and Overwatch won’t even recognize a DirectInput joystick – you have to use XInput controller emulation software that can be tricky to set up and doesn’t work with every game.

Wouldn’t it be great if there was a simple, turnkey way to make your Arduino emulate an Xbox controller and work out of the box with these newer games?

(more…)