Mysterious Files PH

Tuesday, March 17, 2026

Hacking The System In A Moral Panic: We Need To Talk

March 17, 2026 0
Hacking The System In A Moral Panic: We Need To Talk

It seems that for as long as there have been readily available 3D printers, there have been moral panics about their being used to print firearms. The latest surrounds a Washington State Legislature bill, HB2320, which criminalises the printing of unregistered guns. Perhaps most controversially, it seeks so impose a requirement on printers sold in the state to phone home and check a database of known firearms and refuse to print them when asked.

This has drawn a wave of protest from the 3D printing community, and seems from where we are sitting to be a spectacularly ill-conceived piece of legislation. It’s simply not clear how it could be implemented, given the way 3D printers and slicing software actually work.

Oddly This Isn’t About Firearms

The root of the problem with this bill and others like it lies in ignorance, and a misplaced belief in the power of legislation. Firearms are just the example here, but we can think of others and we’re sure you can too. Legislators aren’t stupid, but by and large they don’t come from technology or engineering backgrounds.

Meanwhile they have voters to keep happy, and therefore when a moral panic like this one arises their priority is to be seen to be doing something about it. They dream up a technically infeasible solution, push to get it written into law, and their job is done. Let the engineers figure out how to make it work.

How To Hack Public Scrutiny When It Matters

President Nixon at a lecturn against a blue curtain, facing the camera, with the press corps in the foreground facing him.
President Nixon addressing the White House Press Corps in 1971. White House Photo Office Collection, Public domain.

Our governments have a mechanism in place to curtail this, public scrutiny. In short, when they embark on something stupid the public is supposed to push back. It comes as in this case from the people themselves, but perhaps most effectively it comes from the press corps which surround the legislatures.

A politician doesn’t really care much if a bunch of 3D printer enthusiasts are angry about something, but I promise you he’s all over it if it’s lead story on the local news. This should protect us, but the flaw when it come to tech stories is that the ignorance is not confined to the legislature. You don’t get to be a political press corps journalist without being pretty good at your job, but unfortunately for us, being pretty good at that job doesn’t include knowing anything about tech. Instead they have finely tuned noses for politics, public policy, and other things that are central to that beat, so when they encounter a tech story they are more likely to follow received opinion than what’s really going on.

Over the years here at Hackaday we’ve seen it time and time again, with respect to drones, right to repair, the DMCA, and even from time to time, 3D printed fiearms. We’ve even wished for technology-aware political journalists in the past too, but inevitably they don’t read Hackaday. Perhaps we should therefore examine how our community approaches stories like this in the first place, and change what we do. We’re good at complaining using our channels, perhaps it’s time to try theirs instead.

The Press Release As A Magic Bullet

A screenshot of an annotated document
Wikipedia’s example press release template (CC-BY-SA 4.0)

There exists a tried and tested method for getting things in front of journalists, it’s called a press release. It’s a standardised form for making a point to a journalist, and when done correctly it can be very effective. How to write one is beyond the remit of Hackaday, but there are many resources online to help you. An appropriate one here is the UK Crafts Council’s one for makers. Take your concerns, distil them into a well-written and reasoned paragraph, and package it up as a press release.

Don’t send them personally, instead send them as an organisation, for example I wouldn’t write one as Jenny List. Instead I’d represent my hackerspace or my 3D printing society. As someone who’s written a few in my time as well as editing other people’s ones, I’d advise you to avoid writing either a rant or a manifesto, be factual and concise. If you appear to be a random crazy, your release will go in the round file.

When you have your press release, identify the channels where it will have the most impact. I might start with the local and regional papers and broadcasters, and find the journalists whose beat intersects with my target. The trick is writing up the technical aspects of the issue clearly enough that everyone can understand it, which is no mean feat, but it is infinitely easier when you already understand the tech than when you don’t.

This may seem like an odd departure from a 3D printing story, but perhaps like many of you I am tired of seeing badly thought out tech legislation passing without question. Perhaps it’s time our community learned some of the techniques used by the people who do mange to have influence, after all it can be easier than you think. We have the knowledge. It’s our responsibility to bring it to the people when necessary.


From 8086 to Z80: Building a NASM-Inspired SDK for 8-Bit Retro Computing

March 17, 2026 0
From 8086 to Z80: Building a NASM-Inspired SDK for 8-Bit Retro Computing

