Klipper

Sezione dedicata alla stampante 3D realizzata da Futura Elettronica in collaborazione con Elettronica In.
Ulteriori informazioni su http://3dprint.elettronicain.it/
MQ67
Messaggi: 31
Iscritto il: 25/11/2014, 11:44
Home_Page: http://
Compleanno: 0- 0-1967
Città: Oltrona di San Mamette
Prov.: CO

Klipper

Messaggio da MQ67 »

Qualcuno ha provato ad ultilizzare Klipper con la 3D Rag 1.2?
Ha senso?
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Post ormai reso obsoleto (vedi prossimi post per il motivo)
Ultima modifica di Fabry il 21/05/2023, 17:43, modificato 2 volte in totale.
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Secondo me SI VALE LA PENA.

E se a qualcuno interessa ho fatto i config per la 3DRag originale (quello presente in Klipper contiene molti errori e non è utilizzabile senza varie correzioni)

Mi fermo qui per non allungare troppo il messaggio perché avevo risposto almeno due settimane fa con un messaggio lungo con vari dettagli, ma mi è stato risposto che il messaggio doveva essere valutato dalla moderazione.

Probabilmente non ci sono più moderatori disponibili su questo forum perché anche dopo 2 settimane il messaggio non è mai stato ne respinto ne pubblicato.
Ho anche provato scrivere ai moderatori ma nessuna risposta mi è mai giunta.

Provo a mettere ora il messaggio originale qui sotto pubblicandolo con più post, per vedere se meno monolitico passa (EDIT: si è passato)

EDIT2: Ho visto oggi (21/05) che alla fine il mio messaggio originale è stato pubblicato dai moderatori (al post numero 2)
Forse questo post ha sbloccato la situazione
Però visto che il post 2 ormai sarebbe un doppione dei successivi post e pure in una versione vecchia, ho deciso di cancellare il testo di quel post
Ultima modifica di Fabry il 21/05/2023, 17:42, modificato 4 volte in totale.
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Si secondo me ha senso, soprattutto per quelli che stanno usando ancora schede a 8-bit, sia che siano le originali di Futura Elettronica, che altri modelli (es. Arduino Mega + Ramps).

Per muovere i motori ad elevata velocità servono molti step al sec e c'è un limite max di step/s che la scheda può emettere.
E già con semplici movimenti si va vicino o si superano i limiti possibili.
Es. per muovere l'asse Z a 20mm/s (lo so che può anche essere tanto per la meccanica) ci vogliono con la barra M8 originale, 16 rotazioni al secondo che sono 51200 step/s con driver a 16 micro-passi, che diventano 102400 se si usassero driver a 32 micro-passi.
Ed anche facendo un esempio meno estremo, per muovere il carrello X o Y già a 200mm/s (e le stampanti di oggi considerate velocissime, cercano di farlo a 400-600mm/s) servono nell'ipotesi di cinghie GT2 e pulegge 20 denti, 160 step per mm con i driver a 32 micro-passi, ossia 32000 step/s

Marlin mi pare che oltre 15-20000 step/s va in difficoltà (su hw 8-bit) e commuta alla modalità Dual-Quad stepping che per quanto moltiplichi per 2 o 4 il limite max, introduce delle possibili vibrazioni a causa che il segnale generato non è 100% corretto (ma ha un leggero errore ogni 2/4 impulsi).
Klipper dichiara (poi se vero boh) di essere in grado di raggiungere e superare anche 175000 step/s su hw 8-bit e milioni di step/s su quello a 32-bit

Quindi Klipper permette anche sul vecchio hardware di fare cose che non sarebbero possibili senza il cambio del controller.
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Poi Klipper ha molte funzioni utili ed interessanti, tra cui l'input shaping che permette di ridurre notevolmente le vibrazioni durante lo spostamento delle masse, cosa che credo sarebbe molto utile sulla 3DRag che muovendo il piatto ha molta massa in gioco.
Anche Marlin mi pare che abbia introdotto o stia introducendo l'input shaping, ma Marlin lo fa solo sulle schede 32 bit sufficientemente potenti, Klipper anche sulle vecchie 8-bit.

