Heating extruder only on printing moves

Have questions or comments about Simplify3D, Slic3r, Cura, Reptier, etc? Or wondering about which CAD software to use...discuss it here...
Asadinator
Posts: 32
Joined: Tue May 13, 2014 3:24 pm

Heating extruder only on printing moves

Post by Asadinator » Wed Apr 25, 2018 10:00 am

For a specific application, I would like to power the extruder heater only during printing and power off for travel moves.

For example:
M104 S0
G1 F...
G1 .........
M104 S200
G1 ......... F.... E....

I tried search and replace but it is difficult.
Is it possible to do this with custom g code? I have not found it possible so far.

Cheers

User avatar
ednisley
Posts: 1033
Joined: Fri Apr 11, 2014 5:34 pm
Location: Halfway up the Hudson
Contact:

Re: Heating extruder only on printing moves

Post by ednisley » Wed Apr 25, 2018 1:21 pm

Asadinator wrote:For a specific application
Because the hot end's thermal time constant is on the order of tens of seconds, its temperature won't change much while the nozzle moves from the end of one extrusion to the start of the next. Because the extrusion properties of molten plastic change dramatically with temperature, nobody's ever regarded intermittently cooling the hot end to be a Good Thing.

AFAICT, what you want to do lies far enough beyond "normal" 3D printing that you're on your own.

However, you could use a digital output pin as a switch to control the power through a relay / external MOSFET, then post-process the G-Code to wrap "off" and "on" commands (perhaps M42) around each non-printing motion. Using a separate bit avoids having to save-and-restore the temperature while switching the hot end, which should simplify the post-processor.

I'd start with sed, but identifying non-printing moves may require more smarts than a regex can supply.

Asadinator
Posts: 32
Joined: Tue May 13, 2014 3:24 pm

Re: Heating extruder only on printing moves

Post by Asadinator » Wed Apr 25, 2018 2:47 pm

Thanks Ed

What I am doing is not a FDM process, so instantaneous response is achievable for intended purposes.
Instead of an extruder, I’m powering an ultrasound transducer via other circuitry. Just need to turn on or off with printing moves, which I was hoping the power could be supplied from Rambo, but switching mode PSU has given problems as per other thread.

User avatar
insta
Posts: 2018
Joined: Tue Sep 16, 2014 3:59 am

Re: Heating extruder only on printing moves

Post by insta » Wed Apr 25, 2018 5:33 pm

You might be able to use Marlin's "DISABLE_E" configuration option, which will disable the stepper driver immediately when it's not being used.

You can then swap the E0_ENABLE and HEATER_0_PIN numbers in pins_RAMBO.h. Make sure your TEMP_SENSOR_0 is 999, and TEMP_SENSOR_BED set to 998, and DUMMY_THERMISTOR_999_VALUE set to 180C.

This should make the heater pop on immediately when trying to move the extruder, which would be any G1 command using an "E" value.
Custom 3D printing for you or your business -- quote [at] pingring.org

Asadinator
Posts: 32
Joined: Tue May 13, 2014 3:24 pm

Re: Heating extruder only on printing moves

Post by Asadinator » Wed Apr 25, 2018 10:30 pm

insta wrote:You might be able to use Marlin's "DISABLE_E" configuration option, which will disable the stepper driver immediately when it's not being used.

You can then swap the E0_ENABLE and HEATER_0_PIN numbers in pins_RAMBO.h. Make sure your TEMP_SENSOR_0 is 999, and TEMP_SENSOR_BED set to 998, and DUMMY_THERMISTOR_999_VALUE set to 180C.

This should make the heater pop on immediately when trying to move the extruder, which would be any G1 command using an "E" value.
Thanks! I’ll try what you suggested.

Asadinator
Posts: 32
Joined: Tue May 13, 2014 3:24 pm

Re: Heating extruder only on printing moves

Post by Asadinator » Wed Apr 25, 2018 10:52 pm

insta wrote:You might be able to use Marlin's "DISABLE_E" configuration option, which will disable the stepper driver immediately when it's not being used.

You can then swap the E0_ENABLE and HEATER_0_PIN numbers in pins_RAMBO.h. Make sure your TEMP_SENSOR_0 is 999, and TEMP_SENSOR_BED set to 998, and DUMMY_THERMISTOR_999_VALUE set to 180C.

