Firmware Klipper - Qualcuno lo usa/conosce?
December 30, 2018 09:01AM
Ciao a tutti e buone stampe.

Qualcuno di voi conosce il firmware Klipper?
Riporto le caratteristiche:

Klipper has several compelling features:

High precision stepper movement. Klipper utilizes an application processor (such as a low-cost Raspberry Pi) when calculating printer movements. The application processor determines when to step each stepper motor, it compresses those events, transmits them to the micro-controller, and then the micro-controller executes each event at the requested time. Each stepper event is scheduled with a precision of 25 micro-seconds or better. The software does not use kinematic estimations (such as the Bresenham algorithm) - instead it calculates precise step times based on the physics of acceleration and the physics of the machine kinematics. More precise stepper movement translates to quieter and more stable printer operation.

Best in class performance. Klipper is able to achieve high stepping rates on both new and old micro-controllers. Even an old 8bit AVR micro-controller can obtain rates over 175K steps per second. On more recent micro-controllers, rates over 500K steps per second are possible. Higher stepper rates enable higher print velocities. The stepper event timing remains precise even at high speeds which improves overall stability.

Klipper supports printers with multiple micro-controllers. For example, one micro-controller could be used to control an extruder, while another controls the printer's heaters, while a third controls the rest of the printer. The Klipper host software implements clock synchronization to account for clock drift between micro-controllers. No special code is needed to enable multiple micro-controllers - it just requires a few extra lines in the config file.

Configuration via simple config file. There's no need to reflash the micro-controller to change a setting. All of Klipper's configuration is stored in a standard config file which can be easily edited. This makes it easier to setup and maintain the hardware.

Portable code. Klipper works on ARM, AVR, and PRU based micro-controllers. Existing "reprap" style printers can run Klipper without hardware modification - just add a Raspberry Pi. Klipper's internal code layout makes it easier to support other micro-controller architectures as well.

Simpler code. Klipper uses a very high level language (Python) for most code. The kinematics algorithms, the G-code parsing, the heating and thermistor algorithms, etc. are all written in Python. This makes it easier to develop new functionality.

Klipper uses an "iterative solver" to calculate precise step times from simple kinematic equations. This makes porting Klipper to new types of robots easier and it keeps timing precise even with complex kinematics (no "line segmentation" is needed).

Additional features

Klipper supports many standard 3d printer features:

Klipper implements the "pressure advance" algorithm for extruders. When properly tuned, pressure advance reduces extruder ooze.

Works with Octoprint. This allows the printer to be controlled using a regular web-browser. The same Raspberry Pi that runs Klipper can also run Octoprint.

Standard G-Code support. Common g-code commands that are produced by typical "slicers" are supported. One may continue to use Slic3r, Cura, etc. with Klipper.

Support for multiple extruders. Extruders with shared heaters and extruders on independent carriages (IDEX) are also supported.

Support for cartesian, delta, and corexy style printers.

Automatic bed leveling support. Klipper can be configured for basic bed tilt detection or full mesh bed leveling. If the bed uses multiple Z steppers then Klipper can also level by independently manipulating the Z steppers. Most Z height probes are supported, including servo activated probes.

Automatic delta calibration support. The calibration tool can perform basic height calibration as well as an enhanced X and Y dimension calibration. The calibration can be done with a Z height probe or via manual probing.

Support for common temperature sensors (eg, common thermistors, AD595, PT100, MAX6675, MAX31855, MAX31856, MAX31865). Custom thermistors and custom analog temperature sensors can also be configured.

Basic thermal heater protection enabled by default.

Support for standard fans, nozzle fans, and temperature controlled fans. No need to keep fans running when the printer is idle.

Support for run-time configuration of TMC2130, TMC2208, TMC2224, and TMC2660 stepper motor drivers. There is also support for current control of traditional stepper drivers via AD5206 and MCP4451 digipots.

Support for common LCD displays attached directly to the printer. A default menu is also available.

Constant acceleration and "look-ahead" support. All printer moves will gradually accelerate from standstill to cruising speed and then decelerate back to a standstill. The incoming stream of G-Code movement commands are queued and analyzed - the acceleration between movements in a similar direction will be optimized to reduce print stalls and improve overall print time.

Klipper implements a "stepper phase endstop" algorithm that can improve the accuracy of typical endstop switches. When properly tuned it can improve a print's first layer bed adhesion.

Support for limiting the top speed of short "zigzag" moves to reduce printer vibration and noise. See the kinematics document for more information.


---- "Let me make my move" ----
Re: Firmware Klipper - Qualcuno lo usa/conosce?
January 02, 2019 07:16AM
Beh non è proprio un firmware nel senso stretto è una accoppiata di un Raspberry PI con un firmware ad hoc sulla scheda di controllo della stampante.

Mi pare che sia anche un software proprietario di una marca di stampanti o di controllori.

Soluzioni simili ce ne sono molte, che però usano il firmware originale Marlin o simili.

