You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In your 1.4.6 codebase you use the command enqueue_and_echo_commands_P() to send commands to the printer. From the comments in the code of Marlin 1.1.9 enqueue_and_echo_commands_P() actually aborts the current queue and queues your specified command immediately (see code snippet below). But in your Marlin 2.0 codebase you use the command queue.enqueue_now_P(). But from tracing this funciton it appears that enqueue_now_P() will enqueue this command on the end of the command queue, and if the queue is full (which happens if trying to do anything during an sdcard print) then the function just throws out any commands that don't fit on the queue silently.
The Marlin 2.0 code that does the closest thing to enqueue_and_echo_commands_P() is actually queue.inject_P(). Basically enqueue_now_P() will work for any commands from the TFT executed while the printer is not printing from SDCard (like say performing a bed levelling), but it won't work during an SDcard print.
My Configurations
Unchanged from your repository master
Steps to Reproduce
Install Marlin 2.0 codebase
Do an M502 and M500
Load backed up M92 ,G29, M301, M304 values and store with m500
Feed filament into the extruder but bypass filament sensor
Add a small strip of filament in the filament sensor so that it does indicate filament outage
Start any 3d print
Pull the small strip of filament out of the filament sensor to trigger a filament runout
Expected behavior:
Filament runout beeps
Print head parks
A prompt on screen telling you the filament runout has been triggered
Actual behavior:
Printhead stops moving.
No prompt on screen, no beep and no parked head
Additional Information
Code signature of original call in Marlin 1.1.9
/**
* Record one or many commands to run from program memory.
* Aborts the current queue, if any.
* Note: drain_injected_commands_P() must be called repeatedly to drain the commands afterwards
*/
void enqueue_and_echo_commands_P(const char const pgcode) {
The text was updated successfully, but these errors were encountered:
Bug Description
In your 1.4.6 codebase you use the command enqueue_and_echo_commands_P() to send commands to the printer. From the comments in the code of Marlin 1.1.9 enqueue_and_echo_commands_P() actually aborts the current queue and queues your specified command immediately (see code snippet below). But in your Marlin 2.0 codebase you use the command queue.enqueue_now_P(). But from tracing this funciton it appears that enqueue_now_P() will enqueue this command on the end of the command queue, and if the queue is full (which happens if trying to do anything during an sdcard print) then the function just throws out any commands that don't fit on the queue silently.
The Marlin 2.0 code that does the closest thing to enqueue_and_echo_commands_P() is actually queue.inject_P(). Basically enqueue_now_P() will work for any commands from the TFT executed while the printer is not printing from SDCard (like say performing a bed levelling), but it won't work during an SDcard print.
My Configurations
Unchanged from your repository master
Steps to Reproduce
Expected behavior:
Actual behavior:
Additional Information
Code signature of original call in Marlin 1.1.9
The text was updated successfully, but these errors were encountered: