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.

Art of 3D printer in the middle of printing a Hackaday Jolly Wrencher logo

Is Now The Time For Volumetric 3D Printing?

Of all innovations adopted by the maker community within the past couple of decades, one stands among the rest on top for anything regarding manufacturing. It goes without saying here at Hackaday how many projects have been reliant on using the technology to turn their ideas into reality. 3D printing has been a maker community invention and, in return, has expanded this hacky community into something that anyone with an imagination can get into. It also goes without saying that the layer-based tech imposes limits on what we can actually create: think overhangs and layer adhesion. However, there’s a possibility that a recent offshoot of this scrappy community has the power to eliminate some of these faults.

Volumetric additive manufacturing (VAM) is a young technology that has a similar start to many new tech toys, including the original SLA of the first 3D printers. That is expensive and completely stuck in the laboratory… Fortunately, that’s not where 3D printing as a whole stayed, as the RepRap project managed to bring the obscure technology to the hobbyists’ main stage. An entire group of people formed and spent countless hours until the useless pieces of poorly extruded plastic could form parts impossible to make with anything else. A cool quirk of history is that it likes to repeat: examples spur recreation, and this appears to be happening with the technology found within VAM printing.

Continue reading “Is Now The Time For Volumetric 3D Printing?”

Godot’s New Contributing Policy Adds Barriers For AI Slop

Like so many large and popular open source projects these days, the Godot game engine struggles with an influx of pull requests. The situation has become increasingly dire due to the advent of AI-generated code. More specifically, the issue involves the inverse relationship between PR code quality and the number of PRs, which wastes a lot of time on the side of a limited number of (volunteer) reviewers. This has now forced the project to update its contribution policy.

An interesting point raised in the announcement article is that of the demoralizing effect of AI-generated PRs on reviewers. Often the human behind such a PR isn’t interested in being educated, or may even be an automated agent which isn’t capable of productive discussion on pros and cons of certain coding approaches — never mind in becoming a more permanent maintainer for the project.

This problem has led to new rules being instated, which include a ban on autonomous AI agents and vibe coding, a ban on substantial AI generating of code, and a ban on AI-generated text in human-to-human communication. It also codifies the requirement that all PRs are to be reviewed and approved by a human being before merging.

In many ways this new policy is similar to that of the Mesa project, which demands code comprehension on the side of the submitter, although it doesn’t go as far as NetBSD, which just outright treats LLM-generated code as ‘tainted’ due to potential licensing and other concerns. Other projects like the Linux kernel opt to make the human submitter responsible for any AI tool usage by forcing them to declare it.

Meanwhile there are also indications that such ‘AI tool’ usage is reducing useful interactions with open source projects. What the future will bring here remains to be seen, but at least as far as open source projects go these tools are clearly increasingly being banished.

Bambuddy Says Bye To Bambu Lab Cloud Services

If you have a Bambu Labs printer and aren’t keen to send your files to Bambu’s servers with each print job, then check out Bambuddy, an open-source, self-hosted, cloud-free central command that offers a local alternative for managing Bambu Labs printers. It acts as a replacement for the official cloud services, allowing you to slice, print, and monitor with full local control and zero reliance on Bambu Labs’ servers. Continue reading “Bambuddy Says Bye To Bambu Lab Cloud Services”

Behold A 60 Hz Refresh Rate E-ink Monitor

E-ink displays have a number of advantages over other display types, but their refresh rate isn’t one of them. But what exactly makes them slow? According to [Wenting Zhang], it’s not an inherent limitation of the technology. It’s mainly the controller, and this limitation can be overcome to create a high-resolution 60 Hz refresh rate E-ink display, totally suitable for use as a computer monitor.

The reason E-ink displays are so slow is simple. For a long time, they existed for only one purpose: to be screens for e-readers. They had to work on devices that were generally low power, with limited interfaces and slow processors. Accommodating these factors was the primary driver behind the high latency and slow refresh rates associated with these displays.

It was actually the limited interface options rather than the slow refresh that initially led to a custom controller, because [Wenting] wanted to use an E-ink display on a laptop build. But it quickly became apparent that a custom controller could do considerably more than E-ink was known for.

Initial tests with fast refresh rates were so positive that it led to a Hackaday Supercon 2024 talk on how to make E-ink go fast, and more recently has culminated in the Modos Flow, a fully open-source, user-repairable 13.3″ portable E-ink monitor.

The development path from proof of concept to finished product has been a long one for [Wenting]. Not only did a lot of optimization and feature work need to be crafted from scratch in order to effectively balance appearance with responsiveness in different display modes, but the usual hassles of development and bad timing were also in full force. On top of it were wasteful vendor shenanigans, as well.

Check out the story in the video, embedded just below. If you’d like to buy one, there are monochrome and color versions offered through Crowd Supply.

Continue reading “Behold A 60 Hz Refresh Rate E-ink Monitor”

After The Dust Settles: Building Pebble Apps

For a piece of wearable technology, Pebble has had a fairly “rocky” history. One of the most successful Kickstarters of its era, it went on to get acquired by FitBit, quietly shelved by them, then acquired by Google and open-sourced, where it’s now somewhat back in the hands of its original creator. Its new open source nature means that regular people can develop for these popular watches again, and [Coconauts] have developed a guide for these watches, new and old.

The original watches had to be coded using C, which is a fundamental language but one that generally isn’t used much in the modern world outside of embedded systems and other areas where efficieny is important. C does much less hand-holding than modern languages, so there are a number of things to keep an eye on when coding for these watches that languages like Rust, Go, and Python handle on their own. Regardless, the two-person team recently built a pair of apps for the Pebble platform as part of an app-making contest, one which notifies the user that the watch is charged to 80%, and another that shows an interactive kitten on the watch’s face.

Both of the apps are available from the Pebble app repository, and from there the source code can be found on respective GitHub pages if you’re looking for some examples to dust off old C skills. If you happen to have an old Pebble watch or always wanted one but didn’t want to deal with FitBit, now might be a good time to get them out and start tinkering around with it since it’s now in the open-source domain.

Retro Open Source Camera Straight From The ’90s

In our modern society, we have started to take the humble camera for granted. Perhaps because of this, trendy standalone cameras have started to take off. Unfortunately, most of the time these cameras are expensive and not any better than those in our everyday smartphones. If only there were some open-source solution where you could build and customize your own standalone device? [Yutani] has done just that with the SATURNIX.

Simple microcontrollers and cameras meant for Raspberry Pis are a dime a dozen these days. Because of this, it’s no surprise to hear that the SATURNIX is based on recognizable hardware, a Raspberry Pi Zero 2W and an Arducam 16MP sensor. The Pi Zero powers both the sensors’ capture abilities and the interactive LCD display.

Continue reading “Retro Open Source Camera Straight From The ’90s”