In sostanza è una bella idea, il problema come al solito è la diffusione (quanti lo usano) e la diffusione in genere è correlata ai reali vantaggi del firmware sugli altri.

In sostanza l'unica caratteristica che sembra notevole è l'elevato numero di step Even an old 8bit AVR micro-controller can obtain rates over 175K steps per second.
però anche lì una stampante 3D ha bisogno di uno step rate così elevato?

Quali sono i "reali" vantaggi.

Ovviamente se viene sviluppato da un produttore per avere delle prestazioni elevate su una stampante professionale con controller dal costo limitato ha un senso, ma presumo che lo abbia più per il produttore che per l'utilizzatore.

Saluti

Carlo D.


P3Steel - MKS GEN v1.2 e REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + Gen 7 MOSFET (HotBed) + alimentatore step-down 12V -> 5V
Firmware MK4duo 4.3.6 con ABL induttivo con LJ18A3 - Slic3R (Originale) ed ESP3D per controllare la stampante da remoto.
HotEnd Cinese V6 clone con ugello da 0.4mm.

[My Building Log]
Re: Firmware Klipper - Qualcuno lo usa/conosce?
January 02, 2019 07:31AM
Si se aumenti gli i microstep dei driver. Per esempio se lavori a 16 microstep e hai 100 step per mm, se vai a 10 mm/s hai 1000 step al secondo che per due assi più quelli dell'estrusore arrivi intorno ai 5k. Se tieni conto che una 8 bit non ne fa più di 20K step al secondo capisci bene che alcune velocità sono irraggiungibili..
Con 175K puoi lavorare bene anche a 32 microstep e velocità discrete anche su una 8 bit.
Arduino nasce per fare gestione di I/O in modo facile e semplice, ma non è un processore da calcoli supersonici, specialmente per le delta dove i calcoli in virgola mobile sono tanti. Rasberry di contro non ha pin a sufficienza per la gestione I/O quindi accoppiare i due è una cosa logica e sensata.
Ma oggi con i nuovi processori, questo è gia possibile, le nuove schede si basano su processori con FPU e quindi migliori per i calcoli pur avendo moti pin di I/O.


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: Firmware Klipper - Qualcuno lo usa/conosce?
January 02, 2019 07:45PM
Beh iol problema del raspberry Pi non è la mancanza di pin, è il processore che non lavora in "real time" e quindi scarsamente adatto a gestire cose precise come il timing di un generatore di stepper.

Negli utilizzi "real time" nemmeno un processore da 1Ghz o più riesce a garantire "tempi di latenza" prevedibili a meno di non metterci sopra un "kernel real time" o meglio un "low latency" come viene fatto di solito per le macchine su cui gira "LinuxCNC" in cui il kernel non è quello standard ma appunto è costrutio apposta per garantire un "tempo di latenza" accettabile per utilizzarlo per comandare una CNC.

Da qui l'idea non peregrina, che guarda caso era alla base di alcune realizzazioni pre RAMPS per la RepRap di avere diverse schede in cui ognuna si occupasse di un compito, ad esempio controllo motori, controllo estrusore, controllo temperatura, che agivano sotto la regia di un microprocessore che coordinava il tutto.

Questa strada è stata abbandonata in favore di altre strade, però più per un fattore "economico" e di semplicità realizzativa.

Le soluzioni "all in one" a 8bit e anche quelle a 32bit sono semplici da montare e semplici da sostituire, nonché non lasciano adito al dubbi nel caso di malfunzionamento, cioè c'è una sola cosa da sostituire in caso di problemi a meno di problemi di cablatura oppure nel caso dei driver "zoccolati" al massimo scambi un driver e fai una veloce prova del nove.

Il problema principale oggi sono "i costi totali" di una soluzione rapportati ai "reali benefici", in ambito CNC pura dove spesso hai la necessità di controllare la macchina "a mano" per fare alcuni lavori ha un senso avere un "controllore con interfaccia grafica" che oggigiorno deve essere per forza per motivi di costi un "computer" e allora li un Raspberry Pi da 35 40 euro può validamente sostituire un computer desktop o un laptop lasciato acceso a bordo macchina.

Nella stampa 3D dove l'intervento in fase di stampa è quasi nullo (le varianti esotiche prevedono al massimo la sospensione della stampa e la sua ripresa) avere un display per tenere sotto controllo i dati e un lettore di SD per passare il file di stampa sembra una buona soluzione, magari avere un crontrollo remoto di "intere fattorie di stampanti" (traducendo il termine inglese farm) diventa il compito giusto per un "computer".

Saluti perché sono già OT.

Carlo D.


P3Steel - MKS GEN v1.2 e REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + Gen 7 MOSFET (HotBed) + alimentatore step-down 12V -> 5V
Firmware MK4duo 4.3.6 con ABL induttivo con LJ18A3 - Slic3R (Originale) ed ESP3D per controllare la stampante da remoto.
HotEnd Cinese V6 clone con ugello da 0.4mm.

[My Building Log]
Sorry, only registered users may post in this forum.

Click here to login