Firmware Marlin pentru 3D în limba rusă. Calibrarea mesei

Folosesc firmware-ul Marlin Kimbra (MagoKimbra / MK4duo) de mult timp (aproximativ jumătate de an).

acesta este un firmware Marlin revizuit de comunitatea italiană RepRap. Firmware-ul este interesant prin faptul că poate fi rulat atât pe creierele pe 8 biți, cât și pe cele pe 32 de biți pe placa Arduino DUE împreună cu RAMPS4Due cu buget redus.

Puteți descărca firmware-ul și vă puteți familiariza cu caracteristicile sale la adresa oficială a firmware-ului de pe github.

De asemenea, vreau să spun că, în comparație cu clasicul Marlin, firmware-ul este mult mai ușor de configurat. Acest lucru se datorează faptului că toate setările sunt grupate în file diferite. Nu este nevoie să sapi un imens pânză de configurare. Foarte confortabil.

Firmware-ul funcționează pe imprimanta mea, nicio problemă. Actualizez periodic firmware-ul, de obicei împreună cu lansarea următoarei versiuni.

Dacă doriți să schimbați firmware-ul, încercați-l. Cred că îți va plăcea.

După schimbarea firmware-ului din Marlin în MagoKimbra, primul pas este să ștergeți EEPROM prin comandă

M502 - Reveniți la „setările din fabrică” implicite. În continuare, trebuie să le stocați în EEPROM dacă doriți.

M500 - Stocați parametrii în EEPROM

Site-ul are teoretic un anumit configurator de firmware, dar nu l-am folosit niciodată. Am încercat, dar este un fel de crustaceu. Drept urmare, este mai ușor să configurați totul manual.

Vă voi spune pe scurt cum să configurați firmware-ul folosind exemplul imprimantei mele, creiere precum un sandwich arduino mega + ramps și cinematică carteziană (Prusa i3). Activez numărul minim de funcții necesare pentru muncă.

Nu este nimic deosebit de complicat în configurarea firmware-ului, totul este intuitiv.

Voi fi, de asemenea, atent BRAINS Prusa i3 de flsun3d ... Imprimanta vine cu o singură placă de bază RAMPS 1.4 Plus

Dacă vărsați în el un firmware diferit de cel trimis de chinezi (Marlin 1.0.0), afișajul va înceta automat să funcționeze pentru imprimantă și extruderul de la E0 se va muta la E1. Am dat peste o astfel de problemă, m-am așezat în jurul serii și am găsit o soluție. La sfârșitul articolului, vă voi spune cum să îl remediați.

Firmware-ul se construiește fără probleme în cel mai recent mediu Arduino (1.8.1).

Deschideți fișierul MK4duo.ino folosind mediul Arduino și începeți configurarea.

Începem cu o filă Configuration_Basic.h

Aici vom configura

* - Tipul comunicațiilor seriale

* - Placă de bază

* - Tipul mecanicii (cartezian pentru Prusa I3)

* - Numărul de extrudere

Chiar de pe liliac

#define BAUDRATE 250000

Dacă vânați în terminal (sau Pronterface) vedeți cine a configurat firmware-ul

#define STRING_CONFIG_H_AUTHOR "(Mef73, config personalizat)"

Sau o poți lăsa în pace.

Nu mai este nimic de făcut în această filă, deoarece implicit este deja activată

#define PLACA DE MASĂ BOARD_RAMPS_13_HFB

#define MECHANISM MECH_CARTESIAN

Și, de asemenea, am instalat un extruder și un driver pentru extruder.

Accesați fila Configuration_Cartesian.h

Voi începe prin a schimba numele imprimantei, deși acest lucru nu este necesar

#define CUSTOM_MACHINE_NAME "Prusa I3 flsun"

#define INVERT_E0_DIR adevărat

Este extruderul meu standard al imprimantei Prusa i3 de la flsun3d care este inversat. Puteți răsturna conectorul motorului pas cu pas (SM), dar nu vreau. Pentru ca atunci când îmi schimb creierul cu imprimanta, să nu-mi încălzesc capul în detrimentul rotirii conectorului motorului.

Din nou, pentru imprimanta mea cu drv8825 și microstep 32

#define DEFAULT_AXIS_STEPS_PER_UNIT (200, 200, 800, 310, 310, 310, 310) // drv8825

Pentru imprimanta mea cu A4988 și microstep 16

#define DEFAULT_AXIS_STEPS_PER_UNIT (100, 100, 400, 155, 155, 155, 155) // a4988

Trebuie doar să scrieți O singură linie. Pentru unul sau alt șofer de motor pas cu pas.

Pentru restul corectez

#define DEFAULT_MAX_FEEDRATE (200, 200, 2, 100, 100, 100, 100)

#define DEFAULT_MAX_ACCELERATION (1500, 1500, 50, 1000, 1000, 1000, 1000)

#define DEFAULT_ACCELERATION 1500

#define DEFAULT_XJERK 30.0

#define DEFAULT_YJERK 30.0

#define DEFAULT_ZJERK 0.4

De asemenea, vă puteți pune propriile valori. Pe aceasta cu o filă Configuration_Cartesian.h finisare.

Accesați fila Configuration_Feature.h

Aici configurăm tot felul de caracteristici firmware. Vă spun ce și unde îl pornesc. Poate că cineva din comentarii vă va spune ce altceva mai folosește. De fapt, folosesc un număr minim de caracteristici, doar ceea ce am nevoie.

Deci să mergem ...

Eliminați // c

#define HOME_Y_BEFORE_X

Parcăm mai întâi axa Y. Am o oglindă cu cleme, dacă parchez prima axa X la o înălțime mică Z cu o duză voi demola clemele.

#define FORCE_HOME_XY_BEFORE_Z

axa Z parcată ultima

Acum mergem la

// \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d ADAUGĂ CARACTERISTICI \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

Să ne comentăm

#define EEPROM_SETTINGS

#define EEPROM_CHITCHAT

#define SDSUPPORT

#define SD_SETTINGS

prin activarea suportului EEPROM și cardului SD

Afișajul meu este caracter, 2004, reprap controler inteligent cu reducere

#define ULTRA_LCD

#define ENCODER_PULSES_PER_STEP 4

#define ENCODER_STEPS_PER_MENU_ITEM 1

#define REVERSE_ENCODER_DIRECTION

#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 40

#define LCD_FEEDBACK_FREQUENCY_HZ 2000

Cu acești parametri, ambele controlere inteligente chinezești reprap funcționează bine pentru mine.

#define LCD_INFO_MENU

#define REPRAP_DISCOUNT_SMART_CONTROLLER

Dacă aveți un Arduino DUE, acordați atenție aici:

// \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d CARACTERISTICI AVANSATE \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

//===========================================================================

/****************************************************************************************

************************************* Buffer stuff ********** * *************************

****************************************************************************************/

// Numărul de mișcări liniare care pot fi în plan în orice moment.

// DIMENSIUNEA BUFERULUI BLOC TREBUIE SĂ FIE O PUTERE DE 2, de ex. 8,16,32, deoarece schimbările și orele sunt folosite pentru a face tamponarea inelului.

// Pentru Arduino DUE, setați BLOCK BUFFER SIZE la 32

#define BLOCK_BUFFER_SIZE 16

// Tamponul ASCII pentru primirea de pe serial:

#define MAX_CMD_SIZE 96

// Pentru setarea Arduino DUE la 8

#define BUFSIZE 4

În general, aceasta și toate setările care diferă în Mega și DUE, nu am găsit altele.

Accesați fila Configuration_Temperature.h

#define TEMP_SENSOR_BED 1

Tabelul este încălzit și, în mod implicit, termistorul de încălzire este dezactivat în firmware

Accesați ********************** Setări PID - HOTEND ********************** ****

#define DEFAULT_Kp (14.17, 40, 40, 40) // Kp pentru H0, H1, H2, H3

#define DEFAULT_Ki (01.55, 07, 07, 07) // Ki pentru H0, H1, H2, H3

#define DEFAULT_Kd (32.29, 60, 60, 60) // Kd pentru H0, H1, H2, H3

După ce clipesc, voi recalibra cu siguranță Kp Ki Kd la comandă

M303 H0 C8 S240 U

Coborâm la ************************ Setări PID - BED ****************** *** *******

Tabelul meu este, de asemenea, reglementat de PID. Bang Bang este mai simplu, dar nu la fel de precis. Prin urmare, vom descomenta

#define PIDTEMPBED

#define DEFAULT_bedKp 88.21

#define DEFAULT_bedKi 12.77

#define DEFAULT_bedKd 152.28

Acestea sunt setările odată obținute experimental pentru imprimanta mea.

După ce clipesc, voi recalibra cu siguranță Kp Ki Kd al mesei prin comandă

M303 H-1 C8 S100 U

În Pronterface sau chiar fără deranj, în terminalul Octoprint. Tasta U va aplica rezultatul imediat.

Dacă încălzirea scade cu cronometrul și dă o eroare, repet comanda.

Apoi, trebuie să executați comanda

Pentru a proteja capătul fierbinte și masa de supraîncălzire, voi descomenta

#define THERMAL_PROTECTION_HOTENDS

#define THERMAL_PROTECTION_BED

Asta e tot.

Am instalat un fan Extender de casă pe placa mea, pentru 1 canal, și se află pe pinul 11. Am conectat un ventilator pentru a sufla o barieră termică la acesta.

În filă Configuration_Feature.h

Eliminăm // din

#define HOTEND_AUTO_FAN

#define HOTEND_AUTO_FAN_TEMPERATURE 45

Am setat temperatura de răspuns la 45 de grade

Pentru ca funcția să funcționeze, în fila Configuration_Pins.h

#ifaceți ACTIVAT (HOTEND_AUTO_FAN)

#define H0_AUTO_FAN_PIN 11

Amintesc că controlul ventilatorului trăiește în portul 11.

Acum vă voi spune despre o tablă minunată RAMPS 1.4 Plus... Placa este furnizată împreună cu imprimanta Prusa I3 Flsun3d.

Pinii de pe placă nu se potrivesc cu sandwich-ul RAMPS 1.4 original. !!!

Am scotocit firmware-ul de la chinezi și am găsit diferențe în pini.

Îl punem într-un dosar

MK4duo-masterMK4duosrcboards

înlocuind fișierul original 99.h.

Și acum în fila Configuration_Basic.h

pune // în fața PATRINULUI PLACĂ_RAMPS_13_HFB

// # definiți placa de bază BOARD_RAMPS_13_HFB

#define PLACA DE MASĂ_99

Placa noastră RAMPS 1.4 Plus este acum BOARD_99

Acesta este numărul de bord rezervat în firmware, cred că doar pentru un astfel de caz.

După aceea, pe RAMPS 1.4 Plus viața se îmbunătățește. Afișajul începe să funcționeze și orice altceva este așa cum ar trebui să fie.

Prin analogie cu setările din fișier, puteți configura placa în clasicul Marlin. Am făcut-o și eu.

Firmware MagoKimbra / MK4duo, setări firmware pentru Prusa i3 pentru RAMPS 1.4 Sandwich și pentru placa RAMPS 1.4 Plus

am menționat că instalarea unui driver pe extruder care oferă un microstep de 1/32 este un lucru destul de util (deși beneficiul este dezvăluit de un dispozitiv care nu are un semn de verificare în departamentul de metrologie, cu alte cuvinte, o unghie !). Cu toate acestea, după aceea, poate doriți să înlocuiți toți driverele cu altele similare. Am citit în multe forumuri că acest lucru face ca sunetul motoarelor să devină mai muzical. Aș vrea să spun: totul este bun cu măsură. Nu că a fost complet rău, dar permiteți-mi să descriu argumentele care au apărut după ce au săpat în interiorul firmware-ului Marlin, deoarece ea este cea care este folosită ca bază în multe imprimante 3D.

Unde sa încep? În primul rând, voi vorbi despre accelerație. Ne vor fi utile, dar nu pot fi inserate în text nicăieri, narațiunea va fi sfâșiată peste tot. Deci, să fie ca o introducere. Dacă smuciți brusc capul, vor exista o mulțime de probleme. Începând de la zgomotele de tipărire cu frecvență joasă, care au pus deja dinții la margine în articolele anterioare, și se încheie cu faptul că motorul poate sări câțiva pași la un start brusc. Pentru a evita toate acestea, capul este accelerat lin. Ei bine, și încetinesc - și acolo, este deja necesar tocmai pentru a reduce zgomotul. Firmware-ul Marlin funcționează într-un mod grafic de viteză trapezoidală.

Adică viteza crește și coboară liniar într-o anumită zonă. Unghiul la care se înclină graficul vitezei în timpul accelerației și decelerării este setat precis de parametrul „Accelerare”. Așa arată scăderea frecvenței treptelor pe osciloscop (exploziile roșii sunt treptele motorului de-a lungul axei X, galbene - motorul extruderului, am salvat această oscilogramă când, când luptam cu soneria RF, am fost convins că extruderul pașează cu adevărat de două ori mai des decât înainte:

Acum să vorbim despre cât de repede merge motorul nostru. Să întrebăm imprimanta însăși prin panoul de comunicare. Lucrez în Simplify3D, dar există un astfel de panou în alte programe:


Opriți doar mesajele de temperatură enervante. Eliminăm această casetă de selectare:



Revenim la fila Comunicare, acum inscripțiile nu pâlpâie (cele vechi, totuși, au rămas la locul lor, dar nu contează). Vorbim cu imprimanta M503 și apăsăm SEND



Imprimanta a scos la iveală o mulțime de lucruri și în limbaj uman. Suntem interesați de această linie:

PRIMIT: ecou: Pași pe unitate:

Pași pe unitate:

PRIMIT: ecou: M92 X100.00 Y100.00 Z1600.00 E100.00

M92 X100.00 Y100.00 Z1600.00 E100.00

Se pare că axele mele X și Y au 100 de trepte pe milimetru. Ei bine, mai exact, microsteps.

Minunat. Ce înseamnă? Aceasta înseamnă că pentru a deplasa capul cu 1 milimetru, motoarele X și Y trebuie să facă 100 de pași. În general, acolo s-au lansat mult mai multe informații, citiți-le, acesta este un lucru foarte amuzant. Parametrii pot fi modificați și salvați în EEPROM, dar mai multe despre asta în altă dată.

Lăsați capul să se miște cu o viteză de 100 mm / s. Apoi ar trebui să facă 100 * 100 \u003d 10.000 de pași pe secundă. Adică, motorul funcționează la 10 kilohertz. 150 mm / s - 15 kilohertz etc. Numerele pot fi ușor diferite, depind de roțile dințate pe motoare.

Din textul firmware-ului, am aflat că, în teorie, există imprimante MZ3D-256A și MZ3D-256B, au un număr diferit de pași. Dar să luăm în considerare, ca un alt exemplu, nu ipoteticele A și B, ci o imprimantă reală MakerGear M2, are 88,8 pași pe milimetru, atunci 100 mm / s vor fi 8,88 kilohertz, 150 mm / s - aproximativ 13 kilohertz. În general, întrebați-vă imprimanta, acesta vă va răspunde ce parametri are personal.

De fapt, dacă măresc microstepul motorului de la 16 la 32 de pași, atunci frecvențele imprimantei mele vor crește la 20 și 30 kilohertz, iar pentru M2 (de la 88,8) la 17 și respectiv 26 kilohertz. Este mult sau puțin? Să apelăm la firmware.

Ce vedem în firmware-ul Marlin? Și vedem că motoarele sunt deservite de temporizatorul 1. O bifă a temporizatorului - un pas. Apoi procesorul nu mai funcționează cu motoarele până la următoarea bifare. Dar Marlin este un firmware foarte complicat! Ea configurează cronometrul astfel încât următoarea bifă să se producă exact la timp! Pentru aceasta se numește funcția

unsigned short calc_timer (unsigned short step_rate) (

După cum puteți vedea, frecvența motorului este transmisă către acesta. Și ce vedem la intrare? Oooo! Mai întâi îi întâlnim pe cei inofensivi

if (step_rate\u003e MAX_STEP_FREQUENCY) step_rate \u003d MAX_STEP_FREQUENCY;

Ei bine, aici se verifică dacă frecvența nu este mai mare de 40 KHz (pentru imprimanta mea în versiunea sa nativă este de 400 mm / s, dar dacă fac un microstep de 1/32, atunci doar 200 mm / s). Mai mult

dacă (step_rate\u003e 20000 ) (// Dacă steprate\u003e 20kHz \u003e\u003e pasul de 4 ori

Step_rate \u003d (step_rate \u003e\u003e 2)

Step_loops \u003d 4;

Altfel dacă (step_rate\u003e 10000 ) (// Dacă steprate\u003e 10kHz \u003e\u003e pasul de 2 ori

Step_rate \u003d (step_rate \u003e\u003e 1)

Step_loops \u003d 2;

Altfel (

Step_loops \u003d 1;

Traducere în rusă: performanța procesorului AtMega nu este suficientă pentru a deservi întreruperea temporizatorului la o frecvență mai mare de 10 KHz. Prin urmare, dacă motorul funcționează la o viteză de până la 10 KHz, va exista un pas pe întrerupere. De la 10 la 20 GKts - vor exista doi pași pe întrerupere. Și de la 20 la 40 kHz - patru pași.

De fapt, concluzia articolului este tocmai că totul sub 10 KHz (100 mm / s pentru imprimanta mea) în firmware-ul Marlin care rulează pe controlerul AtMega (în Arduino) va fi procesat uniform. Mai sus - pașii vor fi inegali. Doi pași, o pauză, doi pași din nou, o pauză din nou. Sau chiar patru pași, o pauză, alți patru pași, o altă pauză.

Pentru (int8_t i \u003d 0; i< step_loops; i++) { // Take multiple steps per interrupt (For high speed moves)

Dacă (counter_x\u003e 0) (

#ifdef DUAL_X_CARRIAGE

If (extruder_duplication_enabled) (

Altfel (

Dacă (current_block-\u003e active_extruder! \u003d 0)

SCRIERE (X2_STEP_PIN ,! INVERT_X_STEP_PIN);

Altfel

SCRIERE (X_STEP_PIN ,! INVERT_X_STEP_PIN);

#else

SCRIERE (X_STEP_PIN ,! INVERT_X_STEP_PIN);

#endif

Counter_x - \u003d current_block-\u003e step_event_count;

Count_position + \u003d count_direction;

delayMicroseconds (2);

// Același lucru pentru Y, Z și Extruder

În general, la microstep 1/32, motoarele devin mai muzicale, dar sunt clar sacadate.

Se poate face uniformitate? Pe Arduino - nu sunt sigur. Puteți trage totul în ARM, unde procesorul în sine este mai rapid, iar multiplicarea / împărțirea se realizează în hardware, prin urmare funcționează mai repede (și pe parcurs, puteți arunca inserțiile de asamblare și o parte din calculele tabelului - acesta este în AVR fără ele, ARM are deja un compilator care convertește codul C în comenzi de asamblare acceptabile fără ajutorul nostru). Și unele Cortexuri acceptă, de asemenea, aritmetica plutitoare în hardware (firmware-ul abundă pur și simplu în astfel de calcule). Personal, am reușit să o fac aproximativ în exact o săptămână, așa că totul este real (curat - încă tăiat și tăiat, desigur). Nu credeți că acum vom reface aceste comparații și totul va funcționa! Ha! Acolo, verificați verificarea și verificarea unităților. Să spunem că iată sfârșitul funcției calc_timer:

if (cronometru< 100) { timer = 100; MYSERIAL.print(MSG_STEPPER_TOO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen)

Cronometru de întoarcere;

Adică, dacă frecvența de bifare a temporizatorului este mai mare de 20 KHz, va fi redusă aici. În general, poate fi necesar să verificați locurile în care se întâlnesc aceste restricții. Iată, de exemplu, funcția de calcul al mișcării capului, luând în considerare accelerația (de dragul ei am citat teoria vitezelor trapezoidale)

void calculate_trapezoid_for_block (block_t * block, float entry_factor, float exit_factor) (

Rată inițială lungă fără semn \u003d plafon (bloc-\u003e rată_numerală * intrare_factor); // (pas / min)

Rată finală lungă fără semnătură \u003d plafon (bloc-\u003e rată_nominală * factor_ ieșire); // (pas / min)

// Limitați rata minimă a pașilor (în caz contrar, temporizatorul se va revărsa.)

Dacă (rata_inicială<120) {

Rată_inicială \u003d 120;

Dacă (rata_finală< 120) {

Rata_finala \u003d 120;

Este adevărat, viteza minimă este utilizată aici, astfel încât temporizatorul de 16 biți să nu se revărseze. Cu toate acestea, aceasta arată că cecurile pot fi ascunse oriunde în cod. Nu este ușor să păstrați motoarele muzicale! Cu toate acestea, în principiu, totul este real. Dar nu că am cumpărat drivere noi, am corectat câteva constante și atât. Acea muzicalitate este frumoasă, dar înșelătoare.

Concluzie

Articolul arată că nu este real faptul că este logic să înlocuiți driverele motoarelor de deplasare X și Y cu microstep de susținere 1/32. Atunci când utilizați un Arduino (cu un controler bazat pe AVR), este posibil ca cadența să nu fie pe deplin echitabilă dacă depășește 10 kHz. Verificarea onestității pașilor pentru procesorul ARM este încă în faza activă, dar se știe deja cu siguranță că cel puțin va trebui să eliminați sau să modificați restricțiile din firmware.

Înainte de a începe lucrul cu o imprimantă 3D neprofesională sau semiprofesională, precum și cu un kit-set pentru auto-asamblare, este adesea necesar să „umpleți” și să configurați firmware-ul. Firmware-ul este un cod de program, ale cărui sarcini principale sunt: \u200b\u200bcitirea și reproducerea codului G, controlul imprimantei prin diferite interfețe, afișarea informațiilor despre procesul de imprimare. Cu alte cuvinte, firmware-ul este necesar pentru ca hardware-ul și setul de electronice să „prindă viață” și pot fi controlate. Firmware-ul este încărcat pe placa de control. Diferite imprimante 3D au plăci de control diferite, respectiv firmware-ul este, de asemenea, diferit.

Imprimantele noastre 3D Prusa i3 Steel folosesc un pachet de plăci Arduino Mega 2560 și Ramps 1.4, așa că în acest articol vom analiza mai atent și vom analiza setările firmware-ului potrivit pentru acestea, Marlin.

Dacă nu ați colectat încă electronice, consultați articolul:

Acest firmware este unul dintre cele mai populare, de asemenea, deoarece dezvoltatorii adaugă în mod regulat noi caracteristici: reglarea automată a decalajului, senzorul de capăt al barei și multe altele. Mai mult, acest firmware este absolut gratuit și poate fi descărcat de pe site-ul oficial.

Unde să ajung?

Cea mai recentă versiune a firmware-ului Marlin este disponibilă pe site-ul oficial al dezvoltatorului https://github.com/MarlinFirmware/Marlin. Puteți descărca o versiune de firmware anterioară de pe link. Există, de asemenea, multe versiuni diferite pe site, dar vă recomandăm să descărcați cea mai recentă versiune marcată ca Ultima versiune. La momentul redactării acestei versiuni, această versiune este 1.0.2-2

Sub Descărcări în jos, faceți clic pe Cod sursă (zip) și descărcați arhiva de firmware pe computer. Apoi, extrageți conținutul arhivei într-un folder.

Instalarea Arduino IDE

După ce ați descărcat firmware-ul, trebuie să îl editați și apoi să îl scrieți pe microcontrolerul plăcii de control (Arduino mega 2560). În aceste scopuri, aveți nevoie de programul Arduino IDE, care poate fi descărcat gratuit de pe site-ul oficial Arduino.

Notă! Acest program Arduino IDE este actualizat în mod regulat și este posibil ca atunci când încărcați firmware-ul pe placa, să apară probleme cu noile versiuni ale Arduino IDE, și anume să apară erori și nu veți putea scrie firmware-ul pe microcontroler. Prin urmare, dacă apar probleme, încercați să descărcați o versiune mai veche a programului, de exemplu, versiunea 1.6.0)

Pentru fiabilitate, puteți descărca imediat versiunea testată 1.6.0


Faceți clic pe Windows Installer și veți fi redirecționat către o altă pagină, unde trebuie să faceți clic pe butonul JUST DOWNLOAD, doar descărcarea fișierului va începe. Instalați programul și treceți la pasul următor.

Editarea firmware-ului Marlin

Ați descărcat direct firmware-ul Marlin în sine și programul Arduino IDE cu care puteți edita. Deschideți folderul de firmware „Marlin”, găsiți fișierul „Marlin” cu extensia .ino


Deschideți acest fișier, ID-ul Arduino se va deschide


În partea de sus a ferestrei programului există multe file, fiecare dintre acestea conțin bucăți de cod, de care depinde funcționarea imprimantei 3D. Ai nevoie doar de câteva file principale. Prima și principala filă este „Configuration.h”


Acesta este un fișier de configurare care conține setări de bază. În această filă trebuie să faceți principalele modificări.

Notă! Efectuați toate modificările din firmware în ordine de sus în jos. Aceste modificări vor afecta principalele secțiuni ale codului și sunt necesare pentru lansarea inițială a imprimantei dvs. 3D.

Setați rata de transmisie necesară

Primul lucru care trebuie schimbat este rata baud. În mod implicit, viteza este de 250.000 (47 de linii de cod)

// Aceasta determină viteza de comunicare a imprimantei #define BAUDRATE 250000


// Aceasta determină viteza de comunicare a imprimantei #define BAUDRATE 115200

Dacă utilizați o placă, atunci viteza ar trebui să fie de 250.000.

Alegerea unei plăci de control

După setarea ratei de transmisie, trebuie să specificați placa de control utilizată (55 de linii de cod).

#ifndef Motherboard #define Motherboard Board_ULTIMAKER #endif


În mod implicit, placa de imprimantă 3D Ultimaker este BOARD_ULTIMAKER, deci trebuie să schimbați placa. Întreaga listă de panouri se află în fila „BOARDS_H”


Există o listă imensă de tablouri diferite, dar aveți nevoie doar de următoarele:

#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Ieșiri: Extruder, ventilator, pat)

#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Ieșiri de putere: Extruder0, Extruder1, Bed)

#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Ieșiri de putere: Extruder, ventilator, ventilator)

#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Ieșiri de putere: Extruder0, Extruder1, Fan)

Aceste plăci sunt pentru Arduino mega 2560 și Ramps 1.4. În funcție de modificarea imprimantei 3D, trebuie să selectați placa corespunzătoare. De exemplu, un pachet standard de 1 extruder + suflare a zonei de lucru + masă de încălzire corespunde plăcii BOARD_RAMPS_13_EFB

Numele plăcii trebuie copiat și înlocuit în fila „Configurare.h”, modificați următoarele linii:


Schimbarea numelui imprimantei 3D

Când configurați, asigurați-vă că veniți cu un nume pentru imprimanta 3D și indicați acest lucru în firmware. Pentru ce? Numele imprimantei este afișat pe afișajul LCD, o astfel de posibilitate este prevăzută cu precizie pe un astfel de afișaj.

Găsiți cusături: (59 de rânduri)

// #define CUSTOM_MENDEL_NAME "Acest Mendel"

#Define este precedat de „//” - aceasta înseamnă că aceste linii nu sunt utilizate în cod, ci servesc drept explicații. Pentru a activa această linie, trebuie să decomentați linia, să o eliminați // în fața liniei.

Schimbați implicit „Acest Mendel” cu numele imprimantei 3D, de exemplu „P3Steel”. Primim următoarele:

Alegerea unui senzor de temperatură pentru masă și extruder

Mai sus erau setările de firmware pentru un extruder și o masă de încălzire, adică există două elemente de încălzire în imprimanta 3D, a căror temperatură trebuie reglată. Controlul temperaturii se efectuează folosind senzori de temperatură - termistori.

Există un număr mare de termistori diferiți cu caracteristici diferite, deci trebuie să specificați în firmware ce termistor aveți. Acest lucru este necesar pentru ca imprimanta să afișeze temperatura corectă în viitor. Găsiți lista de termistoare acceptate în firmware:

//// Setări senzor de temperatură: // -2 este termocuplu cu MAX6675 (numai pentru senzorul 0) // -1 este termocuplu cu AD595 // 0 nu este utilizat // 1 este termistor 100k - cea mai bună alegere pentru EPCOS 100k (4.7 k pullup) // 2 este 200k termistor - ATC Semitec 204GT-2 (4.7k pullup) // 3 este Mendel-parts thermistor (4.7k pullup) // 4 este 10k thermistor !! nu-l utilizați pentru un hotend. Oferă o rezoluție proastă la temperaturi ridicate. !! // 5 este 100K termistor - ATC Semitec 104GT-2 (utilizat în ParCan și J-Head) (4,7k pullup) // 6 este 100k EPCOS - Nu este la fel de precis ca tabelul 1 (creat folosind un termocuplu fluke) (4,7k pullup ) // 7 este 100k termistor Honeywell 135-104LAG-J01 (4.7k pullup) // 71 este 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) // 8 este 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) / / 9 este 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) // 10 este 100k RS termistor 198-961 (4.7k pullup) // 11 este 100k beta 3950 1% termistor (4.7k pullup) / / 12 este 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrat pentru patul fierbinte Makibox) // 13 este 100k Hisens 3950 1% până la 300 ° C pentru hotend "Simple ONE" & "Hotend" All In ONE "// 20 este circuitul PT100 găsit în Ultimainboard V2.x // 60 is 100k Maker "s Tool Works Kapton Bed Thermistor beta \u003d 3950 // // 1k ohm tabele pullup - Acest lucru nu este normal, ar fi trebuit să fi schimbat 4.7k pentru 1k // (dar oferă o precizie mai mare și un PID mai stabil) // 51 este Termistor 100k - EPCOS (1k pullup) // 52 este 200k termistor - ATC Semitec 204GT-2 (1k pullup) // 55 este 100k termistor - ATC Semitec 104GT-2 (Folosit în ParCan și J-Head) (1k pullup) / / // 1047 este Pt1000 cu 4k7 pullup // 1010 este Pt1000 cu 1k pullup (non standard) // 147 este Pt100 cu 4k7 pullup // 110 este Pt100 cu 1k pullup (non standard)

Găsiți-l pe al dvs. în listă, amintiți-vă numărul din stânga. De regulă, mulți oameni folosesc un termistor chinezesc de 100 kΩ, numărul de termistor "1" este potrivit pentru aceasta.

// 1 este termistor 100k - cea mai bună alegere pentru EPCOS 100k (pullup 4.7k)

Efectuați modificări acolo unde doriți (rândurile 115-118)

#define TEMP_SENSOR_0 -1 #define TEMP_SENSOR_1 -1 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_BED 0

În mod implicit, primele două termistoare sunt activate în firmware:

TEMP_SENSOR_0 - responsabil pentru termistorul primului extruder

TEMP_SENSOR_1 - responsabil pentru termistorul celui de-al doilea extruder

TEMP_SENSOR_BED - responsabil pentru termistorul de masă

Schimbați liniile și obțineți următoarele:


TEMP_SENSOR_1 și TEMP_SENSOR_2 nu sunt utilizate, așa că am pus zero în fața lor.

Limitarea temperaturii maxime

Pentru a limita temperatura maximă, sunt necesare următoarele linii (140-143)

#define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define BED_MAXTEMP 150

Numerele din dreapta, respectiv 275 și 150, sunt temperaturile maxime ale extruderului și, respectiv, ale mesei de încălzire.

Când temperatura depășește temperatura maximă, încălzitorul dvs. va fi oprit. Această caracteristică este disponibilă pentru a vă proteja extruderul de supraîncălzirea accidentală. Dacă utilizați un hot-end cu teflon în interior, vă recomandăm să limitați temperatura la 260 de grade.

Limitarea temperaturii minime

De asemenea, în firmware, în mod implicit, există o limitare a temperaturii minime a extruderului de 170 de grade. Aceasta înseamnă că, dacă temperatura extruderului este sub 170 grade, motorul extruderului nu se va roti și plasticul nu va fi alimentat. Protecție împotriva împingerii prin plastic neîncălzit (linia 230).

#define EXTRUDE_MINTEMP 170

Dacă doriți să dezactivați această funcție, puneți „//” în fața liniei

Setarea comutatoarelor de limită

Configurarea logicii comutatoarelor de limită

În primul rând, la ce trebuie să fiți atenți este la limitele pe care le folosiți și care este principiul lor de funcționare. În firmware, trebuie să indicați corect logica comutatoarelor de limită. Găsiți următoarele rânduri (301-306)

Const bool X_MIN_ENDSTOP_INVERTING \u003d adevărat; // setat la true pentru a inversa logica stopului. const bool Y_MIN_ENDSTOP_INVERTING \u003d adevărat; // setat la true pentru a inversa logica stopului. const bool Z_MIN_ENDSTOP_INVERTING \u003d adevărat; // setat la true pentru a inversa logica stopului. const bool X_MAX_ENDSTOP_INVERTING \u003d adevărat; // setat la true pentru a inversa logica stopului. const bool Y_MAX_ENDSTOP_INVERTING \u003d adevărat; // setat la true pentru a inversa logica stopului. const bool Z_MAX_ENDSTOP_INVERTING \u003d adevărat; // setat la true pentru a inversa logica stopului.

Dacă aveți întrerupătoare de cursă mecanice, atunci când este declanșat, circuitul este închis, setați valorile „adevărat” în fața fiecărei linii a axei corespunzătoare. Dacă utilizați întrerupătoare de limită optice, atunci când este declanșat, circuitul este deschis, setați valorile „false” în fața fiecărei linii a axei corespunzătoare.

În mod implicit, firmware-ul opus fiecărui comutator de limită este setat la „adevărat”, care corespunde comutatoarelor de limită mecanice.

După configurare, funcționarea comutatoarelor de limită poate fi verificată cu comanda M119 din consolă.
Textul ar trebui să vină ca răspuns:
x_min: deschis - remorca nu a funcționat;
x_min: TRIGGERED - trailer declanșat.

Setarea poziției „HOME” - acasă

Firmware-ul acceptă 3 perechi de întrerupătoare de limită: pentru fiecare axă X, Y și Z, două întrerupătoare de limită min și max. De regulă, întrerupătoarele de limită sunt instalate numai pentru poziția minimă a fiecărei axe, iar maximul este setat în firmware.

Poziția de pornire (poziția inițială) va fi în pozițiile minime ale întrerupătoarelor de limită și aceasta este setată în firmware: (liniile 337-339)

#define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1

Schimbarea direcției de rotație a motoarelor

La asamblarea unei imprimante 3D, și anume la conectarea motoarelor pas cu pas la placă, este posibilă următoarea situație: când ați configurat și conectat totul, când apăsați „acasă”, transportul uneia dintre axe merge în cealaltă direcție (nu la comutatorul de limită), atunci este necesar să rotiți conectorul motorului pas cu pas cu 180 de grade sau să modificați valorile din firmware:

#define INVERT_X_DIR true // pentru Mendel setat la false, pentru Orca setat la true #define INVERT_Y_DIR false // pentru Mendel setat la true, pentru Orca setat la false #define INVERT_Z_DIR true // pentru Mendel setat la false, pentru Orca setat la false true #define INVERT_E0_DIR false // pentru extruder direct drive v9 setat la true, pentru extruder cu angrenaj setat la false #define INVERT_E1_DIR false // pentru direct drive extruder v9 setat la true, pentru extruder cu angrenaj setat la false #define INVERT_E2_DIR false // pentru extruder direct drive v9 setat la true, pentru extruder cu transmisie setat la false

De exemplu, dacă aveți un cărucior pe axa Y în cealaltă direcție, atunci trebuie să găsiți linia

#define INVERT_Y_DIR false // pentru Mendel setat la true, pentru Orca setat la false

și schimbați „fals” în „adevărat”. Și așa cu fiecare axă și extruder.

Setarea dimensiunilor mișcării

Pentru ca imprimanta 3D să determine zona de lucru, trebuie să specificați dimensiunile acesteia în firmware: (liniile 345-350)

#define X_MAX_POS 205 #define X_MIN_POS 0 #define Y_MAX_POS 205 #define Y_MIN_POS 0 #define Z_MAX_POS 200 #define Z_MIN_POS 0

Opus fiecărei linii, specificați dimensiunile corespunzătoare, în mod implicit, zona de lucru este setată la 205x205x200 mm

Setarea pașilor de mișcare de-a lungul axelor

Specificarea numărului de pași ai motoarelor pas cu pas este una dintre principalele setări de firmware (linia 490):

#define DEFAULT_AXIS_STEPS_PER_UNIT (78.7402,78.7402,200.0 * 8 / 3.760 * 1.1) // pași impliciți pe unitate pentru Ultimaker

În paranteze, separate prin virgule pentru fiecare axă, este indicat numărul de trepte pe care trebuie să le facă motorul pas cu pas pentru ca trăsura să se deplaseze 1 mm. De unde să obțineți aceste valori? Puteți calcula sau lua cele deja cunoscute.

Calculul axelor X și Y (curele)

Toate axele au motoare pas cu pas 200 de pași pe rotație, 16 micro-pași pe pas (aceasta este setată cu jumperi pe tablă).

De-a lungul axelor X și Y, există o curea de transmisie GT2 de 2 mm și scripete cu 20 de dinți.

Se pare:

(200*16)/(2.0*20)=80

Motorul pas cu pas trebuie să facă atât de mulți pași, încât axa X și Y să se deplaseze exact cu 1 mm.

Dacă aveți un scripete dințat Gt2 cu un pas de 2 mm și cu 20 de dinți, atunci formula este:

(200*16)/(2.0*16)=100

Calculul axei Z (șurub de plumb)

Axa Z poate fi:

  • Stud M8 cu un pas de filet de 1,25 mm, apoi formula: 200 * 16 / 1,25 \u003d 2560
  • Stud M5 cu un pas de 0,8 mm, apoi formula: 200 * 16 / 0,8 \u003d 4000
  • Șurub trapezoidal cu un diametru de 8 mm cu un pas de 1 mm și un fir de 1, apoi formula: 200 * 16/1 \u003d 3200
  • Șurub trapezoidal cu un diametru de 8 mm cu un pas de 2 mm și un cablu de 1, apoi formula: 200 * 16/2 \u003d 1600
  • Șurub trapezoidal cu un diametru de 8 mm cu un pas de 2 mm și un start de 4, apoi formula: 200 * 16/2 * 4 \u003d 400

Pruse i3 Steel folosește știfturi M5, apoi numărul este 4000.

Calculul extruderului

Reglarea alimentării extruderului depinde de raportul de reducere și de diametrul angrenajului de alimentare. Numărul de pași pe care trebuie să-i facă motorul pas cu pas al extruderului pentru a împinge plasticul cu 1 mm este selectat experimental după prima umplere a firmware-ului în imprimanta 3D.

Deșurubați duza și reduceți limita minimă de temperatură a duzei la 5 grade:

#define EXTRUDE_MINTEMP 5

Extruderul va rula acum cu o duză rece. Fără a modifica setările extruderului, apăsați pentru a conduce plasticul cu 100 mm. Măsurați lungimea barei trecute prin extruder cu o riglă sau un etrier vernier.

Atunci când alegeți un set de extruder, obțineți o cifră exactă pentru o lungime rezonabilă a barei, de exemplu 200 mm. După setare, resetați limitele minime de temperatură:

#define EXTRUDE_MINTEMP 170

Limitarea vitezei maxime de mișcare de-a lungul axelor

#define DEFAULT_MAX_FEEDRATE (500, 500, 5, 25) // (mm / sec)

În mod implicit, vitezele sunt de 500.500,5, 25 mm / s pe axele X, Y, Z și, respectiv, pe extruder. Vă recomandăm să reduceți viteza de la 500 la 200.

Setarea accelerației mișcărilor de-a lungul axelor

O altă setare importantă este setarea accelerațiilor pentru diferite axe, deoarece, din cauza setării incorecte a acestui moment, există adesea probleme în timpul imprimării, și anume deplasarea straturilor datorită săriturilor treptelor motorului. Dacă puneți prea multă accelerație, atunci vor exista lacune. În mod implicit, firmware-ul conține următoarele valori:

#define DEFAULT_MAX_ACCELERATION (9000,9000,100,10000) // X, Y, Z, E viteza maximă de pornire pentru mișcări accelerate. Valorile implicite E sunt bune pentru Skeinforge 40+, pentru versiunile mai vechi le ridică foarte mult. #define DEFAULT_ACCELERATION 3000 // X, Y, Z și E accelerare maximă în mm / s ^ 2 pentru imprimarea mutărilor #define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z și E accelerare maximă în mm / s ^ 2 pentru retractări

Pentru axele X și Y, accelerațiile sunt de 9000 mm / s ^ 2 - este mult.

Pentru setarea inițială, setați cel mult 1000 și pentru DEFAULT_ACCELERATION setați 1500 în loc de 3000.

Activare afișaj

Ultimul lucru care rămâne de făcut este să activezi afișajul dorit. Unul dintre cele mai populare afișaje este. Găsiți și decomentați următoarele linii:

#define ULTRA_LCD #define SDSUPPORT #define ULTIPANEL #define REPRAP_DISCOUNT_SMART_CONTROLLER

Aceste rânduri nu trebuie să fie precedate de „//”. Ar trebui să obțineți următoarele:


Completați firmware-ul

După toate modificările majore aduse firmware-ului, îl puteți încărca. În IDE-ul Arduino, accesați fila „Instrumente” -\u003e „Placă” și selectați „Arduino / Genuino Mega sau Mega 2560”


Și acolo trebuie să setați portul COM corect al imprimantei 3D. Pentru a completa firmware-ul, faceți clic pe cerc cu o săgeată.


Progresul încărcării firmware-ului este indicat de un indicator și, după finalizarea cu succes, va apărea un mesaj de confirmare pe ecran.

Bună ziua începători și profesioniști!

Tocmai am venit în lumea imprimării 3D și am foarte puțină experiență în această afacere. Dar aș vrea să vă spun ceva. Și anume ideea de calibrare a mesei imprimantei.

Metoda nu necesită mult timp, nu necesită un instrument de măsurare rar, este destul de precisă și simplă.

Ideea unei astfel de calibrări a apărut după această imagine:

După cum puteți vedea din imagini, partea superioară a chenarului este imprimată bine, lipită între ele (0,2 mm grosime), iar partea inferioară nu este lipită (0,3 mm grosime).

Pentru a calibra tabelul aveți nevoie:

Un set de chei / șurubelnițe pentru reglarea mesei, cine reglează ce;

Etrier Vernier (ideal cu un vernier (scara) 0,05);

Model pentru test - http: // site / 3d-models / detali-dlya-3d-printerov / raznoe / test_gorizont /

În cazul meu, masa este reglată cu trei șuruburi, așa că modelul arată astfel. Fiecare cerc este lângă șurubul său. L - Stânga, R - Dreapta, Z - Spate, C - centru (pentru a determina curbura suprafeței). Grosimea stratului 0,2 mm cu o margine. În cazul tău, o poți face în felul tău.

Element de model (centru):

Asadar, haideti sa începem.

Precalibrare:

Luăm o foaie A4 și configurăm masa așa cum este descris în multe articole și videoclipuri de pe Internet.

Această metodă poate fi utilizată pentru a regla fin masa, dar! Nu veți putea detecta o forță de prindere a hârtiei suficientă / insuficientă la atingere. Glisarea ușoară poate fi diferită pentru toată lumea.

În general, l-am ajustat aproximativ.

Calibrarea finală:

Tipărim modelul. După cum puteți vedea din captura de ecran - este nevoie de 2 minute pentru a imprima, luând în considerare abaterile și încălzirea - 5 minute.

Așteptăm ca modelul să se răcească pentru a-l dezlipi. Nu am așteptat, ci doar l-am falsificat cu un cuțit de papetărie, ABS face posibil acest lucru.

Îndepărtați cercurile, luați un etrier și măsurați grosimea. În cazul meu, ar trebui să aibă 0,2 mm.

Pe baza abaterilor de dimensiune, determinați în ce direcție trebuie să răsuciți sau deșurubați masa. Asigurați-vă că toate cercurile au aceeași grosime și dorită.

Dacă presiunea este în mod clar insuficientă, când firele nu se lipesc între ele, mă ajustez în timpul imprimării, până când firele încep să se atingă. Apoi măsoară și fac o imprimare de control a modelului cu măsurători.

Centrul poate fi folosit o dată pentru a defini convexitatea sau concavitatea mesei. Dar uneori nu strică să controlezi.

Mult succes și o masă calibrată pentru toată lumea!

Criticii și sugestiile sunt binevenite.

După cum știți, pentru imprimarea de înaltă calitate pe o imprimantă 3D, este necesar să aliniați cu atenție suprafața mesei. Din păcate, acest lucru nu este întotdeauna posibil. Destul de des, masa este o suprafață curbată și chiar și utilizarea sticlei nu rezolvă complet această problemă. Din fericire, cel mai recent firmware Marlin se concentrează din ce în ce mai mult pe capacitatea de calibrare a suprafeței mesei. Calibrarea complet automată necesită utilizarea unor senzori suplimentari, care nu sunt întotdeauna disponibili, dar pe lângă aceasta, există posibilitatea calibrării mesei în modul manual. Despre asta vreau să vă spun.

Adăugarea suportului de calibrare automată la firmware

Activați suportul de calibrare manuală

Setarea opțiunilor grilei

Atenţie! Nu utilizați mai mult de 7 puncte pe axă. Aceasta este o limitare a firmware-ului.

Adăugarea de elemente în meniul imprimantei

Script post-calibrare. Aici, în mod implicit, unele mișcări ale corpului de către extruder, nu faptul că sunt necesare. Nu sunt sigur de asta.

// #define Z_PROBE_END_SCRIPT "G1 Z10 F12000 \\ nG1 X15 Y330 \\ nG1 Z0.5 \\ nG1 Z10"

După aceea, completați firmware-ul actualizat.

Calibrați masa

Pentru calibrarea manuală, se folosește așa-numita nivelare a patului cu plasă (MBL). Acestea. metoda de calibrare printr-o serie de puncte. În consecință, suprafața mesei este împărțită într-o rețea și coordonatele Z sunt măsurate la nodurile rețelei prin deplasarea manuală a axei Z. De fapt, sunt necesare doar o foaie de hârtie și brațe drepte pentru măsurare.

În fiecare punct de sub duza extruderului punem o foaie de hârtie și deplasăm axa Z (fie prin trimiterea unei comenzi speciale G prin intermediul software-ului de pe computer, fie prin meniul imprimantei) obținem o astfel de stare când foaia de sub extruderul poate fi încă deplasat liber și scăderea poziției extruderului cu un pas interferează deja pentru a muta foaia. După aceea, punctul curent este înregistrat și continuăm de la următorul și așa mai departe până la sfârșit.

La sfârșitul procesului, când sunt măsurate toate punctele, scriem rezultatele în memoria nevolatilă a imprimantei și acest lucru este de fapt suficient. În viitor, nu trebuie să reglați suprafața înainte de fiecare utilizare - vor fi utilizate valorile salvate.

În mod implicit, o grilă 3 × 3 este utilizată pentru calibrare, adică 9 puncte, dar dacă doriți, puteți seta un număr diferit în firmware (nu mai mult de 7 pe axă, adică nu mai mult de 49 în total).

Pentru a crește în continuare precizia calibrării, puteți încălzi masa și extruderul la temperaturi de funcționare înainte de ao efectua. Acest lucru va lua în considerare și va compensa expansiunea termică.

Printr-un program extern

Există o comandă specială G29 pentru calibrarea mesei

  1. G29 S0 citește valorile punctului curent în memoria imprimantei.
  2. G29 S1 Mută \u200b\u200bimprimanta în primul punct pentru a începe procesul de configurare. De fapt, imprimanta parchează mai întâi în poziția de pornire, apoi merge la primul punct.
  3. G29 S2 scrie punctul curent și trece la următorul
  4. Repetăm \u200b\u200bprocesul pentru toate punctele
  5. Folosim comanda M500 pentru a scrie valorile măsurate în memoria imprimantei

Prin meniul imprimantei

Selectați următoarele elemente din meniul Presetări


Apoi, vom vedea următoarea inscripție pe ecran și vom urmări cum parcează imprimanta în poziția sa de pornire


Apoi imprimanta ne invită să facem clic pe codificator.


După un clic, extruderul merge la primul punct


Și vedem reglarea axei Z.



Faceți clic pe codificator pentru a salva valoarea și a trece la punctul următor. Repetăm \u200b\u200bcalibrarea fiecărui punct (în total sunt 9). După ultimul punct, imprimanta va parca și ne va arăta următoarele:



Total

În cazul meu, chiar și această calibrare manuală a îmbunătățit semnificativ calitatea imprimării. Mai mult, se remarcă cu ochiul liber. Un bonus suplimentar a fost acela că am încetat să ung geamul cu adeziv pentru o mai bună aderență - datorită faptului că după calibrare imprimanta ia în considerare denivelările mesei, primul strat se potrivește acum în mod absolut uniform și rămâne foarte bine. Din nou, acest lucru este imediat evident. Anterior, din cauza denivelărilor, o parte a aderat mai rău și, ca urmare, modelul a căzut fără acoperire cu adeziv.