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.27k stars 19.23k forks source link

[FR] Cant use OpenDACT with Marlin #8085

Closed vido89 closed 2 years ago

vido89 commented 7 years ago

To set delta printer correctly we need to measure couple of things, I dont know how they are called in Marlin but in repetier they are called (Alpha Rotation, Delta Radius, XYZ offset, Horizontal Radius, and Diagonal Rod length). So we need to set them to value which they ARE on our printer and NOT to ideal value.To achieve that we just need to measure z hight with micrometer and we can calculate real values of our delta. I came across OpenDACT its designed to work with Repetier but Im sure that we can use it Marlin to, but we need to change those parameters. Sadly those parameters are not available in Marlin EEPROM (should we make feature request?)

My question is what is name for Alpha Rotation, Delta Radius, XYZ offset, Horizontal Radius in Marlin and where we can change those ? I know that "Diagonal Rod length" is "DELTA_DIAGONAL_ROD" Here you can watch how to perfectly calibrate your Delta to be within 0.01 from end stop.

Edit: I just found this so there was some progress. To summarize

/**
 * M665: Set delta configurations
 *
 *    L = diagonal rod
 *    R = delta radius
 *    S = segments per second
 *    A = Alpha (Tower 1) diagonal rod trim
 *    B = Beta (Tower 2) diagonal rod trim
 *    C = Gamma (Tower 3) diagonal rod trim
 */

inline void gcode_M665() {
  if (code_seen('L')) delta_diagonal_rod = code_value();
  if (code_seen('R')) delta_radius = code_value();
  if (code_seen('S')) delta_segments_per_second = code_value();
  if (code_seen('A')) delta_diagonal_rod_trim_tower_1 = code_value();
  if (code_seen('B')) delta_diagonal_rod_trim_tower_2 = code_value();
  if (code_seen('C')) delta_diagonal_rod_trim_tower_3 = code_value();
  recalc_delta_settings(delta_radius, delta_diagonal_rod);
}
vido89 commented 7 years ago

It is not designed for Marlin... It's for Repetier only.

What Im saying is we should be able to use same technique with Marlin

fiveangle commented 7 years ago

Looks more like you need to submit a feature request to OpenDACT to request support for Marlin:

https://github.com/RollieRowland/OpenDACT/issues

There's no changes needed by Marlin as all the GCODE to set these values (and surely perform whatever GCODE movement commands OpenDACT performs as necessary to do its "calibration") already exist.

-=dave

vido89 commented 7 years ago

Right that is good thing @fiveangle but what about adjusting Alpha Rotation, Delta Radius, XYZ offset, Horizontal Radius ?

fiveangle commented 7 years ago

Those are Repetier terms so someone who 1) knows about Repetier, and 2) cares to make OpenDACT work with Marlin, needs to translate what those are in Repetier to what they are in Marlin and provide to OpenDACT so they can translate to their needs. The OpenDACT devs will know how they do this more than anyone.

vido89 commented 7 years ago
Marlin                           Repetier

DELTA_DIAGONAL_ROD               Diagonal Rod length
DELTA RADIUS (A,B,C)             Horizontal radius
                                 XYZ offset
                                 ALPHA (A,B,C)
vido89 commented 7 years ago

There is some progress on Open DACT gut hub page https://github.com/RollieRowland/OpenDACT/issues/23

thinkyhead commented 7 years ago

Have you played with G33 delta calibration at all?

vido89 commented 7 years ago

Yes I tried it but Im not satisfied completely with it because my prints are of in dimensions and almost always I have elephant feet artefact

LVD-AC commented 3 years ago

I guess:

Marlin Repetier

DELTA_DIAGONAL_ROD Diagonal Rod length DELTA RADIUS (A,B,C) Horizontal radius Endstop Offsets XYZ offset Tower Angle Corrections ALPHA (A,B,C) Delta Height ???

Those need to be set with M665 and M666 to have a "flat bed"; they can be calculated with G33 (or OpenDACT)

@vido89 "almost always I have elephant feet artefact"

You need to tweak the Z-offset to cure that.

@vido89 "my prints are of in dimensions"

That smells like a stepper calibration error.

thisiskeithb commented 2 years ago

Would this still be useful? It looks like OpenDACT development stopped mid-2017.

github-actions[bot] commented 2 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.