Конфигурирайте фърмуера на Marlin и го накарайте да работи!

Конфигурирайте фърмуера на Marlin и го накарайте да работи!

  1. Начало
  2. Серийни портове, Baud Rate, Bluetooth, потребителско име
  3. Стъпкови драйвери
  4. Насочване без сензори
  5. Микростепинг и Stealthchop
  6. Управление на PSU
  7. Термични настройки - термистор и максимална/минимална температура
  8. PID настройки
  9. Безопасност - студена екструзия и термично бягство
  10. Механични настройки - Corexy, Belt Printers, Robotic Arms
  11. Настройки за спиране
  12. Настройки на движението - ускорение, скорост на подаване, стъпки, линейно придвижване
  13. Z-сонда и нивелиране на леглото, промяна на посоката на двигателя
  14. Размер на леглото и сензори за изчерпване на филамента
  15. M600
  16. Допълнителни функции - EEPROM, Настройки за подгряване, Почистване на дюзите, Таймер за печатни задачи, Пароли, Език, Поддръжка на SD карти, Чувствителност на енкодера, Високоговорители, LCD дисплеи, Неопиксели

Една кратка бележка преди да започнем - ще споменаваме номерата на редовете, за да можете лесно да намерите правилния ред на фърмуера, обаче в зависимост от това какъв фърмуер използвате или какви конфигурационни файлове използвате, това може да се различава малко, но все пак е лесен начин да намерите правилния ред.

Иначе твърденията в Marlin се наричат дефиниции, те могат да бъдат включени, изключени или включени с избираема стойност. Тези, които са включени, са некоментирани, което означава, че нямат идентификатор на коментар, който е двойна наклонена черта напред. По принцип двойната наклонена черта напред изключва всичко и ви позволява да пишете коментари, ако желаете да персонализирате вашия фърмуер, така че да е полезен за вас или за други хора на по-късен етап. Всичко, написано с // в началото на реда, ще бъде напълно игнорирано от фърмуера при компилирането му.

1. Начало

За да редактирате фърмуера на Marlin, ви е необходим подходящ софтуер и макар че има няколко възможности, повечето биха използвали Visual Studio Code. Той е безплатен за изтегляне от техния сайт тук както за Windows, така и за Linux и Mac.

За да се справите с тази задача, се нуждаете и от разширението Platform IO, така че след като инсталирте VS, отидете в разширенията в лентата с инструменти вляво (иконата с 4 квадратчета) и потърсете PlatformIO и кликнете върху инсталиране. Можете също така да използвате разширението за автоматично изграждане на marlin, което прави нещата малко по-бързи при настройката на вашата платка с правилния процесор, но можем да направим това и по стария начин и ще ви покажем как да го направите по-нататък.

След като имате всичко споменато, трябва да си набавите фърмуер за Marlin, така че отидете на Marlin GitHub и изтеглете последната версия.

Може да забележите, че има bug fix версия и обикновена версия. Версията за отстраняване на грешки (bug fix) включва най-новите промени във фърмуера. Това е полезно, но може да се окаже и най-малко стабилна, тъй като по нея се работи постоянно. Въпреки това екипът на Marlin отлично се справя с бъгове и грешки и ги отстранява, така че ние предпочитаме да използваме тези версии.

Влезте там и щракнете върху ''code'' в горния десен ъгъл, за да изтеглите фърмуера като zip, разопаковайте zip-a и заредете VS Code, отидете на ''file'' и ''open folder'', след което отворете фърмуера на Marlin.

Следват конфигурационните файлове, като специфичните конфигурации на принтера могат да бъдат намерени и в техния Github.

Те са наистина полезни, особено ако желаете да промените фърмуера само малко, например, ако имате принтер като Ender 3 и току-що сте обновили нагревателя и трябва да промените термистора във фърмуера, тогава можете просто да изтеглите конфигурационните файлове за този принтер и да ги поставите в папката на Marlin, която току-що сте изтеглили. По този начин всички специфики от фърмуера на оригиналния принтер вече са готови и трябва само да промените стойностите на термистора.

