Bed probe positions. #341
Replies: 5 comments 26 replies
-
That is the Y offset. In the firmware there's some trickery that makes the bed front (prime line) be at Y = -3, out of the normal printable region - the bed is actually a few mm longer than the printable area. This offset is to correct between the simulated motor position, which goes from 0 to 213 to place the probe points in the correct region from 0-210. In other words, the values in the firmware are relative to bed zero, whereas the simulator values are relative to the motor travel "zero". |
Beta Was this translation helpful? Give feedback.
-
@vintagepc Well, I think I've found a bug. (maybe an old MK2 firmware bug, or simulation bug. )
If I run selftest immediately after starting the printer up, no problems, but if I run auto home first, and then selftest: |
Beta Was this translation helpful? Give feedback.
-
Hmm... that almost sounds like the firmware is not moving away from the axis end after a home and allowing the virtual endstop to "untrigger". Then when it attempts selftest the endstop is already set and it doesn't like that. |
Beta Was this translation helpful? Give feedback.
-
@vintagepc The bad news is that this is not a firmware bug. I've just flashed stock MK2 to my physical MK2, and it seems to work fine. What I can say though is that after an autohome, if I click Settings -> Move Y, the reading is |
Beta Was this translation helpful? Give feedback.
-
iiiiiiiiiiiiiiinteresting. I'll see if I can find some time to look into what's going on today... unless you beat me to it 🤣 might be interesting to do a VCD dump of the step count and step pins to see if we're somehow continuing to step into a region we shouldn't and hitting undefined behaviour |
Beta Was this translation helpful? Give feedback.
-
Hi, I don't understand how these positions are derived.
MK404/parts/components/PINDA.cpp
Lines 186 to 189 in 029cc59
We have the definitions here:
https://github.com/prusa3d/Prusa-Firmware/blob/MK2/Firmware/mesh_bed_calibration.cpp#L53
but
BED_ZERO_REF_X
is#define BED_ZERO_REF_X (- 22.f + X_PROBE_OFFSET_FROM_EXTRUDER)
and
BED_ZERO_REF_Y
is#define BED_ZERO_REF_Y (- 0.6f + Y_PROBE_OFFSET_FROM_EXTRUDER)
I get that you set the pinda offset from extruder as 0,0, so ignore those, but where does the magic
3
come from? surely it would be:?! 🤷♂️
Beta Was this translation helpful? Give feedback.
All reactions