Basic Information:
Printer Model: Self Made, Rotary Delta
MCU / Printerboard: Arduino Mega 2560 ( with motordrivers and motors only, just a kinematics demonstrator)
Host / SBC Raspi 4
klippy.log klippy_G28_error.log (56.2 KB)
Fill out above information and in all cases attach your klippy.log
file (use zip to compress it, if too big). Pasting your printer.cfg
is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there
Describe your issue:
Hello everyone,
For a university project, I need to build a small kinematics demonstration to convert a custom printer from Beckhoff/TwinCAT to Klipper. The reason for this is that nobody in the whole facility knows how to program with TwinCAT, and the printer hasn’t produced a decent print since 2011. The geometry of the joints isn’t a concern because these will be different in the final version. The demonstrator should essentially fit in your hand and be fairly portable, as it’s meant to be a quick and dirty temporary solution.
I’ve made a simple mockup with the following geometry:
- Shoulder Length: 75mm
- Elbow Length: 75mm
- Base Radius (where the motor shaft is mounted): 75mm
- Effector Radius: 40mm
- Shoulder Radius (Using the formula in the documentation): 10.10mm
- Shoulder Height: I’m unsure about this parameter, and this is where the trouble starts.
The following error appears in the log: "ValueError: cannot convert float NaN to integer"
when trying to perform any moves—specifically when executing G28. Klipper crashes after that and requires a firmware restart.
I believe this might be a basic oversight on my part regarding the geometry itself. I don’t fully understand why this geometry would result in an error, even if this specific configuration isn’t practical for real-world use. A simple sketch illustrating the measurements would be greatly appreciated if anyone is willing to provide that. In my opinion, adding such a sketch to the documentation for rotary delta kinematics would be a valuable addition.
The solution is probably straightforward, but I would appreciate any help in identifying the error in my reasoning. I suspect I may not fully understand what the values “delta_f” and “delta_e” represent in the following context:
"
shoulder_radius:
Radius (in mm) of the horizontal circle formed by the three
shoulder joints, minus the radius of the circle formed by the
effector joints. This parameter may also be calculated as:
shoulder_radius = (delta_f - delta_e) / sqrt(12)
This parameter must be provided.
"
Regards,
Philipp
P.S.: I hope I have attached everything correctly as this is my first post in any forum.