Magic Wand Learns Spells through Machine Learning and an IMU

Jennifer Wang likes to dress up for cosplay and she’s a Harry Potter fan. Her wizarding skills are technological rather than magical but to the casual observer she’s managed to blur those lines. Having a lot of experience with different sensors, she decided to fuse all of this together to make a magic wand. The wand contains an inertial measurement unit (IMU) so it can detect gestures. Instead of hardcoding everything [Jennifer] used machine learning and presented her results at the Hackaday Superconference. Didn’t make it to Supercon? No worries, you can watch her talk on building IMU-based gesture recognition below, and grab the code from GitHub.

Naturally, we enjoyed seeing the technology parts of her project, and this is a great primer on applying machine learning to sensor data. But what we thought was really insightful was the discussions about the entire design lifecycle. Asking questions to scope the design space such as how much money can you spend, who will use the device, and where you will use it are often things we subconsciously answer but don’t make explicit. Failing to answer these questions at all increases the risk your project will fail or, at least, not be as successful as it could have been.

Continue reading “Magic Wand Learns Spells through Machine Learning and an IMU”

Weaponized Networked Printing is Now a Thing

It’s a fairly safe bet that a Venn diagram of Hackaday readers and those who closely follow the careers of YouTube megastars doesn’t have a whole lot of overlap, so you’re perhaps blissfully unaware of the man who calls himself PewDiePie. As such, you might not know that a battle between himself and another YouTube channel which uploads Bollywood music videos has reached such a fever pitch that his fans have resorted to guerrilla hacking to try to sway public opinion towards their side. It’s perhaps not the dystopian future we imagined, but it just might be the one we deserve.

To briefly summarize the situation, a hacker known only by the handle TheHackerGiraffe decided to help out Dear Leader by launching an automated attack against 50,000 Internet connected printers. When the hack was successful, the printer would spit out a page of digital propaganda (complete with fist ASCII art) that urged the recipient to go on YouTube and pledge their support for PewDiePie. There’s some debate about how many of the printers TheHackerGiraffe targeted actually delivered their payload, but judging by reactions throughout social media, it was enough to get the message out.

While the stunt itself may have come as a surprise, the methodology wasn’t. In fact, the only surprising element to the security researchers who’ve weighed in on the situation is that this hasn’t happened more often. It certainly isn’t the first time somebody’s done it, but the fact that this time its been connected to such a high profile Internet celebrity is putting more eyes on the problem then there have been in the past. Now that the proverbial cat is out of the bag, there are even websites springing up which claim to be purveyors of “Printer Advertising”. Odds are good this won’t be the last time somebody’s printer starts running off more than TPS reports.

We here at Hackaday don’t have much interest in the battle for YouTube supremacy. We’re just pulling for Dave Jones’s EEVBlog channel to join AvE in breaking a million subscribers. But we’re very interested in the technology which made this attack possible, how likely it is we’re going to see more people exploit it, and what are we supposed to do now that even our own printers can be turned against us?

Continue reading “Weaponized Networked Printing is Now a Thing”

Editing GameCube Memory With A Raspberry Pi

[James] has been working with GameCubes, emulators, and Animal Crossing for a while now, and while emulators are sufficient, he’d like to play on real hardware. This means he needs to write to a GameCube memory card. While there are a few options to do this, they either require a Wii or hardware that hasn’t been made in a decade. The obvious solution to this problem is to reverse engineer the GameCube memory card to read and write the memory with a Raspberry Pi.

There’s an incredible amount of unofficial documentation for every console, and [James] stumbled upon a GC-Forever forum post that describes the electrical signals inside the GameCube memory card. There’s your standard compliment of power and ground pads, along with a DI, DO, CS, Clk, and an INT pin. [James] broke out the magnet wire and soldered up a pin header to these cards. Data was then captured with a Salae logic analyzer, and lo and behold, it looked like a standard SPI protocol.

With the low-level protocol worked out, [James] checked out the Yet Another GameCube Documentation to get the main functions allowed through the SPI bus. The ‘read block’, for instance, starts off with 0x52 and an address offset. A little bit of Python on a Raspberry Pi meant [James] could read and write the entire GameCube memory card. Right now the code is a little rough, but all the work is available should you want to edit your Animal Crossing save with a Raspberry Pi.

This work follows [James]’ earlier work on getting into the debug menu of Animal Crossing, allowing him to add items to his inventory. With this latest advancement, it’s only a matter of time before we plug Raspberry Pis directly into a GameCube.

Putting That Airplane On The Map – Live And With Python

Mankind’s fascination with airplanes is unbroken. Whether you’re outside with your camera, getting an actual glimpse of the aircraft, or sitting at home with your RTL-SDR dongle and have a look at them from a distance, tracking them is a fun pastime activity. Provided, of course, that you are living close by an airport or in an area with high enough air traffic. If not, well there’s always real-time tracking online to fall back to, and as [geomatics] will show you, you can build your own live flight tracking system with a few lines of Python.

As it’s usually the case with Python, a lot of functionality is implemented and readily available from external modules, which lets you focus on the actual application without having to worry too much about the details. Similarly, plenty of data can be requested from all sorts of publicly accessible APIs nowadays. If you are looking for a simple-enough example to get into both subjects with a real-world application, [geomatics]’ flight tracker uses cartopy to create a map using Open Street Map data, and retrieves the flight information from ADS-B Exchange‘s public API.

We have seen ADS-B Exchange mentioned a few times before, for example with this ESP8266 based plane spotter and its successor. And if you’re more curious about the air traffic in your direct surroundings, it’s probably time for a DVB USB dongle.

Meat-Seeking Raspberry Pi Leads you to Flavortown

[Patrick McDavid] and his wife had a legitimate work-related reason for writing some Python code that would pull the exact latitude and longitude of the individual locations within a national retain chain from Google’s Geocoding API. But don’t worry about that part of the story. What’s important now is that this simple concept was then expanded into a pocket-sized device that will lead the holder to the nearest White Castle or Five Guys location.

The device, which [Patrick] lovingly referrers to as the “Cheeseburger Compass”, uses a Raspberry Pi 3, an Adafruit 16×2 LCD with keypad, a GPS module, and the requisite battery and charger circuit to make it mobile. With the coordinates for the various places one can obtain glorious artery clogging meat circles loaded up, the device will give the user the cardinal direction and current distance from the nearest location of the currently selected chain.

[Patrick] has published the source code for this meat-seeking gadget on GitHub, but notes that most of it is just piecing together existing libraries and tools. As with many Python projects, it turns out there’s already a popular library to do whatever it is you were trying to do manually, so his early attempts at calculating distances and bearings were ultimately replaced with turn-key solutions. Though he did come up with a quick piece of code that would convert a compass heading in degrees to a cardinal direction that he couldn’t find a better solution for. Maybe he should make it a library…

Sadly the original Cheeseburger Compass got destroyed from being carried around so much, but at least it died doing what it loved. [Patrick] says a second version of the device would likely switch over to a microcontroller rather than the full Raspberry Pi experience, as it would make the device much smaller and greatly improve on the roughly two hour battery life.

This project reminds us of the various geocache devices we’ve covered in the past, but with the notable addition of hot sizzling meat. Talk about improving on a good thing.

Vintage Rotary Phone Turned Virtual Assistant

Like many of us, [Zoltan Toth-Czifra] has completely embraced 21st century living. His home is awash in smart gadgets and dodads, from color changing light bulbs to Internet-connected cameras. But he’s also got a soft spot for the look and feel of vintage hardware, like the rotary phone he keeps kicking around to remind him of the old days. He recently decided to bridge these two worlds by turning the rotary phone into a modern voice controlled assistant.

The first piece of the puzzle was getting the old school phone connected to something a bit more modern, namely a Raspberry Pi. He didn’t want to hack the vintage phone apart, so he picked up a Grandstream HT801, an adapter that’s used to convert analog telephones to VoIP. [Zoltan] says this model specifically fit the bill as it had a function that allows you to configure a number to dial as soon the phone is lifted off the hook. This allows the user to just pick up the phone and start talking without having to dial anything manually. If you’re looking to pull off a similar setup, you should check to make sure the adapter has this function before pulling the trigger.

With the rotary phone now talking a more modern protocol, [Zoltan] just needed to get the Raspberry Pi side sorted out. He installed a SIP server so it could communicate with the HT801 adapter, and then got to work putting together his virtual assistant. Rather than plug into an existing system, he rolled his own by combining open source packages for controlling his various smart devices with the aptly named SpeechRecognition library for Python.

Right now he’s only programmed a few commands that his system can respond to for controlling his lights and music, but mentions that the system is modular enough that he can add new functions easily. He’s put the source for his virtual assistant framework up on GitHub, which he notes was written in less than 200 lines of original code by virtue of utilizing existing libraries for a lot of the heavy lifting. Open source is a beautiful thing.

In the past we’ve seen rotary phones go mobile thanks to GSM upgrades and dragged kicking and screaming onto the modern phone network with a built-in Raspberry Pi. But we think there’s something especially appealing about the approach [Zoltan] took which preserves the phone’s original hardware.

Continue reading “Vintage Rotary Phone Turned Virtual Assistant”

Launchpad MIDI Controller Put to Work with Python

For Hackaday readers who might not spend their free time spinning electronic beats at raves, the Launchpad by Novation is a popular peripheral for creating digital music with tools such as Ableton Live. It’s 8×8 grid of RGB LED backlit buttons are used to trigger different beats and clips by sending MIDI commands to the computer over USB. While not a strict requirement for performing digital music, it also helps that it looks like you’re flying a spaceship when using it.

It’s definitely a slick piece of gear, but the limited stock functionality means you’re unlikely to see one outside of the Beat Laboratory. Though that might change soon thanks to LPHK, created by [Ella Jameson]. She’s created a program in Python that allows you to use the Novation Launchpad as a general purpose input device. But rather than taking the easy way out by just turning the hardware into a USB HID device or something along those lines, LPHK implements an impressive set of features including its own internal scripting language.

In the video after the break, [Ella] walks us through some basic use cases, such as launching programs or controlling the system volume with individual buttons. LPKH has a GUI which provides a virtual representation of the Launchpad, and allows configuring each button’s color and function as well as saving and loading complete layouts.

For more advanced functionality, LPHK utilizes a scripting language that was inspired by the Hak5 USB Rubber Ducky. Scripts are written with plain English commands and very simple syntax, meaning you don’t need to have any programming experience to create your own functions. There’s also a script scheduling system with visual feedback right on the board: if a button is pulsing red it means it has a script waiting for its turn to execute. When the key is rapidly flashing the script is actively running. A second tap of the button will either remove it from the queue or kill the running script, depending on what the status was when you hit it.

[Ella] makes it clear this software is still a work in progress; it’s not as polished as she’d like and still has bugs, but it’s definitely functional for anyone who’s looking to wring a bit more functionality out of their $150 Launchpad. She’s actively looking for beta testers and feedback, so if you’ve already got one of these boards give it a shot and let her know what you think.

In the past we’ve seen hackers fiddling with the open source API Novation released for their Launchpad controllers, but overall there hasn’t been a lot of work done with these devices. Perhaps that will soon change with powerful software like this in development.

Continue reading “Launchpad MIDI Controller Put to Work with Python”