Assembler syntax is a touchy subject, with many a flamewar having raged over e.g. Intel vs AT&T style syntax. Thus when [Humberto Costa] recently acquired an MSX system for some fun retro-style ASM programming, he was dismayed to see that the available Z80 assemblers did not support the syntax of his favorite ASM tool, NASM. Thus was born the HC SDK project, which seeks to bring more NASM to the Z80, 8085 and a slew of other processors.

There’s both a project site and a GitHub repository, from where both source and pre-compiled releases can be obtained. Supported host platforms are macOS, Windows, OpenBSD, FreeBSD, and Linux, with currently supported targets the 8080, 8085, 8086 and Z80. Support for the 6502 is currently in progress.

The Netwide Assembler (NASM), targets only the x86 architecture, being one of the most popular assemblers for Linux and x86. It uses a variant of the Intel ASM syntax, which contrasts it strongly with the GNU Assembler (GAS) that uses AT&T syntax. Of course, in an ironic twist of fate NASM now also supports AT&T syntax and vice versa, albeit with some subtle gotchas.

Regardless, if ASM for these retro architectures is your thing, then the HC SDK may be worth checking out. [Humberto] also says that he’s looking at adding higher-level language support to make it a more complete development environment for these old systems and new takes on them.

Thanks to [Albert Wolf] for the tip.


Monday, March 16, 2026

Every Ham Shack Needs a Ham Clock

March 16, 2026 0
Every Ham Shack Needs a Ham Clock

Every ham radio shack needs a clock; ideally one with operator-friendly features like multiple time zones and more. [cburns42] found that most solutions relied too much on an internet connection for his liking, so in true hacker fashion he decided to make his own: the operator-oriented Ham Clock CYD.

A tabbed interface goes well with the touchscreen LCD.

The Ham Clock CYD is so named for being based on the Cheap Yellow Display (CYD), an economical ESP32-based color touchscreen LCD which provides most of the core functionality. The only extra hardware is a BME280 temperature and humidity sensor, and a battery-backed DS3231 RTC module, ensuring that accurate time is kept even when the device is otherwise powered off.

It displays a load of useful operator-oriented data on the touchscreen LCD, and even has a web-based configuration page for ease of use. While the Ham Clock is a standalone device that does not depend on internet access in order to function, it does have the ability to make the most of it if available. When it has internet access over the built-in WiFi, the display incorporates specialized amateur radio data including N0NBH solar forecasts and calculated VHF/HF band conditions alongside standard meteorological data.

The CYD, sensor, and RTC are very affordable pieces of hardware which makes this clock an extremely economical build. Check out the GitHub repository for everything you’ll need to make your own, and maybe even put your own spin on it with a custom enclosure. On the other hand, if you prefer your radio-themed clocks more on the minimalist side, this Morse code clock might be right up your alley.


Making a Better Kitchen Scale out of Junk Parts

March 16, 2026 0

Kitchen scales are plentiful and cheap, but their accuracy and measuring speed often leave a lot to be desired. In particular the filtering out of noise can make small changes a nightmare as e.g. adding a little bit of weight slowly can result in the result never updating. This frustrated [Mark Furneaux] enough that he dug up the load cell and metal base of a scrapped laboratory scale and added a strain gauge amplifier to build a better kitchen scale around it.

The only purpose-bought part was an HX710-based strain gauge amplifier module for $7 with LED display, with the metal base getting some metal bits welded onto it to hold said module as well as a push button and toggle switch. Existing wiring from the load cell was wired into the HX710 module, with power provided from a single 18650 Li-ion cell. This was paired with the standard TP4056-based module and its protection IC.

Ultimately the entire assembly looks very much bodged together, with plentiful zip ties, hot glue and messy welding, but it’s hard to deny that it seems to work well. A plastic cutting board makes for a good surface for the items being weighed, and measured drift across the range was about 200 mg, while the amplifier module updates the output in real-time so that you can see even the smallest changes and noise.

Even if you’re not lucky enough to have such a nice load cell and base kicking around, strain gauges are everywhere, and you can absolutely hack an existing (kitchen) scale to be better with some custom hard- and software.


How I 3D Printed My Own Lego-Compatible Train Bridges

March 16, 2026 0

Lego train sets have been available for decades, now. The Danish manufacturer long ago realized the magic of combining its building block sets with motors and plastic rails to create real working railways for children and adults to enjoy. Over the years, Lego has innovated through several generations of trains, from classic metal-rail systems to the more modern IR and later Bluetooth-controlled versions. The only thing largely missing over all that time, though…? A bridge!

