RE: Can't print below x=5 ish - print truncated
@ian-s3
My impression is that someone noticed that the extruder cable bundle was now too thick to allow the full travel, and rather than making more changes to the extruder, they just silently 'fixed' it by adding more to the endstop, and tweaking the firmware to notice the difference.
I don't think this is true or if it is, it isn't obvious in the firmware. Offset is calculated in mesh_bed_calibration.cpp. From what I can tell, the MK3 and MK2.5s use the same constants when defining the locations of the calibration points in the bed so I don't think they are intentionally limiting the 2.5s. The constants are different than the old MK2 bed but used the same fashion in the rest of the code. Here is an example of one of the points it uses reference is calculating offest:
37.f - BED_PRINT_ZERO_REF_X - X_PROBE_OFFSET_FROM_EXTRUDER - SHEET_PRINT_ZERO_REF_X,
37.f is just distance of the first cal point from the edge of the physical bed (37mm)
BED_PRINT_ZERO_REF is defined as 2mm in the code which is the distance of the edge of the physical bed to the actual printable area.
X_PROBE_OFFSET_FROM_EXTRUDER is defined in the variant config file to be 23 for the MK2.5s. This is the distance from the nozzle to the center of the PINDA.
SHEET_PRINT_ZERO_REF_X is defined as 0 in the variant config file too (not sure what that means but makes sense to be zero).
If you go measure your bed and your extruder, this will all match up perfectly. So there is no funny truncating business specific to the MK2.5s in there. Also in the primary variant config, the x_min is zero and x_max as 250 which is where you would expect them to trim the bed if they were trying to truncate it intentionally (it's where I go to lengthen the bed to have more travel).
The part I am too lazy to interpret is this function in the mesh_bed_calibration.cpp file: calculate_machine_skew_and_offset_LS. I however don't see anything in there that would make the MK3 different than the Mk2.5s, it doesn't differentiate them. That function however is modified from what the MK2 had in it. Everything else where it writes the offsets to the eeprom seem to be the same between the old MK2 and newer MK2.5s and MK3s code.
I guess what I'm getting at is if this is a firmware problem, it probably also affects the MK3 too unless the MK3 has more travel available to it on the x-axis due to some geometrical differences of the hardware. I've not heard of the same issue on the MK3 but I also haven't really found any reference to the edge of the end stop relative to the nozzle or any other reference point in the firmware. Can neither of you manually move the extruder to either edge of the printable area on the x-axis so the nozzle reaches both printable area edges? Are you saying it hits something and can't physically reach? Or just the software won't let you command it to go there? I use around 255mm of x travel without hitting anything (the cable bundle slightly touches but not enough to impart load on the extruder).
Also, I'd be curious if you moved the bed say 1 mm and re-ran the XYZ calibration, would you end up with an offset 1mm less than you originally had? Or is it non-linear? I say that because I don't think I moved my bed that far. I originally had 6mm offset but got it down to 0.22mm but I don't think I moved the bed more than a mm or two but maybe I'm just imagining that. I guess you could run the same experiment changing the endstop length which is pretty easy and then re-running XYZ Calibration.
RE: Can't print below x=5 ish - print truncated
Also, I'd be curious if you moved the bed say 1 mm and re-ran the XYZ calibration, would you end up with an offset 1mm less than you originally had? Or is it non-linear? I say that because I don't think I moved my bed that far. I originally had 6mm offset but got it down to 0.22mm but I don't think I moved the bed more than a mm or two but maybe I'm just imagining that. I guess you could run the same experiment changing the endstop length which is pretty easy and then re-running XYZ Calibration.
I didn't move the bed, but I did move the PINDA by about 1mm and the offset changed by about 1mm. That's up the thread somewhere.
RE: Can't print below x=5 ish - print truncated
Longshot: what if you would increase the pinda-nozzle value in the fw. That should make the pinda hit the points better and the nozzle more to the left?
RE: Can't print below x=5 ish - print truncated
@ian-s3
Moving the PINDA would be linear with respect to the X_PROBE_OFFSET_FROM_EXTRUDER variable. So that isn't surprising but if the bed (or endstop) was moved, it would have to get the offset from fancy skew/offset calculator which might yield a different result.
@robert-h16
Maybe yeah. I don't know what other downstream effects changing that value would have. You could maybe reduce or increase all the other integer values in there that precede those variables to say the physical points in the bed are further or closer to the x zero point. Basically artificially shift the whole bed. Changing the length of the endstop would also handle this.
However, I can't check this myself as I don't have a stock frame anymore, but can someone confirm they can physically (by hand) slide the extruder to either end of the x-axis travel and have nozzle reach the entire print area (not edge of bed)?
RE: Can't print below x=5 ish - print truncated
When I move the X axis left, I hit the endstop ( and hence trigger the microswitch ) with the nozzle close to 4 mm to the right of the bed line. At the same time, thats very close to where the cables hit the left frame.
Moving right, I get the nozzle fractionally past the bed line, and the cable hits the frame, limiting the travel.
When I do this using the panel controls to move the axis, the min X value I can reach is 4.3, with the nozzle 4mm to the right of the left bed line. Max X is 250, with the nozzle exactly over the right bed line.
So the right side is fine. But on the left, its the endstop which limits the travel initially. Sure that could be made smaller, but then one would have to significantly rearrange the cable bundle to allow the travel. My solution there would be to change the design of the X carriage backplate so the hole where the cables come through is both narrower and longer vertically, so the bundle cound be made oval. Then it would all clear. I dont think I will bother.
I still dont see how this could be fixed by twiddling firmware, its the physical travel that is limited. The firmware takes notice of where the X travel starts by setting the offset according to where the microswitch finds the endstop. It could just as easily set that offset to 0, and limit the right travel to 246 or thereabouts, by adjusting the internal saved offsets. Doing what they seem to have done just masks the fact that the available travel is reduced.
Looking at what the XYZ calibration does when searching for the bed targets with the PINDA probe, I think they allow plenty of search area to find the targets, the probe runs in circles starting roughly 10mm from the assumed position, and then refines the position from there. Thats plenty to find the target, regardless of where it is with the build variations, and even the X endstop shift. I did print an endstop 2mm shorter, and that worked fine for the XYZ calibration, setting the X min to about 2.4 mm. But while it could be reached, it puts a lot of stress on the cables as they hit the frame during the X home. I decided not to do that, and reverted to the original endstop.
RE: Can't print below x=5 ish - print truncated
When I move the X axis left, I hit the endstop ( and hence trigger the microswitch ) with the nozzle close to 4 mm to the right of the bed line. At the same time, thats very close to where the cables hit the left frame.
Moving right, I get the nozzle fractionally past the bed line, and the cable hits the frame, limiting the travel.
When I do this using the panel controls to move the axis, the min X value I can reach is 4.3, with the nozzle 4mm to the right of the left bed line. Max X is 250, with the nozzle exactly over the right bed line.
Thanks for the clarification, that was the bit I was having a hard time interpreting from people's accounts. You are right, messing with the firmware won't help you due to the physical limitation of your travel. Messing with the firmware would only have helped if you physically had enough space for the nozzle to reach each end. Bummer.
Seems like the four options you guys have then are: 1) tweak the cable bundle to get you more travel 2) change the bed size in Slic3r and live with it 3) modify your fame to fix clearance and shift bed 4) get a bear frame
RE: Can't print below x=5 ish - print truncated
Yeah. Me too. I thought homing set the nozzle to zero but that is x=12mm.
I can then use the knob to get to x=5 mm. From that point I have about 2 mm to the endstop, and maybe 3 until the cables hit the frame.
RE: Can't print below x=5 ish - print truncated
Seems like the four options you guys have then are: 1) tweak the cable bundle to get you more travel 2) change the bed size in Slic3r and live with it 3) modify your fame to fix clearance and shift bed 4) get a bear frame
1) If this was a solution you would expect Prusa to modify the extruder parts so the captive nut/40mm screw combination was offset 5mm further to the right (viewed from front of printer)
2) That's the workaround I will be using until Prusa address this
3) There is no easy mod to frame, that would need modified Rambo enclosure and endstop
4) Possible - but an unnecessary expense.
MK2/S achieved 250mm print area on the same Z-frame, rods and Y-frame, so there is a solution hiding somewhere in plain sight.
Bill
Tagaytay City, Philippines
Founder member of Philippines Prusa Printer Owners FB Group
Sponsor Pillars of God Academy in Bacoor
RE: Can't print below x=5 ish - print truncated
@billcampbell
My feeling is the problem is the extruder cables. The new extruder bundle is around 4mm thicker than the original MK2 bundle.
RE: Can't print below x=5 ish - print truncated
Did Prusa give an official comment on this? I too noticed the same thing. I designed a part that used the whole 250mm of bed width. But was puzzled why my print was failing (the left side features were all being compressed onto roughly the 4.8mm offset)
When I look at my MK2S upgraded to MK2.5S I see the endstop-block.stl physically prevents the extruder's nozzle tip from reaching the left most edge of the print plate.
still looking for documentation about max bed width for the MK2.5S
I recently posted a problem printing a 246mm width and kept searching and found this thread. Its clearly the same problem I have. Seems like Prusa owes us MK2.5S users at least some documentation for the maximum print width? Its apparently not capable of the published 250mm width. Or, if it is, there is no obvious calibration procedure to get to that number. I could live with 246mm but when I let PrusaSlicer center my print, the left edge is squished. And I have no obvious way to work around this. And my print takes 16 hours and I only noticed the issue at the very end.
bed width for the MK2.5S
I could live with 246mm but when I let PrusaSlicer center my print, the left edge is squished. And I have no obvious way to work around this. And my print takes 16 hours and I only noticed the issue at the very end.
Yes, the 'only noticed at the very end' is the annoying bit.
The workaround is to set your slicer to match what you can actually print on.
For example, in PrusaSlicer go to 'Printer Settings' 'General' and click 'Set...' by bed shape. Set the bed dimension as (say) size 245x210 and the origin at (say) -5,1 That will result in the slicer generating gcode with x-coords in the range 5 to 250 for x and -1 to 209 for y, and when you centre a print it will be centred about x=127.5 so does stay on the bed (if it can fit at all).
RE: bed width for the MK2.5S
@ian-3 Thank you. I found the "Bed shape" in PrusaSlicer as you suggested and set the origin -3,0 and the size to 247x210 based on my printing a couple of one-layer test patterns that went to the edges of the board. Now the slicer does what I would hope it would do. That is, it doesn't complain about objects as wide as 247mm and it centers in the correct range of x, which is 3.0 to 250.0
Now I wonder why Prusa couldn't have at least documented this issue in the MK2.5S upgrade instructions. I probably still would have ignored any such warnings and wasted a spool of filament anyway, but at least I would have only myself to blame.
RE: Can't print below x=5 ish - print truncated
I just stumbled over the same problem, quite annoying.
So the summary is: Somwhere along the upgrade to MK2.5S the actual build volume of the printer decreased to about 24,5 x 21 x 21? I was not aware of that until i wanted to do a 25cm print 🙁
RE: Can't print below x=5 ish - print truncated
From my tests with upgrading to a MK2.5S+ printer with the old MK42 heated bed I can clarify a few points:
1. The extruder printable parts for the MK2.5 are similar/equal to the MK3 parts, which changed the wire support screw position from slightly right to the middle of the extruder assembly. This means, the position of the wire bundle on the back in reference to the nozzle is changed by 3-4 mm to the left. This will lead to hitting the frame on a non MK3 printer. Maybe also the nozzle position was changed, but any way the geometrics of the extruder assembly has changed!
2. The standoff for the MK2.5S is designed so that the endswitch is depressed before the extruder is too far left and the wires are pinched.
3. The printer still gets in the firmware the correct Bed positions, wether you use the MK52 12V bed or, as I, manually include the correct positions for the MK42 bed. So the printers world coordinate system is first referenced on the endstop!
4. As soon as you perform the xyz calibration a correction factor is calculated, that will move the world coordinate system [dx, dy, dz]. Was the [0, Y. Z] point 1mm right of the endstop (endstop is then not depressed) it is now moved left or right. In the firmware (haven't looked at the sourcecode that deep, feel free to check yourself) the bed or print coordinates are now corrected with this values, but for printing still the world coordinates are used for collision prevention. So your printer knows, there is a 0-250mm printbed, but 0 on the printbed is -3.1mm left of the 0 world coordinate and -4.1mm left of the "usable print coordinates". So any value below 4.1mm in GCode is not actually travelled, because the firmware prevents this to not damage the printer.
One could remove this collision protection, as it is done while calibrating xyz with the 32x32 pixels method, but thats not desirable.
So, there are two points to correct that:
1. Design a custom extruder body (printable parts), where the endstop block is shorter and the wire assembly on the back is moved 3-4 mm to the right.
2. Change the position of the calibration point from the print bed >4mm to the left in firmware. This will set the printable coordinate system the same amount to the right. So your bed coordinate system starts at [4, Y, Z] and the printer uses the whole bed (4-254 mm). Since this means that prints will hang over the right edge of the bed one can reduce the print bed size in the firmware from 0-250 to 0-245 or less. Just change the Max X value lower the amount you corrected your calibration points. In PrusaSlicer change the bed size to 0-245mm or less.
I chose the second method, because I will not print 250mm width exactly and no hardware changes have to be made. But I also changed a lot in the firmware, so maybe designing a MK2.5 specific variant for the extruder parts is easier for many. I will do this in the future to add my smooth brass bearings again I had on my MK2S printer. Much more quiet. I just removed them because I wanted to be sure the upgrade would work with the stock bearings before I change the parts.
Actually I just looked at the extruder assembly and I think the only modification is to move the wire mounting point and the hole 3-4 mm to the right. Then do not use the endstop block and everything should be back to normal.
If I have to upgrade to the SuperPINDA probe I will probably change the design as I will have to disassemble the extruder assembly again. If not I will leave it as is for the time beeing.
RE: Can't print below x=5 ish - print truncated
I just remembered that all printable parts are scad generated. So easy peasy I moved the holes 4mm to the right. Feel free to print and modify your printer. NOT TESTED YET, I need the printer currently working.