Когато подготвяте папка с фърмуер за редактиране, има едно много важно нещо, на което трябва да се обърне внимание, преди да започнете да редактирате, и това е изборът на правилната дънна платка и правилния модел процесор.

Ако отидете на страницата configuration.h в explorera вляво, ще видите, че около ред 70 има команда за това коя дънна платка използвате. За много платки има само една версия, но някои имат варианти или някои принтери може да са използвали различни платки в миналото. Най-добре би било да отворите принтера си и да проверите коя платка имате.

За да разберете как точно е обозначена вашата платка във фърмуера, върнете се към explorera вляво, отидете на src, core и boards.h. Това е списък на всички платки, които Marlin поддържа. Натиснете CTRL+F и въведете марката на вашата платка, можем да вземем за пример платките Creality Ender 3, така че въведете Creality, скролнете надолу, за да пропуснете нерелевантните резултати, и ще видите платките Creality V4. Можете просто да използвате Board_Creality_V4 в повечето случаи. По принцип това е същият процес за всяка дънна платка от всяка марка, стига да се поддържа от тази версия на Marlin. Ще забележите и вариантите на процесора за тази платка, като за платките версия 4 можем да видим STM32F103RC и STM32F103RE.

Напишете коментар и при двете, върнете се в Configuration.h и копирайте платката в мястото след #define MOTHERBOARD. Сега можете също така да отидете в лентата с инструменти на explorer-a от лявата страна и да щракнете върху раздела platform.io и да се уверите, че правилният модел процесор е в реда default_envs близо до горната част на страницата

Ок, готово, сега можем да пристъпим към редактиране на фърмуера. Има две основни страници, които ще редактираме, повечето са в config.h, но някои също и в config_adv.h.

2. Серийни портове, Baud Rate, Bluetooth, потребителско име

Ако отидете в config.h, можем да започнем оттам. Вече направихме основната платка, така че нека да продължим към следващата дефиниция - серийни портове.

Почти всеки принтер използва сериен порт, за да се свързва с различни машини. В по-голямата си част ще се използва само един, но ако свързвате нещо друго, например сензорен екран с SD карта или USB порт, може да се наложи да се погрижите малко за това. Ние няма да го правим, така че ще забравим за това в момента.

Под Baudrate се разбира скоростта на комуникация за тези портове, тя може да се различава, но повечето всъщност използват скорост на предаване 115200.

Надолу ще видите още опции за серийни портове, които обаче не се предмет на днешната статия.

Имате и опции за Bluetooth свързаност, което е доста необичайна функция за принтерите, а също така има и опция за промяна на името на принтера, която по подразбиране е изключена. Ще можете да видите това име на LCD дисплея, когато машината ви е включена. Включете я и въведете име, ако ви се иска.

3. Стъпкови драйвери

Време е да поговорим за драйверите на стъпковите устройства. Това звучи трудно, но в действителност не е така. Всеки принтер използва стъпкови драйвери, те управляват двигателите. Навремето принтерите използваха A4988 или техни разновидности, поради което двигателите бяха доста шумни. В днешно време разполагаме с TMC2208 или TMC2209 като драйвер по подразбиране при повечето принтери. Но има и много други видове драйвери, всеки от които има различни характеристики и предимства, като например разделяне на стъпките, максимален ток или безсензорно насочване, което премахва физическите крайни изключватели, когато насочвате осите си.

Можете просто да зададете кой драйвер за какъв достъп да използвате. В много случаи основната платка на принтера може да не посочва кои драйвери за стъпкови устройства използва. Понякога платката ще използва вградени стъпкови драйвери, което означава, че те не могат да бъдат премахнати. В този случай вероятно няма да е споменато кои използва, но понякога върху дънната платка има знак с необходимата информация. Например, на платките Creality V4 има малък код, изписан на порта за SD карта. Ако е написано "T8", това означава, че се използват драйвери TMC2208. Някои дънни платки използват сменяеми драйвери, което има своите предимства, като например, ако един от тях се повреди, просто трябва да го смените - ако това се случи с вградените драйвери, тогава няма какво да се направи - вашата платка е развалена и се нуждаете от нова.

4. Безсензорно насочване