Yes, Lego has largely neglected to build any bridges for its mainstream train lineup. There are aftermarket solutions, and innovative hacks invented by the community, all with their own limitations and drawbacks. This glaring oversight, though, seemed like a perfect opportunity to me. It was time to fire up the 3D printer and churn out a fully-realized Lego rail bridge of my very own.

Bridges Are Hard

I’ve experimented with building Lego rail bridges before, using standard track and household objects like cardboard, books, and beer. Unfortunately, it can be very difficult to support the track evenly at the joints which occur every 150mm, and derailments are common. Credit: author

There’s actually a good reason Lego bridges aren’t a big thing in the company’s own product lineup, beyond a few obscure historical parts. This is probably because they aren’t very practical. Lego locomotives are not particularly strong haulers, nor do they have excellent grip on the rails, and this makes them very poor at climbing even mild grades. Any official Lego bridge would have to be very long with a shallow slope just to allow a train to climb high enough to clear a locomotive on a track below. This would end up being an expensive set that would probably prove unpopular with the casual Lego train builder, even if the diehard enthusiasts loved it. 

There are third-party options available out there. However, most rely on standard Lego track pieces and merely combine them with supports that hold them up at height. This can work in some cases, but it can be very difficult to do cool things like passing a Lego train under a bridge, for example. It can be hard to gain enough height, and the short length of Lego track pieces makes it hard to squeeze a locomotive between supports.

However, none of these problems are insurmountable if you’re dedicated to the task. The trick is in being able to make entire pieces of Lego track with custom geometry to suit your exact needs. I’ve always tried to add bridges to my Lego railways, and I’ve found that trying to do so with the standard track pieces is often difficult. At just 150 mm long, they require a lot of supports, particularly at the joints, and it can be difficult to build any sort of structure that is stable enough to hold together without a train derailing across it. After many prior experiments, I figured that 3D printing bespoke bridge pieces would probably be the way to go to build a stable Lego train bridge that actually works.

Research And Development

Recreating basic Lego rail geometry was task 1. Credit: author

I started my work by recreating the track geometry so that my 3D printed parts would work with official Lego track. I was able to recreate the rails and the inter-track coupler design, based on a drawing available at the L-Gauge website. From there, I began my bridge design, starting with picking the most critical number—the grade of the bridge. Having done some research on Lego trains online, combined with my own prior tests, I figured a 10 degree grade would be low enough for a Lego train to climb without too much trouble. I also wanted to make the individual bridge pieces as long as possible to reduce the number of joints involved. I landed on a figure of approximately 290 mm, as this was the largest track length I could fit by printing diagonally on my printer.

The basic bridge design. The three ramp pieces repeat on the other side. Credit: author

I quickly worked up a design that involved seven separate pieces to create a whole bridge. Three individual ramp pieces on each side, plus a central flat bridge piece that has a piece of track passing at a perpendicular angle underneath. In total, the whole bridge measures almost two meters long, mostly because Lego locomotives only like a gentle climb and it’s quite a hike to get high enough to clear a train passing below.

The arches and pillars are probably excessive but they allow the bridge to be printed without support. Credit: author

From the get go, I wanted to print without supports—both for speed and to save plastic. This took some experimentation, but I mostly achieved success by using arches and subtle curves to keep overhangs in check and create a structure that would print cleanly.

With that said, one might argue that the excessive amount of arches and pillars used in my design might have wasted more plastic than just using standard supports generated by the slicer. Regardless, I think the choice to go with arches gave the bridge a nice aesthetic befitting a good railway. I printed the bridge pieces in PLA at a layer height of 0.20 mm, using two-colored filament just because I could, and it was cheap at the store. While some of the diagonal stretches of the rails featured obvious layer lines, this didn’t seem to have any negative effect on performance. It did, however, give the trains a zippy sound when they climbed and descended the bridge.

The completed bridge, prior to construction of supporting railway infrastructure. Credit: author
Shorter carriages work best due to the relatively sudden transition between the 10-degree grade and flat running. Credit: author

I set about testing the bridge design by inviting some friends over and building a railway in my living room. We set up a simple S-shaped loop that would allow a single train to test both the bridge itself and the passthrough track underneath. Early testing revealed some fun unexpected problems. Right off the bat, we found that one Lego locomotive had a low-slung piece that would smash into the track coupler as it came down off the bridge back on to the flat rails at ground level. Removing that piece barely compromised the look of the locomotive but enabled it to pass the bridge more easily.

