Fan-tastic Misuse Of Raspberry Pi GPIO

[River] is a big fan of home automation. After moving into a new house, he wanted to assimilate two wirelessly controlled fan lights into his home automation system. The problem was this: although the fans were wireless, their frequency and protocol were incompatible with the home automation system.

Step one was to determine the frequency the fan’s remote used. Although public FCC records will reveal the frequency of operation, [River] thought it would be faster to use an inexpensive USB RTL-SDR with the Spektrum program to sweep the range of likely frequencies, and quickly found the fans speak 304.2 MHz.

Next was to reverse-engineer the protocol. Universal Radio Hacker is a tool designed to make deciphering unknown wireless protocols relatively painless using an RTL-SDR. [River] digitized a button press with it and immediately recognized it as simple on-off keying (OOK). With that knowledge, he digitized the radio commands from all seven buttons and was quickly able to reverse-engineer the entire protocol.

[River] wanted to use a Raspberry Pi to bring the fans into his home automation system, but the Raspberry Pi doesn’t have a 304.2 MHz radio. What it does have is user-programmable GPIO and the rpitx package, which converts a GPIO pin into a basic radio transmitter. Of course, the Pi’s GPIO pin’s aren’t long enough to efficiently transmit at 304.2 MHz, so [River] added a proper antenna, as well as a low-pass filter to clean up the transmitted signal. The rpitx package supports OOK out of the box, so [River] was quickly able get the Pi controlling his fan in no time!

If you’d like to do some more low-cost home automation, check out this approach to using a Raspberry Pi to control some bargain-bin smart plugs.

A Deep Dive Into E-Ink Tag Hacking

Over the last decade or so, e-ink price tags have become more and more ubiquitous, and they’ve now reached the point where surplus devices can be found inexpensively on various websites. [Dmitry Grinberg] found a few of these at bargain-basement prices and decided to reverse engineer and hack them into monochrome digital picture frames.

Often, the most difficult thing about repurposing surplus hardware is the potential lack of documentation. In the two tags [Dmitry] hacked, not only are the labels not documented at all, one even has an almost-undocumented SoC controlling it. After some poking around and some guesswork, he was able to find connections for both a UART and an SWD debugging interface. Fortunately, the manufacturers left the firmware unprotected, so dumping it was trivial.

Even with the firmware dumped, code for controlling peripherals (especially wireless devices) is often inscrutable. [Dmitry] overcomes this with a technique he calls “Librarification” in which he turns the manufacturer’s firmware into libraries for his custom code. Once he was able to implement his custom firmware, [Dmitry] developed his own code to wirelessly download and display both gray-scale and two-color images.

Even if you’re not interested in hacking e-ink tags, this is an incredible walk-through of how to approach reverse-engineering an embedded or IoT device. By hacking two different tags with completely different designs, [Dmitry] shows how to get into these systems with intuition, guesswork, and some sheer persistence.

If you’d like to see some more of [Dmitry]’s excellent reverse-engineering work, take a look at his reverse-engineering and ROM dump of the PokeWalker. If you’re interested in seeing what else e-ink tags can be made to do, take a look at this weather station made from the same 7.4″ e-ink tag.

A Crash Course On Sniffing Bluetooth Low Energy

Bluetooth Low Energy (BLE) is everywhere these days. If you fire up a scanner on your phone and walk around the neighborhood, we’d be willing to bet you’d pick up dozens if not hundreds of devices. By extension, from fitness bands to light bulbs, it’s equally likely that you’re going to want to talk to some of these BLE gadgets at some point. But how?

Well, watching this three part video series from [Stuart Patterson] would be a good start. He covers how to get a cheap nRF52480 BLE dongle configured for sniffing, pulling the packets out of the air with Wireshark, and perhaps most crucially, how to duplicate the commands coming from a device’s companion application on the ESP32.

Testing out the sniffed commands.

The first video in the series is focused on getting a Windows box setup for BLE sniffing, so readers who aren’t currently living under Microsoft’s boot heel may want to skip ahead to the second installment. That’s where things really start heating up, as [Stuart] demonstrates how you can intercept commands being sent to the target device.

It’s worth noting that little attempt is made to actually decode what the commands mean. In this particular application, it’s enough to simply replay the commands using the ESP32’s BLE hardware, which is explained in the third video. Obviously this technique might not work on more advanced devices, but it should still give you a solid base to work from.

In the end, [Stuart] takes an LED lamp that could only be controlled with a smartphone application and turns it into something he can talk to on his own terms. Once the ESP32 can send commands to the lamp, it only takes a bit more code to spin up a web interface or REST API so you can control the device from your computer or other gadget on the network. While naturally the finer points will differ, this same overall workflow should allow you to get control of whatever BLE gizmo you’ve got your eye on.

Continue reading “A Crash Course On Sniffing Bluetooth Low Energy”

ESP8266-Powered Receipt Printer Puts RESTful API On Dead Trees

Taking his digital information into the real-world, [Davide Gironi] has built his own note transcriber from a point-of-sale receipt printer and an ESP8266.

You’ve seen these receipt printers at the order window of restaurants. A server puts in an order from any of the machines throughout the restaurant and a paper summary spits out for the chef line to start in on (and even cuts itself off from the roll).  Why shouldn’t we have this convenience in our own lives?