This should make the heater pop on immediately when trying to move the extruder, which would be any G1 command using an "E" value.
And how long does E0_ENABLE remain on for? For just that G1 line or until any G1 line without E?

User avatar
insta
Posts: 2018
Joined: Tue Sep 16, 2014 3:59 am

Re: Heating extruder only on printing moves

Post by insta » Thu Apr 26, 2018 12:01 am

Asadinator wrote:
insta wrote:You might be able to use Marlin's "DISABLE_E" configuration option, which will disable the stepper driver immediately when it's not being used.

You can then swap the E0_ENABLE and HEATER_0_PIN numbers in pins_RAMBO.h. Make sure your TEMP_SENSOR_0 is 999, and TEMP_SENSOR_BED set to 998, and DUMMY_THERMISTOR_999_VALUE set to 180C.

This should make the heater pop on immediately when trying to move the extruder, which would be any G1 command using an "E" value.
And how long does E0_ENABLE remain on for? For just that G1 line or until any G1 line without E?
I got you that far ;)
Custom 3D printing for you or your business -- quote [at] pingring.org

User avatar
ednisley
Posts: 1033
Joined: Fri Apr 11, 2014 5:34 pm
Location: Halfway up the Hudson
Contact:

Re: Heating extruder only on printing moves

Post by ednisley » Thu Apr 26, 2018 2:08 am

Asadinator wrote:What I am doing is not a FDM process
At the risk of asking too much, then why are you basing whatever you're doing on hardware and a toolchain specifically designed for FDM-style 3D printing?

If you're scanning the transducer at a fixed height in a pattern on the XY plane, perhaps G-Code generated specifically for your purpose would be simpler and better than hacked G-Code intended for a 3D printer.

Asadinator
Posts: 32
Joined: Tue May 13, 2014 3:24 pm

Re: Heating extruder only on printing moves

Post by Asadinator » Thu Apr 26, 2018 3:47 am

ednisley wrote:
Asadinator wrote:What I am doing is not a FDM process
At the risk of asking too much, then why are you basing whatever you're doing on hardware and a toolchain specifically designed for FDM-style 3D printing?

If you're scanning the transducer at a fixed height in a pattern on the XY plane, perhaps G-Code generated specifically for your purpose would be simpler and better than hacked G-Code intended for a 3D printer.
I’m not skilled enough to start from scratch :D

User avatar
ednisley
Posts: 1033
Joined: Fri Apr 11, 2014 5:34 pm
Location: Halfway up the Hudson
Contact:

Re: Heating extruder only on printing moves

Post by ednisley » Thu Apr 26, 2018 11:27 pm

Asadinator wrote:I’m not skilled enough to start from scratch :D
No shame there, because nobody starts out knowing this stuff ...

A cheap Chinese CNC machine kit (considerable assembly required) from Amazon (cheaper elsewhere, your choice):

https://www.amazon.com/Control-Engravin ... B07169D9JQ

You get about the same work area as the M2, a platform intended to hold down parts, a junk spindle you won't need, a crappy stepper controller with backlevel GRBL, and bag of "engraving bits", all for just over $200. Toss the crap you won't need in a drawer, assemble the rest, and verify that it more-or-less works.

Control the ultrasonic head with a solid-state relay attached to the spindle enable output, so you get easy G-Code control over the thing. If it has a PWM intensity input, the spindle speed control will do that for you, too.

Reflash the controller with current GRBL to get a solid G-Code parser & motion controller:

https://github.com/gnea/grbl

Now you have a low-end CNC machine with enough accuracy & speed for your purposes. The newer versions of GRBL include a "laser mode" that may be useful with an ultrasonic head.

If you're moving the head in geometric patterns or tracing shapes, then you can probably generate the G-Code algorithmically. Fetch the G-Code Meta Compiler:

http://www.vagrearg.org/content/gcmc

Generate G-Code with a semi-high-level language and move on.

It'll take some learning, but doesn't require working around the limitations of Marlin, a 3D printer tool chain, and a hacked M2. The problems you solve will be directly related to doing what you want done, not battering software into doing something it's not designed to handle and figuring whether it's your design or battered code falling off the rails.

Bonus: this keeps the M2 operational so you can make the parts to bolt the ultrasonic head on the CNC spindle mount.
funnily at 75W as you mentioned
Well, 24 V times the 2-3 A you mentioned rounds off to 75 W, soooo ... [grin]

Post Reply