A black screen with green text is shown. The green text logs events from a VPN gateway.

Running A VPN Gateway On An ESP32

If you need a VPN gateway to access your home network, the fastest and most cost-effective way is probably by using a Raspberry Pi Zero. But in [Samir Makwana]’s view, an ESP32-S3 is just as capable for moderate use, and in some respects even superior.

This was possible thanks to the MicroLink project, which is a full implementation of a Tailscale client for the ESP32 family. In some ways the ESP32 worked better than a Raspberry Pi: it boots in two seconds rather than thirty, draws 0.5 Watts rather than 1.5, and there’s no chance of it failing due to a corrupted SD card. Compared to a Raspberry Pi, however, which can be set up as a Tailscale client in a few minutes, this took several hours to get running. The biggest issue was making sure that there was enough memory available for TLS handshakes, which was solved by enabling the ESP32’s PSRAM.

Once the VPN client is running, the ESP32 can be used as an SSH jump machine to access other devices on the home network, without needing to expose those machines to the open Internet. The ESP32 also hosts an HTTP server which can send a wake-on-LAN magic packet to another device on the local network, letting unused devices sleep without impairing their availability.

The ESP32 doesn’t provide much bandwidth — streaming video would cause issues — but it works well enough for lightweight applications. If you’re wanting to stream video from an ESP32, though, it is technically possible.

NFC Record Player Promotes Intentional Listening

Streaming services have enabled many of us to have easy access to the world’s media library at the touch of a screen, but [Coconauts] thinks we’ve lost something along the way. To bring some intentionality back to the listening experience, they built an NFC record player called Minilos.

Like a normal record player, Minilos requires the user to select an album to play on the machine. These were originally decorative coasters with records printed on them, so they are much smaller than even a 45. Each one features an NFC tag that instructs ESP32 microcontroller hidden in the device to play the requested song. Once placed on the record player, it will then play through that album and come to a stop.

In [Coconauts]’s current setup, the ESP32 is connected to a Home Assistant server which then instructs a Google Speaker to play the requested song via Spotify, although we could easily imagine this being used to play music directly from an SD card or other digital storage device instead.

If you want complete control over your music listening while still keeping that authentic vinyl experience, you could always look into cutting your own records with a laser.

Qualcomm’s New QCC74x Appears To Target The ESP32 MCUs

These days wireless microcontrollers featuring built-in WiFi and Bluetooth are all the rage, with Espressif’s range of ESP32 MCUs being the default option for commercial and hobbyist projects alike. This makes Qualcomm’s recently released QCC74x MCU rather interesting, as specification-wise it would seem to be placed firmly in ESP32 territory.

On the radio side you get 1×1 WiFi 6, Bluetooth 5.4, and IEEE 802.15.4 (e.g. Thread and Zigbee), coupled with a single-core 352 MHz RISC-V CPU with FPU and DSP features and 484 kB of SRAM. The SDK for this MCU is hosted on Codelinaro, featuring the typical FreeRTOS-based stack, though confusingly Bluetooth and Zigbee support are currently marked as ‘not supported’. This might still be in progress.

Where the competition with Espressif feels clear is in the pricing, with the highest-performance evaluation board (QCC748M EVK, pictured above) listed for $13 (before taxes/tariffs). This gets you 8 MB of PSRAM built-in with unspecified link speed, but likely the same QSPI as used for the NOR Flash. USB support is available on this higher-end tier, while absent on the QCC743. Development documentation is also available, and looks fairly complete based on first glance.

Overall the QCC74x looks to be an upgrade to the older and significantly less powerful QCC730 MCU. Depending on software support and final pricing it could make for an interesting competitor to some of Espressif’s modules like its ESP32-C series or ESP32-S2, though the upcoming ESP32-S31 would seem to have it matched or beat on all metrics.

Mod This IKEA Lamp Into Smart Lighting For Not A Lot

The IKEA SKAFTSÄRV is an economical LED accent lamp, but while highly affordable it has only fixed lighting options. [simoneluconi] shows how it can easily be turned into a fully-configurable, WLED-connected, WiFi-enabled RGB lamp with little more than an ESP32-based board.

A thirty-LED lamp with integrated diffusor and stand can be had for surprisingly cheap. Add an equally-economical ESP32 board and it becomes a whole lot more.

To do this, the control board of the lamp gets replaced with an ESP32-C3 Super Mini board. Control and automation comes from WLED, open-source software that offers flexible automation and control for LED lights with a wide range of features, including native Android and iOS apps.

Modifying the SKAFTSÄRV lamp is fairly straightforward, but opening the unit does require breaking some glued seams to get inside. Once that’s done, the replacement board fits nicely into the housing and the unit can be closed back up. As far as WLED is concerned, the new lamp has 30 LEDs, WS281x type, GRB color order.

The end result is a stylish accent lamp with built-in diffusor and mount that can be controlled over WiFi with all the features WLED brings, such as easy integration with Home Assistant.

This isn’t the first time IKEA’s LED lighting has been given a powerup. Their pixel-style LED wall-mounted OBEGRÄNSAD, which displays a few canned animations out of the box, got considerably enhanced with a new controller.

Thanks [Crash] for the tip!

Win95-Tracker-CYD Is A Cheap Yellow Mod Tracker With I2S

The Cheap Yellow Display is a great little module to start a project with, but it wouldn’t necessarily be our first choice for an audio device. That’s because the PWM on the ESP32 isn’t exactly going to put out hi-fi, and the I2C pins needed for the I2S audio protocol aren’t broken out on the CYD board. That didn’t stop [ivans805] AKA [Ill-Town-5623]– he wanted a mod tracker, he had a CYD board, and necessity is the mother of invention.

It isn’t exactly a ground-breaking hack: he’s just tossed a bodge wire to the pin he needs on the ESP32, and run it to the I2S sound module. Still, in this era of endless modules it’s nice to see someone hacking what they have rather than running to AliExpress or somewhere else for a part that has everything the project needs built in.

The bodge wire is how you know it’s a hack.

What really caught our eye when we saw this project on the ESP32 subreddit was the aesthetics. It might be called “Win95-Tracker-CYD” but that interface just screams “Amiga” to us– look at that Boing Ball! Given where MOD files come from, that’s perfect. The UI was made with Lopaka.app, which we haven’t seen before but appears to be a sort of WYSIWYG editor for embedded device interfaces.

While you don’t need an ESP32 to play mod files– the diminutive CH32 can manage the task— there’s no arguing the CYD could make a nice little player. If you actually wanted to push its limits, you might try a 3D engine instead,

ESP32 Hosts SolarPunk Message Board

Solarpunk is sometimes thought of as the “good ending” to cyberpunk– there’s technology, but it’s community-focused instead of in the hands of evil conglomerates, and– if the name doesn’t give it away– renewably powered. [Victor Frost] found that image of the future inspiring enough to create this ESP32-hosted community hub. Yes, it looks like a lantern, but it’s actually a very-local webserver.

It looks like a lantern, but it’s got a server inside. Plus two 18650 cells to charge from a solar panel that’s presumably off-camera.

Local webserver sounds like an oxymoron, but this device does serve a page over HTTP… just, not on the world-wide web. Instead the only way to access it is via its own Wireless Network– he’s using the ‘captive portal’ that forces you to log into public wifi to direct people to a community message board.

It’s unmoderated, and unfiltered– users can post what they like, but given that they have to be within a few meters of the device, it’s not exactly anonymous. It’s a lot like the community center corkboard brought into the 21st centruy, which is very in keeping with the solarpunk ethos.

For ease of updates, he’s subdivided the ESP32’s flash into three partitions: one for the data, and two for the software, using LittleFS. This allows live updates and keeping a known-good backup for the quickest possible turnaround and/or rollback. One interesting thing is that his who UI– the actual web site, HTML, CSS, and JS– is all crammed into a single string in PROGMEM rather than files on the little file system. It’s an interesting choice, and makes for quick updates, firmware and UI in one go. Not everyone will like it, but it works for [Victor]. The code is, of course, on GitHub under the GPL— there’s a lot of overlap between the open source and solarpunk ethos, after all.

It’s a bit of a pity that he missed our Green Powered Challenge, as this project would have fit right in to the PV category, considering it runs on a 6W panel. For all the cyberpunk and solar power you see on this website, you’d think the “solarpunk” tag would be more popular, but no– all we have is this stained-glass robot.

Thanks to [Victor] for the tip! If you missed our contest, too, no worries– we take projects of all colours, green or otherwise, all the time. Just drop us a tip. 

Three-Axis Camera Slider From 3D Printer Parts

There’s a great reason 3D printers are made with things like extruded aluminum rails and other commodity, off-the-shelf parts. These things are designed not only for ease of construction and prototyping, but they’re also fairly strong especially given how modular they are. And they are excellent platforms for other projects as well. [CNCDan] has been using plenty of on-hand 3D printer parts to build a three-axis camera slider to film parts of his other projects, and this video documents his build and the latest upgrades to this platform.

After sorting out some issues with underpowered motors by improving their gear ratios, he found that many of the sizes and clearances on the existing platform changed enough that he needed to redo other parts of the carrier, including the mounting plate. He cut a new plate from steel and pressed bearings in, and then started putting together the other axes including a quick release mechanism for his camera. With a camera that weighs about 1.4 kg, getting the motors to move the camera smoothly was its own challenge. He re-worked all of his driver code over the course of a few weeks and eventually got his new system working much better than the original version.

With everything said and done, the camera slider can be controlled wirelessly with a GUI on another computer. Everything runs on an ESP32, and the slider can support other cameras besides his heavier one, including smartphones. He notes that this wasn’t the easiest way to build a project like this, but worked for him eventually because he had the parts and tools on hand to make it work. He’s also put the project files up on a GitHub page for anyone interested. Camera sliders like these have some niche uses as well; take a look at this high-speed camera slider for some examples.

Continue reading “Three-Axis Camera Slider From 3D Printer Parts”