MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.27k stars 19.23k forks source link

[BUG] mmu2 does not reset with SW Reset #25009

Open ChGeorgi opened 1 year ago

ChGeorgi commented 1 year ago

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

Marlin sends during boot ?X0 instead of X0 i fixed it by sending a "start" before X0 (but can also only be a blank)

Bug Timeline

No response

Expected behavior

reset of mmu2

Actual behavior

mmu2 will be disabled

Steps to Reproduce

connect mmu2 without reset cable

Version of Marlin Firmware

2.0.9.2

Printer model

self designed almost like prusa mk3s

Electronics

skr 1.4 /skr 2.0

Add-ons

MMU2S with clone board

Bed Leveling

ABL Bilinear mesh

Your Slicer

Prusa Slicer

Host Software

SD Card (headless)

Don't forget to include

Additional information & file uploads

nothing else

thinkyhead commented 1 year ago

The code is only sending "X0" so it's not clear where the "?" is coming from on your serial line.

  MMU2_SERIAL.begin(MMU_BAUD);
  safe_delay(10);
  MMU2_COMMAND("X0"); // Send soft reset

You can try experimenting with a longer safe_delay, or you might try adding MMU2_SERIAL.flushTX(); to see if it makes a difference in the reliability of startup.

ChGeorgi commented 1 year ago

The '?' appears directly at startup. Followed by the X0 later. So Its something before.

GMagician commented 1 year ago

May this be caused by noise on usart line? You don't send anything but noise causes bits to be loaded into shift register.