NinjaFlex FIlament Dos and Don’ts

I’ve been experimenting with NinjaFlex filament and wanted to share my experience using it on my Printrbot Plus Metal with a V2 aluminum extruder. I’ve had pretty good success and wanted to share some pictures of my print using NinjaFlex of the Treefrog by MorenaP from Thingiverse:


I’d encourage you to try NinjaFlex filament as it is amazing to be able to create objects that are flexible and bendable. The resulting object is also super strong and resistent to tear. NinjaFlex makes this frog almost seem lifelike when you hold it!




Okay, here are the dos and don’t that I’ve discovered to have a good experience with NinjaFlex:

DO modify your extruder to remove the gap in the Printrbot V1 aluminum extruder. You have several options including (search Internet for “NinjaFlex extruder”) filling the gap with Sugru, printing an adapter to remove the extra room in the extruder or upgrading to the V2 Printrbot extruder. I highly recommend upgrading your extruder to the Printrbot V2 aluminum extruder because NinjaFlex is expensive filament, so why mess around wasting time and filament when you could have better success and less hassle with an upgraded extruder. The filament hole in the Printrbot V2 aluminum extruder is much smaller diameter than the Printrbot V1 extruder filament hole. This smaller hole and tighter extruder design does a better job of feeding flexible filament through the direct drive and into the hotend without allowing the filament to get bent like a pretzel.

DON’T  Feed too much filament through your extruder too quickly! I made a mistake when I loaded the filament for the fist time and while experimenting, manually extruding NinjaFlex using my CAM software (Simplify3D). Initially it was extruding 10mm at a time without any issue, but as I continued to extrude 10mm over and over without stopping, the extrusion stopped. My extruder stepper motor was not able to turn. Turns out I was feeding filament too quickly through the hotend. Unlike PLA or ABS, you cannot extrude too quickly. So if you want to prime your hotend, for example, you need to be very patient and extrude 10mm, wait for a few seconds then extrude 10 again. If you extrude too much too quickly, you will likely get a kink in your filament. In my case, I had to disassemble my extruder in order to remove the filament that was tangled.

DO prime your extruder if you are switching from a different filament. Always do your priming of NinjaFlex slowly to avoid a jam. I typically run a total of 200mm through my extruder to make sure the previous filament is fully flushed prior to printing with a new filament. With NinjaFlex, you need to manually extrude 10mm and wait a few seconds before extruding again. Priming the extruder is super important if you are switching from a previous filament that is not NinjaFlex. As always, when flushing your hotend, remember that you should be extruding at the highest temperature required by your previous filament or new filament…then adjust to the appropriate temperature for your new filament once flushed.

DON’T have your hotend too hot or you will get a lot of NinjaFlex drool…meaning filament will drip from your nozzle and leave globs on your print. Too hot can also make your filament even more flexible and cause it to jam. And don’t have your hotend too cool or it will not heat your filament quickly enough, which will cause a backup and cause your filament to get jammed in your direct drive gear. 215C seems to work well for me (see more details below).

DO set your CAM software appropriately for NinjaFlex. Here are the key differences I’ve discovered through my experimentation:

  • Set hotend to 217C for your first layer at .3mm (I double the first layer height using first layer height of 200% in Simplify3D)
  • Set hotend to 215C for subsequent layers at .15mm
  • Turn on retraction with retraction distance 1.5mm and retraction speed at 1800mm/minute
  • Definitely use a skirt of 3-5 outlines depending on the size of the object. Use fewer outlines for larger objects and more outlines for smaller objects.
  • Infill will vary. Less infill makes your object more squishy. 20% infill is a good place to start.
  • Some heat on the bed seems to help make NinjaFlex stick, I’ve had great successful at 40C.
  • On the bed, I use a bit of hairspray on blue painter’s tape and get good adhesion and easy release after the print finishes
  • Turn your fan on for layers 2+. You want the fan to be off for the first layer to get good adhesion.
  • Set default printing speed to 900mm/sec
  • Set default X/Y movement speed to any speed you want. I leave mine at the default of 3600mm/sec. You want your nozzle to move very quickly while traveling and not extruding to minimize drool/globs on your object.

