The ESP32 Gets A Web Browser

At the Hackaday Europe conference in Italy earlier in the year, we were shown a rather interesting device. The work of [Alun Morris], it was an ESP32-powered Cheap Black Display board, and it was running a web browser. Definitely an achievement.

Lest you imagine that it was sporting the latest and greatest in browser technology, we must disappoint you. The browser in question is a very basic text mode device, but it did happily retrieve Hackaday, which should be the only test a browser should need to pass.

Under the hood it’s running FreeRTOS, with separate HTML retrieval and tokenizing, and UI processes. It can fetch web pages directly, but there’s also a server-side proxy for difficult sites, and for creating image thumbnails.

An ESP32 is a powerful microcontroller, but it’s fair to say it’s not in the league of running a web browser and as far as we can remember this is the first one we’ve seen. We’re sure it’s a field with further progress to be made though, particularly with the more powerful recent chips in the series. This project however is a good start, and more importantly it can be yours for a few dollars on Ali to buy a dev board. What are you waiting for?

Continue reading “The ESP32 Gets A Web Browser”

Behold The Most Beautifully Ambitious Starship Simulator Yet

[Kevin Kelm] created something wondrous: Halcyon Dawn, an utterly unique and desperately challenging game that is equal parts intricate starship simulator, imposing hardware console, video game, and love letter to John Scalzi’s Old Man’s War book series. Grab a beverage for this one, because it’s chock-full of detail.

First, how is it played? The simulator represents the ship Halcyon Dawn, a stolen and renamed vessel, and the player representing its sole crew member. The ship’s new mission is to establish a home for its payload of genetically-engineered unfortunates, escaping a cruel sort of indentured military servitude. The former masters of course have a very different view of the whole situation, throwing around terms like “treason” and “theft” and in general preferring the version of the desperate protagonist they had the most control over.

Aluminum extrusion, laser-cut panels, and custom PCBs for interfacing physical controls and displays make up the bulk of the build.

As the player is meant to be operating the ship on their own, the cockpit is imposing. All 152 controls and six screens are meaningful and will be needed to pilot the Halcyon Dawn, survive hostile actions, repel boarding attempts, mine and refine vast amounts of raw materials, and in general keep the ship running and intact until an autofactory can be deployed in orbit of a suitable planet to create a new home.

All easier said than done. It’s one thing to pilot and tweak a temperamental ship, but doing so while also performing damage control and thwarting a boarding attempt by manipulating life support is quite another. Want more details? Gameplay is documented here and the physical controls have their own library.

The product of a year of focused work, [Kevin] – now retired – pointed his decades of hardware and software experience at Halcyon Dawn after realizing one night that everything he needed to create it already existed. How this whole project came to be is also a tribute to the amazing tools and equipment that hobbyists and hackers of all kinds now have to turn an idea into something that actually exists in the world. Even so, it was a load of work he is not keen to repeat. Don’t miss the technical deep-dive and photo gallery of the build.

While the game itself — being a fan-made derivative of Scalzi’s work (and useless without the custom-made hardware console) — isn’t being released, [Kevin] has shared the underlying hardware framework it is built on. Enigma is an ESP32-based set of input and output PCBs made for integrating switches, knobs, displays, relays, and more with a Python library to make them easy to work with.

Starship simulators are a wonderful subset of projects, and every one is different from the last. Something about physical builds really works for them, and while we’ve seen a camper trailer converted to starship simulator [Kevin]’s project focuses the whole experience beautifully into the single-person console you see here. Watch a video of Halcyon Dawn running in an arcade-like “attract” mode embedded just below.

Continue reading “Behold The Most Beautifully Ambitious Starship Simulator Yet”

60 FPS NES Emulator On ESP32

At least in theory, video games are more resistant to becoming lost media thanks to their digital nature — they’re easy to copy and emulators have saved many titles that are otherwise locked in corporate vaults. But emulators give us something beyond simple preservation: they can also be used to enhance games well beyond the capabilities of the original systems while still preserving the souls of the games, as this NES emulator manages to do.

The emulator is called Anemoia-ESP32, and as its name suggests is a re-write of the Anemoia emulator specifically built for the ESP32. By modern standards these little chips don’t pack much of a punch, but compared to original NES hardware they’re more than up to the task of gaming. This project aims to recreate the Nintendo Entertainment System experience as faithfully as possible, hitting 60 FPS in most instances, as well as maintaining full audio emulation. Running on an ESP32 enables some truly small handheld options that would be difficult to achieve with more traditional platforms for emulation. There are some PCBs available here as well, but aren’t required to explore this project with.

As far as extra features compared to original NES hardware, the emulator does support save states and has a number of other settings improvements. Installation is as easy as flashing any other firmware image onto an ESP32, which these days can even be done from the browser. No word on whether or not it will eventually support emulating dual Picture Processing Units, but we can hope.

A vaguely perforated metal cylinder sits on a wooden box with a grey cylinder and LCD display atop it. There are holes in the top of the grey cylinder for air to flow through.

A Smarter DIY Air Filter

As predominantly indoor creatures, it’s important to maintain a healthy habitat for the hacker. [Kishan Pratap Singh] designed a clever solution in AirSense, an ESP32-powered air filter.

