Patience Beats Rage-Quit In Shattered Xbox Controller Repair

There are negative-one hacks to this project. Someone lost at their game, lost their temper, then raged at their Xbox controller with some horsepower. The result is that [Taylor Burley] gets a free controller with a non-responsive joystick out of the deal, and since he had nothing to lose, he decided to heat up the iron and bring the controller back to life.

The majority of the project is told in pictures and through the narration in the video below. In removing the joystick, [Taylor] opts for the technique of doping the connections with fresh solder (we assume containing lead for easier melting) before reaching for the desoldering wick. The diagnosis stage is brief because when the joystick lifts away, the PCB falls apart into two separate pieces! The next step was to glue the two halves together with cyanoacrylate to get into the nooks and crannies, then epoxy to provide structure. Solder bridges were not going to jump that gap, so he used 30ga wire and attached it wherever he could scrape away some solder mask. Best of all, it worked when he reattached the joystick. Job well done.

Xbox controllers are not a scarce commodity, so people do not spend their idle hours fixing them, but not many people can claim experience. Maybe someday the stakes will be higher and he will have the courage to repair vintage electronics. We won’t rant on how things aren’t built to last, and how we don’t train people to fix things. Today, we want to focus on someone who used their time to repair and learn.

Continue reading “Patience Beats Rage-Quit In Shattered Xbox Controller Repair”

Code For Hackers

Mike and I were talking about two very similar clock projects we’d both built recently: they both use ESP8266 modules to get the time over WiFi and NTP, and they both failed. Mike’s failed because he was visiting relatives in a different timezone with different WiFi credentials, and mine failed because daylight savings time caught me off-guard. In both cases, we hard-coded stuff that could obviously change, but we drew vastly different conclusions.

Mike thought he’d solve his WiFi problem with a fallback to a captive portal, and maybe would have to figure out some web interface for configuring the timezone. A very clean, professional solution. Me? I’ve got good comments in the code, can find the UTC offset (or the WiFi creds) in a few minutes, and flash the new version up simply by fetching a USB cable, for something that happens twice a year. It’s hardly worth the trouble to cobble together a web interface.

There’s an XKCD for everything.

We’ve accidentally embodied a quandary that spans both the hardware and software worlds: should flexibility be exposed to the end-user or to the hacker who can peer under the hood or open up the source code? (And what if the end-user is the hacker?) What are the tradeoffs, in project complexity and in ease of use?

And in this, Mike is on the side of right and good, and I’m the heretic. I don’t always write my code to be extensible or re-usable. I sometimes write it to be quickly re-edited and patched whenever I need to. Is it full of magic numbers? Sure! But I know just where they are and how to change them. Heck, most are even well documented in their own header file. You could probably figure it out just about as fast. Would my father-in-law be able to tweak the timezone? Nope! But this ain’t his project anyway.

Dare to code for hackers! Don’t over-generalize or over-abstract. Less is more. Don’t be afraid to edit code. Tweak, compile, and re-flash when the situation changes. After all, that’s how you got the code there in the first place.

And although I’m on the wrong end of history, in this case I was right. You see, before daylight savings time could come around again, and I could have made use of that captive portal that I didn’t bother coding up anyway, my son entered first grade. Everything needs to be changed, from the hardware to the software. Will I code up the next version with flexible time regimes? As flexible as I need it to be, but not more.

Controlling A Broken Super Nintendo With MIDI

A Super Nintendo that has trouble showing sprites doesn’t make for a very good game system. As it turns out, Super Mario World is a lot less fun when the titular hero is invisible. So it’s no surprise that [jwotto] ended up tossing this partially functional SNES into the parts bin a few years back.

But he recently came up with a project that may actually benefit from its unusual graphical issues; turning the glitched console into a circuit bent video synthesizer. The system was already displaying corrupted visuals, so [jwotto] figured he’d just help things along by poking around inside and identifying pins that created interesting visual effects when shorted out.

Installing the new electronics into the SNES.

Once he mapped out the pins, he wired them all up to a transistor switching board that he’d come up with for a previous project. That would let an Arduino short out the pins on command while still keeping the microcontroller relatively isolated from the SNES. Then it was just a matter of writing some code that would fire off the transistors based on MIDI input.

The end result is a SNES that creates visual glitches along with the music, which [jwotto] can hook up to a projector when he does live shows. A particularly neat feature is that each game responds in its own way, so he can swap out the cartridge to show completely different visuals without having to change any of the MIDI sequencing.

A project like this serves as a nice introduction to both circuit bending and MIDI hacking for anyone looking to get their digital feet wet, and should pair nicely with the MIDI Game Boy Advance.

Continue reading “Controlling A Broken Super Nintendo With MIDI”

