Keep That Old Radio Alive With An ESP32

As the legacy AM broadcast bands fade away, what happens to the millions of devices built to receive them? Many of them will go into e-waste, but with a century of radios to choose from, some of them are collector’s items. Vintage tube radios like the ones [GarethDaviesLondon] has would go silent, so he’s made a small AM transmitter to keep them alive.

At its heart is an ESP32-S3, which takes an online radio stream and transmits it through RF generated with a pulse chain on a GPIO. Generating analogue signals from radio to video with a microcontroller is nothing new, but perhaps the more interesting part of this one comes in how he radiates enough from that pin. There’s a 3D printed box with stand-offs designed to take a widely spaced wire coil, which is enough for the vintage electronics to pick up. He makes the point that it may not be legal, but at that power we doubt anyone will notice.

The output on this one is 200kHz for the European long wave band, but we’re guessing a higher medium wave frequency could also be generated. Meanwhile if you are curious about AM, we’ve featured someone having a closer look at it.

DIY Game Console Does It With Optical Discs

Optical media may be dead for video games on the big corporate consoles, but not in [Emmet]’s heart– or on his DIY game console, that he built specifically to use optical media. Not fancy blu-ray or newfangled DVDs, either, but good old fashioned CDs from the Orange Book.

Yeah, he’s not fitting modern AAA flagship games on those disks, but the Intel N150 on the single board computer he’s using isn’t going to power through them, either. That’s fine, though, because there are literally decades of content this machine can handle. That’s why the board is running Batocera, which is a Linux distro tailor-made for retrogaming on x86– and also ARM, but that’s not important here.

He’s using ESP32-S3s to run custom wireless gamepads with BLE, which means he’s got more power in each of them than some of the retro consoles this machine is emulating, but it gets the job done. Unlike some cartridge projects we’ve seen that merely queue up the games, the CDs on this one actually do seem to store the ROM file, along with a shell script to put it in the correct emulator’s library. We might have gone with autorun, but it’s [Emmet]’s console and he’s got it working how he likes.

What really makes this project stand out, in our opinion, is the effort [Emmet] put into custom CD labels and art for the jewel cases. It really makes this feel like an actual game console and not just a PC hooked to a the TV. The 3D printed case doesn’t hurt in that respect, either.

Be it from a nostalgia, as in this project, a need for cheap storage, or the perverse desire to hook it to an NES, optical media seems to be having a bit of a moment. Speaking of moment, we’re going to have to take a moment to come to grips with the fact that CDs have become nostalgic. Didn’t they just replace vinyl?

Continue reading “DIY Game Console Does It With Optical Discs” →

The many polygons of Solid Snake on an ESP-driven LCD

Metal Gear Solid Moves From PlayStation To ESP32

If you haven’t heard of Metal Gear, you probably haven’t played video games these last few decades. The original Metal Gear dates back to 1987 and launched on the MSX, but the real rise to fame probably started with Metal Gear Solid on the original PlayStation in 1998. What needed a hefty console in 1998 can comfortably fit on a microcontroller in 2026, though, as [David Montero Crespo] demonstrates with his port of MGS to the ESP32-S3.

[David] is — as we always are — standing on the shoulders of giants with this hack. Most specifically, the project relies entirely on the [FoxdieTeam] MGS Reversing decompliation project. Of course what one team decompiles, another can recompile, and in this case [David] chose to recompile the game for Expressif’s exceptional ESP32. It wasn’t quite as easy as just forking the repo and compiling with the ESP32 as a target though, as the blog post explains.

We won’t spoil it, but [David] did have to make some changes to account for the different quirks the MIPS processor in the PlayStation has compared to the Xtensa cores on the microcontroller. Then to make it playable, he put the ESP32-S3 module onto some perfboard with an analog stick from a drone controller, an ILI9341 LCD panel, and a resistor ladder to run the buttons for a barebones handheld.

Fans of MSG and its many sequels may appreciate this replica of the codex communicator. Fans of the ESP32 may remember the Wipeout clone we featured earlier, which already proved the popular microcontroller could handle PlayStation-level graphics. If you were hoping for actual solid metal gears, you can cut your own at home.

Running Linux 6.11 On The ESP32-S3 With A Few Tweaks

With the Xtensa Lx7 twin CPU cores in the ESP32-S3 running at a relatively zippy 240 MHz and accompanying PSRAM of up to 16 MB, you might find yourself wondering whether it could run Linux. As [Paulneja] demonstrates with Linux kernel 6.11, the answer is a ‘yes’, though with the usual caveats.

What complicates matters with the ESP32-S3 is that it lacks certain amenities that spoiled OSes like Linux have come to take for granted, such as a Memory Management Unit (MMU). To deal with this, the NOMMU Linux configuration was used, along with a custom fork() implementation. Although the previous 0.7 version sort-of worked, the current 0.8 release is the first that manages to actually boot reliably and has a usable amount of RAM available after boot.

