Porting DOOM To A Forgotten Apple OS

Apple hasn’t always had refined user experiences in their operating systems. In the distant past of the ’90s they were still kind of clunky computers that were far from the polished, high-end consumer machines of the modern era. That wasn’t all that Apple offered back then, though. They had a long-forgotten alternative operating system that was called A/UX designed for government applications, and [Keriad] is here to show us this relic operating system and port DOOM to it.

A/UX was designed in the pre-PowerPC days when Macintosh computers ran on Motorola 68000 chips. Luckily, [Keriad] has a Mac Quadra 800 with just such a chip that is still fully-functional. DOOM was developed with the NeXTSTEP operating system which can run on old Macs thanks to another tool called MacX which allows X11 applications to run on Mac. A version of gcc for A/UX was found as well and with the source code in hand they were eventually able to compile a binary. There were several hiccups along the way (including the lack of sound) but eventually DOOM was running on this forgotten operating system.

The main problem with the build in the end, besides the lack of sound, is that the game only runs at 2 – 3 frames per second. [Keriad] speculates that this is due to all of the compatibility layers needed to compile and run the game at all, but it’s still impressive. As far as we know, [Keriad] is the first person to port DOOM to this OS, although if you’re looking for something more straightforward we would recommend this purpose-built Linux distribution whose sole task is to get you slaying demons as quickly as possible.

A Linux Distribution For DOOM

If you’ve gone further into the Linux world than the standard desktop distributions like Ubuntu or Fedora, you have undoubtedly come across some more purpose-built distributions. Some examples are Kali for security testing, DragonOS for software-defined radio, or Hannah Montana Linux for certain music fans. Anyone can roll their own Linux distribution with the right tools, including [Shadly], who recently created one which only loads enough software to launch the 1993 classic DOOM.

The distribution is as simple as possible and loads no bloat other than what’s needed to launch the game. It loads the Linux kernel and the standard utilities via BusyBox, then runs fbDOOM, which is a port of the game specifically designed to run on the Linux framebuffer with minimal dependencies. After most of that, the only thing left is to use GRUB to boot the distribution, and in just a moment, Doomguy can start slaying demons. The entire distribution is placed into a bootable ISO file that can be placed on any bootable drive.

As far as DOOM hacks go, we’re used to seeing the game running on hardware it was never intended for like the NES  or on an office phone. This one, on the other hand, gives us a little more insight into just how little is needed for a full-fledged Linux distribution, as long as what you need to do is relatively straightforward.

Continue reading “A Linux Distribution For DOOM

Induction Heater Uses New Coil

Induction cook tops are among the most efficient ways of cooking in the home that are commercially available to the average person. Since the cook surface uses magnetic fields to generate heat in the cookware itself, there is essentially no heat wasted. There are some other perks too, such as faster cooking times and more fine control, not to mention that it’s possible to build your own induction stove. All you need is some iron, wire, and a power source, and you can have something like this homemade induction cooker.

This induction heater has a trick up its sleeve, too. Instead of using an air coil to generate heat in the cookware, this one uses an iron core instead. The project’s creator [mircemk] built an air core induction stove in the past, and this new one is nearly identical with the exception of the addition of the iron core. This allows for the use of less wire, and uses a driver circuit called a Mazzilli ZVS driver running through some power MOSFETs to power the device. A couple inductors limit the current to 20A, but it appears to work just as well as the previous stove.

This build puts a homemade induction stove well within reach of anyone with an appropriate power supply and enough wire and inductors to build the coils. [mircemk] has made somewhat of a name for himself involving project that use various coils of wire, too, like this project we featured recently which uses two overlapping air-core coils to build an effective metal detector.

Continue reading “Induction Heater Uses New Coil”

Bug Eliminator Zaps With A Laser

Mosquitoes tend to be seen as an almost universal negative, at least in the lives of humans. While they serve as a food source for plenty of other animals and may even pollinate some plants, they also carry diseases like malaria and Zika, not to mention the itchy bites. Various mosquito deterrents have been invented over the years to solve some of these problems, but one of the more interesting ones is this project by [Ildaron] which attempts to build a mosquito-tracking laser.

The device uses a neural learning algorithm to identify mosquitoes flying nearby. Once a mosquito is detected, a laser is aimed at it and activated in order to “thermally neutralize” the pest. The control system as well as the neural network and machine learning are hosted on a Raspberry Pi and Jetson Nano which give it plenty of computing power. The only major downside with this specific project is that the high-powered laser can be harmful to humans as well.

