Wemo Smart Plug Gets Brain Transplant

Like many modern smart home gadgets, Belkin’s Wemo brand of smart plugs has a tendency to phone home every time you turn on a lamp. [Gigawatts] wasn’t having it, so they figured out how to flash the device with OpenWRT and replicated its original functionality with a web interface. Unfortunately this stopped working after awhile, and rather than trying to diagnose the issue, it seemed the time would be better spent simplifying the whole thing.

As [Gigawatts] explains, there are actually two separate boards inside the Wemo plug. One holds the relay to do the high-voltage switching, and the other provides the control. They are linked with a three wire connector, making it exceptionally simple to swap out the original controller for something different. The connector supplies 5 V and ground, all you’ve got to do is pull the third wire high to flick the switch.

While the ESP8266 probably would have been the first choice for many a Hackaday reader, [Gigawatts] actually went with the Moteino, a low-power Arduino compatible board with integrated RFM69 transceiver. With an LED to indicate status and a few lines of code tweaked, the Moteino got this once WiFi-only smart plug speaking a new language.

There’s some debate over how effective smart plugs are from an energy efficiency standpoint, but even if this reborn Wemo doesn’t help [Gigawatts] save much power, at least it won’t be blabbing about everything to a third-party.

Open Hardware GPS Tracker Works On Your Terms

These days, there’s plenty of options if you want to get a GPS tracker for your vehicle. Unfortunately, they come with the sort of baggage that’s becoming increasingly common with consumer tech: subscription fees, third-party snooping, and a sneaking suspicion that you’re more commodity than customer. So [Viktor Takacs] decided to take things into his own hands and create an open GPS tracker designed for privacy minded hackers.

As [Viktor] didn’t want to reinvent the wheel, his design leverages several off-the-shelf modules. The core of the tracker is the ESP32, which gives him plenty of computational power while still keeping energy consumption within reasonable levels. There’s also a NEO-6M GPS receiver which works at the same 3.3 V level as the ESP32, allowing the microcontroller to read the NMEA sentences without a level shifter. He decided to go with the low-cost SIM800L GSM modem, but as it only works on 2G networks, provisions have been made in the board design to swap it out for a more modern module should you desire.

For the code to glue it all together, [Viktor] pulled in nearly a dozen open source libraries to create a feature-complete firmware that uses MQTT to create a database of location data on his personal server. From there the data is plugged into Home Assistant and visualized with Grafana. This is enough to deliver core functionality, but he says that more custom software components as well as a deep-dive into the security implications of the system is coming in the near future.

We’ve seen custom built GPS trackers before, as generally speaking, it doesn’t take a whole lot to spin up your own solution. But we think the polish that [Viktor] has put on this project takes it to the next level, and ranks it up there among some of the most impressive bespoke tracking solutions we’ve seen over the years.

This Debug Connector Brings Your Issues To The Edge

Given an unknown PCBA with an ARM processor, odds are good that it will have either the standard 10 pin 0.05″ or 20 pin 0.1″ debug connector. This uncommon commonality is a boon for an exploring hacker, but when designing a board such headers require board space in the design and more components to be installed to plug in. The literally-named Debug Edge standard is a new libre attempt to remedy this inconvenience.

The name “Debug Edge” says it all. It’s a debug, edge connector. A connector for the edge of a PCBA to break out debug signals. Card edge connectors are nothing new but they typically either slot one PCBA perpendicularly into another (as in a PCI card) or hold them in parallel (as in a mini PCIe card or an m.2 SSD). The DebugEdge connector is more like a PCBA butt splice.

It makes use of a specific family of AVX open ended card edge connectors designed to splice together long rectangular PCBAs used for lighting end to end. These are available in single quantities starting as low as $0.85 (part number for the design shown here is 009159010061916). The vision of the DebugEdge standard is that this connector is exposed along the edge of the target device, then “spliced” into the debug connector for target power and debug.

Right now the DebugEdge exists primarily as a standard, a set of KiCAD footprints, and prototype adapter boards on OSHPark (debugger side, target side). A device making use of it would integrate the target side and the developer would use the debugger side to connect. The standard specifies 4, 6, 8, and 10 pin varieties (mapping to sizes of available connector, the ‘010’ in the number above specifies pincount) offering increasing levels of connectivity up to a complete 1:1 mapping of the standard 10 pin ARM connector. Keep in mind the connectors are double sided, so the 4 pin version is a miniscule 4mm x 4.5mm! We’re excited to see that worm its way into a tiny project or two.

We’ve seen plenty of part-free debug and programming connectors before. Have a favorite? Let us know in the comments!

He’s The Operator Of His Pocket Arduino

The band Kraftwerk hit the music scene with its unique electronic sound in the 70s in Germany, opening the door for the electronic music revolution of the following decade. If you’re not familiar with the band, they often had songs with a technology theme as well, and thanks to modern microcontroller technology it’s possible to replicate the Kraftwerk sound with microcontrollers as [Steven] aka [Marquis de Geek] demonstrates in his melodic build.

While the music is played on a Stylophone and a Korg synthesizer, it is fed through five separate Arduinos, four of which have various synths and looping samplers installed on them (and presumably represent each of the four members of Kraftwerk). Samplers like this allow pieces of music to be repeated continuously once recorded, which means that [Steven] can play entire songs on his own. The fifth Arduino functions as a controller, handling MIDI and pattern sequencing over I2C, and everything is finally channeled through a homemade mixer.

[Marquis] also dressed in Kraftwerk-appropriate attire for the video demonstration below, which really sells the tribute to the famous and groundbreaking band. While it’s a great build in its own right and is a great recreation of the Kraftwerk sound, we can think of one more way to really put this project over the top — a Kraftwerk-inspired LED tie.

Continue reading “He’s The Operator Of His Pocket Arduino”

Digispark Spoofs IR To Get Speakers Under Control

The Microlab 6C are a pretty nice pair of speakers, but [Michał Słomkowski] wasn’t too thrilled with the 8 watts they consume when on standby. The easy fix is to just unplug them when they aren’t in use, but unfortunately the digital controls on the front panel mean he’s got to turn them on, select the correct input, and turn the volume up to the appropriate level every time they’re plugged back in. Surely there must be a better way.

His solution was to use a Digispark to fire off the appropriate IR remote codes so they’d automatically be put back into a usable configuration. But rather than putting an IR LED on one of the GPIO pins, he simply spliced it into the wire leading back from the speaker’s IR receiver. All his code needs to do is generate the appropriate pulses on the line, and the speaker’s electronics think its a signal coming in from the remote.

Distinctive patterns on the IR sensor wires.

Power for the Digispark is pulled from the speaker itself, so it turns on once [Michał] plugs them back in. The code waits five seconds to make sure the hardware has had time to start up, then proceeds with the “Power On”, “Change Input”, and “Volume Up” commands with a few seconds in between each for good measure.

Not only was it easier to skip the IR and inject the signals directly, but it also made for a cleaner installation. Since the microcontroller doesn’t need line of sight to the IR receiver, [Michał] was able to hide it inside the speaker’s enclosure. From the outside, the modification is completely invisible.

We’ve seen similar code injection tricks used before, and it’s definitely one of those techniques you should file away mentally for future reference. Even though more and more modern devices are embracing WiFi and Bluetooth control, the old school IR remote doesn’t seem like it’s going away anytime soon.

DOOM Running On The Nintendo Game & Watch

Today the newly-released Nintendo Game & Watch can play DOOM. Sure, there are caveats…this is a watered down version due to the restraints of the hardware itself. But the important thing is that this shows the hardware has been fully owned. This is code written to replace the firmware that ships on the STM32 within, and that makes this a gorgeous little hardware platform that is completely open to homebrew hacking.

Honestly, you had to assume this was going to happen pretty quickly considering the effort being thrown into it. We first reported on Tuesday that the EEPROM memory which stores the ROMs on the Game and Watch had been decoded. Shortly after that was published, [stacksmashing] and [Konrad Beckmann] were showing test patterns on the display and mentioning the audio was working as well. Turns out they were able to dump the stock firmware despite the chip being security locked.

We’ll have to wait for more details on exactly how to dump firmware, but [stacksmashing] drops enough of a mention in the video below to confirm the obvious. A common approach to dumping code from a locked microcontroller is to find a vulnerability that grants execution of custom code. Being able to run just a few lines of your own code is enough set up something as simple as looping through all internal flash memory addresses and dumping them over a few GPIO pins. In this case our two heroes discovered some ARM code was being loaded from the EEPROM onto the STM32, and managed to inject their own directives to perform the dump. They have promised full details soon.

What we have today is a pretty tricky hack not just to load code, but to get DOOM to run on meager hardware specs. Notably, 128 k of SRAM and 1.3 MB of external RAM. There’s also a bottleneck with the 1.1 MB of FLASH for storing game files. The textures were stripped down, and memory allocation was rewritten, but the proof of concept is there and the game runs. Homebrew, here we come!

Continue reading “DOOM Running On The Nintendo Game & Watch”

Blue Pill As A Nerdy Swiss Army Knife

Not everyone can afford an oscilloscope, and some of us can’t find a USB logic analyzer half the time. But we can usually get our hands on a microcontroller kit, which can be turned into a makeshift instrument if given the appropriate code. A perfect example is buck50 developed by [Mark Rubin], an open source firmware to turn a STM32 “Blue Pill” into a multi-purpose test and measurement instrument.

buck50 comes with a plethora of functionality built in which includes an oscilloscope, logic analyzer, and bus monitor. The device is a two way street and also comes with GPIO control as well as PWM output. There’s really a remarkable amount of functionality crammed into the project. [Mark] provides a Python application that exposes a text based UI for configuring and using the device though commands and lots of commands which makes this really nerdy. There are a number of options to visualize the data captured which includes gnuplot, gtk wave and PulseView to name a few.

[Mark] does a fantastic job not only with the firmware but also with the documentation, and we really think this makes the project stand out. Commands are well documented and everything is available on [GitHub] for your hacking pleasure. And if you are about to order a Blue Pill online, you might want to check out the nitty-gritty of the clones that are floating around.

Thanks [JohnU] for the tip!