-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Request] Auto detection of Malyan M200/MP Select Mini firmware and its peculiarities #1762
Comments
Sure I'm down for testing!
I will try this as soon as I get home.
Yes, printing through OctoPrint works fine. I had a couple of hiccups tho:
Link to the current firmware if it helps |
The two last points are due to how that printer's firmware works. There might be some commands OctoPrint could send it via serial to update the displayed progress and/or switch from printing to not printing mode and vice versa, but those are certainly not part of the standard instruction set and since unless someone with one of those printers finds them by accident or Maylan publishes the source of their variant (the bin files are already compiled) there's no way to make this work. The first point sounds more like a crash of the printer ("keep extruding plastic"). OctoPrint sends it commands line by line from your uploaded files, it's the firmware's responsibility to acknowledge them ("ok") so that new commands can be sent and execute them as necessary. |
A little late, but I'll post my results as well. Thanks @foosel for the responses. |
Uploaded a gcode file to the SD card after turning on "alwaysSendChecksum". It seemed to work fine. Here is the response:
Printing the file now to see if there are any issues. |
In my case it did not work, I loops differently now
It keeps refreshing the SD's file list. With no checksum it will create the file in the SD, with 0 bytes, with checksum enabled it will not create the file. |
Something is weird there because it resets the line number but then continues with the old one:
That looks more like an actual bug that I've never seen before. What feature flags did you have set and what was configured on the serial settings tab with regards to the advanced options? Just to make sure there's no collisions there of any kind. |
Just a quick ping, I haven't forgotten about this, I just have way too much stuff going on all at once again. |
@amd989 for the life of me I can't figure out how the issue you are seeing can even happen. I looked through the code in question again, this:
should never happen. In fact, the comm layer in OctoPrint should rewrite the
The fact that it doesn't means something must have happened here earlier in the communication that somehow managed to get around this, and I have no idea right now how that would be even possible. So, could you please provide a full |
Hi! I'll get this done as soon as I get home! |
Ok here is the octoprint.log.txt And here is a failure serial-failure.log.txt After that failure, I started testing multiple gcode files that I had. Until I got a success. I tried checking what was different between these files, It seems that anything below 2MB would not upload to the SD. While anything higher would. I tried various files ranging from 2050KB to 7000KB and they would upload correctly. Here is the success serial-success.log.txt Couple files used (one fails, one works): gcode.zip |
This is so weird. I poked at it from a lot of sides and am stumped. It shouldn't have anything to do with the file size, because the error arises when it doesn't reset its line number when sending its M110 to the printer. Which it should ALWAYS do. @nokemono42 can you reproduce this issue that @amd989 is seeing too? @amd989 I don't see any plugin configured there that I'd suspect of causing this, but just to be on the safe side, would you be able to disable your third party plugins (just disable should be enough) / restarting in safe-mode ( Another thing to try would be connecting to the printer and manually sending a |
@foosel No I have not had any issues with failed uploads. |
Otherwise we might run into a rare race condition where the M110 sent on start of a SD card upload gets prepared for sending after the source file is already opened. That would then lead to the M110 not getting processed anymore by OctoPrint and hence the line number counter not resetting accordingly, leading to one line number mismatch after the next from the firmware. Testing if our "isPrinting" flag is ALSO set to true here ensures that we'll only stop processing commands internally once the state has actually switched to printing, which only happens after the firmware responds to the M28 sent after the M110. Fixes #1882 and probably also the issue encountered by @amd989 in #1762 (which looks like exactly the same problem)
It looks like there is still an issue with |
The "block while dwelling" feature flag will now also be set for Malyan printers. Patch is already live on |
1.3.5 was released yesterday. |
According to this reddit thread the M200/MP Select Mini runs some customized version of GRBL for which there are (currently) no sources available.
While it claims to be compatible to the Marlin instruction set, it appears to behave differently enough that issues arise, especially when handling SD cards.
The firmware identifies as
NAME: Malyan VER: 2.9 MODEL: M200 HW: HA02
viaM115
. Following up a discussion originating in #1737 it needs at leastfeature.sdAlwaysAvailable
set to true to function correctly. A possible further candidate isfeature.alwaysSendChecksum
set to true (since the firmware seems to hiccup on combined checksummed and checksum-less lines).Identified TODOs:
NAME: Malyan
andMODEL: M200
to the firmware auto detection code.feature.sdAlwaysAvailable
feature.alwaysSendChecksum
feature.blockWhileDwelling
(as determined in Time out after G4 #1941)@amd989 and @nokemono42, would you be available to test further and report back to figure out if those are the only two flags that are needed for issuefree operation between the printer and OctoPrint?
The text was updated successfully, but these errors were encountered: