Thursday, December 31, 2015

Updating RepRapFirmware using Mac OS X as a host

A number of folks have struggled to use a Mac to update Duet and PanelDue firmware. Earlier this month I wrestled it to the ground and documented a working process on the forums. Here it is again for readers of this blog.

  1. install Arduino IDE 1.6.1 in /Applications
  2. open a terminal window and 'cd' into the folder where you have the firmware .bin file
  3. do an 'ls' in /dev to find see the ports before the Duet is connected. 
  4. connect Duet to USB and push the erase and reset buttons, then do an 'ls' in /dev again. You want the one that starts with "tty."
  5. run bossac as:
/Applications/ --port=tty.YOUR_PORT_# -U true -e -w -v -b RepRapFirmware-1.09o-dc42.bin -R

Note that you should replace the two strings in bold to match your port # and the firmware version you are updating. 

Tested on OSX 10.10.5 and 10.11 (Yosemite)

UPDATE: here is a simple shell script that makes this much simpler. You need to change the port information and the RepRapFirmware version information. Place this script, the bossac application and the firmware .bin file in the same folder and then execute from a terminal window:

Here is a copy of Bossac for Mac OS X known to work.

Saturday, December 26, 2015

My current Rostock Max "ultimate configuration"

I am often asked what my favorite SeeMeCNC Rostock Max upgrades are (and why). I've experimented with this printer a lot over the last 2 years (over 77,000 views) and used it as a platform to test all sorts of printer enhancements. Without further adieu, here is my current configuration and why.

Mechanical Upgrades

My Rostock Max was an early V1 machine. The newer V2 with the recently introduced ball joint arms and new carriages is quite nice. I don't know if I would have experimented if I had these to start. However, the components I use now do have a high-tech look and are quite reliable. Here's what I have:

TrickLaser Trick Trucks with Delrin wheels. These are very nice and with 3 rollers, do not over constrain movement. In this case, 3 rollers are all that's required and are easily adjusted to remove slop.

TrickLaser Carbon Fiber Arms with ball ends. I replaced my previous magnetic ball end upgrade with these. The magnetics worked well enough but I was concerned that the mass and "drag" from all the wiring from a Kraken hot end might be too much for the magnets. These arms and ends work very well and I get equally excellent layer alignment and precision.

I have not replaced my original V1 effector but I did JBWeld the rods in place to make it more rigid.

PEI print surface. I've spent a LOT of time testing all sorts of print surfaces and concoctions. The only significant surface that I have not personally tested is the GeckoTek surface. For me, PEI gives 100% consistent results, NO part separation failures and beautiful first layer surface finish. My primary use for 3D printing is to manufacture fly fishing reels I sell. These reels are seen and handled on all surfaces and the bottom layer, in particular, is highly visible and must be near flawless. PEI with a light 600 grit sanding and cleaning with isopropyl alcohol imparts a beautiful matte finish and 100% consistency with first layer adherence.

I use PEI for PLA and ABS. For Nylon I use Garolite and other surfaces for polycarbonate, acetal and other exotic filaments.

1/8" Aluminum Heat Dissipator underneath the borosilicate glass/PEI layer helps evenly transmit heat from the Onyx bed heater.

Electrical Upgrades

I run both 12V and 24V power supplies. This was primarily an evolutionary thing. If I were starting from scratch today, I would only run 24 volts. The steppers and fans run on 12V and the hot end and bed heater on 24V. I do use a high quality SSR that has very low voltage drop and is ideal for this application. This controls the output to the bed with 12V on the control side and 24V on the output to the bed side.

Kraken Hot End - I originally got the Kraken to experiment with multi-extrusion (it has 4 nozzles!). Another unique feature of the Kraken is that the cold end is water cooled with a 12V water pump. For the type of multi-extrusions work I want to do, multiple nozzles is not practical as drool and drag are problematic. However, I'm completely sold on water cooling! I've run this hot end for 6+ hours/day nearly every day for the last year printing PLA with absolutely no clogs or filament starving. It has been amazing in that respect. I've left all 4 nozzles hooked up and simply lower the one I want to use to the bed with the easy "leveling" set screws on the hot end. So only 1 nozzle is heated and active at a time.

Water Cooling - see above.

FSR Bed Leveling System - my initial experimentation with simple endstop switches mounted to the effector were sub-optimal and inconsistent. With a delta printer, in particular, having the nozzle tip act as the trigger point has advantages and is a "must have" in my opinion (and my experimentation has validated this). This is because unless the effector moves perfectly parallel to the bed surface with NO rocking or tilting as it moves, probing anywhere other than right at the tip of the nozzle is going to introduce errors.

Duet Control Board - without a doubt, along with FSR leveling, the upgrade to Duet and the associated dc42 branch of the RepRapFirmware has been the singe BEST upgrade I've done to my Rostock. Since building this machine I've migrated from the original RAMBo controller to an Azteeg X3 Pro, to Smoothieboard/Smoothieware and more recently, the Duet/RepRapFirmware. For almost 18 months I chased the elusive "delta auto calibration" Grail with very little success. Arduino based firmwares like Repeater and Marlin just didn't work properly (and there was a fair amount of confusion in Marlin with various branches supporting different probes and calculations). Smoothieware doesn't have built-in delta auto-calibration but 626Pilot on the SeeMeCNC forum developed a very nice heuristic calibration on a special branch. The challenge was, due to memory limitations on the Smoothieboard, you can not enable a panel display and/or ethernet with auto-calibration enabled. In use, this introduced aggravating friction even though the auto-calibration was functional, albeit time consuming to run. Then I discovered dc42 firmware. This firmware has built-in delta calibration that calibrates very well in less than 30 seconds and supports ethernet, a very elegant built-in web interface and support for the elegant touch screen PanelDue display. My workflow now includes performing a calibration at the start of almost every print - that's how fast and useful it is. As if this was not enough, the dc42 delta motion control is unique as well. All other mainstream firmwares calculate delta movement in short line segments. Not so dc42, it calculates each and every point of movement. Read my recent forum post if you'd like to learn more. I have also added a wifi bridge so my Rostock is wireless. With the integrated web client, I can upload gcode files, upload firmware configuration changes, and control the printer.

Bondtech QR extruder - I have tried well over a dozen extruders on my Rostock over the last 2 years. My v1 came with the original Steve's Extruder. When the company introduced the ezStruder, I migrated all my printers to it. Over the last year, a lot of enhancements and modifications to the ezStruder have been made by forum members - and I've incorporated all of them. This has significantly improved the ezStruder but the occasional hiccup still occurred. Recently I started experimenting with the E3D-Online Cyclops switching hot end. This is a very demanding hot end and I struggled for 6 months to get an acceptable print with it. The ezStruders, although perfect for many other applications, just were not up to the Cyclops. Recently I discovered the Bondtech QR and purchased 2 to use with Cyclops. The results were immediate and beautiful! The Bondtech QRs conquered the Cyclops. Here's an example two color print, one of my first from the Cyclops:

I had been trying to print two color "encapsulated logos" to add to my fly fishing reels for almost a year. The Cyclops hot end was promising but until I discovered the Bondtech QRs, could not produce the results I was looking for with near 100% reliability. Here is an example:

I'll be blogging about how I accomplish this technique in a future post.

Software Upgrades

I've already mentioned a few software components I use now: the dc42 RepRapFirmware and the integrated web printer control client. I use RhinoCAD on OS X for all my design work. For slicing, I've tried all of the open source (Slic3r, Cura, MatterSlice) slicers, KISSlicer, and Simplify3D (v3). Of these, KISSlicer is still my go-to slicer. Last summer several significant updates to support multi-extrusion were added along with a feature I requested to separate filament retraction speeds so retract and advance could be different. This is because my research and experimentation with PLA uncovered that it is thixotropic and with rapid retract moves, can jam the hot end. Slowing down the retract eliminates this problem but with other slicers, that slows down the advance also. Now, with KISS, I can slow retract down to 15mm/s and advance at 40mm/s and get excellent results with no jamming.


Here's what I hope is a helpful list to summarize what I think the most important upgrades have been in priority order. If I were to start with a new Rostock Max V2 today, this is what I would do:

  1. PEI bed surface with aluminum dissipator
  2. Duet controller and dc42 firmware
  3. FSR bed leveling system (2 & 3 should actually be 2a and 2b as they go together)
  4. 24V Onyx heated bed upgrade with SSR
  5. Either a Kraken water cooled hot end or an E3D-Online V6 hot end with air cooling initially and then ultimately convert it to water cooling with the soon to be released upgrade or making your own simple jacket.

Thursday, December 24, 2015

Polishing nozzles for improved layer quality

Take a look at one of your nozzles with a magnifying glass. I bet you'll discover it has rough edges and the orifice is probably not actually round and maybe even has a little roughness or burr around the opening. Accumulated plastic right on the tip or near it can also snag a freshly applied layer and in the best case, rough it up or in the worst case, actually cause it to peal from the build surface. All of this is easy to correct with a simple and light polish and will result in improved print quality and consistency. Here's how...

I use a piece of smooth leather (an old piece of belt works great) as a strop and put the tiny tiniest dab of brass polish on it (for both brass and SS nozzles). A piece of old denim works great too - I even use the jeans I'm wearing if I can't find the strop! 

Lay the leather on a hard surface and briskly and lightly rub the tip of the nozzle on it. I use a circular rocking motion so as to "polish" a slight curvature to the very tip of the nozzle (the E3D nozzles work great with this). See the attached photo.

Once polished, I squirt isopropyl alcohol from INSIDE the nozzle to force out gunk - but more importantly, to watch the stream of alcohol to insure that it is smooth and has even flow. If not, that indicates a clog or, most likely, a burr at the tip of the bore. You can use a wire or the shaft end of a micro drill like these to reshape the opening. Run the wire or drill shaft down from inside the nozzle pushing out the tip. This will reshape the opening to be round and remove any burrs. Finish with a quick 1 or 2 stroke light swipe on clean leather (no polish) and you'll have a bright shiny polished nozzle tip with a good round opening like this one:

