MoreRSS

site iconHackadayModify

Hackaday serves up Fresh Hacks Every Day from around the Internet. Our playful posts are the gold-standard in entertainment for engineers and engineering enthusiasts.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Hackaday

The Complex Transformations Underlying MC Escher’s Works

2026-04-13 01:00:00

Self-similar images are rather common, which are images in which the same image is repeated on a smaller scale somewhere within the image that one is looking at, something which is also referred to as the Droste effect. Yet in [MC Escher]’s 1956 Prentententoonstelling (‘picture gallery’) drawing, this self-similar image is somehow also the foreground image, from where it just keeps looping around in an endless dance. How this effect is accomplished and what the mathematical transformations behind it are and how they work is explained in a recent video by [3Blue1Brown].

The video uses previous work by [B. de Smit] and [H. W. Lenstra Jr] whose 2003 paper detailed the underlying transformations, as well as the mystery of the center of the work.

Although [MC Escher] created a transformation grid with square rectangles into which a non-transformed image could be copied verbatim, he left the center as a void with just his signature in it, leaving many to guess how one might be able to fill in this area with something that made sense. In the work by [Smit] et al. it was postulated that by treating the work as having been drawn on an elliptic curve over a field of complex numbers this might be possible.

While the transformation is simple enough at first, with just four rectangles at different zoom levels to make up the corners, the trick is to connect these rectangles. Using the demonstrated complex method this can be automated, with the central void now filled in and creating its own Droste effect. This once again demonstrates the beautifully complex mathematics in [Escher]’s works, despite him never having had any formal mathematical education.

Green Powered Challenge: Solar Powered Pi Hosts Websites in RAM

2026-04-12 22:00:00

If you started with computers early enough, you’ll remember the importance of the RAMdisk concept: without a hard drive and with floppies slow and swapping constantly, everything had to live in RAM. That’s not done much these days, but [Quackieduckie]’s solar powered Pi Zero W web server has gone back to it to save its SD card.

Sustainability and low power is the name of the game. Starting with a Pi Zero W means low power is the default; a an SLS-printed aluminum case that doubles as the heat sink– while looking quite snazzy–saves power that would otherwise be used for cooling. The STLs are available through the project page if you like the look and have a hankering for passively cooled Pi. Even under load [Quackieduckie] reports temperatures of just 29.9°C,  less than a degree over idle.

The software stack is of course key to a server, and here he’s using Alpine Linux running in “diskless mode”– that’s the equivalent of what us oldsters would think of as the RAMdisk. That’s not that unusual for servers, but we don’t see it much on these pages. It’s a minimal setup to save processing, and thus electrical power, with only a handful of services kept running: lighttpd, a lightweight webserver, and duckiebox, a python-based file server, along with SSHD and dchron; together they consume 27 MB of RAM, leaving the rest of the 512 MB DDR2 the Pi comes with to quickly serve up websites without the overhead of SD card access.

As a webserver, [Quackieduckie] tested it with 50 simultaneous connections, which would be rather a lot for most small, personal web sites, and while it did slow down to an average 1.3s per response that’s perfectly usable and faster than we’d have expected from this hardware. While the actual power consumption figures aren’t given, we know from experience it’s not going to be drawing more than a watt or so. With a reasonably sized battery and solar cell– [Quackieduckie] suggests 20W–it should run until the cows come home.

This isn’t the first solar-powered web server we’ve seen, but this one was submitted for the 2026 Green Powered Challenge, which runs until April 24th.

Making the Forgotten 1982 Game Adventure Canoe run on MAME

2026-04-12 19:00:00

A Taito Egret II mini arcade cabinet.
A Taito Egret II mini arcade cabinet.

A while back [Jack] came across a Taito arcade game that neither he nor any of his mates recognized. The game was Adventure Canoe and part of the collection of forty preinstalled games on a Taito Egret II mini arcade cabinet. Yet despite [Jack] and his buddies being avid 1980s arcade enthusiasts, this 1982 title for the Z80-based Taito SJ system was completely unfamiliar to them.

When even a web search turned up extremely few details, [Jack] did the only reasonable thing and borrowed the rather expensive mini arcade for hopefully some extracting of the game ROM.

As expensive as this mini arcade is, it features the typical ARM-based SoC and Linux-based firmware. Although you can totally dump the Flash, [Jack] found that the firmware update ZIP file was a much easier target to poke at and hopefully extract the ROMs from.

Of course, Taito used password-protected ZIP files within the firmware, leading to some reverse-engineering to find the passwords. The first was ‘hidden’ as plain text in the egret2 binary. For the remainder of the ZIP files the password wasn’t as readily found, but required some sleuthing. This took the form of dynamic runtime analysis with gdb, using information previously gleaned from a Ghidra analysis. Eventually this yielded the final passwords.