You can see the comparison between the two versions in the header image, with v0.8 having a blistering 3.7 MB available after booting and with overall resource usage and performance having improved massively. Note that only one core is available to Linux, with the other used by the typical FreeRTOS ESP-IDF stack to provide WiFi and Bluetooth.

This was all run on an ESP32-S3 with the N16R8 configuration, meaning 16 MB Flash that’s also used for writable storage and 8 MB of octal PSRAM. As for practical applications, it’s noted by [Paulneja] that this is a research project, though one could imagine this being an embedded Linux project along the lines of a network router running something like BusyBox.

This Circuit Sculpture Is An ESP32-Powered Console

Expressif might not have intended the ESP32-S3 to become an emulation powerhouse, but that’s certainly what has happened. The little microcontroller seems perfect for recreating the Game Boys or Game Gears of years past, and there are a lot of software options to that end. Having grabbed firmware off a github repo, you still need a physical build to hold, and that’s where this one by [HVT Lab and Huy Vector] stands out.

As you can see, they’re letting everything hang out — not even in a 90s-inspired clear case, but with an open frame of soldered brass, with just a small strip of 2 mm clear acrylic to help stabilize the buttons. That appears to be held with cyanoacrylate glue, but it’s brass and solder doing the majority of the structural work here. We might be a little more confident tossing this lovely device in a bag or pocket if the whole device was boxed in with that acrylic — shorting the exposed power bus on your keys sounds like a bummer — but we can’t argue with the aesthetic vision here. It’s a lovely build on the physical end.

From the video it looks like the software is based on Retro-Go, which we’ve seen in use before. In any case, there are plenty of open source projects you could load onto the ESP32-S3 powering this circuit sculpture, though, from NES to IBM PC.

Continue reading “This Circuit Sculpture Is An ESP32-Powered Console” →

The virtual pet showing a distressed face while a phone is in use

Anti-Doomscroll Tamagotchi Only Lives If You Do

The odds are, you have a device deliberately designed to be addictive in your pocket or on the table next to you if you aren’t staring at it right now– your smartphone. We’ve seen a number of projects that try and help people control or moderate their phone usage using a variety of techniques; this vitual pet by [brenpoly] does it by weaponizing human empathy, and our bizzare ability to pack-bond with literally anything.

The virtual pet itself is based on an ESP32 in a cutesy 3D-printed case, and we think it would probably work well enough if it just had hard-coded behaviors based on hooks in what you’re doing on your phone– the “my little buddy is sick because I’m doomscrolling” should be effective enough on its own, and that part is hardcoded on the ESP32 along with the regular virtual pet behaviour–but this is the year of our Llama 2026, so there has to be an LLM in there somewhere, right?

Some people would leave this part out, but we think [brenpoly]’s use of a local LLM on the phone does improve the project. The local agent doesn’t just have access to his screen time, but his notifications, too, and runs a whisper model linked to a microphone in the virtual pet via bluetooth. So you can get the contents or a summary of your notifications without looking at your phone, or just ask the little guy to tell you a joke. Giving the pet a voice with a the local piper model is also more effective at getting you to put your phone down when you hit the limits.

They’ve put the whole thing up on GitHub if you want to make your own– and if we can keep one person from strapping themselves to a shock collar, then this project is doing good in the world. If helps [brenpoly] or any of his fans do less scrolling and more hacking, that’s even better. Of course there’s a whole spectrum between “electrocute yourself” and “lovable virtual pet” when it comes to controlling your phone use, a spectrum that includes phone stands or even smart vaults for your device.

Thanks to [brenpoly] for the tip! Remember, all of your doomscrolling is justified if you find something to send to our tipsline. 

Continue reading “Anti-Doomscroll Tamagotchi Only Lives If You Do” →

An open-source, DIY, point-and-shoot digital camera.

PolyShot Camera Focuses On Nostalgia

Although we personally have yet to see anyone brandishing an old digital point-and-shoot camera, we hear they’re back in vogue. Why, though? People are nostalgic for that image quality. While he certainly could have simply picked up a vintage model somewhere for a likely inflated price, [Arnov Sharma] decided to build his own version and call it the PolyShot.

The core of this project is the Unihiker K10 dev board, which uses an ESP32-S3, a whopping 2 megapixel camera, and a micro SD card to capture photos and display them back on the screen. The tricky part, if you can call it that, is the custom PCB. It’s a simple board with just three buttons: shutter, gallery, and next image. We do like that the position of the battery compartment creates a nice grip.

The biggest difference here is that there is a few-second delay between pressing the shutter button and actually capturing the image, which you can see in the short videos below. So if you’re trying to get a shot of a skink or something equally speedy, we wish you good luck.

In a future iteration, [Arnov] wants to address the issue of image quality, because this project ended up evolving into a more traditional digital camera. He would also improve the battery life, for which the current expectancy is around three hours on a charge. Ultimately, [Arnov] wants to ditch the Unihiker and design everything from the ground up, using an ESP32-S3 module.

Continue reading “PolyShot Camera Focuses On Nostalgia” →