Decoding Meshtastic With GNU Radio

Meshtastic is a way to build mesh networks using LoRa that is independent of cell towers, hot spots or traditional repeaters. It stands to reason that with an SDR and GNU Radio, you could send and receive Meshtastic messages. That’s exactly what [Josh Conway] built, and you can see a video about the project, Meshtastic_SDR, below. The video is from [cemaxecuter], who puts the library through its paces.

For hardware, the video uses a Canary I as well as the WarDragon software-defined radio kit which is an Airspy R2 and a mini PC running Dragon OS — a Linux distribution aimed at SDR work —  in a rugged case. GNU Radio, of course, uses flows which are really just Python modules strung together with a GUI.

Continue reading “Decoding Meshtastic With GNU Radio”

Screenshot of the blog post, showing how you can optimize your battery level measurement resistor dividers, among many other things

Making Your Wireless Keyboard Truly Low-Power

The basics of keyboard design are tried and true at this point, but there are still a few aspects yet unconquered. One of them is making your keyboards wireless. You might think it’s easy, but if you just slap a wireless-enabled microcontroller onto your board, you’ll soon be left with a dead battery. Rejoice – [Pete Johanson], creator of ZMK, tells all that you want to know about making your keyboard low-power.

In a lengthy blog post, he goes through everything that a typical keyboard consists of, and points out factor after factor that you never knew could cause a spike in power consumption. Are you using muxes or config options that will force your MCU to always stay alert? Is your voltage regulator’s quiescent current low enough, and can the same be said about other parts you’re using? Does your MCU have to work extra hard transmitting bytes because you’ve put a copper fill under its antenna? Most importantly, is the firmware you’re using designed to optimize power consumption at its core?

If you’ve ever thought about designing low-power keyboards, hell, any low-power device, you seriously should read this post – it will set you at ease by giving you a checklist of things to do, and it also links to quite a few other useful resources, like the ZMK power profiler. Perhaps, if you’re building a wireless keyboard or just creating battery-powered device, you should consider ZMK, as it sure seems to be written with energy efficiency in mind.

Want to learn more about what it takes to build a low-power device? Our 2023 Low-Power Contest attracted a wide range of entrants, and they’ve shared a flurry of methods and tricks you can use to build any sort of battery-juice-sipping gadget.

Showing a Raspberry Pi 4 board connected to an ESP32 devboard using jumper wires for the purposes of this project

ESP-Hosted Turns ESP32 Into Linux WiFi/BT Adapter

