Automatic Extruder Fan Settings for Marlin

I was not able to get a clear description on how to set up the extruder fan to turn on and off automatically when the extruder is hot. In Configuration_adv.h :

  • Set FAN_KICKSTART_TIME to a large value like 2000. Two seconds to spin up a fan won’t be an issue at temperature-change timescales. Give it plenty of time at full power to spin up.

  • Set EXTRUDER_0_AUTOFAN_PIN to 9 to use the D9 high-power output port from the RAMPS 1.4 board.

  • Set EXTRUDER_AUTO_FAN_SPEED to an appropriate speed, usually around 128 to 255.

    Unfortunately, this is compiled in, so you will need to experiment to see how much fan speed is necessary
    to keep the extruder cool and/or provide sufficient cooling for the plastic being deposited.

In pins.h:

  • Set FAN_PIN to -1 to disable old FAN_PIN usage

I’m not sure what FAN_PIN was and what it did, but it seems to be incompatible with using the automatic temperature-based fan settings.
It appears that when FAN_PIN is used, this is the pin controlled by the M106 Sxxx setting.
I think that M106 no longer does anything when using EXTRUDER_0_AUTOFAN_PIN to control the extruder fan.
It just runs at the one preset speed set by EXTRUDER_AUTO_FAN_SPEED when the extruder is hot.

Calibration tools for Delta 3D printers

I completed some basic documentation for my delta printer calibration scripts so that others can try them out.
Plot of fit to bed probe errors on a delta bot
You will need a machine with octave (or MATLAB) installed, and perl. These tools use the command line, and command line commands in octave (or MATLAB).

I have recently become aware of a project which does automatic calibration updates to many more parameters than I alter as part of the Marlin firmware. It looks very promising, but I have not tried it yet.

If you wish to try my more conservative calibration technique, I think it is a vast improvement over most of the procedures outlined in various HOWTO’s and Wikis. If you have the automatic bed-leveling probe running on your Marlin firmware (code G29), these scripts should allow you to perform a very good calibration on a typical deltabot in about 3-4 iterations, and taking far less than an hour of your time.
A minor calibration re-check should take no more than 10 minutes.

My technique is not computationally efficient, and must be done on a general purpose computer. It usually takes several minutes to estimate calibration parameter updates.

Insulating extruder hot-end with Melamine foam

I am happy to report that insulating a hotend with Melamine foam seems to be a success.melamine_foam_hotend, at least at PLA temperatures (around 185C).

Melamine foam is commonly available as a product like Mr. Clean’s Magic Eraser, or generic equivalents. It can be very affordable, around $1 for a piece about the size of a kitchen sponge. Perhaps less in bulk.


It seems to allow my hotend to stay within about 1/2C of the commanded temperature even while printing with a blower.

Another finding of note is that I was not able to get the hotend to work with the supplied 3 to 5W resistors as heaters. They tended to burn out. These ceramic heater devices seem to work fine. It could be just because the thermal contact with the ceramic heater is better than with the resistor, since I did not attempt to use thermal grease.

Box for RAMPS board

Laser Cut drawing for RAMPS board enclosure
I have a laser cut drawing for a box to hold an Arduino Mega with RAMPS 1.4 stepper motor control board in 3mm acrylic, as are commonly used on 3D printers and GRBL systems.
This box does not include vents or fan mounts (yet). You can add these yourself to match your cooling system.

You will need to cut two copies of this drawing for a full 6-sided box. You can delete any mounting/access holes that you do not want in one of the copies. e.g. Cut one copy as is for power, USB, reset, and Arduino mount holes. Make another copy of the drawing to cut with all holes deleted for the opposing plate.

The source code starts with

The following drawing is for mounting hardware and vent holes to place a gamma28 blower motor on the RAMPS1.4 box for cooling.

Bowden Extruder hot-end setup

My Chinese version of what I think is a fairly standard Mark-IV J-Head hot end worked very well for the first couple of test prints, until the heater/resistor burned out. It seemed to be working very hard to maintain temperature.

I got several replacement resistors from Digikey, and tried a 3W 5.6 Ohm one (Panasonic ERX-3SJ5R6) which was similar in size. Same diameter, but a few MM shorter. Even with extra layers of rolled-up Kapton tape, to hold air-bubbles, it had trouble maintaining temperature while extruding with the fan on. It too burned out. I have some 4.7 Ohm, 3W of a similar size I can try, which should be able to deliver more power, but might burn out even easier. I also have one 5W, 5.6 Ohm, less likely to burn out, but no more powerful.

Small ceramic heaters, rated at 30W are on the way from China, but they could take a month or more to get here.

Adric from Quelab suggested using Melamine foam as insulation. This foam is commonly available as Mr. Clean “Magic Erasers”, or generic equivalents. I will be giving this a try.

pronterface settings for delta bot

I have my slic3r set up so that the center of the part will be at the origin of the XY plane.

For pronterface to center these objects, I needed to go to Settings–>Options, Printer settings tab, check curcular build platform, and enter these settings:
Adjust Width, Depth, XY offset to match the size of your print area (slightly smaller than your print bed). The Height is from my MANUAL_Z_HOME_POS setting in Marlin/Configuration.h