Joy-Con Mod Gives Nintendo Switch Touchpad Control

While Valve’s Steam Controller ultimately ended up being a commercial flop, most users agreed its use of touch-sensitive pads in place of traditional analog joysticks or digital directional buttons was at least a concept worth exploring. Those same touchpad aficionados will likely be very interested in this modification by [Matteo Pisani], which replaces the analog joystick on a Nintendo Switch Joy-Con with a capacitive touch sensor.

As [Matteo] explains in his detailed write-up, the initial inspiration for this project was to create a permanent solution to joystick fatigue and drifting issues. He reasoned that if he removed the physical joystick completely, there would be no way for it to fail in the future. We’re not sure how many people would have taken the concept this far, but you can’t argue with the logic.

The original joystick is a fairly straightforward device, comprised of two analog potentiometers and a digital button. It’s connected to the Joy-Con’s main PCB with a 0.5 mm pitch flexible cable, so the first step for [Matteo] was to spin up a breakout for the cable in KiCad to make the development process a bit easier.

The board design eventually evolved to hold an Arduino Pro Mini, a digital potentiometer, and a connector for the circular touchpad. The Arduino communicates with both devices over I2C, and translates the high resolution digital output of the touch controller into an analog signal within the expected ranges of the original joystick. [Matteo] says he still has to implement the stick’s digital push button, but thanks to an impressive 63 levels of pressure sensitivity on the pad, that shouldn’t be a problem.

Now that he knows the concept works, the next step for [Matteo] is to clean it up a bit. He’s already working on a much smaller PCB that should be able to fit inside the Joy-Con, and we’re very interested in seeing the final product.

We’ve seen several interesting Joy-Con hacks since the Switch hit the market, including a somewhat less intense joystick swap. Between the Joy-Con and the legendary Wii Remote, Nintendo certainly seems to have a knack for creating input devices that catch the imagination of gamers and tinkerers alike.

Continue reading “Joy-Con Mod Gives Nintendo Switch Touchpad Control”

Reverse Engineering A Saab’s In-Dash Display

For [Leigh Oliver], there’s something undeniably appealing about the green on black instrumentation of the 2003 Saab 9-3 Gen2. Perhaps it’s because the Infotainment Control Module 2 (ICM2) screen brings a bit of that classic Matrix vibe to the daily commute. Whatever the reason, it seemed the display deserved better than to be stuck showing the nearly 20 year old stock user interface. Luckily, you can control it via I2C.

Though as you might expect, that fact wasn’t obvious at first. [Leigh] had to start by taking the ICM2 apart and reverse engineering the display board. With a multimeter and high resolution photographs of both sides of the PCB, all of the traces were mapped out and recreated in KiCAD. This might not have been strictly necessary, but it did serve as good practice for using KiCAD; a worthwhile tip for anyone else looking to build practical experience creating schematics.

With everything mapped out, [Leigh] was able to connect a BusPirate V3 up to the board and pretty quickly determine it was using I2C to control the display. As far as figuring out how to repurpose existing displays goes, this was perhaps the best possible scenario. It even allowed for creating a display library based on Adafruit_GFX which offers graphical capabilities far beyond what the ICM2 module itself is capable of.

Even with so much progress made, this project is really just getting started. [Leigh] has managed to put some impressive imagery on the black and green Saab display, but the hardware side of things is still being worked on. For example, there’s some hope that an I2C multiplexer would allow the display to easily and quickly be switched between “stock” mode and whatever enhanced version comes about thanks to the new libraries and an ESP8266 hiding behind the dashboard.

If you don’t have a sufficiently vintage Saab to take advantage of this project, don’t worry. Tapping into the OBD port with an OLED display can get you similar results on a wide range of vehicles.

DJ Hero Controller Gets A New Gig

Fans of the Guitar Hero etc. franchise may be interested to hear about Spin Rhythm XD, a similar rhythm game which uses a jog wheel for much of the chase-down-the-notes action. Although it can be played with a keyboard and mouse, the ideal input is a professional DJ MIDI controller — imagine two capacitive “turntables” the size of 45s, and a lot of buttons, knobs, and sliders.

Like most of us, [Dave] doesn’t have one of those. But what he does have is an old DJ Hero controller made for the Wii. It’s a lot like the big boy version of a DJ MIDI controller as far as the inputs go, except that the turntable isn’t capacitive.

Since the Wii brain is just sending I²C over a funny-looking connector, [Dave] was able to replace the Wiimote with a Teensy LC, and write new firmware for the controller inputs using a breakout board built for another project.

[Dave] tried to use as many of the DJ Hero controller’s inputs as he could, so in addition to mapping the wheel and wheel buttons to the main game controls, he wired up the joystick, effects knob, and buttons to navigate through the game menus. The game’s designers had the forethought to map these to keyboard keys, so it was pretty easy to do. He can even use dual turntables and mix or isolate them with the crossfader. Slide past the break to check out the build video, and stick around for a full-length song demo.

Are these games a little too frantic for you? Turn those ‘tables into an Etch-A-Sketch instead.

Continue reading “DJ Hero Controller Gets A New Gig”

Slice Through Your Problems With A Shukran

We’d wager most hackers are familiar with FTDI as the manufacturer of the gold standard USB-UART interfaces. Before parts like the ultra cheap CH340 and CP2102 became common, if you needed to turn a USB cable into a TTL UART device, “an FTDI” (probably an FT232RL) was the way to make that happen. But some of the parts in the FT232* family are capable of much more. Wanting to get at more than a UART, [linker3000] designed the Shukran to unlock the full potential of the FT232H.

