Flattening The Exhaust Of A Laser Cutter To Save Space

From laser cutters to 3D printers, having an exhaust duct at the back of a machine is a very common sight. However, these tend to be rather bulky, claiming many centimeters of precious space behind a machine even if you’d want to push it right up against a wall. This issue annoyed [TheNeedleStacker] over on YouTube so much that he had a poke at solving this problem with angled exhaust ducts, all hopefully without impairing its basic function.

Smoke machine and laser for some air ducting rave vibes. (Credit: TheNeedleStacker, YouTube)
Smoke machine and laser for some air ducting rave vibes.

Although there are some online offerings for angled exhaust port extenders, these do not quite fit the required 6″ diameter. Reducing the problem to just a matter of cross section area for simplicity’s sake, that means a 19″ wide duct at a depth of 1.5″. Making sure the transition from the tube to the flat duct doesn’t become an impediment is the tricky part, so the approach here was to mostly ignore it and just make a functional prototype to get an idea of how a direct approach worked.

Installing the contraption worked out fine, and subsequent testing showed that although it seems to slightly reduce the effective airflow compared to the flex tubing, it is absolutely rad to look at with the transparent cover and some laser light to illuminate all that’s happening inside.

While some optimization work on the duct transitions can undoubtedly eke out more performance, it’s certainly not bad for a quick project.

Continue reading “Flattening The Exhaust Of A Laser Cutter To Save Space”

New Linux Kernel Rules Put The Onus On Humans For AI Tool Usage

It’s fair to say that the topic of so-called ‘AI coding assistants’ is somewhat controversial. With arguments against them ranging from code quality to copyright issues, there are many valid reasons to be at least hesitant about accepting their output in a project, especially one as massive as the Linux kernel. With a recent update to the Linux kernel documentation the use of these tools has now been formalized.

The upshot of the use of such Large Language Models (LLM) tools is that any commit that uses generated code has to be signed off by a human developer, and this human will ultimately bear responsibility for the code quality as well as any issues that the code may cause, including legal ones. The use of AI tools also has to be declared with the Assisted-by: tag in contributions so that their use can be tracked.

When it comes to other open source projects the approach varies, with NetBSD having banished anything tainted by ‘AI’, cURL shuttering its bug bounty program due to AI code slop, and Mesa’s developers demanding that you understand generated code which you submit, following a tragic slop-cident.

Meanwhile there are also rising concerns that these LLM-based tools may be killing open source through ‘vibe-coding’, along with legal concerns whether LLM-generated code respects the original license of the code that was ingested into the training model. Clearly we haven’t seen the end of these issues yet.

Reverse-Engineering Human Cognition And Decision Making In A Modern Age

Cognitive processes are not something that we generally pay much attention to until something goes wrong, but they cover the entire scope of us ingesting sensory information, the processing and recalling thereof, as well as any resulting decisions made based on such internal deliberation.

Within that context there has also long been a struggle between those who feel that it’s fine for humans to rely on available technologies to make tasks like information recall and calculations easier, and those who insist that a human should be perfectly capable of doing such tasks without any assistance. Plato argued that reading and writing hurt our ability to memorize, and for the longest time it was deemed inappropriate for students to even consider taking one of those newfangled digital calculators into an exam, while now we have many arguing that using an ‘AI’ is the equivalent of using a calculator.

At the root of this conundrum lies the distinction between that which enhances and that which hampers human cognition. When does one merely offload tasks to a device or object, and when does one harm one’s own cognition?

Continue reading “Reverse-Engineering Human Cognition And Decision Making In A Modern Age”

Reverse-Engineering An Amazon Blink Gen 3 Camera

After some water intrusion apparently killed one of [electronupdate]’s Amazon Blink Gen 3 cameras he took this opportunity to do a full teardown and analysis of all the major components. Spread across its three PCBs there are no fewer than two wireless ICs and a custom ASIC for all the major processing. There’s also a blog post with easy-to-ogle pictures.

The most basic PCB is effectively just a PCB antenna for the Silicon Labs EZR32 IC on the main PCB, using which the ~915 MHz connection with the central hub is maintained. The other smaller PCB is a bit surprising in that it contains a Cypress CYW43438 W-Fi b/g/n and BT 5.1 chip. This would seem to be used for the setup process, but considering that it also uses a central hub it is a bit of a mystery as to what it is used for exactly.

Finally, the main PCB contains all the major parts, with the custom Amazon Immedia ASIC that’s an integral part of this very low-power camera. Given that two AA cells being enough to run the camera for about two years, using off-the-shelf parts probably wasn’t good enough without some serious customization.

As for why this outdoors-rated camera failed after a few years in the outdoors, the reason appears to be water intrusion via the speaker opening. As for why a camera needs a speaker and not just the microphone is left as an exercise to the reader, but maybe it could be useful for yelling at the local kids to get off your darn lawn?

Continue reading “Reverse-Engineering An Amazon Blink Gen 3 Camera”

Trying To Install Haiku On A 2009 Mac Mini

Although the number of uses for a 2009-era Mac Mini aren’t very long, using them to run new-and-upcoming operating systems like Haiku on would seem to be an interesting use case. This is what [The Phintage Collector] recently took a swing at, using both the 2024 Beta 5 release and a current nightly build. The focus was mostly on the 32-bit build, as this has binary compatibility with BeOS applications, but the 64-bit version of Haiku was of course also installed.

One of the main issues with these Mac systems is that they use EFI for the BIOS, so you’re condemned to either take your chances with the always glitchy CSM ‘classical BIOS’ mode, or to make Haiku and EFI get along. While for the 64-bit version of Haiku this wasn’t too much of a struggle, the 32-bit version ran into the problem that the 64-bit EFI BIOS really doesn’t like 32-bit software. After a while the 32-bit version of Haiku was thus abandoned for a later revisit.

With the 64-bit version a lot of things just work, though audio couldn’t be made to work even with a USB dongle, and there’s no hardware acceleration for graphics, so gaming isn’t really going to happen either. The positive thing here is probably that as a test system for 64-bit Haiku such a Mac Mini isn’t too crazy, it being just an Intel system with an Apple-flavor EFI BIOS.

If you’re into giving it a shot yourself, the video description page contains a lot of resources to consult.

Continue reading “Trying To Install Haiku On A 2009 Mac Mini”

The Complex Transformations Underlying MC Escher’s Works

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.

Continue reading “The Complex Transformations Underlying MC Escher’s Works”

Making The Forgotten 1982 Game Adventure Canoe Run On MAME

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.