Reverse-Engineering The ESP32’s WiFi Binary Blob With A Faraday Cage

The Faraday cage constructed by Jasper Devreker.
The Faraday cage constructed by Jasper Devreker.

As part of a team reverse-engineering the binary blob driver for the ESP32’s WiFi feature at Ghent University, [Jasper Devreker] saw himself faced with the need to better isolate the network packets coming from the ESP32-under-test. This is a tough call in today’s WiFi and 2.4 GHz flooded airwaves. To eliminate all this noise, [Jasper] had to build a Faraday cage, but ideally without racking up a massive invoice and/or relying on second-hand parts scavenged from eBay.

We previously reported on this reverse-engineering project, which has since seen an update. Although progress has been made, filtering out just the packets they were interested in was a big challenge. The solution was a Faraday cage, but on a tight budget.

Rather than relying on exotic power filters, [Jasper] put a battery inside a Faraday cage he constructed out of wood and conductive fabric. To get Ethernet data in and out, a fiber link was used inside a copper tube. Initial testing was done using a Raspberry Pi running usbip and a WiFi dongle.  The Faraday cage provided enough attenuation that the dongle couldn’t pick up any external WiFi signals in listening mode.

The total cost of this build came down to a hair over €291, which makes it feasible for a lot of RF experiments by hobbyists and others. We wish [Jasper] and the rest of the team a lot of luck in figuring out the remaining secrets of Espressif’s binary WiFi blob using this new tool.

802.11ah Wi-Fi HaLOW: The 1 Kilometer WiFi Standard

You too can add long-distance WiFi to your laptop with this new not-quite dongle solution. (Credit: Ben Jeffery)
You, too, can add long-distance WiFi to your laptop with this new not-quite dongle solution. (Credit: Ben Jeffery)

The 802.11ah WiFi (HaLow) standard is fairly new, having only been introduced in 2017. It’s supposed to fall somewhere between standard WiFi used in domiciles and offices and the longer range but low-bitrate LoRaWAN, ZigBee, and others, with bandwidth measured in megabits per second. In a recent video, [Ben Jeffery] looks at the 802.11ah chipsets available today and some products integrating these.

The primary vendors selling these chipsets are TaiXin Semiconductor (TXW8301), Morse Micro (MM6108), and Newracom (NRC7394), with a range of manufacturers selling modules integrating these. Among the products using these, [Ben] found an Ethernet range extender kit (pictured) that takes 12V input as power, along with Ethernet. Running some distance tests in a quarry showed that 300 meters was no problem getting a strong signal, though adding some trees between the two transceivers did attenuate the signal somewhat.

Another interesting product [Ben] tested is what is essentially an 802.11ah-based WiFi extender, using an 802.11ah link between the server node – with an Ethernet socket – and a client that features a standard 2.4 GHz 802.11n that most WiFi-enabled devices can connect to. Using this, he was able to provide a solid ~10 Mbps link to a cabin near the main house (~10 meters) through two outside walls. What makes 802.11ah so interesting is that it is directly compatible with standard Ethernet and WiFi protocols and uses the 900 MHz spectrum, for which a wide range of alternative antennae exist that can conceivably extend the range even more.

(Thanks to [Keith Olson] for the tip)

Continue reading “802.11ah Wi-Fi HaLOW: The 1 Kilometer WiFi Standard”

Long-Distance Wi-Fi With Steam Deck Server

It’s no secret that the Steam Deck is a powerful computer, especially for its price point. It has to be capable enough to run modern PC games while being comfortable as a handheld, all while having a useful amount of battery life. Thankfully Valve didn’t lock down the device like most smartphone manufacturers, allowing the computer to run whatever operating system and software the true owner of the device wants to run. That means that a whole world of options is open for this novel computer, like using it to set up an 802.11ah Wi-Fi network over some pretty impressive distances.

Of course the Steam Deck is more of a means to an end for this project; the real star of the show is DragonOS, a Debian-based Linux distribution put together by [Aaron] to enable easy access to the tools needed for plenty of software-defined radio projects like this one. Here, he’s using it to set up a long-distance Wi-Fi network on one side of a lake, then testing it by motoring over to the other side of the lake to access the data from the KrakenSDR setup running on the Deck, as well as performing real-time capture of IQ data that was being automatically demodulated and feed internally to whispercpp.

While no one will be streaming 4K video over 802.11ah, it’s more than capable of supporting small amounts of data over relatively large distances, and [Aaron] was easily able to SSH to his access point from over a kilometer away with it. If the lake scenery in the project seems familiar at all, it’s because this project is an extension of another one of his DragonOS projects using a slightly lower frequency to do some impressive direction-finding, also using the Steam Deck as a base of operations.

Continue reading “Long-Distance Wi-Fi With Steam Deck Server”

Rickrolling SSID With ESP32

Reddit user [nomoreimfull] posted code for a dynamic WiFi beacon to r/arduino.  The simple, but clever, sketch is preloaded with some rather familiar lyrics and is configured to Rickroll wireless LAN users via the broadcast SSID (service set identifier) of an ESP32 WiFi radio.

The ESP32 and its smaller sibling the ESP8266 are tiny microcontrollers that featuring built-in WiFi support. With their miniature size, price, and power consumption characteristics, they’ve become favorites for makers, hackers, and yes pranksters for a wide variety of projects. They can be easily programmed using their own SDK or through a “board support” extension to the Arduino IDE.