Ние сме големи фенове на безсензорното насочване и въпреки че то не е толкова точно, колкото физическите endstops, то ограничава необходимостта от кабели. Не всички драйвери поддържат безсензорно насочване, например много популярните драйвери TMC2208 не могат да използват тази функция. Но драйверите TMC2209 могат.

За да заработи безсензорното насочване, са необходими някои много прости физически промени в дънната платка. Това може да е различно в зависимост от дънната платка, която използвате, но обикновено тук става въпрос за просто поставяне на джъмпери на определени пинове. Вижте ръководството на SKR Mini E3.

По отношение на фърмуера, ето какво е необходимо, за да заработи безсензорното насочване: На първо място, HOMING_BUMP на ред 210 (configuration_adv.h) трябва да бъде зададен на 0 - това обикновено се използва при endstops, при които оста ще удари endstop, ще се отдръпне малко и след това бавно ще удари endstop отново. По подразбиране тя е няколко mm, но ние трябва да го изключим.

На ред 1174, ENDSTOP_INTERRUPTS_FEATURE (configuration.h) трябва да бъде недефинирана.

Следващата стъпка е важна. Това, което е позитивно при тези дънни платки в сравнение с по-старите, е, че токът на двигателя не може да се променя чрез фърмуера на старите 8-битови платки. Трябваше да променяте Vref на дънната платка чрез завъртане на малък тример, който беше наистина чувствителен. При най-малкото завъртане той скачаше до 1,5, когато ви трябва само 0,8 (или 800 mA) за повечето xy двигатели. Намерете редовете за регулиране на тока, започващи от 2386 (configuration_adv.h).

Количеството на тока, от което се нуждаете във вашия фърмуер, зависи от стъпковия драйвер и мотор. Ако разполагате със среден двигател, като например мотор 42-34, стойността на тока ви трябва да бъде само 800. Ако намерите лист с технически данни за вашия мотор, може да видите, че максималният му ток е 1,5а или 1500mA, не въвеждайте 1500 във фърмуера, това е абсолютна максимална стойност, ние не се занимаваме с максимални стойности, това би завършило зле. Ние търсим RMS стойността, средната квадратична стойност на тока. Изчисляването на правилния ток всъщност не е толкова просто, но има калкулатори, които можете да намерите онлайн, за да ви помогнат с това, като например този на ALL3DP.

Управлението на тока е абсолютно ключово при калибрирането на безсензорното самонасочване, тъй като може да се наложи да си поиграете малко с него, когато се уверите, че работи оптимално.

MONITOR_DRIVER_STATUS се намира на ред 3204 (configuration_adv.h) - той периодично проверява драйверите, за да определи тяхното състояние. Marlin може автоматично да намали тока на драйвера, ако драйверът съобщи за състояние на предварително предупреждение за прегряване. Препоръчваме да включите тази функция.

Можете също така да включите TMC_DEBUG на ред 3317 (configuration_adv.h), където можете да видите повече информация за драйверите на стъпковите устройства.

Ок, сега можем да включим SENSORLESS_HOMING на ред 3272 (configuration_adv.h). Трябва да го включим за X и Y и да зададем чувствителността на спиране, това контролира колко чувствително драйверите могат да измерват спирането, т.е. когато двигателят премества печатащата глава на една страна от оста си и се удря в края. Това е по-скоро процес на изпробване и намиране на правилната стойност, тъй като ако тя е твърде ниска, тя няма да открие нищо и ще продължи да върти двигателя, дори когато печатащата глава се блъсне в страната, а ако е твърде висока, тя просто постоянно ще "открива" спирането, дори когато печатащата глава просто си стои там. След флашването на фърмуера, LCD дисплеят вече ще има меню за промяна на стойностите на чувствителността на спирането (stall) и на тока, така че просто трябва да промените това, като отново изпробвате различни варианти, докато намерите правилната настройка. Стойностите на чувствителността на спиране варират от 0 до 255, така че първият опит трябва да се направи в средата (около 128) и след това да напаснете настройката в зависимост от резултатите. Направете съответните корекции и опитайте отново и отново и отново. Ако независимо от това каква стойност пробвате не можете да постигнете желания резултат, тогава трябва да регулирате тока, просто го увеличете малко, но наистина САМО МАЛКО!! Ако той е 800 милиампера, увеличете го на 850 и опитайте отново.

Можете също така да използвате define IMPROVE_HOMING_RELIABILITY малко по-надолу на ред 3291, което е точно това, което наименованието му издава.

Получаването на безсензорно самонасочване по ос Z е трудно, особено при принтери, които използват водещи винтове за движението Z, каквито са повечето принтери. За да си спестите неприятностите тук, не включвайте безсензорното самонасочване за оста Z.

5. Микростъпки и Stealthchop

На ред 2838 има още една функция на драйвера X_MICROSTEPS (configuration_adv.h). Стъпковите драйвери се движат на стъпки, най-много по 1,8 градуса за всяка стъпка, което е наистина точно, но може ли да бъде още по-прецизно? Освен че можете да вземете друг двигател, който има по-малък градус на стъпка, можете да използвате микростъпки, които сигнализират на драйвера да подаде сигнал на двигателя по начин, който може да премести двигателя на по-малко от 1,8 градуса, което е доста удобно за много прецизно регулиране. По подразбиране стойността е 16, но можете да я увеличите, разбира се, това означава, че броят на стъпките, необходими за преместване на двигателя на определено разстояние, също ще се промени, така че Marlin има тази прекрасна функция, наречена interpolate, на ред 2833 (configuration_adv.h). Като зададете тази стойност на true, ще "интерполирате" всяка стойност на стъпката на двигателя автоматично, така че не е необходимо да променяте нищо ръчно. Така че, ако промените микростъпките от 16 на 32, ще трябва да коригирате стъпките на всички двигатели, за да се напаснат към новата стойност, а включването на interpolate прави това автоматично вместо вас.

Следващата стъпка е STEALTHCHOP на ред 3140 (configuration_adv.h). Включете го, той прави всичко супер тихо - трябва да проверите и CHOPPER_TIMING CHOPPER_DEFAULT точно по-долу. Повече от вероятно е да използвате принтер с 24 V, така че го включете на 24 V. Разбира се, възможността за използване на stealthchop зависи и от вашия драйвер, но за щастие повечето в наши дни могат да го използват.

6. Управление на PSU

Връщайки се към Configuration.h, на ред 388 (configuration.h) имаме управление на PSU, което може да бъде интересно, ако искаме автоматично да изключим принтера си, след като е завършил задачата за печат.

7. Термични настройки - термистор и максимална/минимална температура

След това е ред на термичните настройки на ред 430 (configuration.h) и това вероятно е най-търсеният урок за фърмуера изобщо. За много хора ъпгрейдът на хотенда е първата модификация, която правят. И така, ако имате Ender 3 и искате да ъпгрейднете до хотенд Revo, какво трябва да правите? Има две неща, които трябва да се променят. Първото е термисторът. Повечето принтери използват термистор 100k, за който типът на сензора е "1" в Marlin. Но Revo и много други термистори използват номер 5, който също е 100k термистор, но от Semitec. Както виждате, има няколко марки, които използват този тип термистор. Но може би преминавате към нещо по-здраво като PT1000 и това зависи от PT1000, но повечето използват сензор номер 1047 с 4,7 ома pullup.

Същото можете да направите и за temp_sensor_bed тук, на ред 536 (configuration.h).

Другата част от процеса за ъпгрейд на хотенда е HEATER_0_MAXTEMP на ред 611 (configuration.h). Хотендовете PTFE обикновено са ограничени до 260C, което е записано като 275C в marlin. Не сме сигурни защо е така, но каквато и температура да въведете тук, реално достижимата температура на принтера ще бъде с 15 C по-ниска. Така че, ако разполагате с 300 С хотенд, трябва да напишете 315 С за максимална стойност.

Може да видите и HEATER_0_MINTEMP тук, на ред 597, това автоматично ще изключи загрявнето, когато то достигне тази температура. Ако имате принтер, който изключва отоплението или ви дава грешка mintemp и не сте сигурни защо, това може да се дължи на факта, че принтерът ви се намира в среда, която е твърде студена. През зимата получаваме много въпроси по този въпрос, тъй като много хора имат принтери в гаражите си и това лесно може да се случи.

На ред 623 имате термично превишаване (configuration.h), което позволява температури над стойността maxtemp, преди да изключи нещата. Превишаването може да се случи, когато нагревателят ви не е калибриран, което ни води до ред 633 и настройката на PID (configuration.h).

8. Настройки на PID

Това синхронизира нагревателя и термистора, така че нагряването да е точно. Важната част тук е от ред 659, там са стойностите по подразбиране за вашите Proportional (Пропорционална), Integral (Интегрална) и Derivative (Деривативна), всъщност не е необходимо да променяте нищо тук, но при смяна на нагревателите е добре да стартирате PID настройка, която калибрира вашия нагревател или термистор, така че температурата да не се колебае много, когато принтерът работи. Затова бих препоръчал да направите това след обновяване на хотенда. Има няколко начина да направите това, но най-лесният е да го активирате в менюто на LCD дисплея на ред 803. Други методи са свързване на принтера чрез USB към компютъра и използване на терминална програма като Pronterface.

Можете да въвеждате gcode команди в този терминал и правилната за PID настройка е "M303 E0 S210 C10 U".

Тук, M303 е командата за стартиране на процеса на настройка.
E0 се отнася за нагревателя, който използвате (E0 е по подразбиране за почти всички принтери с един екструдер)
S210 се отнася до температурата при 210С, която е подходяща за PLA, но можете да я промените, ако използвате предимно други филаменти.
C7 се отнася до това колко пъти трябва да се извърши тестът. Колкото повече пъти го правите, толкова по-точен е той, но ние смятаме, че не е необходимо да надхвърляте 7 пъти.

След като въведете тази команда, тя ще изпълни теста и ще върне стойностите за Kp, Ki и Kd.

След като ги получите, можете да ги добавите в терминала с командата M301 по следния начин:
M301 P30 I3 D60

След това запазете настройките си с командата M500. Това е всичко, готови сте!

Има още малко работа при PID управлението на леглото и камерата. PID настройката за леглото не е толкова необходима, колкото за хотенда. Промените в хотенда са значително по-чести, отколкото смяната на термистора на леглото, но тя е налице, ако се наложи да я включите.

9. Безопасност - студена екструзия и термично бягство

Следва защитата от "термично бягство" на ред 827 (configuration.h). Тя е доста е важна, така че препоръчваме да я включите! Тя изключва принтера ви, ако температурата се промени извън очакваното. Може би термисторът се е разместил и вие не знаете? Без тази функция температурата просто ще се повишава и повишава, а показанията на термистора почти няма да се променят. Това не е добре. Включете я!

На ред 816 (configuration.h) има също така функция за предотвратяване на студеното пресоване. Тя предотвратява активирането на двигателя на екструдера, ако температурата е по-ниска от въведената стойност. Тук тя е зададена по подразбиране на 170, като това какъв филамент обикновено използвате на принтера си ще ви подскаже коя стойност трябва да се използва тук. Ако например през повечето време печатате PETG, трябва да зададете температура от около 220С

10. Механични настройки - CoreXY, лентов принтер, роботизирана ръка

Следват механичните настройки и тъй като ще използваме настройка CoreXY, това е наистина важно. Тук трябва да дефинираме CoreXy.

Тук има и други кинематики като делта, лентови принтери или ако имате роботизирана ръка, това също е възможно.

11. Настройки на крайния ограничител и праг на шума на крайния ограничител (endstop)

На следващо място се намират настройките за крайния ограничител на ред 1071 (configuration.h). Това е просто за включване на крайните спиращи устройства.

Тук има още една малка функция за праг на шума на крайния ограничител или Endstop Noise Threshold. Преди много време ни се наложи да използваме тази функция, когато поставихме изключително дълги кабели на принтера, така че цялата електроника да е извън корпуса. По някаква причина дългите кабели предизвикваха засичане на мишите при насочване, но тази функция спаси положението.

12. Настройки на движението - ускорение, стъпки, скорост на подаване, дрънкане, отклонение на разклонението, линейно придвижване