While we are used to USB WiFi adapters, embedded devices typically use SDIO WiFi cards, and for good reasons – they’re way more low-power, don’t take up a USB port, don’t require a power-sipping USB hub, and the SDIO interface is widely available. However, SDIO cards and modules tend to be obscure and proprietary beyond reason. Enter ESP-Hosted – Espressif’s firmware and driver combination for ESP32 (press release)(GitHub), making your ESP32 into a WiFi module for either your Linux computer (ESP-Hosted-NG) or MCU (ESP-Hosted-FG). In particular, ESP-Hosted-NG his turns your SPI- or SDIO-connected ESP32 (including -S2/S3/C2/C3/C6 into a WiFi card, quite speedy and natively supported by the Linux network stack, as opposed to something like an AT command mode.

We’ve seen this done with ESP8266 before – repurposing an ESP8089 driver from sources found online, making an ESP8266 into a $2 WiFi adapter for something like a Pi. The ESP-Hosted project is Espressif-supported, and it works on the entire ESP32 lineup, through an SDIO or even SPI interface! It supports 802.11b/g/n and even Bluetooth, up to BLE5, either over an extra UART channel or the same SDIO/SPI channel; you can even get BT audio over I2S. If you have an SPI/SDIO port free and an ESP32 module handy, this might just be the perfect WiFi card for your Linux project!

There are some limitations – for instance, you can’t do AP mode in the NG (Linux-compatible) version. Also, part of the firmware has blobs in it, but a lot of the firmware and all of the driver are modifiable in case you need your ESP32 to do even more than Espressif has coded in – this is not fully open-source firmware, but it’s definitely way more than the Broadcom’s proprietary onboard Raspberry Pi WiFi chip. There’s plenty of documentation, and even some fun features like raw transport layer access. Also, of note is that this project supports ESP32-C6, which means you can equip your project with a RISC-V-based WiFi adapter.

Title image from [zhichunlee].

Nine men of various ages and ethnicities stand in a very clean laboratory space. A number of large white cabinets with displays are on the left behind some white boards and there are wireless charging coils on a dark tablecloth in the foreground. In the back of the lab is a white Porsche Taycan.

Polyphase Wireless EV Fast Charging Moves Forward

While EV charging isn’t that tedious with a cable, for quick trips, being able to just park and have your car automatically charge would be more convenient. Researchers from Oak Ridge National Lab (ORNL) and VW have moved high-speed wireless EV charging one step closer to reality.

We’ve seen fast wireless EV chargers before, but what sets this system apart is the coil size (~0.2 m2 vs 2.0 m2) and the fact it was demonstrated on a functioning EV where previous attempts have been on the bench. According to the researchers, this was the first wireless transfer to a light duty vehicle at 270 kW. Industry standards currently only cover systems up to 20 kW.

The system uses a pair of polyphase electromagnetic coupling coils about 50 cm (19″) wide to transfer the power over a gap of approximately 13 cm (5″). Efficiency is stated at 95%, and that 270 kW would get most EVs capable of those charge rates a 50% bump in charge over ten minutes (assuming you’re in the lower part of your battery capacity where full speeds are available).

We’ve seen some in-road prototypes of wireless charging as well as some other interesting en route chargers like pantographs and slot car roads. We’ve got you covered if you’re wondering what the deal is with all those different plugs that EVs have too.

Continue reading “Polyphase Wireless EV Fast Charging Moves Forward”

Photo of a Nice-Power supply

Quick & Capable WiFi For Your Nice-Power Supply

Rejoice, those of us who have purchased a Nice-Power lab PSU from an Eastern source. Yes, the name might sound like a re-brand of a generic product, maybe you will even see this exact PSU on a shelf at a physical store near you, under a more local brand name and with a fair markup. Nevermind the circumstances, the most important part is that [Georgi Dobrishinov] found a way to add an ESP8266 to the PSU by tapping its internal UART control interface, and wrote a web UI for all your Internet-of-Lab-PSUs needs, called the PowerLinkESP project.

All you need is a Wemos D1 development board, or any other ESP8266 board that has UART pins exposed and handles 5 V input. [Georgi] brings everything else, from pictures showing you where to plug it in and where to tap 5 V, to extensive instructions on how to compile and upload the code, using just the Arduino IDE. Oh, and he tops it off with STLs for a 3D printed case, lest your Wemos D1 board flop around inside.

With [Georgi]’s software, you can monitor your PSU with interactive charts for all readings, export charts in both PNG and CSV, and access a good few features. Your ESP8266’s network uplink is also highly configurable, from an STA mode for a static lab config, to an AP mode for any on-the-go monitoring from your phone, and it even switches between them automatically! The firmware makes your PSU all that more practical, to the point that if you’re about to build an interface for your PSU, you should pay attention to [Georgi]’s work.

Lab PSUs with WiFi integration are worth looking into, just check out our review of this one; smart features are so nice to have, we hackers straight up rewrite PSU firmware to get there if we have to. Oh, and if you ever feel like standardizing your work so that it can interface to a whole world of measurement equipment, look no further than SCPI, something that’s easier to add to your project than you might expect, even with as little as Python and a Pi.

A diagram from the article, showing the router being used in a car for streaming media to multiple portable devices at once

A Portable DLNA Server Hack Helps You Tame OpenWRT

A good amount of hacks can be done with off-the-shelf hardware – what’s more, it’s usually available all over the world, which means your hacks are easier to build for others, too. Say, you’ve built something around a commonly available portable router, through the magic of open-source software. How do you make the fruits of your labour easy to install for your friends and blog readers? Well, you might want to learn a thing or two from [Albert], who shows us a portable DLNA server built around a GL-MT300N-V2 pocket router.

[Albert]’s blog post is a tutorial on setting it up, with a pre-compiled binary image you can flash onto your router. Flash it, prepare a flash drive with your media files, connect to the WiFi network created by the router, run the VLC player app, and your media library is with you wherever you go.

Now, a binary image is good, but are you wondering how it was made, and how you could achieve similar levels of user-friendliness in your project? Of course, here’s the GitHub repository with OpenWRT configuration files used to build this image, and build instructions are right there in the README. If you ever needed a reference on how to make commonly available OpenWRT devices do your bidding automagically, this is it.

This is an elegant solution to build an portable DLNA server that’s always with you on long rides, and, think of it, it handily beats a typical commercialized alternative, at a lower cost. Want software upgrades? Minor improvements and fixes? Security patches? Everything is under your control, and thanks to the open-source nature of this project, you have a template to follow. There won’t always be a perfectly suited piece of hardware on the market, of course, as this elegant dual-drive Pi-based NAS build will attest.

Wireshark screenshot with QCSuper-produced packets streaming into it; QCSuper script running in an adjacent terminal

Turn Your Qualcomm Phone Or Modem Into Cellular Sniffer

If your thought repurposing DVB-T dongles for generic software defined radio (SDR) use was cool, wait until you see QCSuper, a project that re-purposes phones and modems to capture raw 2G/3G/4G/5G. You have to have a Qualcomm-based device, it has to either run rooted Android or be a USB modem, but once you find one in your drawers, you can get a steady stream of packets straight into your Wireshark window. No more expensive SDR requirement for getting into cellular sniffing – at least, not unless you are debugging some seriously low-level issues.

It appears there’s a Qualcomm specific diagnostic port you can access over USB, that this software can make use of. The 5G capture support is currently situational, but 2G/3G/4G capabilities seem to be pretty stable. And there’s a good few devices in the “successfully tested” list – given the way this software functions, chances are, your device will work! Remember to report whether it does or doesn’t, of course. Also, the project is seriously rich on instructions – whether you’re using Linux or Windows, it appears you won’t be left alone debugging any problems you might encounter.

This is a receive-only project, so, legally, you are most likely allowed to have fun — at least, it would be pretty complicated to detect that you are, unlike with transmit-capable setups. Qualcomm devices have pretty much permeated our lives, with Qualcomm chips nowadays used even in the ever-present SimCom modules, like the modems used in the PinePhone. Wondering what a sniffer could be useful for? Well, for one, if you ever need to debug a 4G base station you’ve just set up, completely legally, of course.