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.16k stars 19.21k forks source link

[BUG] (M928 doesn't work from octoprint or serial control {Error: No Checksum with line number}) #21718

Closed Cliffhang3r closed 3 years ago

Cliffhang3r commented 3 years ago

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

Yes, and the problem still exists.

Bug Description

I am using Marlin on a ramps 1.4 for a robotic arm and I am trying to create an SD program from movements sent to the machine. M928 will work when sending the code from a pc, but I can't get it to work from my other two methods, which are my preferred methods.

Octoprint (latest version) gives the following status when trying M928:

Error: No Checksum with line number, Last Line: 3
Resend: 4

Tried fixing by checking the "Always simulate OK for resend requests" option in octoprint settings but that didn't work.

Also attempting to get it to work from my DIY control pendant. An arduino uno sends serial gcode to the RX pin on the ramps board. This works for every other command but this one. It will start the SD file but wont record any commands sent trough the pendant.

I need to be able to control the machine while commands are being recorded to the SD file. so that's why m928 would be perfect. Any idea why the machine isn't accepting the movements when using octoiprint/serial but it will when using a pc (Repetier Host)?

So it looks like maybe the problem is maybe with the text format being sent over these two methods? Do i just need to add line numbers and a checksum to each line of code that is sent to the machine? So instead of G1 X10 F300 it should be N1 G1 X10 F300*126 or something like that?

I know that M110 N0 can set the line number back to 0 but where does the checksum numbers come from and how do I continue where it left off? This is what I got trying this:

Send: M928 XX.GCO
Recv: echo:Now fresh file: XX.GCO
Recv: Writing to file: XX.GCO
Recv: ok
Send: G91
Recv: Error:No Checksum with line number, Last Line: 0
Recv: Resend: 1
Send: N0 M110 N0*125
Recv: ok
Send: N1 G91
Recv: Error:No Checksum with line number, Last Line: 0
Recv: Resend: 1
Send: N1 G91*
Recv: Error:checksum mismatch, Last Line: 0
Recv: Resend: 1
Send: N1 G91*125
Recv: Error:checksum mismatch, Last Line: 0
Recv: Resend: 1
Send: N1 G91*126
Recv: Error:checksum mismatch, Last Line: 0
Recv: Resend: 1

This is the robot and the control pendant I am trying to make work. Without the ability to record a program, the pendant isn't very useful. https://photos.app.goo.gl/bXcyQLLs1SmvawWR6

Expected behavior

I expect movements sent from octoprint to be recorded to SD file.

Actual behavior

No movements were received. The machine didn't move and the SD file was empty.

Version of Marlin Firmware

2.0.8

Printer model

Picker bot - custom 5 axis robotic arm

Electronics

Ramps 1.4 + raspberry Pi + Arduino Uno

Host Software

OctoPrint

github-actions[bot] commented 3 years ago

This issue has had no activity in the last 60 days. Please add a reply if you want to keep this issue active, otherwise it will be automatically closed within 10 days.

github-actions[bot] commented 3 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.