Следващата стъпка е настройките на движението в 1194 (configuration.h) и първата от тях са стъпките по подразбиране. Както беше споменато, стъпковите двигатели се въртят на стъпки на всеки 1,8 градуса в разстоянието (освен ако не разполагате с 0,9), когато двигателят завърти ремък или водещ винт, или зъбно колело, той трябва да завърти определено количество стъпки, за да може тази част да се придвижи с необходимото количество. Най-често ще се наложи да промените това за обновяване на екструдера, като в действителност трябва да промените само числото в този ред. Обикновено производителите дават стъпките на екструдера (или esteps), но може да се наложи да ги коригирате, така че за тази цел правим калибриране на esteps. Има много видеоклипове за това.

Esteps и всъщност всички стойности на esteps не е необходимо да се конфигурират във фърмуера. Можете просто да редактирате стартовия си gcode, за да включите нова стойност с команда M92. Това е най-лесният начин да го направите, ако надграждате екструдера си, в повечето случаи не е необходимо да актуализирате фърмуера си и можете просто да използвате gcode или в слайсера си, или чрез Pronterface, както показахме по-рано. Всъщност това може да се направи за всички стойности в категорията "Настройки на движението" с M203 за максимална скорост на подаване, M201 за максимално ускорение, M204 за ускорение по подразбиране и M205 за настройки за дръпване. Например промяната на стъпките на екструдера за нов екструдер Bondtech може да бъде толкова проста, колкото да напишете M92 E415 в стартовия си gcode (M92 е командата за промяна на стъпките на двигателя, а E указва, че е за двигателя на екструдера), това е всичко, така че те не са заложени в камък и можем да ги променим наистина лесно без промяна на фърмуера.

Между другото, ако се интересувате от командите на gcode като цяло и параметрите, използвани с тях, можете да разгледате уебсайта на Marlin за това. Те дават списък на всички команди на gcode, някои от които може да ви бъдат много полезни. Тук има пример за gcode на ускорението при стартиране на M204.

Jerk е функция, която ограничава скоростта на промяна на ускорението на дадена ос най-вече за случаите, когато печатащата глава стои неподвижно и след това внезапно започва да се движи, но се прилага и при 90-градусови завои. Това е сравнително стара функция във фърмуера, много принтери все още я използват, но по-новите, особено тези, които работят с фърмуера Klipper, използват нещо, наречено отклонение на кръстовището, така че нека разгледаме това.

По отношение на промените във фърмуера това е много просто, отидете на ред 1288 и дефинирайте junction deviation (отклонение на кръстовището), също така се уверете, че classic_jerk на ред 1265 е недефиниран (configuration.h). Това е готовата част от фърмуера, но трябва да намерите стойността на отклонението на съединението, по подразбиране тя е зададена като 0,013 mm, но това зависи изцяло от вашия принтер. За щастие тябва само да се направи лесен тест. Всичко, което трябва да направим, е да отпечатаме модел, при който всеки слой е с малко по-различна стойност на отклонението на съединението, и след това да видим кой слой се отпечатва най-добре. Ако забележите много звънене, значи тази стойност е твърде висока. Но не искате да е твърде ниска, защото това ще забави нещата.

TeachingTech има чудесно ръководство и калкулатор.

Следва ускорението на S-кривата на ред 1301 (configuration.h), което намалява вибрациите и подобно на функцията за дрънкане е сравнително старо и изместено на заден план в полза на новите функции. Една от тях е линейното изпреварване (Linear Advance). Тази функция контролира скоростта на екструдирания обем по време на промените в ускорението. Забелязвали ли сте, че при отпечатване на 90-градусови ъгли моделът може да се издуе малко там? Именно това е целта на линейния аванс.

По отношение на фърмуера, той много прилича на отклонението на съединението (Junction Deviation). Отидете на ред 2205 от configuration_adv.h и ще го намерите (configuration_adv.h). Всичко, което трябва да направите, е да го разкоментирате, за да бъде дефиниран. След това трябва да го калибрирате, за да намерите правилната стойност, наричаме я стойност k, по подразбиране тя е 0,22.

Калибрирането на стойността K също много прилича на калибрирането на стойността на отклонението. С него отпечатваме нещо с различни стойности и виждаме коя работи най-добре. За щастие, Marlin има абсолютно брилянтен калкулатор, който можете да използвате, за да разберете всичко това.

