Bring Back Your Bose With An ESP32

It’s become a familiar theme over the last couple of decades — hardware is rendered useless when its manufacturer pulls the cloud service on which it depends. This is particularly annoying when the device is something which shouldn’t need a cloud service to run in the first place, and several manufacturers have found themselves in hot water because of this.

Somewhere in between is the Bose SoundTouch speaker system, which includes a set of six internet radio preset buttons. In early May the service behind them was shuttered, and now here’s [Tostmann] with an ESP32 firmware to bring them back.

As you might imagine, it’s a device that emulates just enough of the now-defunct Bose cloud service to keep the speaker happy, but it has a clever trick up its sleeve. Normally these hacks rely on DNS redirects at the router, but this one avoids that thanks to a diagnostic interface on the Bose unit that allows the rewriting of the server address. The ESP32 does this with its own address, and the speaker is none the wiser.

We like this hack, because of its ingenuity, and because it saves yet another orphaned cloud product from becoming e-waste. This isn’t the first time we’ve seen a manufacturer on the naughty step for these practices.


Header image: TAKA@P.P.R.S, CC BY-SA 2.0.

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.

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.

LightInk, A Solar Powered ESP32 Smartwatch

There’s something about the ESP32 family of microcontrollers and timekeeping. We probably see it in clocks as often as we do anything else; we also probably see more clocks with one as the beating heart than any of the many other possible timekeeping options.

[Daniel Ansorregui]’s LightInk watch is no different in that regard — but it is very different in one important detail, because unlike most other smartwatch designs, you won’t have to worry about battery life. Outside of gloomiest Gotham, its built-in solar panel should be able to keep it charged.

That’s for a few reasons. The obvious one is the e-ink display, which only takes a sip of power during updates. That’s hardly unique to [Daniel]’s projec t– he quite explicitly calls out the Watchy project, which we featured previously, as where he got the idea of putting e-ink and an ESP32-PICO together on his wrist. What is unique is the delightful hack [Daniel] is using to minimize power usage, which is our favorite part.

Continue reading “LightInk, A Solar Powered ESP32 Smartwatch”

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. 

This Handy Synth Packs An ESP32

Since the first electronic hobbyist wired up a multivibrator to a keyboard many decades ago, electonic synthesisers have been a staple of home-made projects. Now with the proliferation of significantly powerful microcontrollers it’s possible to make a synth that surpasses many of the high-end models from days gone by.

Among those we’ve seen of late perhaps none does this better than [Povle] with their Spark portable keyboard. It’s a tiny thing that reminds us of those little Casio synths of the 1980s, but in its 3D printed case it packs a load of features.

Hardware wise it’s an ESP32 with a 3D printed keyboard using keyswitches. There are a load of pots for sound adjustment, and buttons for functions. A small OLED display shows what’s going on. Software wise it relies upon the AMY synth library, and there are repositories for both its hardware and software.

There’s a demo video we’ve placed below, and in it you hear the keyboard at work. And here maybe we’ve saved the best until last, because alongside being a fully featured synth, it’s also a sampler and a Bluetooth MIDI keyboard. Is there nothing this thing can’t do!

Continue reading “This Handy Synth Packs An ESP32”

Wipeout Clone Runs Native On ESP32-S3

Psygnosis’s 1995 game Wipeout is remembered for two things: being one of the greatest games of all time, and taking advantage of the then-new PlayStation’s capacity for 3D graphics. The ESP32-S3 might not be your first choice to replace Sony’s iconic console, but [Michael Biggins] a.k.a. [PhonicUK] is working on doing just that, with his own clone of Wipeout on the Expressif MCU. 

It’s actually not that crazy when you think about it. The PlayStation had a 32-bit RISC processor, and the ESP32-S3 is a 32-bit RISC processor. The PlayStation’s was only good for about 30 Million Instructions Per Second (MIPS) but it had a graphics co-processor to help out with the polygons — the ESP32-S3 has two cores that can help each other, which combine to about 300 MIPS. In terms of RAM, the board in use has 8 MB of PSRAM, while the faster 512 kB on the chip is used, in effect, as video ram.

The demo is very impressive, especially considering he’s fit in three computer players. He’s also got it blasting out 60 frames per second, which is probably double what the original Wipeout ran on the PS1. Part of that is the two cores in action: he’s got them working together on the interlaced video output, one sending while the other finishes the second half of the frame. Each half of the video gets dedicated space in the internal memory. Using a 480×320 pixel display doesn’t hurt for speed, either. Sure, it’s paltry by modern standards, but the original Wipeout got by with even fewer pixels — and it didn’t run on a microcontroller. Granted it’s a beefy micro, but we really love how [Michael] is pushing its limits here.

Right now there’s just the Reddit thread and the demo video below. [Michael] is considering sharing the source code for his underlying 3D engine under an open license. We do hope he shares the code, as there are surely tricks in there some of us here could learn from. If it’s all old hat to you, perhaps you’d rather spend a weekend learning raytracing.

Continue reading Wipeout Clone Runs Native On ESP32-S3″