XYZPrinting puts out a nice printer “DaVinci” with an enclosed build platform (helps immensely with build quality). Unfortunately the software that comes with it is abusive to the end-user, but we can put in our own stack! Caveat: the ABS spools that the company sells (high-quality product, by the way) cause the machine to destroy itself if you run the machine past the end of the spool… which wouldn’t happen if one just used their software. So long as you don’t run the machine while you sleep, I’ve run out two spools without too many problems.

The DaVinci is designed to plug in via USB so the user can send their files over for printing. The software that ships with the printer also uses this interface to update the firmware of the printer, which may or may not be in the user’s interest. Since we’re going to use our own software stack, we’ll just ignore the USB interface.
Pictured: Signal to users that this printer should never be plugged in by USB.

This printer is basically a reprap clone, and will run slightly modified gcode that standard tools (such as Slic3r [settings file]) can produce. If the factory-installed firmware is old enough, you can remove the SD card from the control board, overwrite one of the three demo prints, and use the “Build Sample” interface from the menu on the front of the machine to make arbitrary prints.
Pictured: A coping saw removes a small amount of plastic from the hinge.

Pictured: The stock SD Card is accessible after removing all screws (Torx T10) from the control board.

Pictured: An “SD Card extender” is installed to make the SD Card easier to acccess.

I printed a few cubes using this method, and found the printer would slightly over or underprint dimensions fairly consistently. I tried scaling a few objects by my observed dimensions, and have been super satisfied with the results so far! I either apply them directly when modeling, or by loading an .stl into OpenSCAD and applying global scaling:

Pictured: The ABS juice method was used to keep the object adhered to the bed.

Pictured: A post-calibration, perfectly dimensioned cube!

After testing the method, it was time to get down to business and write some tools to help me go from an .stl to a printed object! First up was a script that took standard Slic3r gcode and made it palatable for the DaVinci: