# The 3D Printer Packing Problem

Form Labs recently announced the launch of the Fuse 1, a desktop SLS printer that will print all your parts using nylon powder and a laser. This a fundamentally different method of 3D printing as compared to filament-based machines, and the best way to use a Fuse 1 is to fill the entire volume of the machine with 3D printed parts. [Michael Fogelman] decided to investigate the 3D packing problem, and managed to fill this printer with the maximum number of 3D printed tugboats. If you’re wondering, it’s 113, as compared with 82 tiny Benchies using naive bin packing.

The formal definition of this sort of problem is the bin packing problem, or simply calculating the maximum number of items can be packed into a finite volume. There is no general solution to this problem, and it’s probably impossible to create an algorithm that will solve this problem for any collection of 3D models. Nevertheless, it’s possible to create a solution that shows marked improvement over a naive solution.

[Michael]’s solution involves simulated annealing. This algorithm begins by randomly placing tugboats, then mutating the position or rotation of one of the boats for each iteration. The code is less than 1000 lines of Go and is available on GitHub if you already have an SLS printer at your disposal.

It should be noted this type of problem isn’t particularly new to the world of 3D printers. There have been a few tools to solve the bin-packing problem for filament-based printers, but the solutions to these problems are two-dimensional; since filling a bed is a problem that only uses the ‘shadow’ of the Z-axis of each part, it’s a slightly easier problem to solve.

Now that Form Labs’ Fuse 1 SLS printer has been announced, there is a new application for this type of problem in the space of 3D printers. It’s not a perfect solution — and it’s doubtful there will ever be a perfect solution — but if you’re looking for a way to fill the volume of your powder printer with parts, this is the best you’re going to do.

# A Crash Course in Thingiverse Customizer

OpenSCAD is a great way to create objects for 3D printing (or other purposes), especially if you are already used to programming. For things like front panels, it is great because you can easily make modifications and — if you wrote your code correctly–everything will just adjust itself to new positions.

However, what if you have a general-purpose piece of code, and you want people to have the ability to customize it? For example, consider this code:

```\$fn=100;
difference()
{
cube([25,25,5]);
translate([4,4,-1]) cylinder(h=7,r=2);
translate([25-4,4,-1]) cylinder(h=7,r=2);
translate([4,25-4,-1]) cylinder(h=7,r=2);
translate([25-4,25-4,-1]) cylinder(h=7,r=2);
}```

That creates the plate with four drill holes you see on the right.

# Another Helping Hands Build

[Punamenon2] wanted a soldering station with integrated helping hands. He couldn’t find one, but he decided it would be a good 3D printed project. In all fairness, this is really 3D printing integrating several off-the-shelf components including a magnifier, a soldering iron holder, a soldering iron cleaner, a couple of “octopus” tripods, and some alligator clips. Total cost? Less than \$30.

In addition to holding the Frankenstein monster together, the 3D printed structure also provides a storage tray with special sloped edges to make removing small screws easier.

# Animated Bathroom Sign

Once upon a time, pants were created. After a while, women were allowed to wear them too. This has made a lot of people happy and been widely regarded as a good thing. There is a problem, however – bathroom signage is largely predicated on the idea that there are two rigid genders which all humans must be sorted into, and they’re defined by whether you’re wearing pants or a dress. [Robb Godshaw], among others, disagrees with this, and set about building a gender fluid bathroom sign.

The project seeks to exploit the traditional symbols of “male” and “female” – the human figures wearing pants or a dress – by creating a sign that switches between the two every 15 seconds. This is likely to initially confuse – one might imagine the bathroom is actually changing its gender designation rapidly, forcing users to complete their business in an incredibly short timeframe. However, the message behind the project is to highlight the absurdity of defining gender by pants, colours, or indeed in a binary nature at all. [Robb] also helpfully points out that all humans have to pass waste, regardless of gender.

The sign is built with 3D-printed components, using a crank mechanism to actuate the moving parts. The mechanism is designed to give equal time to the pants and dress configurations. [Robb] shares the important details necessary to replicate the build, such as how to assemble the metal crank pin insert with a paperclip and a lighter. It’s particularly tidy the way the mechanism is integrated into the parts themselves. In true hacker style, the motor is a standard microwave oven turntable motor, which can be harvested easily from a junk appliance and can be plugged straight into mains power to operate, if you know what you’re doing. If you don’t, check out our primer on the topic.

