Welcome! Log In Create A New Profile

Advanced

M600 question

Posted by kd6hq 
M600 question
November 10, 2017 06:19PM
So if I understand this correctly:
First I activate the #define FILAMENT_CHANGE_FEATURE in Confiuration_adv.h
then I place something like M600 X10 Y10 Z10 L100 where I want to pause the print?
Re: M600 question
November 11, 2017 11:35AM
Yes.
Re: M600 question
November 11, 2017 05:42PM
Well I gave it a try but no luck.
I'm using 1.1.6, on a Rumba board.
The display is a RepRap full graphics display.
I did not see the "Filament Pause" on the display - should I have - as an option?
I did use the M600 command first after layer 5, then after layer 1.
I un-committed "ADVANCED_PAUSE_FEATURE" in Configuration_Adv.h
Is there something else I need to do to add it to the display?

thanks
Re: M600 question
November 11, 2017 06:28PM
Yes you need to enable filament run-out switch. or maybe just { #define FILAMENT_RUNOUT_SCRIPT "M600" } outside the filament Runout Statement lines??

If you do not need the runout switch then it may be as easy as moving this line {#define FILAMENT_RUNOUT_SCRIPT "M600"} outside the #endif statement shown below??


//===========================================================================
//========================= Filament Runout Sensor ==========================
//===========================================================================
//#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensor.
//#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600" // Move this line
#endif

#define FILAMENT_RUNOUT_SCRIPT "M600" // To Here

Edited 4 time(s). Last edit at 11/11/2017 07:38PM by Roberts_Clif.
Re: M600 question
November 11, 2017 08:04PM
This is what I did.

/#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
//#define FILAMENT_RUNOUT_SCRIPT "M600"
#endif
//I moved this outside the IF loop to be able to change the filaments when I want to.
#define FILAMENT_RUNOUT_SCRIPT "M600"

Then I added the following after Layer 2;

;LAYER:2
M600 X10 Y10 Z15 L10

Same results, it dose not pause and nothing is noted in the menu

Perhaps there is a simpler way? There use to be an @PAUSE command, apparently
it is no longer supported. All I'm tryhing to do is to pause the printer at a point
I choose in the G code.

Thanks for the help.
Re: M600 question
November 11, 2017 08:59PM
OK was not sure!

But let's think about this. I have a filament run out sensor so I tested the line of code.

M600 X10 Y10 Z10 L100 // Pause Print

It worked as expected. So You actually do not need a run-out sensor.
You can enable code as if you had a run-out sensor and place a jumper across the pins to simulate the filament in place.
Then the commands will work as expected.

#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_INVERTING true // set to true to invert the logic of the sensor.
//#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
#define FILAMENT_RUNOUT_SCRIPT "M600" // Move this line
#endif

In pins.RAMPS.h // Or whatever your board uses for pins {this is just an example}
// define digital pin 4 for the filament runout sensor. Use the RAMPS 1.4 digital input 4 on the servos connector
// #define FIL_RUNOUT_PIN 4
// define X_MAX_PIN 2 for the filament runout sensor.
#define FIL_RUNOUT_PIN 2

And install a jumper to simulate a sensor that it has filament. My 3D Printer does not use Z-Max EndStop so I use it for the Run-out sensor

My run-out sensor schematic, Sensor is a little larger that a quarter and has a 4 Pin connector the Controller has a 3 pin connector. Led on when filament present.


Edited 11 time(s). Last edit at 11/11/2017 09:57PM by Roberts_Clif.
Re: M600 question - found another way.
November 12, 2017 12:52PM
As it turns out the command @pause was a Repetier-Host option not a Marlin one.
So much for my memory. There are 5 (@info, @sound, @pause, @pause Message,
@execute) that can be added to the G-code before executing. The codes can be
added to the g-code as many times as needed. So I do not need the M600 until
after I purchase a filament sensor.

Thanks for your help.
Re: M600 question
November 12, 2017 02:39PM
Filament sensors do not need to be purchased, they are as simple using a end-stop switch to detect the presents of the filament, and a 3D printed case to enclose the switch.

My design is a little over the top, thou if you have the knowledge use it or loose it. I had fun making it and it turned out better than expected.
I Designed a case that was used to glue the switch circuit PCB into, and with a snap together case with a small hole for the LED makes for easy access.



Edited 1 time(s). Last edit at 11/12/2017 02:44PM by Roberts_Clif.
Re: M600 question
November 12, 2017 03:47PM
Should be easy enough might be able to use an optical end stop.
Spacing looks to be about 2.54mm. I think I might give it a go
Will first need to order, so it will be awhile.


Re: M600 question
November 12, 2017 03:54PM
Quote
kd6hq
Should be easy enough might be able to use an optical end stop.
Spacing looks to be about 2.54mm. I think I might give it a go
Will first need to order, so it will be awhile.

Now I thought about this type of a switch for a short time. Then it came across to me that I use a lot of transparent filament.
And decided that the Optical sensor would have problems seeing some of the transparent filament, that I was using for some of my projects.

That's when the decision was made to use the end stop switches, as they are cheap easy to find and easier to wire.

I do like the look of the Optical sensor though. Where do I find them.

Edited 4 time(s). Last edit at 11/12/2017 04:51PM by Roberts_Clif.
Re: M600 question
November 13, 2017 10:50AM
The optical sensors are troublesome for 'out of filament' detection. Too much light leaks around the filament... And depending on how transparent the filament is, you can get flakey results during normal operation.

I have a microswitch with a roller on the end of the lever. That works very well. And it is very simple.
Re: M600 question
November 14, 2017 10:10AM
KD6Hq,

What did you specify in Marlin FW 1.1.6 for LCD? I've been struggling like yourself on this issue with a RAMPS 1.4 configuration. By luck I tried different LCD panel from REPRAP_DISCOUNT_SMART_CONTROLLER to REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER. If it helps, I made a small video to document the steps I used.


[youtu.be]

Regards,
Ed
Re: M600 question
November 14, 2017 07:59PM
Thanks Ed.

This is every thing that is defined under LCD.

#define LCD_LANGUAGE en
#define DISPLAY_CHARSET_HD44780 JAPANESE
#define DOGLCD // Full graphics display
#define SDSUPPORT
#define SD_CHECK_AND_RETRY
#define ENCODER_PULSES_PER_STEP 5
#define ENCODER_STEPS_PER_MENU_ITEM 1
#define REVERSE_ENCODER_DIRECTION
#define SPEAKER
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

At this point I have reverted back to RC8. The reasion being that Repeiter-Host started
acting a little weird. I plan on getting back into it next week, when I will have more time
to play with it.

thanks
Sorry, only registered users may post in this forum.

Click here to login