Plastic Prosthetics For Rubber Duckies

Will someone please think of the rubber duckies?!

For decades they’ve been reduced to a laughing stock: a caricature of waterfowl. Left without a leg to stand on, their only option is to float around in the tub. And they don’t even do that well, lacking the feet that Mother Nature gave them, they capsize when confronted with the slightest ripple. But no more!

Arise!

Due to the wonders of 3D printing, and painstaking design work by [Jan] from the Rubber Ducky Research Center, now you can print your own rubber ducky feet. We have the technology! Your ducks are no longer constrained to a life in the tub, but can roam free as nature intended. The video (embedded below) will certainly tug at your heartstrings.

OK, it’s a quick print and it made my son laugh.

The base and legs probably don’t fit your duck as-is, but it’s a simple matter to scale them up or down while slicing. (Picture me with calipers on the underside of a rubber ducky.) The legs were a tight press-fit into the body, so you might consider slimming them down a tiny bit when doing the scaling, but this probably depends on your printer tolerances.

It looks snazzy in gold-fleck PETG, and would probably work equally well for some more elaborate rubber duckies as well.

Continue reading “Plastic Prosthetics For Rubber Duckies”

Greeking Out With Arduinos

Learning a new language is hard work, but they say that the best way to learn something is to teach it. [Angeliki Beyko] is learning Greek, and what better way to teach than to build a vocabulary flash-card game from Arduinos, color screens, 1602 text screens, and arcade buttons? After the break, we have a video from the creator talking about how to play, the hardware she chose, and what to expect in the next version.

Pegboard holds most of the hardware except the color screens, which are finicky when it comes to their power source. The project is like someone raided our collective junk drawers and picked out the coolest bits to make a game. Around the perimeter are over one hundred NeoPixels to display the game progress and draw people like a midway game. Once invested, you select a category on the four colored arcade buttons by looking at the adjacent LCD screens’ titles. An onboard MP3 shield reads a pseudo-random Greek word and displays it on the top-right 1602 screen in English phonetics. After that, it is multiple choice with your options displaying in full-color on four TFT monitors. A correct choice awards you a point and moves to the next word, but any excuse to mash on arcade buttons is good enough for us.

[Angeliki] does something we see more often than before, she’s covering what she learned, struggled with, would do differently, and how she wants to improve. We think this is a vital sign that the hacker community is showcasing what we already knew; hackers love to share their knowledge and improve themselves.

Typing Greek with a modern keyboard will have you reaching for an alt-code table unless you make a shortcut keyboard, and if you learn Greek, maybe you can figure out what armor they wore to battle.

Continue reading “Greeking Out With Arduinos”

Parsing Math In Python

Programming computers used to be harder. Don’t get us wrong — today, people tend to solve harder problems with computers, but the fundamental act of programming is easier. We have high-level languages, toolkits, and even help from our operating systems. Most people never have to figure out how to directly read from a disk drive, deblock the data into records, and perform multiplication using nothing but shifts and adds. While that’s a good thing, sometimes it is good to study the basics. That was [gnebehay’s] thought when his university studies were too high level, so he decided to write an arithmetic expression parser in Python. It came out in about 100 lines of code.

Interpreting math expressions is one of those things that seems simple until you get into it. The first problem is correctly lexing the input — a term that means splitting into tokens. For a human, it seems simple that 5-3 is three tokens, {5, -, and 3} and that’s easy to figure out. But what about 5+-3? That’s also three tokens: {5,+,-3}. Tricky.

Continue reading “Parsing Math In Python”

Wooden Disc Player Translates Binary Back Into Text

[jbumstead] used MATLAB to convert the text messages into binary to be cut out of the disk.
[jbumstead] wanted to demonstrate the idea of information-storing devices such as LPs, CDs, and old hard drives. What he came up with lies directly at the intersection of art and technology: an intricately-built machine that plays beautiful collaged wooden disks. Much like the media that inspired the Wooden Disk Player, it uses a laser to read encoded data, which in this case is short bits of text like “Don’t Panic”.

These snippets are stored in binary and read by a laser and photodiode pair that looks for holes and not-holes in the disk. The message is then sent to an Arduino Nano, which translates it into English and scrolls the text on an LED matrix. For extra fun, the Nano plays a MIDI note every time it reads a 1, and you can see the laser reading the disk through a protective acrylic shield.

Though the end result is fantastic, [jbumstead] had plenty of issues along the way which are explored in the build video after the break. We love it when people show us their mistakes, because it happens to all of us and we shouldn’t ever let it tell us to stop hacking.

If anyone knows their way around lasers, it’s [jbumstead]. We loved playing their laser harp at Supercon!

Continue reading “Wooden Disc Player Translates Binary Back Into Text”