Extracting the game’s ROM files this way allowed for them to be adapted to the format that MAME expects, after which the game just had to be added to the emulator’s source files. With this done the game fired right up, and [Jack] was able to play the game without any trouble.

Passive Radar Explained

2026-04-12 16:00:00

It is an old trope in submarine movies. A sonar operator strains to hear things in the ocean but dares not “ping” for fear of giving away the boat’s location. Radar has a similar problem. If you want to find an airplane, for example, you typically send a signal out and wait for it to bounce off the airplane. The downside is that the airplane now knows exactly where your antenna is and, these days, may be carrying missiles to home in on it. In a recent post, [Jehan] explains how radar, like sonar, can be passive.

Even if you aren’t worried about a radar-homing missile taking out your antenna, passive radar has other advantages. You don’t need an expensive transmitter or antenna, a simple SDR can pull it off. You don’t need a license for the frequencies you want to use, either. You are just listening.

The key is that radar uses two different effects. One is how long it takes for the echo to return. The other is how much the Doppler effect shifts the frequency. Suppose you are using an FM radio station as a passive radar “exciter.” You can pick up the signal directly and also detect the same signal bouncing off the target. You can compare these two and determine the delay added by the reflection and the Doppler shift.

This does have one limitation. In a regular radar installation, you know that a certain signal delay means the target is somewhere on a circle a fixed distance from your antenna. With passive radar, you wind up with an ellipse instead of a circle. You can’t “scan” a passive signal like you do an active one, either.

But all is not lost. Similar to stellar navigation, you just need to get multiple ellipses by using different broadcast stations. With two stations, you’ll probably narrow the position down to two points where the ellipses intersect. Three different fixes are often enough to get a particular point.

Build your own? Of course. Don’t forget that the best transmitter to use might not be on the ground.

Title image from the post sourced from https://github.com/30hours/3lips.

Testing Refrigerants and Capillary Tubes to Find Peak Performance

2026-04-12 13:00:00

Heat lift graphs. (Credit: Hyperspace Pirate, YouTube)
Heat lift graphs. (Credit: Hyperspace Pirate, YouTube)

Although vapor-compression refrigeration is a simple concept, there are still a lot of details in the implementation of such a system that determines exactly how efficient it is. After making a few of such systems, [Hyperspace Pirate] decided to sit down and create a testing system that allows for testing of many of these parameters.

Some of the major components that determine the coefficient of performance (COP) of a heat pump or similar system include the used refrigerant, as well as the capillary tube diameter or expansion valve design. For the testing in the video three refrigerants are used: R600 (N-Butane), R134a (tetrafluoroethene, AKA Freon) and R290 (propane), with R134a being decidedly illegal in places like the EU. The use of R600 instead of R600A is due to the former allowing for a lower pressure system, which is nice for low-power portable systems.

The test rig has the typical fresh-from-the-scrap-heap look that we’re used to and love from [Hyperspace Pirate], but does exactly what it says on the tin, and is easy for any DIY enthusiast to replicate. Which compressor to pick for a specific refrigerant is also covered in the video, along with oil type and more.

For basic systems you’d use a simple capillary tube, whereas an airconditioner or similarly more complex system would use an adjustable valve design. With the rig you can test the efficiency of different tube diameters, with three sizes available in this version. Unfortunately the electronic expansion valve (EEV) that was going to be used didn’t get a chance to shine due to unforeseen events.

With the R134a and butane a COP of 2.0 – 2.5 was achieved when taking power factor into account, which was reasonable considering a compressor was used that targets R134a. Regardless, if you have ever felt like repurposing that old compressor from a fridge or AC unit, this might be a fun afternoon project.

Kiki is the Unknown Array Language

2026-04-12 10:00:00

Kiki bills itself as the “array programming system of unknown origin.” We thought it reminded us of APL which, all by itself, isn’t a bad thing.

The announcement post is decidedly imaginative. However, it is a bit sparse on details. So once you’ve read through it, you’ll want to check out the playground, which is also very artistically styled.

If you explore the top bar, you’ll find the learn button is especially helpful, although the ref and idiom buttons are also useful. Then you’ll find some examples along with a few other interesting tidbits.

One odd thing is that Kiki reads right to left. So “2 :* 3 :+ 1” is (1+3)2 not (23)+1. Of course, you can use parentheses to be specific.

If you are jumping around in the tutorial, note that some cells depend on earlier cells, so randomly pressing a “run” button is likely to produce an error.

Would you use kiki? There are plenty of array languages out there, although perhaps none that have such poetic documentation. Let us know if you have a favorite language for this sort of thing and if you are going to give Kiki a try.

If you want to try old school APL, that’s easier than ever.