Marlin - slowing down print speed
I'm currently using Marlin firmware (1.1.0-RC7 - 31 July 2016) and would like to experiment with print speed.
In the file
Marlin_main.cpp
I see in theprocess_next_command()
function, there is a variable calledcurrent_command
which (supposedly) holds the G-Code values for travel distance and feedrate(speed).I'm expecting the actual command for travelling to look something like this:
G1 X50 Y25.3 E22.4 F1500
but I'm getting tied up figuring out exactly where it is. I'm assuming if I can change
F1500
toF200
, I can effectively slow down the print speed.I'm aware of line 753 in the
configuration.h
file:#define DEFAULT_MAX_FEEDRATE {300, 300, 5, 25} // (mm/sec)
I'm not interested in setting a fixed slow feedrate but would rather change individual G-Code commands. Can someone tell me where I can find the actual G-Code command to edit it?
G-code commands are not in the firmware. You're trying to find something in the code that simply isn't there. Your slicer is responsible for generating a g-code file, which you can then send to your printer (either by printing from an SD-card) or using a host program like repetier or cura. The commands in the G-code file are then executed by the firmware, but they're not part of it.
How the commands are actually processed is not trivial, and it happens in multiple places.
The commands are processed in the
process_commands
of Marlin_main.cpp. Upon reading a G1 command, it callsget_coordinates
to parse the X/Y/Z/feedrate values from the command. Next, theprepare_move
function is called, which applies the necessary transformations (clamping to endstops, and the reverse kinematics if you have a delta) before callingplan_buffer_line
(which is inplanner.cpp
) which does some more preprocessing and computes a "block" which is pushed onto the buffer. Next,planner_recalculate
is called, which iterates over the blocks to find feasible acceleration patterns for them. Finally, an interrupt (in stepper.cpp,ISR(TIMER1_COMPA_vect)
) periodically reads blocks from the buffer and actually sends the signals to the steppers.@makeithappen This was not clear from your question. I've edited my answer to explain (roughly) how the motion planning works. I don't understand why you are pursuing the firmware route, if you want to change F1500 to F200 just do it before you send the file to the printer!
License under CC-BY-SA with attribution
Content dated before 7/24/2021 11:53 AM
make it happen 6 years ago
I get that G-Code commands are not in the firmware I am just trying to find the exact part where they are fetched and executed. I would like to edit the fetched code it before it is executed.