Marlin: G35 Outputs long string then hangs firmware

Created on 22 Sep 2020  路  4Comments  路  Source: MarlinFirmware/Marlin

Bug Description

The tramming_point_name[] array is PROGMEM and points to PGMSTR() strings... this apparently means it can't be used with SERIAL_ECHOPAIR() on Arduino.

On my CR-10 v3 with original Creality board, the first output sent a long string of characters to the serial port and then hung.

My Configurations

MyConfig.zip

Steps to Reproduce

  1. Build for original Creality board with ASSISTED_TRAMMING
  2. Execute G35 command over serial port.

Expected behavior:

Instructions for tramming are printed

Actual behavior:

The first tramming point name is printed as a very long sequence of letters followed by the instructions after which the firmware hangs and a reboot is required.

Additional Information

Fixed for me with this commit, but the pull request requirements are too onerous for me to be arsed. I know the patch isn't sufficient as-is, but I'm too busy to follow it through properly.

Basically, I just use serialprintPGM((char *)pgm_read_ptr(&tramming_point_name[i])); for the names and it works for me now.

ATmega2560 Confirmed ! Fix Included

All 4 comments

@Speaka reported the same issue in #19896 and verified that the included fix in this Bug report worked.
They also volunteered to prepare a PR for it, so hopefully we will see that show up in the next several days.

Please test with this PR.

Thanks for stepping up and filing the PR @Speaka!

Works for me, thanks a lot @Speaka!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ShadowOfTheDamn picture ShadowOfTheDamn  路  3Comments

StefanBruens picture StefanBruens  路  4Comments

Anion-anion picture Anion-anion  路  3Comments

manianac picture manianac  路  4Comments

Bobsta6 picture Bobsta6  路  3Comments