|
20 | 20 | constexpr size_t DefaultNumAnchors = 4;
|
21 | 21 | // Default anchor coordinates
|
22 | 22 | // These are only placeholders. Each machine must have these values calibrated in order to work correctly.
|
23 |
| -constexpr float DefaultAnchors[5][3] = {{ 0.0, -2000.0, -100.0}, |
| 23 | +constexpr float DefaultAnchors[6][3] = {{ 0.0, -2000.0, -100.0}, |
24 | 24 | { 2000.0, 1000.0, -100.0},
|
25 | 25 | {-2000.0, 1000.0, -100.0},
|
26 | 26 | { 0.0, 0.0, 3000.0},
|
| 27 | + { 0.0, 0.0, 0.0}, |
27 | 28 | { 0.0, 0.0, 0.0}};
|
28 | 29 | constexpr float DefaultPrintRadius = 1500.0;
|
29 | 30 |
|
@@ -83,13 +84,13 @@ void HangprinterKinematics::Init() noexcept
|
83 | 84 | * In practice you might want to compensate a bit more or a bit less */
|
84 | 85 | constexpr float DefaultSpoolBuildupFactor = 0.007;
|
85 | 86 | /* Measure and set spool radii with M669 to achieve better accuracy */
|
86 |
| - constexpr float DefaultSpoolRadii[HANGPRINTER_MAX_AXES] = { 75.0, 75.0, 75.0, 75.0, 75.0}; // HP4 default |
| 87 | + constexpr float DefaultSpoolRadii[HANGPRINTER_MAX_AXES] = { 75.0, 75.0, 75.0, 75.0, 75.0, 75.0}; // HP4 default |
87 | 88 | /* If axis runs lines back through pulley system, set mechanical advantage accordingly with M669 */
|
88 |
| - constexpr uint32_t DefaultMechanicalAdvantage[HANGPRINTER_MAX_AXES] = { 2, 2, 2, 2, 4}; // HP4 default |
89 |
| - constexpr uint32_t DefaultLinesPerSpool[HANGPRINTER_MAX_AXES] = { 1, 1, 1, 1, 1}; // HP4 default |
90 |
| - constexpr uint32_t DefaultMotorGearTeeth[HANGPRINTER_MAX_AXES] = { 20, 20, 20, 20, 20}; // HP4 default |
91 |
| - constexpr uint32_t DefaultSpoolGearTeeth[HANGPRINTER_MAX_AXES] = { 255, 255, 255, 255, 255}; // HP4 default |
92 |
| - constexpr uint32_t DefaultFullStepsPerMotorRev[HANGPRINTER_MAX_AXES] = { 25, 25, 25, 25, 25}; |
| 89 | + constexpr uint32_t DefaultMechanicalAdvantage[HANGPRINTER_MAX_AXES] = { 2, 2, 2, 2, 2, 4}; // HP4 default |
| 90 | + constexpr uint32_t DefaultLinesPerSpool[HANGPRINTER_MAX_AXES] = { 1, 1, 1, 1, 1, 1}; // HP4 default |
| 91 | + constexpr uint32_t DefaultMotorGearTeeth[HANGPRINTER_MAX_AXES] = { 20, 20, 20, 20, 20, 20}; // HP4 default |
| 92 | + constexpr uint32_t DefaultSpoolGearTeeth[HANGPRINTER_MAX_AXES] = { 255, 255, 255, 255, 255, 255}; // HP4 default |
| 93 | + constexpr uint32_t DefaultFullStepsPerMotorRev[HANGPRINTER_MAX_AXES] = { 25, 25, 25, 25, 25, 25}; |
93 | 94 | ARRAY_INIT(anchors, DefaultAnchors);
|
94 | 95 | numAnchors = DefaultNumAnchors;
|
95 | 96 | printRadius = DefaultPrintRadius;
|
@@ -167,6 +168,7 @@ bool HangprinterKinematics::Configure(unsigned int mCode, GCodeBuffer& gb, const
|
167 | 168 | return true;
|
168 | 169 | }
|
169 | 170 | }
|
| 171 | + |
170 | 172 | if (gb.Seen('P'))
|
171 | 173 | {
|
172 | 174 | printRadius = gb.GetFValue();
|
@@ -490,6 +492,7 @@ bool HangprinterKinematics::WriteCalibrationParameters(FileStore *f) const noexc
|
490 | 492 | {
|
491 | 493 | scratchString.catf("%c%.3f:%.3f:%.3f ", ANCHOR_CHARS[i], (double)anchors[i][X_AXIS], (double)anchors[i][Y_AXIS], (double)anchors[i][Z_AXIS]);
|
492 | 494 | }
|
| 495 | + |
493 | 496 | if (!f->Write(scratchString.c_str()))
|
494 | 497 | {
|
495 | 498 | return false;
|
@@ -671,8 +674,8 @@ void HangprinterKinematics::PrintParameters(const StringRef& reply) const noexce
|
671 | 674 | HangprinterKinematics::ODriveAnswer HangprinterKinematics::GetODrive3EncoderEstimate(DriverId const driver, bool const makeReference, const StringRef& reply, bool const subtractReference) THROWS(GCodeException)
|
672 | 675 | {
|
673 | 676 | const uint8_t cmd = CANSimple::MSG_GET_ENCODER_ESTIMATES;
|
674 |
| - static CanAddress seenDrives[HANGPRINTER_MAX_AXES] = { 0, 0, 0, 0, 0 }; |
675 |
| - static float referencePositions[HANGPRINTER_MAX_AXES] = { 0.0, 0.0, 0.0, 0.0, 0.0 }; |
| 677 | + static CanAddress seenDrives[HANGPRINTER_MAX_AXES] = { 0, 0, 0, 0, 0, 0 }; |
| 678 | + static float referencePositions[HANGPRINTER_MAX_AXES] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; |
676 | 679 | static size_t numSeenDrives = 0;
|
677 | 680 | size_t thisDriveIdx = 0;
|
678 | 681 |
|
|
0 commit comments