The FT232H is interesting because it’s an exceptionally general purpose interface device. Depending on configuration it can turn USB into UART, JTAG, SPI, I2C, and GPIO. Want to prototype the driver for a new sensor? Why bother flashing your Teensy when you can drive it directly from the development machine with an FT232H and the appropriate libraries?

The Shukran is actually a breakout for the “CJMCU FT232H” module available from many fine internet retailers. This board is a breakout that exposes a USB-A connecter on one side and standard 0.1″ headers on the other, with a QFN FT232H and all the passives in the middle. But bare 0.1″ headers (in a square!) require either further breadboarding or a nest of jumper wires to be useful. Enter the Shukran. In this arrangement, the CJMCU board is cheap and handles the SMT components, and the Shukran is easy to assemble and makes it simple to use.

The Shukran gives you LEDs, buttons and switches, and a bunch of pull up resistors (for instance, for I2C) on nicely grouped and labeled headers. But most importantly it provides a fused power supply. Ever killed the USB controller in your computer because you forgot to inline a sacrificial USB hub? This fuse should take care of that risk. If you’re interested in building one of these handy tools, sources and detailed BOM as well as usage instructions are available in the GitHub repo linked at the top.

Swapping The ROMs In Mini Arcade Cabinets

You’ve probably seen a few of these miniature arcade games online or in big box retailers: for $20 USD or so you get scaled-down version of a classic arcade cabinet, perfect for a desk toy or to throw up on a shelf as part of your gaming collection. Like any good Hackaday reader, you were probably curious about what makes them tick. Thanks to [wrongbaud], we don’t have to wonder anymore.

Over the course of several blog posts, [wrongbaud] walks readers through the hardware and software used in a few of these miniature games. For example, the Rampage cabinet is using a so-called “NES on a Chip” along with a SPI flash chip to hold the ROM, while Mortal Kombat is using a Genesis emulation solution and parallel flash. It wouldn’t be interesting if they didn’t throw you a few curves now and again, right?

But these are more than simple teardowns. Once [wrongbaud] gives an overview of the hardware, the next step is reading the respective flash storage and trying to make sense of the dumped data. These sort of games generally reuse the hardware among a number of titles, so by isolating where the game ROM is and replacing it, they can be made to play other games without hardware modification. Here, this capability is demonstrated by replacing the ROM data for Rampage with Yoshi’s Cookie. Naturally it’s one of those things that’s easier said than done, but it’s an interesting proof of concept.

The Mortal Kombat cabinet is a newer addition to the collection, so [wrongbaud] hasn’t progressed quite as far with that one. The parallel flash chip has been dumped with the help of an ESP32 and a MCP23017 I/O expander, and some Genesis ROM headers are identifiable in the data, but there’s still some sifting to be done before the firmware structure can be fully understood.

Even if you’re not in the market for a diminutive arcade experience, the information that [wrongbaud] has collected here is really phenomenal. From understanding protocols such as I2C and SPI to navigating firmware dumps with a hex editor, these posts are an invaluable resource for anyone looking to get started with reverse engineering.

Turning OLEDs And Acrylic Into Faux Nixie Tubes

Love ’em or hate ’em, Nixies and the retro clocks they adorn are here to stay. At least until the world’s stock of surplus Soviet tubes is finally depleted, that is. The glow discharge tubes were last mass manufactured in the 1980s, and while they’re not too hard to get a hold of yet, they will be eventually. And what better way to get ready for that dreaded day than by rolling your own OLED faux Nixie tubes?

Granted, [Derek]’s faux Nixies, appropriately dubbed “Fixies,” require just a touch of willing suspension of disbelief. We’ve never see Nixies with tiny jam jars as envelopes, so that’s probably the first giveaway. But looking past that, the innards of these fake displays do a pretty convincing job of imitating the texture of the real thing.

The numbers themselves are displayed on a 128×64 white OLED display using a Nixie-like True Type font. An orange acrylic filter in front of the display gives it that warm amber Nixie glow, with laser etchings mimicking both the fine hexagonal anode grid and the ghostly cathodes of the non-illuminated numerals. The tubes looked convincing enough that a clock was in order, and after sorting through an I2C bottleneck with the help of a multiplexer, [Derek] had a pretty decent faux-Nixie clock, complete with a solenoid-actuated mechanical gong. The double-digit display for the seconds will no doubt cause some consternation among Nixie purists, but that’s probably part of the fun.

Of course, just because Nixies aren’t being mass-produced today doesn’t mean you can’t get new ones. You just have to be willing to pay for them, and [Dalibor Farný] will gladly set you up with his handmade artisanal Nixies, or even a clock kit using them.

Continue reading “Turning OLEDs And Acrylic Into Faux Nixie Tubes”

Time Sync Through Your VGA Connector

While it might be in its twilight years, the venerable VGA video connector conceals a versatile interface that  can still provide the experimenter with the opportunity for a variety of hacks. We’ve not seen anything quite like [flok]’s one, in which he uses the VGA interface to insert timing information from which an NTPd instance gets its reference.

If this seems counter-intuitive because a VGA interface is an analogue output rather than a digital input, then you are correct to smell a rat. And he comes clean in his first sentence, as he’s not using the VGA lines themselves but the I2C interface that is a feature of all but the most basic of VGA cards. This is the means by which a plug-and-play operating system can identify a monitor’s capabilities, but there’s little to stop it being used for other purposes. In this case an Arduino fed by a 1-pulse-per-second timing signal from a temperature compensated crystal oscillator provides the I2C peripheral which is polled by NTPd.

This project should be of interest to any tinkerer because of its invaluable information on identifying and using the I2C interface on a VGA socket. So if you’ve used your VGA card as an SDR you might find it interesting, but hurry or you could have missed the boat entirely.

VGA plug image: Swift.Hg [CC BY-SA 3.0]