DON’T get discouraged if you have some initial failures printing NinjaFlex. Remember to go slowly and don’t push too much filament through your extruder too quickly! And if it gets jammed, no sweat, just let things cool, take the extruder apart and it should be easy to untangle any filament that is jammed.

DO Share your experiences so we can learn from one another!

Tweak Simplify3D GCode End Script

I recently posted about a small tweak to the Simply3D starting script for Printrbots to allow it to home the machine properly at the beginning of a print. I just upgraded to Simplify3D version 3.0.1 from version 2.2.2. I was reminded that there is no GCode to turn off the fan when a print completes. Sometime I print overnight and want to make sure the fan does not run unnecessarily for hours after a print completes.

The edit is simple, just add one line to turn off the fan using the M107 code:

The edited Simplify3D “Ending G-Code” script, which can be found in the Scripts tab in the settings for the printer process, looks like the following:


Tweak Simplify3D GCode Start Script

Initially, I print a lot while tethered to my Printrbot Plus Metal because it allowed me to prime the extruder with plastic prior to printing to make sure my print started properly and also provided a lot of feedback, for example, how much time is left to print a model. And it allowed me to manually home my machine prior to printing by clicking home all.


However, more recently I’ve started to print more often from a micro SD card or via OctoPrint so I don’t have to tether my laptop. Without being tethered, I can run longer prints. I use the OctoPi distribution to run OctoPrint on a Raspberry Pi computer, which I will discuss more in a future blog…

Although for years I’ve sliced and printing using Repetier/Slic3r and Cura, more recently I have been slicing and printing using Simplify3D. I like Simplify3D because it slices better (better final printed piece) and also allows for precise placement (addition/deletion) of support. Although it is possible to use Cura to slice in OctoPrint, I don’t. I do all my slicing with Simplify3D and save/export the toolpath GCode to a micro SD card to print via an SD card or upload to OctoPrint’s website if printing via OctoPrint.

One thing that has been annoying me is that my Printrbot Plus Metal (with the auto Z height probe) is not setting the Z axis properly before it prints using Simplify3D. The issue is that the Z axis is left about 1″ above the bed, which is way too high, and that is the z height where it starts printing, which is obviously makes every print fail. However, the Z height is being set properly when I print with Cura. So, up until recently, when I use Simplify3D, I have to manually home the machine (by clicking home all from Simplify3D’s Machine Control Panel). If I’m printing while tethered, it is not a big deal to manually home the machine by clicking one button, but if I want to print untethered, it is inconvenient to have to plug in the USB cable and connect to the printer just to home the machine prior to printing untethered. And if a print fails while printing untethered, I have to connect again to the printer to home it before restarting a new print.

So I got fed up and decided to investigate how to cause my printer to auto home prior to every print…

I compared the generated GCode from Cura (homes machine properly) and Simplify3D (does not home properly) to see what was different in the initial setup where the printer is homed and prepared to print. The original Simplify3D “Starting G-Code”, which can be found in the Scripts tab in the settings for the printer process, only contained two lines:

I found that I needed to insert one new line (line 2 below: “G28 Z0”). NOTE: this only works for printers where the Z height is set in the firmware or where a functioning Z probe is installed and configured.  Line 1 tells the printer to move along the X and Y axis until the end stops are triggered on each axis. Line 2 (this is the new line) tells the printer to move the Z axis until it’s end stop is triggered, which in my case for the Printrbot printers will be when the sensor senses the metal bed. Line 3 initiates the process to auto level by checking 3 points on the bed.

I updated my “Starting G-Code” script in Simplify3D to add the second line. Now, the GCode created from Simplify3D always has the correct codes to home the machine properly. So whether printing tethered or untethered, I don’t need to manually home the machine.

One last tip, if you are planning to print from an SD card or OctoPrint, it is a good idea to include a skirt that has enough outlines to get your extruder primed prior to starting your print. For large objects (3+ inches in diameter), 2 outlines may be enough. But for smaller objects, you may want upwards of 4 lines or more to make sure your extruder is laying an even bead of plastic when your piece starts printing.