Dual Wiper for Lulzbot Mini

by ScottW1 Dec 17, 2016
Download All Files

Thing Apps Enabled

Please Login to Comment

Does anyone know how to update the 'Wipe Nozzle' Cura shortcut?

And FWIW - at first glance the numbers for the Mini 2 are 186 and 186.5.

@tomsaul - The "wipe nozzle" commands are stored in a separate file in the "...\resources\gcodes" folder below the cura-lulzbot installation folder. For example, on Cura 3.2 for Windows the folder is:
\Program Files (x86)\cura-lulzbot 3.2\resources\gcodes

There is a "wipe.gcode" file for each printer; for the Mini2 that would be the "lulzbot_hibiscus_wipe.gcode" file. It is possible they will rename this from "hibiscus" to "mini2" at some point.

The XY coordinates have become somewhat complicated for the wiping, as they vary based on printer (mini vs mini2) AND (at least for the Mini-1) on firmware version -- because X and Y origins were tweaked a couple times since 1.1.5, effectively changing the XY location of the wiper pads). Therefore the script I provided in the description (as you have already discovered) is only a starting point -- and will need to be adjusted for the specific firmware and printer.

Hope this helps! When you get everything working for Mini2, please post a note here with the script so that other Mini2 users will have a better starting point than my original script. :-)

I have found another area that will need to be updated, but so far have not seen how to do this. When the printer fails to level, it triggers a 'restart' that involves homing, rewiping, then a second level attempt. This retry does not use the new wipe code, and I have not found a place where this is done. Any pointers?

@tomsaul - The "rewipe on failed probe" code is directly within the firmware. You would need to clone the Marlin/Lulzbot firmware source, code some changes, recompile, and then flash the resulting custom firmware to your printer. A bit of Arduino and C++ development familiarity will be needed to do that.

The coding is a bit different in different versions of the firmware. In 1.1.8 (which is what I still use), the actual cleaning occurs in the Nozzle::clean subroutine within the Nozzle.cpp file. That calls a "stroke" subroutine with position parameters; so simply adding a second call to "stroke" with the second pad location constants (after defining those constants in the Conditionals_Lulzbot.h file) would be needed.

I did exactly that in some older firmware versions, but got tired of incorporating it in each new firmware release. I have since decided it isn't worth the trouble to me -- because rewipe is so seldom triggered with the second pad and start gcode that uses it to clean the nozzle.

Editing that did the trick. The revision I used for both the main machine settings and this file are

G1 X110 Y178 F4000 ; wiping
G1 X115 Y176 Z-0.5 F1000 ; wiping

G1 Z4 ; -- raise z prepare for move to secondary wiper
G1 X105 Y186 ; -- right end of secondary wiper
G1 Z1 ; -- Move down to pad
G1 X85 Y186.5 F4000 ; -- wipe off lint
G1 X105 Y186 F4000 ; -- wipe off lint
G1 X65 Y186.5 F4000 ; -- wipe off lint
G1 X85 Y186 Z0.5 F4000 ; -- wipe off lint
G1 X49 Y186.5 F3000 ; -- wipe off lint
G1 X69 Y186 F3000 ; -- wipe off lint
G1 X49 Y186.5 F2000 ; -- wipe off lint

G1 Z10 ; raise extruder
G28 X0 Y0 ; re-home to account for build variance of earlier mini builds

Here's the change for Mini 1 with the new firmware/Cura 3.2 (above is for Mini 2):

G1 X110 Y178 F4000 ; wiping
G1 X115 Y176 Z-0.5 F1000 ; wiping

G1 Z4 ; -- raise z prepare for move to secondary wiper
G1 X105 Y181 ; -- right end of secondary wiper
G1 Z1 ; -- Move down to pad
G1 X85 Y181.5 F4000 ; -- wipe off lint
G1 X105 Y181 F4000 ; -- wipe off lint
G1 X65 Y181.5 F4000 ; -- wipe off lint
G1 X85 Y181 Z0.5 F4000 ; -- wipe off lint
G1 X49 Y181.5 F3000 ; -- wipe off lint
G1 X69 Y181 F3000 ; -- wipe off lint
G1 X49 Y181.5 F2000 ; -- wipe off lint

G1 Z10 ; raise extruder
G28 X0 Y0 ; re-home to account for build variance of earlier mini builds

Have you experimented at all with replacing the original lulzbot pad with a green scotch-brite kitchen sponge?

I have. The scotch-brite tends to be too "soft" to really get all the plastic off, particularly with "stickier" stuff like PETG or Nylon. The original pad does a better job at that, but frequently leaves some "lint" -- hence the two-pad approach: The original gets the plastic, the scotchbrite gets the lint left behind by the original.

Something I haven't tried... It is possible that compressing the scotchbrite (like doubling it in the original slot) to make it more dense might work better than the original pad, but in it's normal form it is just too soft. If you experiment, please share! Always looking for a better solution. :-)

Fantastic upgrade. Will print another one in Village Plastic "Lulzbot green" when my reel arrives. One note for those ordering the scour pads through Amazon. I didn't hit the "pay now" button to quickly. Ended up buying 18 scourpads with a total of 53 euros, including 39 euros for shipping. Most expensive scour pads I ever bought :-) Anyway, these should last a lifetime!

Glad you like it. And it will look super in the Lulzbot green! :-)

Also good point on the Amazon ordering. I added a UK Amazon link that (at least as of today) goes to a 3-pack.

I will post a picture when I have my green version! And I like your Nema Heatsink Clamp as well.
And I'll be careful when ordering the heatsink from Amazon and check the shipping cost first :-)

Reprinted in Lulzbot Green! Looks great.
On a side note for Mac users, to find the profiles, you need to right click on Cura and select "Show Package Contents".
And than it is basically the same path as on a Windows machine. I did paste the extra needed G-code by hand initially in Cura in full settings,
but as soon as you switch material or go back and forth between quick print and full settings, the extra G-code got lost.
Duh... my fault. Changed my .ini files of the filament I have and now it works fine in quick print mode as well.


Any thoughts on using this on a Taz 6?

I don't have a Taz6, but from photos I would say it should work fine. The dual-wiper protrudes "off the bed" about 1/4", so check to make sure there is no physical obstruction and you'll be fine. The hole pattern should be identical, I am 99% sure AO uses the exact same wiper for both the Mini and the Taz.

You will have to come up with your own XY positions for the secondary wiper to implement the cleaning in the startup Gcode. They will obviously be different than those for the mini, which is what I included in the thing's description.

If you do set it up for the Taz6, please post a "Make" and include the Gcode for other Taz6 owners benefit (which may include me at some point!). :-)

Thank you for this useful upload. My own wiper holder broke while changing out the cleaning pad and this came in handy. I was wondering how you altered the G-Code to perform the second cleaning process for the nozzle?

The starting G-Code script is generally part of the material/quality profiles in your slicer. So exactly where the files are and how to edit them depends on the slicer you are using.

In Cura, the profiles are .INI files which you can edit with a text editor like Notepad++ (the standard Windows Notepad will NOT work well due to carriage control issues). For example, assuming the latest version of Cura from Lulzbot, the profile files for the Mini with a standard print head are located here on Windows:
c:\program files (x86)\Cura_21.02\resources\quickprint\lulzbot_profiles\Mini_single_extruder_v2

With other slicers, the files will be located elsewhere -- or may be easy to to edit/save from within the slicer itself (which is the case with Simplify3d, for example).

By the way, the STL for the standard Lulzbot wiper holder (without the additional slot for the non-woven pad) is available here:

Hope that helps -- If you have further questions, just let me know!

Thank you for posting the original link. I appreciate it.

And thank you to the designer of the dual wiper as well!

Thank you very much for your prompt response! I understand how it works now

Comments deleted.