13. Z-сонда, нивелиране на леглото, промяна на посоката на движение на двигателя

На ред 1311 стигаме до нивелирането на леглото и Z-сондата (configuration.h) и това е абсолютно огромен раздел, тъй като има много различни методи за нивелиране не само на добавките за автоматично нивелиране, но и на много други неща. Ако желаете да научите повече за фърмуера за BLTouch или подобни устройства, препоръчваме видеото от TeachingTech за това как да накарате BLTouch да работи на почти всяко устройство.

Необходимо ли е да обърнете посоката на движение на вашия мотор? Понякога това се налага при ъпгрейд на екструдера или смяна на стъпковия драйвер. В Marlin има много функции, които биха изисквали да обърнете посоката, но сега не е нужно да го правите. Когато компилирате фърмуера си и го актуализирате, просто опитайте да задвижите двигателя и вижте дали той върви в правилната посока. Когато трябва да промените посоката, отидете на ред 1698 и променете INVERT_[X/Y/Z]_DIR на false или true

14. Размер на плочата и сензори за свършване на филамента

Следващата стъпка на ред 1753 е размерът на плочата за печат (configuration.h). Плочата трябва да имат поне малко свободно пространство, така че не искате моделът ви да се отпечатва твърде близо до ръба на леглото. Поради тази причина можем да зададем нашата min_position като 0, което ще бъде точката, в която крайният ограничител или безсензорното насочване спира тази ос при автоматично насочване, което може да изисква малко свободно пространство или не. Това наистина зависи от геометрията на вашата каретка и позицията на плочата, може би endstop-a вече е на подходящо разстояние от ръба на плочата или може би дори не е на плочата, в който случай се нуждаете от свободно пространство, така че просто редактирайте min_position, за да включите вашия марж в mm, и след това преместете каретата към противоположната страна на плочата до точката, която не трябва да надхвърля, и това е вашата max_postion. Това е точката, до която се ограничават всички ходове.

Следват сензорите за свършване на филамента на ред 1818 (configuration.h). Най-лесният начин да настроите сензора е да използвате нормален ограничител с малка ролка в края. Тази ролка е доста важна, защото без нея, ако издърпате филамента, тя ще се огъне или дори ще счупи металната лента, което ще направи превключвателя безполезен или ненадежден. Има и други варианти, като например оптосензор, който според мен е много по-надежден. Никога не сме имали проблем със сензора на Prusa mk3, но сензорите за крайни спиращи елементи са толкова лесни за добавяне, евтини са и с правилния дизайн могат да работят отлично. Така че, ако искате такъв, разкоментирайте filament_runout_sensor на ред 1830, искате #define FIL_RUNOUT_ENABLED_DEFAULT да бъде активиран и да бъде настроен на true и ви е необходим само 1, освен ако нямате двоен екструдер, така че задайте #define NUM_RUNOUT_SENSORS на 1. Определено искате командата M600 да бъде активирана (повече за това малко по-късно), така че включете ред 1877 (configuration.h).

Трябва също да намерите ADVANCED_PAUSE_FEATURE на ред 2752 (configuration_adv.h) и да го разкоментирате. Тук можете да направите и много други фини настройки, а Marlin има някои много полезни обяснителни коментари към тях, които са доста лесни за разбиране. Променете ги, както желаете, за да бъдат подходящи за вашия принтер.

Най-вече трябва само да го включите и това ще зависи от вашата платка, но можете и да го промените, ако искате. За да проверите къде е пинът по подразбиране, можете да отидете в SRC, PINS и модела на вашия процесор, да го изберете и да натиснете CTRL F и да напишете FIL_RUNOUT_PIN, за нас на BTT SKR e3 Mini V3.0 пинът е PC15, отидете в Google и въведете името на вашата платка и диаграмата на изводите и погледнете къде е този пин.

15. Командване на М600

