Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
9.55k stars 5.33k forks source link

BiPolar support #2088

Closed Kenzu closed 4 years ago

Kenzu commented 5 years ago

Hello I have a sculpto printer. It has custom electronics, based on an linkit smart7688 wifi module with openwrt and an LPC1768 (smoothie based). They talk via uart. The machine is not normal Polar, but more like bipolar (like an old LP player). I have a smoothie and marlin port working on the machine, but would like to try out klipper. How to get started?

https://sculpto.dk

sculpto

Originally posted by @Kenzu in https://github.com/KevinOConnor/klipper/pull/1023#issuecomment-544189457

klipper-gitissuebot commented 5 years ago

Hi @Kenzu,

It did not look like there was a Klipper log file attached to this ticket. The log file has been engineered to answer common questions the Klipper developers have about the software and its environment (software version, hardware type, configuration, event timing, and hundreds of other questions).

Unfortunately, too many people have opened tickets without providing the log. That consumes developer time; time that would be better spent enhancing the software. If this ticket references an event that has occurred while running the software then the Klipper log must be attached to this ticket. Otherwise, this ticket will be automatically closed in a few days.

For information on obtaining the Klipper log file see: https://github.com/KevinOConnor/klipper/blob/master/docs/Contact.md

The log can still be attached to this ticket - just add a comment and attach the log to that comment.

Best regards, ~ Your friendly GitIssueBot

PS: I'm just an automated script, not a human being.

KevinOConnor commented 5 years ago

This would require a developer to implement the kinematics. There's some info on writing new kinematics at https://www.klipper3d.org/Code_Overview.html#adding-new-kinematics .

Do you know the math formulas for the "inverse kinematics" and "forward kinematics"?

-Kevin

Kenzu commented 5 years ago

In short like this... Will update later. :-)

cartesian_to_actuator theta2 = 2 asinf( sqrtf(xx+yy) / (2arm_length) ); theta1 = (PI-theta2)/2 - atan2f(y,x);

actuator_to_cartesian theta = ((PI-theta2_rad)/2) - theta1_rad; r = 2 arm_length sinf(theta2_rad/2); //Convert from polar to cartesian x = r cosf(theta); y = r sinf(theta);

KevinOConnor commented 5 years ago

Seems simple. A "bipolar" implementation would look similar to commit ec9cb3a1, but with a different implementation for polar_stepper_radius_calc_position(), polar_stepper_angle_calc_position(), and calc_position().

Let us know if you need assistance.

-Kevin

KevinOConnor commented 5 years ago

Any further updates on this?

-Kevin

KevinOConnor commented 4 years ago

FYI, I looked a little closer at this, and the step generation math is basically the same as a scara robot. Which is also very similar to the recent work on the rotary delta kinematics (the work-rotary-20191119 branch).

-Kevin

KevinOConnor commented 4 years ago

It doesn't look like this ticket is under active development, so I'm going to mark it as inactive.

-Kevin