Repetier

It does not really matter if you use M104/M140 or SET_HEATER_TEMPERATURE when klipper works as supposed. SET_HEATER_TEMPERATURE is needed if you have multiple beds or chambers which is why it is included now and preferred if name is known.

Haven't tested it on klipper printer for now and due to time it has to wait a bit. But I wonder that no one else is having the problem as well. Especially since these functions are identical to all firmwares.

With that start gcod ein klipper server even would not need to set temperatures jsut calling PRINT_START and it should be set even if we would not do it.

There is one reason why server would stop sending M104/M140 and that is firmware says it is unsupported. Then it would strip all these commands from being send later until it is reconnected. In case of klipper this happens if we receive:

// Unknown command:"M104..."

You could try instead deactivate printer and activate in server. That flushes the list if it existed but does not restart klipper. If it persists it is more klipper if it is gone it might come from unknown command.


repman

<blockquote class="Quote">It does not really matter if you use M104/M140 or SET_HEATER_TEMPERATURE when klipper works as supposed.

Sorry for troubling you, but I think it is a bug in RS:Entering after a finished print in console:

SET_HEATER_TEMPERATURE HEATER=extruder TARGET=190

switches the extruder on, in the terminal I see a acknowledgement of the command, the menu item for extruder turns red:

Send:18:09:23.344: SET_HEATER_TEMPERATURE HEATER=extruder TARGET=190Recv:18:09:23.345: ok

If I do the same (again after a print) with

M104 S190

nothing happens (no heating, no acknowledgement, nothing turns red inspite "my personal HEAD").

In the klipper logs the first command appears, the seconds one not!

I assume you send M104 if I use the menu item in the GUI, right? This command is not send to klipper after a print, who knows why....

<blockquote class="Quote">But I wonder that no one else is having the problem as well.

I would agree that it is klipper related or related to my personal misconfiguration if klipper would show any reaction in log files. As klipper and the RS terminal do not show anything I suppose the commands M104 / M140 are not send anymore if a print has ended.

I can reproduce this behavior on two different machines with two different repetier-Server versions and different klipper versions.

I can not imagine that this only appears on my personal setups as they follow mostly the standard suggestions....

<blockquote class=" Quote">With that start gcod ein klipper server even would not need to set temperatures jsut calling PRINT_START

You are right with this, but I like the bed and the chamber to be heated equally before I start a print. And fortunately RS has menu items to switch bed and extruder on without starting a print immediately. Unfortunately these entries do not work anymore after a finished print!

Has someone else here a printer with klipper and can test it?

Regards


Repetier

Ok, today I printed 2 Objects in a row using Klipper printer and it worked. Afterwards I changed temperature with server temperature control which did send M104 and it worked. So on server side this looks good in my case.

So big question is where do you differ? When you enabled command in console, did you see the M104 was send? I ask because you did not answer the question if it was marked as unknown command before so server would filter it. In my case it was not marked so it was send and executed as supposed by klipper.


repman

<blockquote class="Quote">So big question is where do you differ? When you enabled command in console, did you see the M104 was send? I ask because you did not answer the question if it was marked as unknown command before so server would filter it. In my case it was not marked so it was send and executed as supposed by klipper.

In Console I switched Commands:ON, ACK: ON, Pause Log:OFF, Filter M105: ON

Than I entered GCode M104 S200

Result:

Nothing to see in console window, temperature stays.

Than I entered Macro GCode: SET_EXTRUDER_TEMPERATURE 200 (absichtlich falsch!)

Result:

Send:10:27:23.562: SET_EXTRUDER_TEMPERTURE 200

Recv:10:27:23.569: // Unknown command:"SET_EXTRUDER_TEMPERTURE200"

Recv:10:27:23.570: ok

Than I entered the right GCode: SET_HEATER_TEMPERATURE HEATER=extruder TARGET=200

Result:

Send:10:30:17.320: SET_HEATER_TEMPERATURE HEATER=extruder TARGET=200

Recv:10:30:17.321: ok

Temperature of extruder rises to 200 °C, Menu entry turns red!

Than entered menu entry to switch extruder temperature OFF

Result:

Nothing happens, no console acknoledgement.


As you tried it on your machine and it works it must be something in my settings to prevent sending the M104 / M140 commands. I will go through all my settings and changes I've made during setup and come up with mere questions than.




Repetier

Since it worked at the start I and now M104 does not appear any more I think klipper did send
// Unknown command:"M104"
during the print also I do not have an idea why it should do so.
Did you log a first print and search for // Unknown command: to see if there was something explaining this?


repman

Going more into deep could sometimes help :-)

Checking the klippy_log file I found in the nearly endless lines of mcu stats some Unknown command lines:

Unknown command:"T0"

Unknown command:"M104 240"
Unknown command:"M140 110"

These just at the beginning of my start script.

During the print roundabout every layer:

Unknown command:"EXCLUDE_OBJECT_START"

....

Unknown command:"EXCLUDE_OBJECT_END"

At the moment I'm looking from where the M104/M140 are coming. I suppose it is from the Slicer custome GCode, where I have included this:

<blockquote class="Quote">; The next two lines to avoid, that PrusaSlicer adds automatic wait for temperature G-Codes
M104 [first_layer_temperature]
M140 [first_layer_bed_temperature]

I removed these now even if I can not imagine why setting a temperature with commonly used GCode should not be executed.

AND YEAH!

Now as I'm writing this, I think I have found the error:

M140 [first_layer_bed_temperature] is faulty!!!

It must be:

M140 S[first_layer_bed_temperature]

Checking that now....


repman

Success!

Now the logfile entries

Unknown command:"M104 240"
Unknown command:"M140 110"

are gone and temperature changing after print does work again.

But why on earth RepetierServer does not send the M104 S200 command again if I send a wrong M140 or M104?

You can test that easy in console:

Send M104 200

and after that no M104 S200 will work again. Even the acknowledgement is not send anymore.

Same with M140!


Repetier

Everything is fine on server side. As I said when we get
Unknown command:"M104 240"

server assumes M104 is unknown so it prevents resending it. It does not know klipper in reality means wrong parameter for command as it states it is unknown and resending unknown commands is a waste of resources which is why we do it, also for other firmwares it really means M104 is unknown. So guess I remove the definition for klipper so it does not do unexpected things just due to a type error.

You can do it as well removing

<response type="unknownCommand" string="true">// Unknown command:\"(.\d+)</response>

from Klipper.xml in installFolder/firmwares


repman

yeah, I thought something like this, especially as this command changes temperatures, which could be a security risk if performed uncontrolled..

But you must concede: This was not that obvious that it catches immediatly in someones eye.

Thanks for your time and efforts repetier!


Privacy Policy  |  About Us