The printer communicates using a variant of the Epson Standard Code for Printers, for which [Davide] has written a library and thankfully shared the code. Adding an ESP8266 using a couple voltage regulators and some passive components makes this wireless, except for power. It has all the fun bells and whistles to set up the WiFi credentials and once running, just push the button on the base and it’ll spit out your data.

But wait, where is that data coming from? The web-based settings page lets you configure a URI to the RESTful source of your choosing. (XKCD has one, don’t they?) It also lets you configure header, footer, error messages, and of course your company hacker logo.

One of our favorite receipt-printer moments was when Hackaday editor of yore [Eliot Phillips] brought a selfie receipt printer to Supercon. We couldn’t find any pictures of that one, so we’ll leave you with the excellent hack [Sam Zeloof] pulled off by cramming one of these into a Polaroid camera.

Continue reading “ESP8266-Powered Receipt Printer Puts RESTful API On Dead Trees”

Give Your Smart Home A Green Thumb With MQTT

We have all been stuck inside for too long, and maybe that’s why we have recently seen a number of projects attempting to help humans take better care of their housemates from Kingdom Plantae. To survive, plants need nutrients, light, and water. That last one seems tricky to get right; not too dry and not drowning them either, so [rbaron’s] green solder-masked w-parasite wireless soil monitor turns this responsibility over to your existing home automation system.

w-parasite MQTT diagram

Like this low-power soil sensor project and the custom controller for six soil sensors, [rbaron’s] w-parasite uses a “parasitic capacitive” moisture sensor to determine if it’s time to water plants. This means that unlike resistive soil moisture sensors, here the copper traces are protected from corrosion by the solder mask. For those wondering how they work, [rbaron]’s Twitter thread has a great explanation.

The “w” in the name is for WiFi as the built-in ESP-32 module then takes the moisture reading and sends an update wirelessly via MQTT. Depending on the IQ of your smart-home setup, you could log the data, route an alert to a cellphone, light up a smart-bulb, or even switch on an irrigation system.

w-parasite circuit board in a potted plant[rbaron] has shared a string of wireless hacks, controlling the A/C over Slack and a BLE Fitness Tracker that inspired more soldering than jogging. We like how streamlined this solution is, with the sensor, ESP-32 module, and battery all in a compact single board design. Are you asking yourself, “but how is a power-hungry ESP-32 going to last longer than it takes for my geraniums to dry out?” [rbaron] is using deep sleep that only consumes 15uA between very quick 500ms check-ins. The rechargeable LIR2450 Li-Ion coin cell shown here can transmit a reading every half hour for 90 days. If you need something that lasts longer than that, use [rbaron]’s handy spreadsheet to choose larger batteries that last a whole year. Though, let’s hope we don’t have to spend another whole year inside with our plant friends.

We may never know why the weeds in the cracks of city streets do better than our houseplants, but hopefully, we can keep our green roommates alive (slightly longer) with a little digital nudge.

 

Minimal MQTT With Micropython

I have been meaning to play around with MQTT for some time now, and finally decided to take the plunge one evening last week. I had three cheap home temperature and humidity sensors, and was bothered that they often didn’t agree. Surprisingly, while the analog one had a calibration adjustment in the back, I have no idea how to calibrate the two digital ones. I took this as a sign that it was time to learn MQTT and be able to install my own, accurate sensors. Of course, I began by ordering the cheapest sensors I could find, but I can always upgrade later on.

Three Cheap Sensors

While we have written quite a bit about MQTT in Hackaday, I had to go all the way back to 2016 to find this introductory four-part series by Elliot Williams. Five years is a long time in the tech world, but I decided to give it a try anyway. Continue reading “Minimal MQTT With Micropython”

LoRa Messenger Does Its Best BlackBerry Impression

While the de facto smartphone design ultimately went in a different direction, there’s no denying the classic BlackBerry layout offered some compelling advantages. It was a gadget primarily designed to send and receive emails and text messages, and it showed. So is it really any wonder [MSG] would build his pocket-sized LoRa messengers in its image?

Of course, he did have some help. The communicators use the Keyboard FeatherWing by [arturo182], which puts a surplus BlackBerry Q10 keyboard on a custom PCB designed to accept a board from Adafruit’s Feather collection. [MSG] ended up pairing his with a Feather M4 because he wanted to work with CircuitPython, with a 900 MHz LoRa FeatherWing along for the ride. He notes that switching his code over to Arduino-flavored C would allow him to use the Feather M0 that features integrated LoRa; a change that would allow him to make the gadget a bit thinner.

Inside the 3D printed enclosure, He’s made room for a 3.7 V 1800 mAh pouch battery that should provide plenty of runtime. There’s also an external antenna with a uFL pigtail for connecting to the radio. The case is held together with heat-set inserts, which should make it more than robust enough to handle a few adventures.

[MSG] says slight variations in hardware versions means his STLs might need a little tweaking to fit your components, and warns that his code is basically just a mashup of examples he found online, but he’s still sharing the goods for anyone who wants to reach out and touch someone without all that pesky infrastructure in the way.

Continue reading “LoRa Messenger Does Its Best BlackBerry Impression”