If you’re thinking of cleaning the air in your environment, you might also want to know some properties about the air coming out of the filter. AirSense measures PM2.5 dust concentration, Air Quality Index (AQI), temperature, humidity, and atmospheric pressure. The various sensors are mounted along the exhaust path of the filter, which lets your know what kind of air it’s pumping out.

The system drives a 150 mm exhaust fan mounted in a 3D printed cap that pulls air through a cylindrical Xiaomi HEPA filter inside a perforated metal trash can enclosure. The ESP32 and an LCD readout of the environmental data also live in the cap, giving the device a sleek look. While [Singh] chose to run the filter continuously, we wonder if it might be interesting to set it up to only filter the air if air quality drops below a certain level to conserve power, especially if you’re on a time-of-use power plan. That would require redesigning the sensor assembly (or running the unit in reverse), so maybe it’s over-complicating things?

We’ve seen the Xiaomi Air purifier filter mentioned before, but under the auspices of hacking it’s filter DRM, an open source air filter designed by [Naomi Wu], and even an ESP32 pressed into service to plug an air purifier into Home Assistant.

20 FPS On E-Paper Display Without Help

If electronic paper displays have one downside, it’s generally refresh rate. Earlier versions of the tech might only have been able to do single-digit frames per second, while modern, mid-range devices can sometimes manage 10-20 FPS — and that’s not including the frames needed to blank the display. Getting up past that double-digit barrier typically requires higher-end displays, more powerful processors or FPGAs, and more money. On the other hand, [Tony] was recently able to get 20 FPS out of an ESP32-based device without using any extra processing power.

The key to improving e-paper performance is understanding how the display actually works. The “ink” consists of microscopic charged pigment particles that physically move in response to electric fields, making the display much slower than LCD or OLED panels. Rather than fully erasing and redrawing every frame, the software takes advantage of the particles’ existing state by generating optimized driving waveforms that only move the particles needed to produce the next image. On the software side, an MPEG-like encoding is used so only changes between frames are transmitted and converted into these waveforms, reducing unnecessary data transfers and allowing much higher frame rates.

[Tony]’s method is able to drive 960×540 panels, like those found in the Lilygo or M5PaperS3, to 20 FPS, and these platforms are based on nothing more than the capable but limited ESP32 chip. It’s an impressive push, and worth checking out the video in the linked project page. We assume you’d need a little more to drive something like the massive e-paper display found in this home automation setup, though.

Continue reading “20 FPS On E-Paper Display Without Help”

ESP32 Keeps Tabs On Your Local Airspace

We know, we know. Despite being called ESP32-Plane-Radar, this project from [Mateusz Juszczyk] isn’t actually using radar. But thanks to the round LCD this desktop gadget does a fantastic job of recreating a classic radar display, and by pulling in Automatic Dependent Surveillance–Broadcast (ADS-B) data, the visuals even match nearby real-world aircraft.

Perhaps the best part of this project is just how easy it is for others to get in on the action. Although the presentation certainly looks professional — and expensive, if we’re being honest — there’s nothing particularly exotic going on here. Specifically, there’s ESP32-C3 Super Mini behind the scenes cranking through the ADS-B data and pushing it out to a circular GC9A01 display. A minimalistic 3D printed enclosure holds both components, and while it’s undeniably slick as-is, we can’t help but think there’s potential here for more elaborate designs.

As you probably guessed from the lack of a radio in the parts list, the code [Mateusz] provides doesn’t actually sniff ADS-B out of the air. It connects to the local network over WiFi, and then hits adsb.fi to pull in crowdsourced flight data. Since the device has to connect to the network anyway, the code also offers up a web-based configuration interface which puts a little more polish on what’s already an impressive presentation.

We used a round GC9A01 display on the Vectorscope back in 2023, so if anyone ports this over to their old Supercon badge we’d love to see it in action.

Thanks to [Mauricio] for the tip.

Make A DIY E-ink Faceplate For Valve’s Steam Machine

Valve has always designed hacker-friendly hardware, and in that spirit, [NaKyle Wright] released Inkterface, a design for an E-ink faceplate to fit the recently released Steam Machine. As far as projects go, this one is meticulously documented, so give it a peek.

The system uses a selection of components that include a 5.83″ E-ink panel and driver board, a small lithium-polymer battery, and an ESP32-based controller board.  A cleverly-designed 3D printed frame and bezel hold everything just so, creating a snug assembly with minimal wiring hassles.

A small service can be easily configured to control how the display updates.

The faceplate is wireless and self-contained, attaching with the help of four magnets. On the software side, the host machine communicates over Bluetooth, and a service takes care of pushing updates. An app for configuring and talking to the display will be available on Steam eventually, but in the meantime one can install that part manually.

[NaKyle]’s bill of materials calls for specific components, but the underlying design is very modular. Should one wish to make hardware or component changes, alterations to the 3D printed parts might be needed as well. Fortunately, [NaKyle] includes the .step files alongside the .stl models. We love to see that, because it makes tweaking or customizing so much more accessible. A homebrewed version of this E-ink panel might be just the thing to complement a homebrewed Steam machine.

Be sure to also check out the repository of Steam hardware, which contains drawings and 3D models of the Steam Deck and Steam Controller, useful for designing holders or custom brackets or whatever else one may need.