Notice that the edges around the flat area around the orifice is very slightly rounded and the edges are rounded over slightly. You'll find your first layers will go down much more smoothly and your top layers will look much nicer.

After the initial polishing, you can touch up the nozzle with it installed in the hot end. Use a leather strop without polish and just take a swipe or two across the nozzle tip.

To test, I created a simple "single layer test" file. It's simply a 75mm cylinder .2mm tall (representing a very common single layer height). It is a great object to test and refine your first layers and test the effect of polishing.

Wednesday, December 23, 2015

3D Printing 101 Series and an update

Several years ago Bob Warfield of CNCCookbook fame asked me to do a series of posts on 3D printing. There was an introduction and four parts to the series that discussed the basics of the printer, mechanics, electronics and software. These posts have had a lot of reads, so I thought it made sense to link them here for others to find.

These posts are a few years old and a lot has changed. Arduino-based controllers were the norm, now many of us have moved on to more sophisticated electronics and firmware like the Smoothieboard/Smoothieware and Duet/RepRapFirmware combos. Control electronics and firmware are evolving quickly. Hot ends, extruders and even motion control are advancing quickly. The weak link in the chain as I write this at the end of 2015 is the slicing software that converts the model (typically an STL file) into the gcode that instructs the printer on how to print the object. I've used as many slicers - both open source and commercial - as I can get my hands on and as a sweeping generalization, they are still primitive compared to the capabilities of the hardware and the designs and products many of us wish to print.

On the hardware front, there is no one "best" option. I'm a "delta advocate" but I own Cartesian printers too. I've evolved many aspects of my printers over the last few years and I'm currently putting together a new printer with "all the bells and whistles". Let me describe it and I'll be making more posts over the coming weeks as I finish and commission it.

The basic structure is the Metal Max all aluminum Rostock frame from Trick Laser. This is a "drop in" replacement for folks who already own a SeeMeCNC Rostock Max printer. Meaning, all of the parts from the Rostock Max can be migrated to the aluminum frame. I'm building the printer using best-of-breed components.

First up is the motion control. I decided to use linear guides on this machine rather than Delrin-wheeled carriages that roll in the upright extrusion slots. I'm using LM76 SGR10 Speed Demon rails and blocks. More as I put these into service. I'm also using .9° stepper motors rather than the typical 1.8° steppers. This doubles the effective resolution of the motion.

On the "business end" I'll likely run a Cyclops switching extruder or the tried-and-true v6 from E3D-Online. I've spent a lot of time studying and understanding these hot ends and contributed to part of the design that was incorporated in the v6 (search for "hackney") to address some reliability issues.

Recently I came across the amazing Bondtech QR extruder. I've tested many, many combinations of hot ends and extruders over the last few years. Until I met the QR, I was unable to achieve the high reliability I need from demanding hot ends like the Cyclops. The QRs are unique in that they have counter rotating drive gears pushing the filament. This results in noticeably smoother extrusion with a lot more pressure that traditional single gear extruders. I'll be using the QRs on this new build.

For the controller and firmware, my current favorite and what I believe to be state of the art is the Duet and David Crocker's dc42 branch of the RepRapFirmware. The firmware is really the magic ingredient with the this combo. It calculates each point of delta movement, unlike all the others (that I know about) that reduce the movements to short line segments. The dc42 firmware also has very functional and fast delta auto-calibration that takes less than 30 seconds to run and works reliably every time - no muss, no fuss. And the capper is the big PanelDue touch screen controller display. I'm using a 7" touch screen on this machine.

I am using 24V power supplies and other components and decisions will be made as needed.

Welcome and Introduction

Welcome to my little corner of the Blogosphere - "Sublime Layers". The name portrays my view of 3D printing technology from experimental, mechanical, design and artistic perspectives. Several years ago I started thinking about the grain of fused FFF (fused filament fabrication) printed objects - the layers, surface fill patterns and infill patterns. Rather than hiding or disguising these visual artifacts, I've developed techniques to highlight and embrace them - much like a woodworker embraces the grain or figure in wood or an artist the texture of the canvas and paint. Here's an example:

This is a close-up of one of my 3D printed fly fishing reels (more on it in another post). You can see the layer lines and fill and infill patterns and how they are incorporated into the work. I've spent countless persnickety hours developing and improving these techniques. The results require a holistic approach starting with the 3D printer itself (the mechanics have to be near perfect, etc), the design of the parts that allow them to be exposed in this way, the slicing techniques used to achieve the results and even the materials and how those are handled.

I've spent 7 years building 3D printers, pushing the limits of their capabilities, perfecting my design skills, and contributing to the community. Much of my work appears in various places like the excellent SeeMeCNC delta printer forum, the Lulzbot forum and many other user groups and blogs - you can find me by my username, mhackney. I continue to contribute to these but, moving forward, I'd like to have a home of my own, a place where I can capture my ideas and discoveries and know where to find them again later. Some of the posts I make here will be links back to prior work but a lot of it will be new and undocumented anywhere else until it is "ready for prime time". These posts will document my musings, explorations, ideas, trials & errors and, hopefully, successes.