Ideally, a market for devices like these would bring the price down, perhaps even through the use of something like an ASIC specifically developed for these mosquito-targeting machines. In the meantime, [Ildaron] has made this project available for replication on his GitHub page. We have also seen similar builds before which are effective against non-flying insects, so it seems like only a matter of time before there is more widespread adoption — either that or Judgement day!

Continue reading “Bug Eliminator Zaps With A Laser”

Building Faster Rsync From Scratch In Go

For a quick file transfer between two computers, SCP is a fine program to use. For more complex, large, or regular backups, however, the go-to tool is rsync. It’s faster, more efficient, and usable in a wider range of circumstances. For all its perks, [Michael Stapelberg] felt that it had one major weakness: it is a tool written in C. [Michael] is philosophically opposed to programs written in C, so he set out to implement rsync from scratch in Go instead.

[Michael]’s path to deciding to tackle this project is a complicated one. His ISP upgraded his internet connection to 25 Gbit/s recently, which means that his custom router was the bottleneck in his network. To solve that problem he migrated his router to a PC with several 25 Gbit/s network cards. To take full advantage of the speed now theoretically available, he began using a tool called gokrazy, which turns applications written in Go into their own appliance. That means that instead of installing a full Linux distribution to handle specific tasks (like a router, for example), the only thing loaded on the computer is essentially the Linux kernel, the Go compiler and libraries, and then the Go application itself.

With a new router with hardware capable of supporting these fast speeds and only running software written in Go, the last step was finally to build rsync to support his tasks on his network. This meant that rsync itself needed to be built from scratch in Go. Once [Michael] completed this final task, he found that his implementation of rsync is actually much faster than the version built in C, thanks to the modernization found in the Go language and the fact that his router isn’t running all of the cruft associated with a standard Linux distribution.

For a software project of this scope, we find [Michael]’s step-by-step process worth taking note of for any problem any of us attempt to tackle. Not only that, refactoring a foundational tool like rsync is an involved task on its own, let alone its creation simply to increase network speeds beyond what most of us would already consider blazingly fast. We’re leaving out a ton of details on this build so we definitely recommend checking out his talk in the video below.

Thanks to [sarinkhan] for the tip!

Continue reading “Building Faster Rsync From Scratch In Go”

New Resin Printing Method Creates Objects In Seconds

For anyone looking to buy a 3D printer at home, the first major decision that needs to be made is whether to get a resin printer or a filament printer. Resin has the benefits of finer detail, but filament printers are typically able to produce stronger prints. Within those two main camps are various different types and sizes to choose from, but thanks to some researchers at Switzerland’s École polytechnique fédérale de Lausanne (EPFL) there’s a new type of resin printer on the horizon that can produce prints nearly instantaneously.

The method works similarly to existing resin printers by shining a specific light pattern on the resin in order to harden it. The main difference is that the resin is initially placed in a cylinder and spun at a high speed, and the light is shined on the resin at different angles with very precise intensities and timings in order to harden the resin in specific areas. This high-speed method allows the printer to produce prints in record-breaking time. The only current downside, besides the high price for the prototype printer, is that it’s currently limited to small prints.

With the ability to scale in the future and the trend of most new technologies to come down in price after they have been on the market for some amount of time, it would be groundbreaking to be able to produce prints with this type of speed if printers like these can be scalable. Especially if they end up matching the size and scale of homemade printers like this resin printer.

Thanks to [suicidal.banana] for the tip!

Automatic Water Turret Keeps Grass Watered

Summer is rapidly approaching (at least for those of us living in the Northern Hemisphere) and if you are having to maintain a lawn at your home, now is the time to be thinking about irrigation. Plenty of people have built-in sprinkler systems to care for their turf, but this is little (if any) fun for any children that might like to play in those sprinklers. This sprinkler solves that problem, functioning as an automatic water gun turret for anyone passing by.

This project was less a specific sprinkler build and more of a way to reuse some Khadas VIM3 single-board computers that the project’s creator, [Neil], wanted to use for something other than mining crypto. The boards have a neural processing unit (NPU) in them which makes them ideal for computer vision projects like this. The camera input is fed into the NPU which then directs the turret to the correct position using yaw and pitch drivers. It’s built out of mostly aluminum extrusion and 3D printed parts, and the project’s page goes into great details about all of the parts needed if you are interested in replicating the build.

[Neil] is also actively working on improving the project, especially around the turret’s ability to identify and track objects using OpenCV. We certainly look forward to more versions of this build in the future, and in the meantime be sure to check out some other automated sprinkler builds we’ve seen which solve different problems.

Continue reading “Automatic Water Turret Keeps Grass Watered”