First Functional Print

29 Nov 2024
An SE Slot plate, in OpenSCAD (left), Bambu Studio (middle) and reality (right)

About the same time as my educational foray into multicolour printing1, I decided to put the printer to work doing something useful: my first functional print. I had an almost-complete design already, that I’d produced while getting started with OpenSCAD, so it was just a matter of turning it into reality.

Regular readers may recall my project at the start of the year to revive a Mac SE in honour of the 40th anniversary of the Mac itself. At the heart of that was a BlueSCSI SCSI emulator. I chose to mount this internally in the location of the old hard drive, which was great for preserving the feel of the machine, but made access to the SD card storing the data an issue. I alleviated this somewhat by adding a simple extension adapter, but there was no easy way to mount it, and so it just dangled out of the back of the case.

The obvious solution was to make a custom blanking plate to fit into SE slot in the back of the Mac (if you’re not familiar, picture a PCI slot and you’re in the right ball park), with a hole sized to fit the extension cable’s card reader. This turned out to be pretty straightforward and a good started project in OpenSCAD (the leftmost image). I exported the design, imported it into Bambu Studio (the middle image), and sliced and printed it without issue.

I tried the finished piece in the bracket into which it would be installed, and found a few things. Firstly, I’d assumed I’d be using small self-tapping screws to fix the plate in place, and designed in a couple of pilot holes. On the off chance I tried a couple of M2 bolts I had laying around, and these fit perfectly. Less positive was that my measurements had been a bit off — the screw holes were a few millimetres too close to the centre, and the slot for the card reader was a little too small.

I grabbed a set of files and started to try and correct the latter problem, but the realised that I didn’t need to. I could just go back into OpenSCAD, adjust the model, and print out another version. While there, I made the whole panel a little thicker as well. This new version was spot on, and I epoxied the reader in place (the rightmost image), and reassembled the Mac with its new, tidier storage.

This workflow wasn’t something that I’d thought about, but on reflection is a major advantage of having your own 3D printer rather than using a service or MakerSpace. A key use case for 3D printing has always been rapid prototyping, and this still applies when the final item is 3D printed itself. Printing another version of a part isn’t as light-weight or cheap as recompiling software, but it’s a hell of a lot cheaper than fabricating a silicon wafer or retooling a factory. Having a (relatively) rapid turnaround means you can iterate on a design and get to the best final version quickly, rather than try to anticipate every problem up front, and bodge the ones you don’t catch for a sub-optimal result. It brings some of the agility of software into the real world.

  1. A note of chronological clarification: I’m a bit behind on writing things up, and both this and the previous post relate to the weekend of the 10th of November. [back]

Multicolour Waste

23 Nov 2024
A multi-colour Benchy sailing on a sea of poop

When I took the plunge and bought a Bambu A1, I got the AMS Lite multi-material system that allows you to load four different filaments at once and automatically switch between them. I decided to go for this as it’s significantly cheaper to get it bundled that buy it at a later date, and it seemed like a big step up in quality-of-life in terms of not having to swap spools all the time, and automatically switch over to a new one when the old one runs out.

The headline capability of the AMS Lite, though, is multicolour printing. I don’t see myself doing much of this, but it’s nice to have the option, and after I’d tried a few standard prints with the included filament sample I decided to give it a go. The way the AMS implements multicolour printing, namely swapping multiple filaments in a single print head, entails quite a bit of overhead both in time, and in waste plastic as the printer flushes out the previous one. However, I’d not quite steeled myself for just how much an overhead this was.

Firstly, time. The standard, single-colour Benchy that was my first print took 21 minutes. In contrast, the identically sized four-colour Benchy I found as a test1 took over nine hours — so long that we had to pause overnight (on the plus side, the print resumed perfectly in the morning). This is a massive increase, but in the grand scheme of things is probably manageable.

More striking is the amount of waste plastic. Every time the printer feeds in a new filament, it needs to extrude a small amount of plastic to clear out the nozzle. Each poop (this appears to be the term of art) is only a fraction of a gram, but if you need to do up to four for each layer, over hundreds of layers, it adds up. Moreover, when printing multicolour, it’s also advisable to print a priming tower, an extra area on each layer to ensure the new colour is coming through cleanly before printing the model itself. Together, the tower and the poop added up to more than ten times the material used in the model itself:

Model: 12g, Priming tower: 17g, Poop: 113g

This model is intentionally a bit of a stress test for multicolour prints, but nevertheless isn’t doing anything pathological — it’s probably a good analogue of what you’d get if you applied colour to an existing model without any particular thought about optimising it. That said, I also didn’t put any effort into the print settings; I just hit go.

The amount of waste in this print is somewhat shocking, but it represents a worst case. This video contains some tips to significantly reduce waste, and the latest version of Bambu Studio is smarter about the purge amounts between different pairs of colours (basically, you need to purge less going from a lighter colour to a darker one). What’s clear is that this isn’t going to be something that works straight out of the box; a bit of effort and thought is required.

One key takeaway is that the waste is very dependent on the number of layers, rather than the volume of the model as a whole. Hence, I can see myself using it for things like signs — large, flat pieces that would benefit from embedded colour changes but have relatively few layers. This seems like an instance of a larger point; you need to consider the printability of your model throughout the whole process, rather than just throwing it into the slicer at the end and assuming you’ll get good results. It’s this kind of lesson that makes picking up a new hobby enjoyable.

  1. “3D Benchy AMS test - 4 colors”, remixed by Liam Meakins — this appears to have been removed from MakerWorld since I printed it. [back]

Self-host Your Email on the Modern Internet With This One Weird Trick

23 Nov 2024

Back in the early 2000s, when I first bought this domain and started this site, self-hosting your own email was common. If you were running a personal web server, it was just something you did. Over the years, though, things got more complicated. An arms race developed between spammers and anti-spam technology, and for your email to be useful you needed to keep up. Encryption became an increasing requirement, bringing with it the hassle of managing certificates. Later, an alphabet soup of technologies (DKIM, DMARC, SPF) sprang up that you needed to follow to prove you were a legitimate sender. All of this happened against a background of email becoming increasingly centralised — if you weren’t one of the big providers, it was hard to get your mail delivered at all. By the start of this decade, the received wisdom was that hosting your own email wasn’t a practical option.

Through a combination of inertia and ill-advised pigheadedness, I’ve been a holdout. However, I was starting to waver — even though I jumped through all of the hoops, and was careful not to be running an open relay, my mail was still finding itself on the naughty list more than occasionally, and I was contemplating throwing in the towel and moving to Fastmail or similar. Then I came across this one weird trick that solves the problem, and with the move to Mythic Beasts I finally got around to fully implementing it.

I’ve been using Mailroute for years for spam filtering. The integration is incredibly simple and clean — you just point your MX record to their servers, which scan and filter the incoming mail and then pass the legitimate messages on to your own server via normal SMTP. About a year ago I decided to investigate their outbound service, included in the subscription, and realised it would address the deliverability problem.

Again, it’s a very simple integration; you just configure your MTA to send all outbound mail to theirs, and they’ll route it on. The mail clients on your laptop or phone still talk to your own server; Mailroute’s is limited to specific IP addresses to prevent abuse. The net result is that your mail gets sent with their reputation, and maintaining that reputation is the responsibility of experts who are paid to do it. Even better, it means you no longer have to run an MTA accepting connections from the entire internet, and so can sleep a little easier.

When setting up my new VM, I decided to ditch my decades-old, crufty Exim configuration and start afresh. I’ve now got a largely stock “smarthost”, with a few local tweaks, and everything is running like clockwork.

Mailroute isn’t the solution for everyone; in particular, the price quickly mounts up if you have multiple users. Self-hosting email itself is probably not the right option for most, either — there are plenty of good managed email providers, and as long as you own your domain you’re not tied to the first you pick — but, if you do want to give it a go, Mailroute or a similar intermediary solves a lot of the problems that have cropped up over the years. There aren’t many of us left, but we can hold out at least a little longer.

Adventures in the Third Dimension

17 Nov 2024
A white, 3D printed tugboat

3D printing has, for a few years now, been something that I’ve watched with interest from a distance, but never quite felt compelled to plunge into. This began to change when the girls found some cute articulated dragons in a souvenir shop. When they learned that these had been made by a machine that you could actually have in your house, they were immediately hooked on the concept. This turned out to be the push I needed to start looking more seriously.

