Exploring new tools to add to my toolbox

Month: July 2016

The current state of the art in consumer home 2D laser printer is that I can expect perfect prints immediately. Take it out of the box, load paper, load toner cartridge, hit print, and out pops a crisp printout.

The current state of the art in consumer home 3D printing is not anywhere near that level of maturity. It took several days of experimentation and many failed prints before I had something that was charitably described as passable.

Example #1: With a laser printer toner cartridge, the user doesn’t need to care about the chemical composition of the toner or the physical attributes of the powder within. The 3D printer counterpart is the plastic filament, and today the user has to know a lot. The user can choose the category of plastic (ABS? PLA? etc.) but the precise chemical composition varies from brand to brand. The user has to adjust the printing temperature to match the plastic. The user also has to keep an eye on the filament diameter because it may vary from the nominal quoted dimension, which impacts the volume of filament being fed into the extruder and thus print quality.

Example #2: With a laser printer paper tray, the user doesn’t need to care about the texture or the thickness of the paper. The 3D printer counterpart is the print bed, and today the user has to know a lot. The bed has to be level relative to the print head movement plane and also spaced appropriately for that important first layer. If it is a heated bed, the user has to specify the proper temperature for the plastic filament. The surface of the print bed has to strike a balance of adhesion. If the extruded plastic can’t adhere well enough, the part would detach mid-print and ruin everything. If it adheres too tightly, the resulting print would be hard to remove from the printer, possibly damaging the printer if you force it.

Because of those and many other variables, it is wise to start with something simple. Something small and fast to print so I can quickly iterate between test prints. Yet complex enough to show if the printer is doing a good job or not hitting the desired dimensions and holding tolerances.

For this, I created a small octagonal solid in Onshape(*). It has straight edges – both aligned with printer axis and not. Two round surfaces, and several horizontal surfaces. One or more features would go bad when the print settings aren’t ideal.

Print, fail, adjust, repeat.

(*) available as a public Onshape document. Log in to Onshape and search under public documents for the name “Octagon test piece”

When getting started with 3D printing, it’s easy enough to pull some nifty things from sites like Thingiverse and print them out. But I quickly got bored of that – the reason I got a 3D printer is to turn ideas in my head into reality, not somebody else’s ideas.

There are lots of options to create digital 3D objects, the one I started with is Onshape. It is a completely web-based CAD system with the ambition to take on the big professional engineering CAD systems. I chose it mainly because it ties into another of my interests: learning how web-based applications are replacing traditional desktop applications. CAD has been one of the cornerstones of expensive desktop machines crunching numbers as professional engineering workstations. Can Onshape (& peers) transform that world? I don’t know, but I want to see how well it works (or, potentially, not) first hand while having fun.

Fortunately they’re very friendly to hobbyists like myself:

Their subscription plan has a free tier specifically for hobbyists and makers. The storage space is limited and you can only keep a few things private. So the scale and complexity of free projects are restricted, but all Onshape functionality is identical. This was important because a few other CAD solutions restrict functionality at the lower cost tiers… functionality such as export to STL. If I can’t export to 3D print, that would defeat the point of the exercise.

There is an extensive self-training resources section. A free service isn’t much good if I have to fork out a fortune to learn how to use it. With Onshape, I don’t have to.

There is an online community around the tool. Onshape is new and still has quirks and idiosyncrasies. (Well, to be fair, all software do.) With the help of other like minded people on the forums, I don’t have to reinvent the wheel and solve all problems by myself.

After spending a few days in the training section, I was able to create simple things in Onshape. As I started getting fancier, I started running into problems that need digging into the documentation and/or the online forums. As I learn more about Onshape I’m increasingly impressed with what they’ve done and what they’re planning to do.

A critical part of a 3D printing workflow is the slicer software. It translates the theoretical mathematical representation of the STL format into printer-specific commands of the G-code format.

Monoprice recommended Cura as the slicing software for the printer I bought, even including a copy of version 15.04.2 on the microSD card bundled with the printer. I went to the website to find the latest version, and found that Cura had completely revamped the entire UI with new version numbers. Do I go with the older generation or the new hotness?

Given that I am in completely new territory, I decided to stick with known quantity of the recommended product. That was a good call, because setting up for the Monoprice printer was much easier in the old software. With all its faults, the old software was able to get me started and let me learn about the basics of 3D printing parameters. And wow, there are a lotof parameters to learn.

The slicer software highlighted how non-standardized the 3D printing world is. I knew that the printers have a great deal of variation – a natural thing in a rapidly-evolving field – but it’s a bit intimidating to get started. I hadn’t known that the plastic feed was barely standardized. There are basic classifications of the plastic type, yes, but the formulations differ from one brand to another which affects the proper printing temperature. Even the physical diameter of the filament can vary. My printer uses nominally 1.75mm diameter filament, but the spool of filament I’m printing is actually closer to 1.79mm. This is significant enough of a volume difference to impact proper feed speed of the plastic stock. Just one example among many things I learned first hand.

I stuck with the old version of Cura (15.04.2) until I had a compelling reason to move to the latest version (2.1.2) of the new revamped series. That reason was the “Horizontal Expansion” parameter, available only on the new version. I needed it to compensate for 3D printer behavior, so I switched over. It was far more difficult to set up for the Monoprice printer, but thanks to the time spent learning on the old, I was able to get far enough to start printing with the new software.

I don’t know how well Cura stacks up among its peers in the slicing software world, as I haven’t used the others. I know it still feels like hobbyist software, missing a lot of polish I’d expect of a paid product.

However, it’s working well enough for me to learn and experiment, and that’s all I ask.

And now for something completely different… I got a 3D printer! I’ve been keeping an eye on the field for years, and I knew it was only a matter of time before the price point drops to a point where I can no longer resist.

The Monoprice Select Mini 3D Printer (Item #153651) is their entry-level offering at $199. For an entry-level item, it has an impressive array of features. All the basics plus some not-so-basic features like a heated build bed. At the standard price it was already quite tempting. When Monoprice threw a 4th of July sale that cuts 20% off the price of any Monoprice-branded item… I could no longer resist.

As advertised, it came completely built and almost ready to go: the build bed levelling had to be double-checked because that can easily shift in transit, and indeed I had to make a few minor adjustments before it was level. It came with a micro-SD card with a G-code file ready to go, plus a short sample of PLA filament. I was up and printing within half an hour – very impressive!

The only complaint is that their sample filament is too short to actually complete the sample print job on the microSD card. If you look at the picture above (from Monoprice web site) it’s in the middle of printing the same object, and it is stopped at around the same point as the filament running out. I’m not sure if that’s a coincidence or intentional. In any case, I couldn’t complete the print until I got more filament to feed the machine.

Now I’m learning all the basics of tweaking a 3D printer. Temperature, speed, all that good stuff. It also means I need to learn some new tools. A 3D design program (I’m looking at Onshape, but there are many others) and a slicer to turn the 3D design into a G-code file (Monoprice recommended Cura for this printer.)

My Ruby on Rails education has been seriously sidetracked by this adventure, but it’ll be fun!