We also soon found issues with carriages. Even at a subtle 10-degree grade, most Lego locomotives struggled to pull more than a single carriage up the slope. Further compounding the problem was that the momentum from the extra carriages on the downhill tended to overspeed the train and derail it at an immediately-following turn. Some carriages and locomotives were also simply incompatible with the bridge due to my design decisions. I had not paid much attention to the transitions on and off the sloped ramps. This meant that some longer carriages with wider-spread bogies would find themselves derailing as one set of wheels left the track while passing over the bridge. There were also some minor issues with the bridge pieces themselves and how they couple together. The Lego track coupling design is pretty good at snapping pieces together when they’re injection molded. It doesn’t work as well with softer 3D-printed PLA, nor is it good at locking together big heavy pieces of bridge that weigh many hundreds of grams each.

The custom bridge allows for the construction of fun new layouts that aren’t readily achievable with standard Lego parts. Credit: author

Nevertheless, the bridge design did mostly work if you were careful and only ran the right trains. With a layout built to suit the vagaries of over-bridge travel, with lots of straights for run-up and run-off, it was possible to climb and descend without too much trouble. The underpass track was also perfectly serviceable and presented precisely no problems during hours of play.

This bridge design could be easily improved. I’d probably rework the design with a lower grade—maybe 7 degrees, maybe 5—and really smooth out the transitions on and off the slope to allow as many different Lego trains to use the bridge as possible. Beyond that, it would simply be a matter of improving printability and reducing plastic use to really make this project shine. For those eager to try printing what I built, the files are available, but just be wary that your mileage, and your train’s mileage, may vary.

The fun thing about 3D printers is that they are perfect for jobs like this. If you need to make a plastic part with specific geometry, it’s now almost trivial to do. That makes recreating or innovating on things like toys or home appliances really easy, and also very fun. I had a blast designing this bridge and putting it together, and even more fun playing trains with my friends. I’d highly recommend taking a shot yourself if you feel like tinkering with Lego railways at home!


LEGO Machine Plays Tic-Tac-Toe Without Electronics

March 16, 2026 0

Tic-Tac-Toe is a relatively simple game, and one of the few which has effectively been solved for perfect play. The nature of the game made it possible for [Joost van Velzen] to create a LEGO machine that can play the game properly in an entirely mechanical fashion.

The build features no electronics to speak of. Instead, it uses 52 mechanical logic gates and 204 bits of mechanical memory to understand and process the game state and respond with appropriate moves in turn. There are some limitations to the build, however—the game state always begins with the machine taking the center square. Furthermore, the initial move must always be played on one of two squares—given the nature of the game though, this doesn’t really make a difference.

It’s also worth heading over to the Flickr page for the project just to appreciate the aesthetics of the build. It’s styled in the fashion of an 18th-century automaton or similar. It’s also been shared on LEGO Ideas where it’s raised quite a profile.

If you’ve ever wanted to think about computing in a mechanical sense, this build is a great example of how it can be done. We often see some fun LEGO machines around these parts, from massive parts sorters to somewhat-functional typewriters.


Sunday, March 15, 2026

Building a Rad Bluetooth Speaker that Didn’t Really Exist

March 15, 2026 0

[Nick] came across an awesome Bluetooth speaker online, only, there was a problem. It didn’t really exist—it was just a render of a device that would be nice to have. Of course, there was an obvious solution—[Nick] just had to build the device for real!

The key to the aesthetic of the build is the external case. [Nick] was able to recreate the rough design of the rendered device in SolidWorks, before having the components produced on a resin 3D printer which provided excellent surface finish. Internally, the Bluetooth audio receiver was cribbed from an old pair of wireless headphones. However, a little more oomph was needed to make the speaker really usable, so [Nick] hooked the audio output up to a small MAX98306 amplifier board and a pair of 3 W speakers. The tiny tactile buttons from the headphone PCB wouldn’t do, either. For a nicer feel, [Nick] hacked in a set of four hall effect keyboard switches to control the basic functions.

The result is a Bluetooth speaker that looks as rad as the rendered unit, only you can actually take it outside and bump some tunes! It recalls us of some fine up-cycling work we’ve seen done to vintage 80s radios in a similar vibe.