For the dynamic WiFi beacon, the ESP32 is placed into AP (access point) mode and broadcasts its human readable name (SSID) as configured. What makes the SSID dynamic, or rolling, is that the sketch periodically updates the SSID to a next line of text stored within the code. Of course, in the Rickroll prank this means the next line of lyrics from “Never Gonna Give You Up” by Rick Astley himself.

Always a favorite prank, we’ve seen Rickrolls take the form of IR remote controls , free WiFi servers, and coin cell throwies.

Rick Astley picture: Wjack12, CC BY-SA 4.0.

Printing Antennas On Circuit Boards

Yagi-Uda antennas, or simply “Yagis”, are directional antennas that focus radio waves to increase gain, meaning that the radio waves can travel further in that direction for a given transmitter power. Anyone might recognize an old TV antenna on a roof that uses this type of antenna, but they can be used to increase the gain of an antenna at any frequency. This one is designed to operate within the frequencies allotted to WiFi and as a result is so small that the entire antenna can be printed directly on a PCB.

The antenna consists of what is effectively a dipole antenna, sandwiched in between a reflector and three directors. The reflector and directors are passive elements in that they interact with the radio wave to focus it in a specific direction, but the only thing actually powered is the dipole in the middle. It looks almost like a short circuit at first but thanks to the high frequencies involved in this band, will still function like any other dipole antenna would. [IMSAI Guy], who created the video linked above which goes over these details also analyzed the performance of this antenna and found it to be fairly impressive as a WiFi antenna, but he did make a few changes to the board for some other minor improvements in performance.

The creator of these antennas, [WA5VJB] aka [Kent Britain] is an antenna builder based in Texas who has developed a few unique styles of antennas produced in non-traditional ways. Besides this small Yagi, there are other microwave antennas available for direction-finding, some wide-band antennas, and log-periodic antennas that look similar to Yagi antennas but are fundamentally different designs. But if you’re looking to simply extend your home’s WiFi range you might not need any of these, as Yagi antennas for home routers can be a lot simpler than you ever imagined.

Continue reading “Printing Antennas On Circuit Boards”

Trigger Your Home Automation Routines With Home Buttons

Home automation systems are all well and good, so long as the person who built it all is around to drive it. Let’s face it, they’re quite often a complex web of interconnected systems, all tied to the specifics of one’s home — and someone less familiar with it all could get a little irritated if, on a chilly day, the interface to the boiler is via a Python script, and something won’t work. Just saying. Home Buttons by [Matej Planinšek] over on Hackaday.IO is a nicely polished project, which aims to take some of the hackiness out of such automation by providing a sleek front end to those automation routines, enabling anyone to rock on over and set one in action without hassle.

Internal PCB shown in the foreground, with the complete unit behind.The PCB is based around the ESP32-S2-mini which deals with WiFi connectivity and integration with Home Assistant using the usual MQTT protocol. We expect integration with other flavors of home automation would not be difficult to achieve. The center of the unit holds a simple E-Ink display, for that low-standby power. Specifically, the unit chosen is a Good Display GDEY029T94 2.9″ which this scribe can confirm is easy to interface and pretty cheap to purchase from the usual Chinese online vendors. This was matched up with six clicky Alps SKRB-series low-profile tact switches, which sit on either side of the display, and corresponds to a flexure-type affair on the 3D printed front casing. Neat and simple.

The PCB design was provided in Altium format, which you can find on the project GitHub page. This shows a straightforward design, with a few nice little details here and there. The internally mounted 18650 cell is reportedly good for at least a year of operation, but when time, it can be charged via USB. A Xysemi XB8608AF (PDF) protection chip provides appropriate limiting for the 18650 cell, shielding it from the perils of overcharging, discharging, and whatnot. Not that that is likely in this current setup. A Sensiron SHTC3 humidity and temperature sensor is also in there, hanging off the I2C bus, which makes sense for this application.

Home Automation hacks are plenty on these pages, like this scroll-wheel interface, for instance. If all this stuff is looking quite overbearingly complicated to get into, how about starting with a Pico W?

3D Printering: Adding A Web Interface Where There Was None Before

[Renzo Mischianti] got himself a Chinese 3D printer, specifically a FlyingBear Ghost 5. (Cracking name, huh?) He was more than a little irritated with the fact that whilst the controller, an MKS Robin Nano, did have a integrated Wi-FI module, it provided no browser-based interface for monitoring and control purposes. This seemed a bit short-sighted in this day and age, to say the least. Not being at all happy with that situation, [Renzo] proceeded to write dedicated Wi-Fi firmware using websockets, but not without fully documenting his journey in a detailed series of the blog posts.

The resulting BeePrint web interface supports all the usual functions you would expect when managing a printer, everything from monitoring warm-up at the prep stage, to keeping tabs on the potential spaghetti monster via the connected IP camera. All good stuff. [Renzo] used an ESP32-cam, which is a low-cost 2 MP unit from our friends at Olimex, but we suspect it wouldn’t vastly difficult to add your own IP camera into the mix.

[Renzo] has a YT channel detailing quite a few other projects, which is definitely worth some viewing time in our opinion.

We’ve been covering 3D printer hacking since the dinosaurs were roaming. This is the oldest, and still one of the strangest, posts that we could find in a quick search. Anyone care to find something older?

Continue reading “3D Printering: Adding A Web Interface Where There Was None Before”