There’s been a lot of buzz about Meshtastic lately, and with good reason. The low-power LoRa-based network has a ton of interesting use cases, and as with any mesh network, the more nodes there are, the better it works for everyone. That’s why we’re excited by this super-affordable Meshtastic kit that lets you get a node on the air for about ten bucks.
The diminutive kit, which consists of a microcontroller and a LoRa module, has actually been available from the usual outlets for a while. But [concretedog] has been deep in the Meshtastic weeds lately, and decided to review its pros and cons. Setup starts with flashing Meshtastic to the XIAO ESP32-S3 microcontroller and connecting the included BLE antenna. After that, the Wio-SX1262 LoRa module is snapped to the microcontroller board via surface-mount connectors, and a separate LoRa antenna is connected. Flash the firmware (this combo is supported by the official web flasher), and you’re good to go.
What do you do with your new node? That’s largely up to you, of course. Most Meshtastic users seem content to send encrypted text messages back and forth, but as our own [Jonathan Bennett] notes, a Meshtastic network could be extremely useful for emergency preparedness. Build a few of these nodes, slap them in a 3D printed box, distribute them to willing neighbors, and suddenly you’ve got a way to keep connected in an emergency, no license required.
Living with Type 1 diabetes is a numbers game. There’s not a moment in the day free from the burden of tracking your blood glucose concentration, making “What’s your number?” a constant question. Technology can make that question easier to ask and answer, but for T1D patients, especially the kids who the disease so often impacts, all that tech can be a distraction.
To solve that problem for his son, [Andrew Childs] built this custom T1D smartwatch. An Apple Watch, which integrates easily into the Dexcom CGM ecosystem, seems an obvious solution, but as [Andrew] points out, strapping something like that on a nine-year-old boy’s wrist is a recipe for disaster. After toying with some prototypes and working out the considerable difficulties of getting a stable BLE connection — the device needs to connect to his son’s iPhone to get CGM data — [Andrew] started work on the physical design.
The watch uses an ESP32-S3 on a custom PCB, as well as a 1.69″ TFT IPS display and a LiPo battery. The board also has an accelerometer for activity monitoring and a vibrator for haptic feedback. Getting all that into a case was no mean feat, especially since some degree of water resistance and shockproofing would be needed for the watch to survive. [Andrew] had a case made by a local 3D printing company, and he managed to source custom-cut and silkscreened glass for the face. The result is remarkably professional-looking, especially for a software developer who hadn’t really stretched his maker wings much before tackling this project.
[Andrew] doesn’t appear to have made build files available yet, although he does say he intends to open-source the project at some point. We look forward to that as it’ll be a big help to anyone trying to hack diabetes care. Until then, if you need a primer on continuous glucose monitoring, we’re happy to oblige.
NEMA-17 steppers are (almost) a dime a dozen. They’re everywhere, they’re well-known to hackers and makers, and yet they’re still a bit hard to integrate into projects. That’s because the motor alone isn’t much use, and by the time you find or build a driver and integrate it with a microcontroller, you’ve probably expended more effort than you will on the rest of the project. This USB-C PD stepper driver aims to change that.
What caught our eye about [Josh Rogan]’s PD Stepper is his effort to make this a product rather than just a project. The driver is based on a TMC2209 for silent operation and a lot of torque thanks to the power delivery capabilities of USB-C PD. The PCB is very nicely designed and has an AS5600 rotary magnetic encoder for closed-loop operation. There’s also an ESP32-S3 on-board, so WiFi and Bluetooth operation are possible — perfect for integration into Home Assistant via ESPHome.
[Josh]’s mechanical design is top-notch, too, with a machined aluminum spacer that fits on the back of a NEMA-17 motor perfectly and acts as a heat spreader. A machined polycarbonate cover protects the PCB and makes a very neat presentation. [Josh] has kits available, or you can roll your own with the provided build files.
What can you do with a one-button keyboard? Quite a bit, actually, especially if that key has a little screen on it. That’s the idea behind [Maker M0]’s MagicClick macro pad, which is an updated version of a highly useful project we have featured in the past. Well, now there’s a tiny game to go with it.
Think you’re pretty good at measuring the passage of time? This game will likely prove you wrong. Press and hold the button and the timer begins with some pre-determined interval, such as four seconds. Once you think those four seconds have passed, release the button and find out how far off you were.
While the first version of this keyboard used the CH582F RISC-V microcontroller, the second and this third version use an ESP32-S3 on a custom, tightly packed PCB. That TFT display measures 0.85″, and the battery is an 3.7 V 802025 Li-Po. [Maker M0] has also redesigned this to make it easier to print, and plans to support circular screens in the near future.
One of the fun parts of the ESP32-S3 microcontroller is that it got upgraded to the newer Cadence Xtensa LX7 processor core, which turns out to have a range of SIMD instructions that can help to significantly speed up a range of tasks. [Shranav Palakurthi] recently used this to speed up the processing of video frames to detect corners using the FAST method. By moving some operations that benefit from SIMD over to an optimized version written in LX7 ASM, the algorithm’s throughput was increased by 220%, from 5.1 MP/s to 11.2 MP/s, albeit with some caveats.
The problem with the SIMD instructions in the LX7 other than them being very poorly documented – unless you sign an NDA with Cadence – is that it misses many instructions that would be really useful. For [Shranav] the lack of support for direct misaligned reads and comparing of unsigned 8-bit numbers were hurdles, but could be worked around, with the results available on GitHub.
Much of the groundwork for this SIMD implementation was laid by [Larry Bank], who reverse-engineered the SIMD instructions from available documentation and code samples, finding that the ESP32-S3 misses quite a few common SIMD instructions, including various shifts and unaligned reads and writes. Still, it’s good enough for quite a few tasks, as long as you can make it work with the available instructions.
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 ofdocumentation, 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.
Displays are crucial to modern life; they are literally everywhere. But modern flat-panel LCDs and cheap 7-segment LED displays are, well, a bit boring. When we hackers want to display the progress of time, we want something more interesting, hence the plethora of projects using Nixie tubes and various incantations of edge-lit segmented units. Here is [upir] with their take on the simple edge-lit acrylic 7-segment design, with a great video explanation of all the steps involved.
Engraving the acrylic sheets by hand using 3D printed stencils
The idea behind this concept is not new. Older displays of this type used tiny tungsten filament bulbs and complex light paths to direct light to the front of the display. The modern version, however, uses edge-lit panels with a grid of small LEDs beneath each segment, which are concealed within a casing. This design relies on the principle of total internal reflection, created by the contrast in refractive indices of acrylic and air. Light entering the panel from below at an angle greater than 42 degrees from normal is entirely reflected inside the panel. Fortunately, tiny LEDs have a wide dispersion angle, so if they are positioned close enough to the edge, they can guide sufficient light into the panel. Once this setup is in place, the surface can be etched or engraved using a CNC machine or a laser cutter. A rough surface texture is vital for this process, as it disrupts some of the light paths, scattering and directing some of it sideways to the viewer. Finally, to create your display, design enough parallel-stacked sheets for each segment of the display—seven in this case, but you could add more, such as an eighth for a decimal point.
How you arrange your lighting is up to you, but [upir] uses an off-the-shelf ESP32-S3 addressable LED array. This design has a few shortcomings, but it is a great start—if a little overkill for a single digit! Using some straightforward Arduino code, one display row is set to white to guide light into a single-segment sheet. To form a complete digital, you illuminate the appropriate combination of sheets. To engrave the sheets, [upir] wanted to use a laser cutter but was put off by the cost. A CNC 3018 was considered, but the choice was bewildering, so they just went with a hand-engraving pick, using a couple of 3D printed stencils as a guide. A sheet holder and light masking arrangement were created in Fusion 360, which was extended into a box to enclose the LED array, which could then be 3D printed.