My 3D printer only supports having one filament loaded at a time and that generally means the objects I print is one color. I wanted the WordPress logo (naturally) and two colors would be cool. I can print pieces in different plastics and assemble them but sometimes you want one piece. Good news! My printer’s open source firmware supports changing filaments before the print job is done. That let’s me start the base in one color but switch to another before the print is completed. Here’s how I did it.

I downloaded the WordPress logo to my PC via Wikimedia in SVG format. SVG is a vector format for images that can be scaled without losing sharpness. I loaded that into Fusion 360 and deleted the text to the right and just kept the round logo.

In Fusion 360 I scaled the logo to 50 mm diameter. I then extruded the white portions in the logo to 3 mm. The circle outline and the space between the parts of the “W” were extruded to 1.5 mm. I exported that to an STL file and loaded it into Simplify 3D. This is where it gets clunky.

For slicing 3D prints into a format the printer can understand I use software named Simplify 3D. It’s not opensource (or cheap) but it’s very extendable and saves me a lot of time.

Simplify 3D supports scripts that use regular expressions to locate text in the generated G-Code output file and make substitutions. In the generated code it also comments each layer of the print so there’s a “layer 8” text where I want to insert printer commands to swap filaments.

Figuring that I needed to modify layer 8 was a pain. There’s probably a well documented way to do it but I sent my G-Code output file to Octopi. I loaded the file but did not actually print it yet.

OctoPi comes with a built in G-Code viewer. I moved the slider up until I found that layer 8 was where I wanted the change filament commands inserted.

I then deleted that file from the OctoPi, went back to Simplify 3D and in the process settings I went to Scripts -> Starting Script and added this to the “Additional terminal commands for post processing” field.

{REPLACE "\n; layer 8, Z = " "; layer 8\nG28 Y0 X0\nM300 S0 P1000\nM25\nG92 E0\nG28 Y0 X0\n; layer 8 "}

And generated and updated G-Code file with additional commands that I sent to Octopi. I loaded up a spool of blue filament and began printing. Midway through the print the extruder moved to the home position (but did not change it’s height) and waited for me to change the filament. Once I did that I loaded Octopi’s web page on my phone, logged in and clicked “Resume”.

The resulting prints came out well and I repeated the process with the white filament first. The bottom is one color and the top is another at just the right place.

This hardly took me anytime at all. It’s not a fauxgo, it’s a legitimate SVG (well, I hope it is) representation of the WordPress logo. The blue is a bit off but I can be forgiven for that. The PLA material is listed as “Egyptian Blue” and it’s the closest I had on hand.

There’s probably an easier way to get the layer accurately without using Octopi but it works. If I find an easier way then I’ll update this post.

What I really want to do is print the badges for the WordPress teams such as Support, Docs, training, etc. That’d be cool and I may do that this weekend.

This all came about because my brother got his 3D printer working in two colors on the same layer. His printer has two extruders and can print one color next to the other on the same layer. My printer does not do that but I’ll catch up. Competition is good. 😉