Jason K. Firth, C.E.T.

Instrumentation, Control, and Automation

3d printing

Jan 092018

I'm Jason Firth.

This year I wanted to go on a bit of an adventure, so I got a couple of toys. One is the Oculus Rift VR system, the other is the FLSUN delta kossel 3d printer with a heated bed. I purchased both from Amazon Canada with Prime shipping.

The Oculus is more a consumer entertainment device, so let's talk about the 3d printer. It's a consumer device, but it's interesting enough on it's own.

I had never done anything with 3d printing before this weekend. It's been on my wish list for years, but I didn't feel I was quite ready until recently. This journey is still therefore fresh, I am not coming into this after I've learned everything there is to learn.

On Friday night, I got off the plane from work and found the printer box waiting for me. I couldn't wait, I immediately ripped it open and started reviewing the contents. The printer arrives completely disassembled.

Being a proud tradesman, I decided early on that I wanted the wiring to be built and wired in a neat and workmanlike manner as much as is physically possible. This turned out to be more difficult than I'd hoped later -- most of the wires attached are far too long, and a couple were just a little too short for a good install. In retrospect, I likely would have built it differently knowing what I know now. In particular, I would have planned from the beginning to have an electrical box on the side and run the extruder wires directly through it. But I'm getting ahead of myself.

The box allegedly came with instructions, but I found the written directions disjointed and incomplete. The best bet was following the videos on YouTube. The video was essential to putting the printer together, but as time went in the level of detail started to slip. Eventually they stopped telling us which screw sizes to use and when it came time to wire the board it just said to look at the wiring diagram.

If you follow their directions perfectly, you'll end up with a rats nest of wires. There's very little mention of routing the wires except for the end stop switches, and the instructions assume you'll jam the box on the table under the heated floor. I ended up pulling apart some of the printer after assembling to route the cables in the aluminium rails.

The kit comes with virtually everything you'll need to build the printer. The bolts are all metric and I didn't realize they'd done that until I'd made it part way through. It was a pleasant surprise.

I purchased a 6x6x6 electrical box from home Depot and 2 strain relief connectors. In retrospect. I needed 4 strain relief connectors: 1 for the wires from under the heated bed, one for the wires from the extruder and the 12vdc power, one for the USB cable, and one for the pair of ribbon cables going to the display. I'm reasonably happy with the result on the outside, but inside the box is a rats nest of wires because some of the wires are too short.

I had a premonition once the wires were connected and plugged the 12v power supply into the wall for a smoke test. Blue Sparks immediately started sizzling and flashing from the power supply! I quickly unplugged the supplyand discovered that the screw terminals on the supply had not been soldered down. Gives me reason to question that QA sticker. Sort of a big detail to miss. I soldered the screw terminals in and after that was getting 12.00vdc on my meter. Good enough!

There are numerous extra parts not shown in the video. Fans, heat sinks, and much more. I'm happy to have parts, but I'm concerned that I'm hurting something by not installing these parts. Before I do major printing, I intend to install at least the heat sinks.

Before I got the printer, I started reading and chose tinkercad as my first 3d modelling program. It's very simple, which I feel I need at this point. I designed a simple ball valve as my first print. I'm hoping to eventually 3d print stuff like this. Tinkercad is easy to use, web based software from Autodesk. Once you're happy with your object, you can Immediately export it as a file the 3d printer software stack can understand.

The board contains an atmel microcontroller, and is programmed using the Arduino software. The firmware it comes with is called "Marlin", and 99% of the work is already done. That last 1% is a doozie.

There is a buzzer, a knob, and a button on the front panel. The buzzer does what you'd expect, the knob is used to control the units interface (spin it left and right and press to select), and the third button immediately resets everything. I treated that third button like an emergency stop, and I needed it a lot at first.

I downloaded the latest Marlin source code and used the example configuration for the flsun 3d kossel mini. All the configuration is in 2 files, a configuration header and an advanced configuration header. You've got to tweak them in the Arduino software before you start.

There's a #define that allows you to access the calibration menu from the faceplate. I uncommented that early because it made it easier doing all the cal tests that I ended up doing.

The example configuration for the kossel mini in Marlin 1.1.18 was dangerously wrong for my printer. The more immediate problem is that the delta radius was substantially off. This meant that the print surface was extremely convex. In the middle of the print surface, I would be touching the print surface with the print head, but at +50 or -50 on the x or y plane I could fit my finger beneath the print head. I measured the radius from the print head to the pivot point on the side rail of one of the arms, and I think I found a number somewhat like 135mm. The number was very different from what the config had by default. With this massive error, the printer could not auto calibrate. The second problem was the delta height was too low. It was set for 250 or so. This caused it to try to find the bed level in the middle of the air. I set it to 318 and the height calibration worked, somewhat. More on the height later. Finally, the printable radius was set to 110. This is the dangerous part. The printer simply cannot move like that. Ultimately, I might be able to set this to 50-55, but after getting burned a couple times jamming my print head outside the print area and jamming the e-stop, I set it to 40 for now. The second number that was causing the calibration to catastrophically fail is the cal radius. It was set to something like 90, Which is simply outside the range of this printer. I set it to 36.

All this took time to figure out -- about a day, After setting these values and uploading the resulting firmware, I was finally able to get the machine to complete an auto calibration cycle.

There's still one problem: the bed height is coming up too low. My reading suggests that the problem is the spring dampeners on the bed. The nozzle has a spring and a limit switch, so when the nozzle touches the bed it is supposed to push the nozzle up and actuate the switch while calibrating. With springs on the bed, the bed bounces back as well, causing inaccuracy on the calibration because the bed moves down. I've been able to print by manually decreasing the bed height, but the inaccurate calibration has also caused inaccurate measurements on the bed level. As a result, the nozzle digs in on one side and floats on the other. I used thick magazine paper as my bed material to reduce damage to the head if it does dig in for my first 2 prints. When I get home I'm going to mount the bed solidly to the frame to eliminate the vibration error. Seeing what masking tape does on a heated bed, I purchased some kaptan tape for future prints.

Out of the box, there's nothing to hold the reel of filament. Once I have the printer working reliably, one of the first things I want to print is a reel holder. In the meantime, I noticed that the rails are wide enough to hold a jeweler's screwdriver, so I am hanging the reel off a jeweler's screwdriver for now.

The software stack the printer uses on windows is called Repetier-host. You can download .STL files from thingiverse and directly open it in Repetier. From there you choose print location and size, then send the print to software called a "slicer" which turns the 3d model into instructions the printer can print, called g-code. From there, the slicer can directly give the instructions to the printer over USB, or it can save the g-code file to an SD card. You can then directly place the SD card into the printer and print using the front panel.

I had to fiddle with a couple settings. First, I had to set the printer surface to be circular, and I had to fiddle with the slicer, telling it my filament size, extruder size (.3 it seems), and a couple other options.

Having done all this, I finally successfully printed something!

That said, it was more dumb luck than anything. I successfully printed a little ring for my wife, then I printed the valve I designed, but after that I was having issues getting the bed to stay down.

I discovered 3 things: first, the aforementioned bed springs being a problem. Second, the extruder temperature was too low causing the bed to have problems adhering. Third (paradoxically), once the filament left the extruder, it stayed too hot for to long, so the prints melted into a mess that looked like a wax sculpture of what I wanted melting in a hot car in the sun.

For a first attempt, I'm pretty happy. If it was easy, it wouldn't be nearly as fun.

I'll keep you posted. Thanks for reading!