Overall, the project is a great use of hacker techniques, like 3D printing and harvesting parts, to make a statement and start a conversation, while being fun, to boot. We’ve also seen some of [Robb]’s work before, like this giant hamster wheel for people. Video after the break.

# Hackaday Prize Entry: A 3D Printer Management System

Since the first desktop 3D printers, people have been trying to figure out a way to manage desktop 3D printers and turn them into tiny little automated factories. One of the first efforts was a conveyor belt build plate that was successfully used by MakerBot until it wasn’t anymore. Octoprint has been a boon for anyone who wants to manage a few printers, but that’s only half the solution.

For his Hackaday Prize entry, [Mike] has come up with a solution that turns a desktop 3D printer into a completely automated factory. Not only does this project take care of removing the part from the bed when the print is done, it also manages a web-based print queue. It is the simplest way to manage a printer we’ve ever seen, and it’s a great entry for the Hackaday Prize.

First up, the software stack. [Mike] has developed a web-based queue and slicing software that ingests 3D models and spits out Gcode to a printer. This, really, is nothing new. Octoprint does it, Astroprint does it, and even a few 3D printers have this capability. This is only one part of the project though, although it is geared more as a maker space management software than simply a dedicated 3D printer controller.

You can’t have an automated mini factory without an automated build plate, though, and here [Mike] has come up with something really great. His solution for dispensing prints after they’re completed is brilliant in its simplicity. All you need to do is drop the floor out from underneath the print. [Mike]’s solution is a trap door print bed. At the beginning of the print, an inkjet printer spits out a piece of paper, with a few lines of text, onto the print bed. When the print is finished, a stepper motor unwinds a cable, and a trap door opens up underneath the print. The part drops into a bin, the door closes, and the next print is loaded up in the queue. It’s brilliantly simple.

You can check out [Mike]’s demo of this system after the break. It’s awesome and so sublimely simple we’re shocked no one has thought of this before.

# Reverse Engineering The Monoprice Printer

When the Monoprice MP Select Mini 3D printer was released last year, it was a game changer. This was a printer for \$200, yes, but it also held a not-so-obvious secret: a 3D printer controller board no one had ever seen before powered by a 32-bit ARM microcontroller with an ESP8266 handling the UI. This is a game-changing set of electronics in the world of 3D printing, and now, finally, someone is reverse engineering it.

[Robin] began the reverse engineering by attaching the lead of an oscilloscope to the serial line between the main controller and display controller. The baud rate is weird (500 kHz), but apart from that, the commands readily appear in human-parsable text. There is a web server built into the MP Mini printer, and after inspecting the web page that’s served up from this printer, [Robin] found it was possible to send G-code directly from the controller board, get a list of files on the SD card, and do everything you would want to do with a 3D printer.

After deconstructing the circuit on the display board, [Robin] found exactly what you would expect from such a simple board: an SPI display driven by an ESP, and a big flash chip sitting off to the side. [Robin] found the the model of the display, and quickly built a project on Platform.io to draw text to the LCD. This isn’t the end of the project – there’s still a lot that must be done before this printer is squirting out parts with custom firmware.

While this isn’t a hack of the driver board inside the MP Mini, that’s not really a problem. The motor driver board in this printer doesn’t really need any changes, and was already ahead of its time when this printer was released last year. As with most things, the UI is the weak point, and upgrading the firmware and built-in web server for this printer is the best way forward.

[Robin] put together a truly phenomenal video of how he reverse engineered this display controller. You can check that out below.

# Holman is Your Phone’s Best Friend

Let’s get something straight right up front: this isn’t much of an electronics project. But it is a very artistic 3D printing project that contains some electronics. [Sjowett] used an off-the-shelf class D amplifier with BlueTooth input to create a simple BlueTooth speaker with a subwoofer. As you can see from the pictures, woofer is exactly the term to use, too.

The clever mechanical design uses 3D printing and common metric PVC pipe. That’s a great technique and resulted in a very clean and professional-looking build. If you don’t have easy access to metric pipe, you could print the pipes, but it will take longer and might not look quite as good.