Вече споменахме командата M600. Това е за съжаление недостатъчно използвана функция на фърмуера, но наистина полезна, а именно размяната на филамент по време на печат. Ако желаете да отпечатате първите няколко слоя с един цвят, следващите няколко с друг и след това просто да продължите да сменяте цветовете, можете да го направите с тази функция. Командата M600 ще спре принтера, ще премести печатащата глава в подходяща позиция за паркиране и ще ви позволи да смените филамента. Вижте тази значка, която направихме с помощта на командата M600.

Така че вече активирахме M600 и функцията за разширена пауза по-рано, сега трябва да активираме функцията, която паркира печатащата глава. Затова отидете на ред 2362 и разрешете паркирането на дюзата (configuration.h), тук можете да промените позицията, ако искате, а също и скоростта под подаване и минимална скорост на подаване z.

След това отидете на ред 824 и активирайте екструдиране на максимална дължина (configuration.h), като по този начин ще се подава нов филамент с тази дължина, която е достатъчна, за да се изчисти стария филамент и да се промени изцяло цветът. Тази стойност ще зависи от това дали имате Боудън или екструдер с директно задвижване. Ако имате Боудън с дълга PTFE тръба, тази стойност трябва да е доста висока, а при директно задвижване тя може да е ниска.

Върнете се към функцията за разширена пауза в configuration_adv.h и се уверете, че PARK_HEAD_ON_PAUSE е разкоментирана, така че дюзата да се паркира (configuration_adv.h)

16. Допълнителни функции - EEPROM, настройки за подгряване, почистване на дюзата, пароли, език, чувствителност на енкодера, LCD дисплеи, неопиксели

Следващата функция е EEPROM на ред 2291 и тя определено трябва да бъде разрешена (configuration.h) - тя е като функцията за запаметяване на принтера ви. Така че, ако промените нещо, по принцип каквото и да е с команда gcode, можете да го запазите с команда M500 и то ще се запази. Без това принтерът просто ще се рестартира с настройките на фърмуера, които сте задали на компютъра си. Това прави нещата наистина удобни.

Следват константите за предварително загряване на ред 2335 (configuration.h) и подобно на EEPROM трябва да са там по подразбиране, въпреки че понякога стойностите не са толкова големи. На нас ни харесва те да са малко по-високи от действителната температура на печат, но това не е толкова важно. По подразбиране те са зададени само за температурите на PLA и ABS, но може би обикновено не използвате нито една от тях или може би имате нужда от много предварителни настройки, можете да добавите до 10.

Следващата функция е функцията за чиста дюза на ред 2374 (configuration.h). Тя е полезна за принтер с два екструдера, но може да бъде малко полезна и за принтери с един екструдер, може би ако сте много вманиачени по перфектния първи слой.

След това идва ред на паролите на ред 2498 (configuration.h) - може би не искате детето ви да използва принтера или съквартирант, който не разбира съвсем границите.

Имаме и настройки за поддръжка на LCD на ред 2529 (configuration.h). Ако английският или китайският не е първият ви език, няма проблеми, имате няколко възможности за избор. Ако вашият контролер използва енкодерно колело, можете да промените чувствителността на ред 2602 (configuration.h). По-нататък в настройките на контролера можете да изберете вашия контролер, може би такъв, който има поддръжка на SD карта или може би сензорен екран. Лесен за настройване сензорен екран би бил стоковия дисплей CR-10, това е много прост контролер с енкодерно колело, който се използва в много принтери от сериите CR-10 и Ender.

Можете също така да надградите принтера си с неопиксели, които представляват светодиоди, които можете да прикрепите към принтера си за по-добро осветление или страхотно светлинно шоу и които могат да се управляват чрез менюто, което е наистина хубаво. Проверете тези настройки на ред 3450 (configuration.h).

Накрая е една нова и много готина функция, която е Input Shaping (оформяне на входа). Това е нова функция в Marlin, която може да отмени вибрациите, които могат да причинят грозни дефекти във вашия печат. Вече създадохме видео и ръководство, за да ви помогнем да я настроите.

Този списък в никакъв случай не обхваща всичко, а само дава обща представа за това какви общи промени често се правят. Ако имате някакви проблеми с определена част от фърмуера на Marlin или искате този списък да бъде разширен, уведомете ни. В бъдеще ще разширим това ръководство, за да ви помогнем с всички промени, които искате да направите.