The world of hobbyist 3D printing has come a long way in the 15 years since the patent on FDM lapsed. The printers of today are leaps and bounds ahead of those from even a few years ago, in terms of quality, reliability, and, in particular, ease of use. While it’s still possible to get a printer that is also a project, I decided that (for the moment, at least), we were more interested in the capabilities than the device itself. Hence, I wanted something simple, dependable and beginner friendly. Bambu Lab kept cropping up in both personal recommendations and reviews as a stand-out in these areas, and they happened to have an early Black Friday sale on. I bit the bullet and ordered their entry-to-mid-range A1 Combo.

Delivery took a week or so, which gave me time to clear out a bit of space in the spare room, and reinforce the desk to make sure the printer had a solid home. Unpacking and setting it up was a breeze, and (with a quick check on my thinking on Reddit) I was soon holding my first Benchy, pictured above.

The A1 itself lived up to the hype in terms of ease of use. In fact, it was so straightforward that it felt like cheating, with none of the manual calibration, tweaking of settings and crossed fingers traditionally associated with 3D printing. Modern printers in general, and Bambu Lab’s in particular, have really reached the point where you can just use them. There’s still plenty of tweaking and learning that’s possible, but you get pretty good results out of the box with a minimum of fuss. The question remains, though: why?

When you get, say, an upgraded iPhone, it does basically the same things as your old one, just better and more. In contrast, getting a 3D printer opens up something entirely novel, a new capability that you didn’t have before. This is exciting, and increasingly rare in the realm of technology. The ability to design something unique on screen, and then press a button and have it in your hands1 feels truly magical.

3D printing is not yet quite mainstream, either in terms of cost or ease, but it’s not far off. In some ways, it’s reminiscent of the microcomputer revolution of the late 70s and early 80s, where home computers went from something that you had to build to something that you could buy ready to use. This kicked off a flowering of creativity and exploration, making it (then and now) an interesting time to be getting into the area.

More important than the big picture, though, is the happy surprise of the degree to which it’s fired my imagination (and the girl’s). My mind is fizzing with what to make next.

  1. Some sequences shortened. [back]

Moving to Caddy

8 Nov 2024

As part of my recent host move, I decided it was time to review my web server situation. Specifically, I decided to move on from Apache. It’s served me well over twenty years, and adapted to all of the changes I’ve thrown at it (most notably HTTPS), but my configuration was a tangle of two decade’s of cruft, and since I started other options have emerged that would be more directly applicable to my use case. The switch presented an opportunity to start with a clean slate, so I took it.

My initial plan was to move to nginx, as I’m already very familiar with it, and was confident it would do what I need. However, my friend and colleague Cal suggested I take a look at Caddy, and this turned out to be a very good call.

Caddy is a relatively new kid on the block, and I’d only previously looked at it in its very early days. Coming back to it, it’s now a fully-fledged, production-ready web server, with a few tricks up its sleeve. The most obvious, and most widely applicable, is that it automates the serving of HTTPS, right down to requesting certificates from Let’s Encrypt. Moreover, it touts streamlined configuration that’s so simple you can be up and running in minutes, rather than hours.

This all sounded too good to be true, but I gave it a go and it was 100% on the money. I had a fully working copy of this site, including HTTPS, up in well under 15 minutes (including installing Caddy itself), and by the end of half an hour had sorted out all of the weird redirection and legacy HTTP stuff I wanted to and switch over the DNS. It really is as easy as they claim, at least for the sort of things I want to do.

Of course, nothing is perfect. I suspect there are plenty of edge cases that it can’t handle as well as other options, and for very high volume usage you can find better performing options. Those caveats only apply to a small minority of users, though. If you are within the (very wide) range of what Caddy can do, it’s hard to beat.

This site is maintained by me, Rob Hague. The opinions here are my own, and not those of my employer or anyone else. You can mail me at rob@rho.org.uk, and I'm @robhague@mas.to on Mastodon and robhague on Twitter. The site has a full-text RSS feed if you're so inclined.

Body text is set in Georgia or the nearest equivalent. Headings and other non-body text is set in Cooper Hewitt Light (© 2014 Cooper Hewitt Smithsonian Design Museum, and used under the SIL Open Font License). BBC BASIC code is set in FontStruction “Acorn Mode 1” by “p1.mark” (licensed under a Creative Commons Attribution Share Alike license).

All content © Rob Hague 2002-2024, except where otherwise noted.