Poi altra cosa positiva di Klipper e che mi piace molto è che tutto si configura tramite file di testo, e per applicare una modifica basta modificare il config e riavviare il firmware (che ci mette 2-5 sec a ripartire).
Per i casi più complicati i config possono essere anche mini programmi in uno specifico linguaggio (in realtà è un template engine di nome Jinja2).
Marlin per la maggior parte delle funzionalità richiede di ricompilare il firmware e riflasharlo sulla scheda con tempi di applicazione modifiche molto superiori.

Per contro Marlin ha un sacco di funzioni ed un ampio set di comandi G/M Code (Klipper solo un set minimale per la stampa) ed alcune funzionalità presenti in Marlin non ci sono in Klipper di serie e devono essere (quando possibile) emulate con il meccanismo delle Macro.
Quindi a volte abituati a certe funzioni di Marlin ci si trova scomodi a non poterlo fare in Klipper con la stessa facilità (a volte non si fa proprio).

Ovviamente ci sono anche molte funzionalità di Klipper comode che in Marlin non ci sono o ci sono ma sono molto più scomode da usare.
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Se devo pensare a funzionalità comode di Marlin e meno comode o del tutto assenti in Klipper direi:

1) La funzionalità di alzare l'asse Z di alcuni mm prima di fare un Homing X o Y
Su Klipper si può emulare con la macro HOMING_OVERRIDE, ma non è così facile da configurare come vogliamo e spesso si introducono effetti collaterali che non si volevano

2) La funzionalità Dry-Run che permette di eseguire un file G-Code senza estrudere, ma solo provando i movimenti (per valutare vibrazioni, perdite di passi, ...ecc)
Su Marlin si fa semplicemente con un M111 S8 prima di lanciare la stampa, con Klipper non si può fare al momento (credo non so se sia cambiato qualcosa di recente).
Che io sappia (poi magari ora ci sono soluzioni a me non ancora note) si può solo emulare con metodi che presentano vari livelli di scomodità.

Ad esempio si può fare:
  • o modificando il file G-Code per togliere tutte le parti di estrusione (c'è un PlugIn per OctoPrint che lo fa in automatico, ma se non usi OctoPrint perché ti basta MainSail o Fluidd ...)
  • o prima togliendo il filamento dagli estrusori e poi abbassando il limite di protezione estrusione da 170 gradi a 15 gradi.
    Insomma si dice a Klipper di poter estrudere anche ad estrusore freddo e si toglie il filamento alla stampante, facendola estrudere a vuoto.
    Poi finito il test Dry-Run bisogna ricaricare il filamento e rimettere (per sicurezza) la protezione termica, non proprio una soluzione che si può definire comoda.
Forse si potrebbe implementare una macro che faccia l'ovverride del comando G1 ed escluda l'interpretazione della parte di estrusione.
Ma non credo sia agevole da fare (sempre se fattibile) e non mi pare di averla vista in giro già scritta da qualcuno (ma non ho cercato troppo).
marco1982
Messaggi: 4
Iscritto il: 20/05/2023, 20:30
Occupazione: tecnico
Home_Page: http://
Compleanno: 23 mar 1982
Città: borgoforte
Prov.: mn
Via: mantova 1354

Re: Klipper

Messaggio da marco1982 »

ciao fabry , ti chiedo scusa se approffitto della tua esperienza, sarei interessato al file per l'installazione di klipper sulla 3drag ti lascio la mia email per sentirci in pvt. grazie marcopavesi82@gmail.com
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Quello che seguirà è quello che deve andare nel file printer.cfg sostituendo quasi tutto quello presente in quel file.
Solo al più degli include ed altre opzioni iniziali vanno tenute, esempio nella mia installazione in testa c'è:

Codice: Seleziona tutto

[include mainsail.cfg]
[include fluidd.cfg]
[virtual_sdcard]
path: /home/utente/printer_data/gcodes
on_error_gcode: CANCEL_PRINT
che ovviamente non va sovrascritta.

Qui il config completo al 90-95% per una 3DRag tutta originale con driver A4988
Leggendo i commenti impostare i vari valori diversi per la vs meccanica

Manca ancora la parte degli schermi LCD (li ho entrambi ma non ho ancora fatto test) che comunque sotto Klipper hanno uno scarso utilizzo e non ho creato l'eventuale config per il secondo estrusore perché non ho macchine su cui testare (se farò la config sarà sulla fiducia, non testabile).
Avrei un amico con una 3DRag Big con doppio estrusore (kit originale Futura El.) ma per ora è fuori uso (manca scheda controller) e per di più non ha più (prima l'aveva) la scheda a 5 motori originale (quindi anche da lui non potrò più testare la config doppio estrusore salvo usare controller diversi da quelli Futura Elettronica).

Codice: Seleziona tutto

[mcu]
# Importante se si possiede la scheda originale verde a quattro motori, 
# allora il jumper JPROG deve essere lasciato sempre in posizione 
# ponticellato/chiuso altrimenti Klipper non potrà inviare il segnale di 
# reset alla MCU (ad esempio non funzionerà più nulla dopo un comando 
# RESET_FIRMWARE finché non si eseguirà un reset manuale premendo il 
# pulsante di reset sulla scheda)
serial: /dev/serial/by-id/VS_ID

# This file contains common pin mappings for the Velleman K8200 and
# 3Drag 3D printers (circa 2013). To use this config, the firmware
# should be compiled for the AVR atmega2560.

# Based on config from Martin Malmqvist and Per Hjort.
# Fortemente rivisto e corretto da Fabrizio

# See docs/Config_Reference.md for a description of parameters.

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 7
max_z_accel: 35

[stepper_x]
step_pin: PF0
dir_pin: PF1
enable_pin: !PD7
microsteps: 16
# La stampante di serie usa cinghie T5 su pulegge 10 denti (64 micropassi
# a 1/16 per 1 mm ossia 50mm per rotazione)
# Alcuni poi riportano che per le T5 il valore per 1mm dovrebbe essere 
# più precisamente 64.25 micropassi 1/16 e quindi 49.8054mm per rotazione
# Poi una modifica molto diffusa si questa stampante consiste nel sostituire
# le cinghie T5 con delle GT2 su puleggie 20 denti (80 micropassi a 1/16 
# per 1mm ossia 40mm per rotazione) o con delle GT2 su puleggie 16 denti 
# (100 micropassi a 1/16 per 1mm ossia 32mm per rotazione)
# Impostare il valore 50/49.8054, 40 o 32 a seconda del tipo di cinghie e
# puleggie installate sulla propria macchina.
rotation_distance: 50
endstop_pin: ^PE5
position_endstop: 0
# La K8200/3DRag ha 200mm lungo asse X, mentre la 3DRag Big o una K8200/3DRag
# modificata con kit K8206/3DRAGBIG ha 400mm
position_max: 200
homing_speed: 50

[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
microsteps: 16
# La stampante di serie usa cinghie T5 su pulegge 10 denti (64 micropassi
# a 1/16 per 1 mm ossia 50mm per rotazione)
# Alcuni poi riportano che per le T5 il valore per 1mm dovrebbe essere 
# più precisamente 64.25 micropassi 1/16 e quindi 49.8054mm per rotazione
# Poi una modifica molto diffusa consiste nel sostituire le cinghie T5 
# con delle GT2 su puleggie 20 denti (80 micropassi a 1/16 per 1mm 
# ossia 40mm per rotazione) o con delle GT2 su puleggie 16 denti 
# (100 micropassi a 1/16 per 1mm ossia 32mm per rotazione)
# Impostare il valore 50/49.8054, 40 o 32 a seconda del tipo di cinghie e
# puleggie installate sulla propria macchina.
rotation_distance: 50
endstop_pin: ^PJ1
position_endstop: 0
position_max: 200
homing_speed: 50

[stepper_z]
step_pin: PL3
dir_pin: PL1
enable_pin: !PK1
microsteps: 16
# La stampante di serie utilizza una barra M8 (8mm) e di conseguenza il passo
# è di 1.25mm per rotazione (2560 micropassi a 1/16 per 1mm)
# Come kit di upgrade ufficiale (K8204) veniva venduta una barra trapeziodale 
# da 8mm con passo 1.5mm per rotazione (2133.333 micropassi a 1/16 per 1mm)
# Altri kit non ufficiali con barre trapeizoidali (sia da 8mm che da 10mm) 
# invece usano altri valori (i più comuni sono 2, 4 e 8mm per rotazione, ma sono
# disponibili anche barre con alzata da 1 o 3mm per rotazione)
# Impostare il valore corretto per la propria barra (ad esempio 1.25mm per M8,
# 1.5mm per kit K8204)
rotation_distance: 1.25
endstop_pin: ^PD3
position_endstop: 0.5
# Con la stampante originale il valore max predifinito è 200mm anche se 
# probabilmente c'è un altro 10mm di margine utilizzabile in tranquillità.
#
# Con la stampante modificata con questo https://www.thingiverse.com/thing:773794
# si riesce a guadagnare altri 15-25mm e si può con sicurezza impostare almeno
# 215-217mm o anche poco di più di position_max
#
# In ogni caso la stampante ha circa 300mm di escursione sulle guide Z e con
# piccole modifiche alla meccanica ci si può spingere forse anche a 250mm utili.
#
# Attenzione: La presenza del piatto di vetro opzionale riduce di 2-5mm l'altezza
# utile a seconda dello spessore del vetro.
# Anche il kit originale K8204 barra trapeizodale riduce l'altezza utile a causa 
# della barra un po' corta, non ricordo il valore ma credo che si scenda a 180-190mm
position_max: 200

# Primo (ed unico sulle macchine originali) estrusore
[extruder]
step_pin: PA4
# Se si ha la configurazione originale da 3/2.85mm dir_pin deve essere
# negato, ossia dir_pin: !PA6
# Se invece si ha un estrusore direct_drive come il kit originale (K8203) 
# di upgrade a filamento da 1.75mm allora dir_pin non deve essere negato, 
# ossia dir_pin: PA6
dir_pin: !PA6
enable_pin: !PA2
microsteps: 16
# La stampante nella versione originale per filamento da 3/2.85mm ha di serie
# una puleggia 10 denti che si innesta su una ruota a 43 enti, il tutto fa 
# girare una barra con una zigrinatura che trascina il filamento.
# Tralasciando calcoli e misure più o meno complicati il firmware originale
# impostava 600 micropassi 1/16 per 1mm, quindi 5.333mm per rotazione.
# Se invece si possiede il kit originale (K8203) di upgrade per il filamento
# da 1.75mm allora si ha un sistema direct drive pilotato da nuovo stepper
# a 32 micropassi.
# Sempre rifacendosi al firmware originale per tale kit troviamo una impostazione
# di 200 micropassi 1/32 per 1mm, quindi 32mm per rotazione
# Impostare per stampante originale con 3mm o rotation_distance: 5.333 
# o gear_ratio: 10:43 e rotation_distance: 22.932
# Impostare per stampante con kit 1.75mm rotation_distance: 32
# Se si hanno altri tipi di estrusori va calcolata la propria rotation_distance.
# Per questo https://www.thingiverse.com/thing:339928 è rotation_distance: 4.266
#gear_ratio: 10:43
rotation_distance: 5.333
# Con il HotEnd originale sono disponibili 3 diametri. La stampante veniva 
# venduta con lo 0.50mm ma come opzione si poteva mettere anche il nozzle 0.30mm 
# e quello 0.80mm
# Con il kit (K8203) di upgrade a filamento da 1.75mm il nozzle fornito di serie
# è da 0.35mm
# Impostare quindi il valore del nozzle montato che per l'estrusore originale 
# da 3mm può essere 0.500 (default), 0.300 o 0.800 ed impostare 0.350 nel caso 
# si abbia il kit K8203 di upgrade a 1.75mm
# Per altri tipi di HotEnd rifarsi al dato indicato sul proprio prodotto.
nozzle_diameter: 0.500
# Nella stampante originale si usa un filamento nominalmente da 3mm che poi è 
# realmente da 2.85mm
# Nelle stampanti con kit (K8203) di upgrade si usa filamento da 1.75mm
filament_diameter: 2.85
heater_pin: PB4
sensor_type: ATC Semitec 104GT-2
sensor_pin: PK5
control: pid
pid_Kp: 21.503
pid_Ki: 1.103
pid_Kd: 104.825
min_temp: 0
max_temp: 250

# Secondo estrusore (per le macchine modificate con il kit originale o con altri kit)
#[extruder1]
##TODO
# Parte non realizzata comunque per farla basta semplicemente duplicare qua sotto 
# tutto quello già presente in [Extruder] e poi configurare i pin e le direzioni giuste
# (mi pare che nel kit originale doppio estrusore un estrusore sia invertito rispetto
# all'altro)
# Ovviamente il kit originale doppio estrusore esiste solo per filamento 1.75mm
# ma ci possono essere kit non ufficiali anche per doppio estrusore a 3mm

[heater_bed]
heater_pin: PH6
sensor_type: ATC Semitec 104GT-2
sensor_pin: PK6
control: pid
pid_Kp: 75.283
pid_Ki: 0.588
pid_Kd: 2408.103
min_temp: 0
# Il piatto riscaldato originale mi pare venisse dato per fino a 80 gradi
# Ma salvo modifiche fatica già ad arrivare a 65 gradi (e ci mette 
# tantissimo tempo) ed è più da utilizzare tra 40 gradi e 55/60 gradi.
# Se per caso caso userete il PID AutoTune di Klipper eseguire
# l'AutoTune impostando il test a max 50 gradi circa, oltre la calibrazione
# fallisce perché il piatto è troppo lento ad andare in temperatura.
max_temp: 80

[fan]
pin: PH5
kick_start_time: 0.500

[bed_screws]
# Si Localizza la posizione di una vite di livellamento piatto facendo 
# prima l'Homing XY e poi spostando con i comandi movimento l'HotEnd 
# finché non si trova sopra di essa (più comodo puntare alla vite
# più vicina alla posizione di homing), per poi leggere a display la 
# posizione raggiunta (che è poi la posizione X Y cercata della vite).
# In ogni caso la posizione della vite livellamento piatto più vicina 
# all'Homing dovrebbe stare vicino a circa X40 e Y40, poi il valore
# preciso dipende dalla regolazione endstop X e Y della stampante.
#
# le posizioni delle altre tre viti di livellamento si calcolano 
# o con lo stesso metodo appena usato o più rapidamente sommando al
# valore trovato gli scostamenti tra le viti.
# Interasse X viti pari a 120mm, interasse Y viti pari a 120mm
screw1: 41, 40
#   The X, Y coordinate of the first bed leveling screw. This is a
#   position to command the nozzle to that is directly above the bed
#   screw (or as close as possible while still being above the bed).
#   This parameter must be provided.
screw1_name: Fronte_Sinistra
#   An arbitrary name for the given screw. This name is displayed when
#   the helper script runs. The default is to use a name based upon
#   the screw XY location.
#screw1_fine_adjust:
#   An X, Y coordinate to command the nozzle to so that one can fine
#   tune the bed leveling screw. The default is to not perform fine
#   adjustments on the bed screw.
screw2: 161, 40
screw2_name: Fronte_Destra
#screw2_fine_adjust:
screw3: 41, 160
screw3_name: Retro_Sinistra
#screw3_fine_adjust:
screw4: 162, 159
screw4_name: Retro_Destra
#screw4_fine_adjust:



# I primi display venduti come opzione per la stampante erano  basati su uno schermo
# testuale da 4 righe di 20 caratteri con encoder rotativo e lettore di SD
# Kit basato sul progetto "RepRapDiscount 2004 Smart Controller"
# Qui sotto la configurazione (testata) per attivare quel tipo di display testuale,
# enconder rotativo con click, lettore di SD e cicalino (Buzer)
##TODO
#[display]
#lcd_type: hd44780
#rs_pin: PA5
#e_pin: PA7
#d4_pin: PC0
#d5_pin: PC2
#d6_pin: PC4
#d7_pin: PC6
#encoder_pins: ^PH1, ^PH0
#click_pin: ^!PA1

# In seguito verso il 2016 è stata resa disponibile come ulteriore opzione 
# un display grafico da 128x64 pixel sempre con encoder rotativo e lettore di SD
# Kit basato sul progetto "RepRapDiscount Full Graphic Smart Controller"
# Qui sotto la configurazione (testata) per attivare quel tipo di display grafico,
# enconder rotativo con click, lettore di SD e cicalino (Buzer)
##TODO
#[display]
#lcd_type: hd44780
#rs_pin: PA5
#e_pin: PA7
#d4_pin: PC0
#d5_pin: PC2
#d6_pin: PC4
#d7_pin: PC6
#encoder_pins: ^PH1, ^PH0
#click_pin: ^!PA1
Se rilevate errori nei commenti o nelle configurazioni o avete altri suggerimenti da dare, ogni commento è ben accettato.

PS
Sarebbe carino (magari traducendo i commenti, ed il nome viti livellamento piatto, in inglese) inviare il file completo (magari quando sarà al 100% e più error-free) a quelli di Klipper per integrarlo nella distribuzione rimpiazzando quello che forniscono al momento e che è un po' scarso e con vari errori.
Però attualmente io non sono iscritto su GitHub (magari un gg lo sarò) e non posso farlo, se qualcun altro volesse, libero di farlo (magari facendomelo sapere)
Ultima modifica di Fabry il 23/05/2023, 15:03, modificato 3 volte in totale.
marco1982
Messaggi: 4
Iscritto il: 20/05/2023, 20:30
Occupazione: tecnico
Home_Page: http://
Compleanno: 23 mar 1982
Città: borgoforte
Prov.: mn
Via: mantova 1354

Re: Klipper

Messaggio da marco1982 »

inanzitutto grazie fabry per il lavoro che stai facendo e condividendo nel forum!"!! io da completo inesperto posso dirti che ho la scheda verde con i 4 motori e non monta nessun tipo di display o altro . la attacchi semplicemente al pc tramite cavo usb. ti posso dire che il processore e' un ATMEGA2560 e la scheda verde e' la versione 1.2 , ho installato linux mint sul pc portatile ... e per adesso sono fermo... se riesci ad aiutarmi ulteriormente, te ne sarei grato, ma in tutti i casi grazie per l'ottimo lavoro che hai fatto!
Fabry
Messaggi: 10
Iscritto il: 04/05/2023, 17:29
Home_Page: http://

Re: Klipper

Messaggio da Fabry »

Si certo so che la scheda verde è con ATMEGA 2560 :D

Scriverti una guida passo passo viene lunga e poi ce ne sono tante già pronte, quindi diciamo che puoi partire da una di quelle, penso sia ottima questa (che è pure in italiano): https://klipper-italia.xyz/installazione-rpi/installazione-kiauh/

Sperando che il forum permetta link ad altri siti/forum

E per caricare il firmware sulla scheda verde (ricordati di mettere e non togliere più il ponticello su JPROG), queste due:
https://klipper-italia.xyz/installazione-rpi/compilazione-firmware/
https://klipper-italia.xyz/installazione-rpi/configurazione-firmware/

Dopo di che non ti resta che copiare nel printer.cfg quello che ho scritto io nel post del config (ovviamente leggendo i commenti e cambiando gli eventuali valori diversi per la propria macchina)
Rispondi