Hoe configureer je Marlin-firmware?

Hoe configureer je Marlin-firmware?

  1. Eerste stappen
  2. Serial Ports, Baudrate, Bluetooth, aangepaste naam
  3. Stepper drivers
  4. Sensorloze homing
  5. Microstepping en Stealthchop
  6. PSU-besturing
  7. Thermische instellingen - Thermistor en Max/Min Temp
  8. PID-instellingen
  9. Veiligheid - koude extrusie en thermische runaway
  10. Mechanische instellingen - Corexy, lijnprinter, robotarm
  11. Eindstopinstellingen
  12. Bewegingsinstellingen - versnelling etc. ook in combinatie met de linear advance
  13. Z-sonde en bednivellering
  14. Bedgrootte en filament runout sensors
  15. M600
  16. Extra functies - EEPROM, voorverwarmingsinstellingen, nozzlereiniging, print job timer, wachtwoord, taal, SD-kaartondersteuning, encodergevoeligheid, luidsprekers, LCD's, neopixels

Een korte opmerking voordat we beginnen - ik zal regelnummers vermelden zodat het gemakkelijker is om de juiste firmwareregel te vinden. Afhankelijk van welke firmware je gebruikt of welke configuratiebestanden je gebruikt, kan dit een beetje verschillen, maar het is nog steeds een relatief eenvoudige oplossing om de juiste regel te vinden.

Statements in Marlin worden definities genoemd, ze kunnen aan, uit of aan zijn met een te kiezen waarde. Diegene die aan staan zijn niet gecommentarieerd, wat betekent dat ze geen commentaar hebben, wat een dubbele schuine streep is. In principe schakelt de dubbele schuine streep alles uit en kun je commentaar schrijven als je jouw firmware wilt personaliseren zodat deze later nuttig is voor jezelf of anderen. Alles wat je schrijft met een // aan het begin van de regel wordt door de firmware volledig genegeerd wanneer deze wordt gecompileerd.

1. Eerste stappen

Om Marlin-firmware te bewerken, heb je de juiste software nodig. Hoewel er een paar opties zijn, gebruiken de meesten Visual Studio Code. Deze software kan gratis worden gedownload hier, zowel voor Windows, Linux als Mac.

Om dit te doen heb je ook de Platform IO extensie nodig. Zodra VS Code is geïnstalleerd, ga je naar de extensies in de werkbalk aan de linkerkant (het pictogram met de 4 vierkantjes), zoek je naar Platformio en klik je op Installeren. Je kunt ook de auto-build Marlin plugin gebruiken, die de dingen wat sneller maakt als je jouw bord instelt met de juiste processor, maar we kunnen dit ook op de oude manier doen. We zullen later in de tekst laten zien hoe dat moet.

Als je alles bij elkaar hebt, moet je de Marlin-firmware ophalen. Dus ga naar Marlin GitHub en download de laatste versie

Je zult zien dat er een bug fix versie is en een gewone versie. De bug fix versie bevat de laatste wijzigingen in de firmware. Deze is nuttig, maar ook het minst stabiel, omdat er voortdurend aan wordt gewerkt. Het Marlin-team is echter erg goed in het opsporen en oplossen van bugs en fouten, dus we gebruiken deze versies graag.

Klik op code in de rechterbovenhoek om de firmware als zip te downloaden, pak de zip-map uit en laad de VS Code, gGa dan naar het bestand en open de map en de Marlin-firmware.

Daarna volgen de configuratiebestanden, specifieke printerconfiguraties zijn ook te vinden op GitHub.

Deze zijn vooral nuttig als je de firmware slechts lichtjes wilt wijzigen. Als je bijvoorbeeld een printer hebt, bijvoorbeeld een Ender 3, met een nieuwe hotend en je moet de thermistor in de firmware veranderen, dan kun je gewoon de configuratiebestanden voor die printer downloaden en ze in de Marlin-map plakken die je net hebt gedownload. Op die manier zijn alle specifieke kenmerken van de standaard firmware van de printer al aanwezig en hoef je alleen de waarden van de thermistor te veranderen.

Wanneer je een firmwaremap klaarmaakt voor bewerking, is er één heel belangrijk punt waar je rekening mee moet houden voordat je kunt beginnen, en dat is het kiezen van het juiste moederbord en processormodel.

Als je naar de configuratie.h pagina in de verkenner aan de linkerkant gaat, ziet je op regel 70 een commando dat aangeeft welk moederbord wordt gebruikt. Voor veel borden is er maar één versie, maar sommige hebben verschillende varianten of sommige printers hebben in het verleden andere boards gebruikt. Je kunt het beste jouw printer openen en controleren welk board is geïnstalleerd.

Om er precies achter te komen hoe jouw bord in de firmware heet, gaat je terug naar de verkenner aan de linkerkant en dan naar src, core en boards.h. Dit is een lijst van alle boards die Marlin ondersteunt. Druk dan op CTRL F en voer het merk van jouw board in, dus bijvoorbeeld Creality Ender 3 boards, voer Creality in. Scroll naar beneden om alles wat met dat sleutelwoord te maken heeft over te slaan en je vindt de Creality V4 borden. Je kunt gewoon Board_Creality_V4 gebruiken. Dit is in principe hetzelfde proces voor elk merk moederbord, zolang het ondersteund wordt door die versie van Marlin. Je zult ook de processor varianten voor dit board vinden, voor de versie 4 boards zien we hier STM32F103RC en STM32F103RE.

Noteer beide, ga terug naar Configuration.h en kopieer het board in het gebied na #define MOTHERBOARD. Ga nu ook naar de verkenner-werkbalk aan de linkerkant en klik op het tabblad platform.io om ervoor te zorgen dat het juiste processormodel in de default_envs regel bovenaan staat

Nu kunnen we de firmware bewerken. Er zijn twee hoofdpagina's die we zullen bewerken, de meeste in config.h, maar sommige ook in config_adv.h.

2. Serial Ports, Baudrate, Bluetooth, aangepaste naam

Als je naar config.h gaat, kunnen we daar beginnen. We zijn al klaar met het moederbord, dus laten we verder gaan met de volgende definitie: Serial Ports.

Zowat elke printer gebruikt een seriële poort om verbinding te maken met verschillende apparaten. In de meeste gevallen wordt er maar één gebruikt, maar als je iets anders aansluit, zoals een touchscreen met een SD-kaart of een USB-poort, moet je misschien een beetje experimenteren. Dat gaan we hier niet doen, dus laten we dat voor nu vergeten.

De baudrate is de communicatiesnelheid voor deze poorten. Deze kan variëren, maar de meeste gebruiken een baudrate van 115200.

Je vindt hieronder meer opties voor seriële poorten, maar we kunnen deze ongedefinieerd laten omdat je waarschijnlijk geen extra seriële poorten nodig hebt.

Er zijn ook opties voor Bluetooth-connectiviteit, wat zeldzaam is voor printers, en een optie om de naam van de printer te veranderen, die standaard is uitgeschakeld. Je ziet deze naam op het LCD-scherm wanneer jouw printer is ingeschakeld. Zet de optie aan en voer een nieuwe naam in als je daar zin in hebt.

3. Stepper drivers

Daarna volgt de stepper driver. Klinkt moeilijk, maar dat is het helemaal niet. Elke printer gebruikt stepper drivers, zij sturen de motoren aan. Vroeger gebruikten printers de A4988 of andere varianten, waardoor de motoren nogal wat lawaai maakten. Tegenwoordig worden TMC2208 of TMC2209 als standaard drivers in de meeste printers geïnstalleerd. Er zijn echter een aantal andere drivers met verschillende functies en voordelen, zoals stappensplitsing, maximale stroom of sensorloze homing, waarbij geen fysieke eindschakelaars nodig zijn voor de homing van de assen.

Je kunt eenvoudig instellen welk stuurprogramma je wilt gebruiken voor welke toegang. Vaak geeft het moederbord van een printer niet aan welke stepper drivers worden gebruikt. Soms gebruikt een bord ingebouwde stepper drivers, waardoor deze niet verwijderd kunnen worden. In dat geval wordt waarschijnlijk niet aangegeven welke driver wordt gebruikt, maar soms is er een markering op het moederbord die kan aangeven welke driver wordt gebruikt. Creality V4-borden hebben bijvoorbeeld een kleine code op de SD-kaartconnector. Als er "T8" staat, betekent dit dat de TMC2208 driver wordt gebruikt. Sommige moederborden gebruiken verwijderbare drivers, wat het voordeel heeft dat je ze gemakkelijk kunt vervangen in geval van een defect - als dat gebeurt met geïntegreerde drivers, moet je het hele moederbord vervangen.

4. Sensorloze homing

Ik vind de sensorloze homing erg goed. Het is niet zo nauwkeurig als fysieke eindpunten, maar het vermindert de behoefte aan kabels, en ik haat kabels. Niet alle drivers ondersteunen sensorloze homing, bijvoorbeeld de zeer populaire TMC2208 drivers kunnen deze functie niet gebruiken. De TMC2209 drivers daarentegen wel.

Om sensorless homing werkend te krijgen zijn enkele fysieke veranderingen aan het moederbord nodig, maar maak je geen zorgen, ze zijn echt eenvoudig. Dit kan variëren afhankelijk van het moederbord, maar meestal gaat het om het instellen van jumpers op bepaalde pinnen. Zie de handleiding van de SKR Mini E3.

In de firmware, moet je het volgende doen om sensorloze homing te krijgen: Eerst moet HOMING_BUMP op 0 worden gezet in regel 210 (configuration_adv.h) - dit wordt normaal gebruikt voor eindstops waarbij de as de eindstop raakt, een stukje terug beweegt en dan langzaam weer de eindstop raakt. Standaard is dit een paar mm, we moeten het uitzetten.

In regel 1174 moet ENDSTOP_INTERRUPTS_FEATURE (configuration.h) ongedefinieerd zijn.

Het volgende punt is stroom. Het aardige van deze moederborden ten opzichte van oudere is dat de motorstroom op oude 8-bit borden niet door de firmware kon worden veranderd. Je moest de Vref op het moederbord veranderen door aan een kleine trimpot te draaien die erg gevoelig was. Draai het een klein beetje te veel en het vliegt naar 1,5, terwijl je maar 0,8 (of 800 mA) nodig hebt voor de meeste xy-motoren. Je kunt de regels voor het instellen van de stroom vinden vanaf 2386 (configuration_adv.h).

De stroom die je nodig hebt in je firmware hangt af van de stepperdriver en de motor. Als je een vrij gemiddelde motor hebt zoals een 42-34 motor, hoeft de stroomwaarde hier maar 800 te zijn. Als je een technisch gegevensblad van je motor vindt, zie je misschien dat de maximale stroom 1,5A of 1500mA is. Maar voer geen 1500 in de firmware in, dat is een absolute piekwaarde, wij werken niet met piekwaarden, dat zou slecht aflopen. We zoeken naar de RMS-waarde, de kwadratische gemiddelde waarde van de stroom. Het berekenen van de juiste stroom is eigenlijk niet zo eenvoudig, maar er zijn calculators, zoals deze van ALL3DP.

Stroombeheer is cruciaal bij het kalibreren van sensorloze homing, omdat je er misschien een beetje mee moet spelen om ervoor te zorgen dat het optimaal werkt.

MONITOR_DRIVER_STATUS staat op regel 3204 (configuration_adv.h) - dit controleert periodiek de drivers om hun status te bepalen. Marlin kan automatisch de stroom van de driver verminderen als de driver een waarschuwing voor te hoge temperatuur meldt. Zet dat dus aan.

Je kunt ook TMC_DEBUG inschakelen op regel 3317 (configuration_adv.h), waar je meer informatie over de stepper drivers kunt zien.

Nu kunnen we SENSORLESS_HOMING aanzetten in regel 3272 (configuration_adv.h), we moeten dit aanzetten voor X en Y en de overtrekgevoeligheid instellen, dit is hoe gevoelig de drivers de overtrek kunnen meten, dat wil zeggen wanneer de motor de printkop naar een kant van zijn as beweegt en het einde raakt. Als hij te laag is, zal hij niets detecteren en de motor blijven draaien, zelfs als de printkop de zijkant raakt, als hij te hoog is, "detecteert" hij voortdurend de overtrek, zelfs als de printkop daar gewoon zit. Na het flashen van de firmware heeft het LCD nu een menu waar je de waarden voor overtrekgevoeligheid en stroom kunt veranderen. De waarden voor overtrek lopen van 0-255, dus de eerste poging moet in het midden rond 128 liggen. Pas de waarde dienovereenkomstig aan en probeer het dan opnieuw en opnieuw en opnieuw. Als je vast komt te zitten en het geen verschil maakt welke waarde je kiest, dan moet je de stroomsterkte aanpassen, een klein beetje verhogen. EEN KLEIN BEETJE! Als het 800 milliampère is, verhoog het dan tot 850 en probeer het opnieuw.

Je kunt ook define IMPROVE_HOMING_RELIABILITY iets verderop in regel 3291 gebruiken, wat precies is wat het klinkt.

In het geval dat u zich afvraagt, sensorloos homing op de Z-as is lastig, vooral op printers die spindels gebruiken voor Z-beweging, wat de meeste printers doen. Om jezelf hier problemen te besparen, schakel sensorloze homing voor de Z-as niet in.

5. Microstepping en Stealthchop

Op regel 2838 staat nog een driverfunctie X_MICROSTEPS (configuration_adv.h). Stepper drivers bewegen in stappen, meestal 1,8 graden per stap, wat erg nauwkeurig is, maar kan dit nog nauwkeuriger? Behalve een andere motor te nemen die een kleinere meting per stap heeft, kun je microstepping gebruiken, wat de driver vertelt de motor een signaal te geven om minder dan 1,8 graden te bewegen, wat handig is voor een zeer nauwkeurige instelling. De standaardwaarde is 16, maar je kunt hoger gaan, wat natuurlijk betekent dat het aantal stappen dat nodig is om een motor een bepaalde afstand te laten afleggen ook verandert. Daarom heeft Marlin op regel 2833 (configuration_adv.h) de functie genaamd interpolate die, als je hem op true zet, automatisch elke motorstapwaarde "interpoleert" zodat je niets handmatig hoeft te veranderen. Dus als je de microstap van 16 naar 32 verandert, moet je de stappen voor alle motoren aanpassen om de nieuwe waarde te bereiken. Als je de interpolatie activeert, gebeurt dit automatisch.

Het volgende item is STEALTHCHOP in regel 3140 (configuration_adv.h). Zet dit aan, het maakt alles superstil - je moet ook CHOPPER_TIMING CHOPPER_DEFAULT er net onder aanvinken. U hebt waarschijnlijk een 24 V printer, dus stel deze in op 24 V. Natuurlijk hangt het vermogen om Stealthchop te gebruiken ook af van je driver, maar gelukkig kunnen de meeste het tegenwoordig aan.

6. PSU-besturing

Terug in Configuration.h vinden we op regel 388 de PSU-besturing (configuration.h), die interessant kan zijn als we onze printer automatisch willen uitzetten nadat een printopdracht is voltooid.

7. Thermische instellingen - Thermistor en Max/Min Temp

De volgende stap is de thermische instellingen in regel 430 (configuration.h), en dit is waarschijnlijk de meest gevraagde firmware-tutorial van allemaal. Voor veel mensen is een hotend upgrade de eerste verandering die ze maken. Dus als je een Ender 3 hebt en wilt upgraden naar een Revo hotend, wat doe je dan? Nou, er zijn twee dingen die je moet veranderen, de eerste is de thermistor. De meeste printers gebruiken een 100k thermistor, waarvoor het sensortype in Marlin "1" is. De Revo en vele andere thermistors gebruiken echter het nummer 5, wat ook een 100k thermistor is, maar dan van Semitec. Zoals je ziet zijn er een paar merken die dit type thermistor gebruiken. Maar misschien wil je upgraden naar iets sterkers zoals een PT1000? Dat hangt af van de PT1000, maar de meeste gebruiken het sensornummer 1047 met een 4,7 ohm pullup.

Je kunt hetzelfde doen voor temp_sensor_bed in regel 536 (configuration.h).

Het andere deel van de hotend upgrade is de HEATER_0_MAXTEMP in regel 611 (configuration.h). PTFE hotends zijn over het algemeen beperkt tot 260°C, wat in Marlin 275°C is. Ik weet niet zeker waarom dit is gedaan, maar welke temperatuur je hier ook opgeeft, de werkelijk haalbare temperatuur van jouw printer zal 15°C lager zijn. Dus als je een 300°C hotend hebt, moet ten minste 315°C worden ingevoerd als maximale waarde.

Op regel 597 staat ook HEATER_0_MINTEMP, die het verwarmingselement automatisch uitschakelt als het deze temperatuur bereikt. Trouwens, als je een printer hebt die de verwarming uitschakelt of een mintemp-fout weergeeft en je weet niet zeker waarom, kan het zijn omdat je printer in een te koude omgeving staat. We krijgen hier veel vragen over in de winter, omdat veel mensen hun printer in de garage bewaren en dit gemakkelijk kan gebeuren.

Op regel 623 heb je een thermische overshoot (configuration.h) die temperaturen boven de maxtemp-waarde toestaat voordat hij de machine uitschakelt. Overshoot kan optreden als je verwarming niet gekalibreerd is, wat ons leidt naar regel 633 en de PID tuning (configuration.h).

8. PID-instellingen

Dit synchroniseert het verwarmingselement en de thermistor, zodat de verwarming nauwkeurig is. Het belangrijkste hier is regel 659, die de standaardwaarden geeft voor proportioneel, integraal en afgeleide. Je hoeft hier niet echt iets te veranderen, maar als je van verwarmingselement verandert, is het een goed idee om een PID-tune te doen, die in wezen jouw verwarmingselement of thermistor kalibreert zodat de temperatuur niet te veel schommelt als jouw printer draait. Ik zou dus aanraden dit te doen na een hotend-upgrade. Er zijn verschillende manieren om dit te doen, maar een eenvoudige manier is om dit in te schakelen in het LCD-menu op regel 803. Een andere methode is om de printer via USB op de computer aan te sluiten en een terminalprogramma als Pronterface te gebruiken.

In deze terminal kun je gcode-commando's invoeren. Het juiste commando voor PID tuning is "M303 E0 S210 C10 U".

Hier is M303 is het commando om het tuning-proces te starten.

E0 verwijst naar het gebruikte verwarmingselement (E0 is de standaardinstelling voor bijna alle printers met één extruder).

S210 verwijst naar de temperatuur van 210°C, die geschikt is voor PLA, maar je kunt het veranderen als je vooral andere filamenten wilt gebruiken.

C7 geeft aan hoe vaak je de test moet uitvoeren. Hoe vaker je de test uitvoert, hoe nauwkeuriger hij is, maar wij hebben ondervonden dat niet meer dan 7 pogingen nodig zijn.

Als je dit commando hebt ingevoerd, wordt de test uitgevoerd en worden de waarden voor Kp, Ki en Kd berekend.

Als je deze waarden eenmaal hebt, kun je ze in de terminal invoeren met het commando M301, zoals M301 P30 I3 D60.

Sla vervolgens jouw instellingen op met een M500-commando, en je bent klaar.

Er is nog wat meer over PID bed- en printkamerbesturing. PID tuning voor je bed is niet zo noodzakelijk als je hotend, hotend veranderingen zijn aanzienlijk frequenter dan het vervangen van de thermistor op je bed, maar het is er als je het moet gebruiken.

9. Veiligheid - koude extrusie en thermische runaway

Het volgende belangrijke punt is de thermische runaway-beveiliging in regel 827 (configuration.h), die je zeker moet inschakelen! Deze schakelt de printer uit als de temperatuur boven het verwachte niveau stijgt. Misschien is de thermistor verschoven en weet je dat niet. Zonder dat blijft de temperatuur stijgen en verandert de waarde van de thermistor nauwelijks. Dit kan gevaarlijk zijn, dus ze deze instelling aan!

Er is ook een functie om koude extrusie te voorkomen in regel 816 (configuration.h). Deze voorkomt dat de extrudermotor wordt geactiveerd als de temperatuur onder de ingevoerde waarde ligt. Standaard is hier een waarde van 170 ingesteld. Welk filament je normaal gebruikt met jouw printer vertelt je welke waarde hier gebruikt moet worden. Als je bijvoorbeeld voornamelijk PETG print, moet je een temperatuur van ongeveer 220°C instellen

10. Mechanische instellingen - Corexy, lijnprinter, robotarm

Nu volgen de mechanische instellingen, en aangezien we een Corexy-opstelling gaan gebruiken, is dit erg belangrijk. Hier moeten we Corexy definiëren.

Er zijn hier ook andere kinematica zoals delta, lijnprinter of als je een robotarm hebt, kun je dat hier ook definiëren.

11. Eindstopinstellingen

Daarna volgen de eindstopinstellingen in regel 1071 (configuration.h). Dit is simpelweg waar de eindstops worden geactiveerd.

Hier is nog een kleine functie voor Endstop Noise Threshold. Lang geleden moest ik deze functie gebruiken toen ik extra lange kabels aan een printer wilde bevestigen zodat alle elektronica zich buiten de behuizing bevond. Om een of andere reden veroorzaakten de lange kabels fouten bij de homing, maar deze functie loste het probleem op.

12. Bewegingsinstellingen - versnelling etc. ook in combinatie met de linear advance

Daarna volgen de bewegingsinstellingen op 1194 (configuration.h) en het allereerste zijn de standaard stappen. Zoals eerder vermeld, draaien stappenmotoren in stappen van 1,8 graden (tenzij je een 0,9 graden motor hebt). Wanneer de motor een riem, schroef of tandwiel laat draaien, moet hij een bepaald aantal stappen nemen om het onderdeel de gewenste hoeveelheid te laten bewegen. Meestal moet dit veranderd worden bij extruder upgrades, waarbij je eigenlijk alleen het getal op deze regel hoeft te veranderen. Normaal gesproken geven fabrikanten de extruderstappen (of esteps) op, maar het kan zijn dat deze moeten worden aangepast, dus doen wij een esteps-kalibratie. Er zijn veel video's hierover.

Esteps en eigenlijk alle stepping waarden hoeven niet in de firmware geconfigureerd te worden, je kunt gewoon jouw opstart gcode bewerken om een nieuwe waarde in te voegen met een M92 commando. Dit is de gemakkelijkste manier bij een extruder upgrade. Je hoeft in de meeste gevallen jouw firmware niet te updaten, je kunt gewoon de gcode gebruiken in jouw slicer of via Pronterface zoals we al hebben laten zien. Dit kan eigenlijk voor alle waarden in de categorie bewegingsinstellingen met M203 voor maximale voedingssnelheid, M201 voor maximale versnelling, M204 voor standaard versnelling en M205 voor jerk settings. Als je bijvoorbeeld de extruderstappen voor een nieuwe Bondtech extruder wilt veranderen, hoef je alleen maar M92 E415 in de opstart-Gcode te schrijven (M92 is het commando om de stappen van een motor te veranderen en E geeft aan dat het om de extrudermotor gaat), dat is alles. Deze waarden zijn dus niet in steen gebeiteld en kunnen vrij gemakkelijk worden veranderd zonder de firmware te veranderen.

Als je trouwens geïnteresseerd bent in gcode-commando's in het algemeen en de bijbehorende parameters, kun je kijken op de website van Marlin, met een lijst van alle gcode-commando's, waarvan sommige erg nuttig kunnen zijn. Hier is een voorbeeld van de gcode van de M204 startversnelling.

Jerk is een functie die de veranderingssnelheid van de versnelling van een as beperkt, vooral wanneer de printkop stilstaat en dan plotseling begint te bewegen, maar ook wanneer hij 90 graden draait. Het is een relatief oude functie in firmware die nog steeds door veel printers wordt gebruikt, maar nieuwere printers, vooral die met Klipper-firmware, gebruiken iets dat junction deviation heet, dus laten we daar eens naar kijken.

Wat de firmware betreft, is dit heel eenvoudig: ga naar regel 1288 en definieer junction deviation. Zorg er ook voor dat classic_jerk niet gedefinieerd is in regel 1265 (configuration.h). Dan is het firmware gedeelte gedaan, maar je moet nog steeds de waarde voor junction deviation uitzoeken. Die is standaard ingesteld op 0,013 mm, maar dat hangt helemaal af van je printer. Gelukkig is er een eenvoudige test, we hoeven alleen maar een model af te drukken waarbij elke laag een iets andere waarde heeft voor de junction deviation en dan te kijken welke laag het beste print. Merk je veel ringing op, dan is de waarde te hoog. Maar hij mag ook niet te laag zijn, want dat zou het proces vertragen.

TeachingTech heeft een geweldige gids en calculator.

Daarna volgt de S-curve versnelling in regel 1301 (configuration.h), die trillingen vermindert en, net als de jerk, relatief oud is en tegenwoordig vaak is vervangen door nieuwere functies. Eén daarvan is Linear Advance, wat is dat? Nou, het wordt gebruikt om de snelheid van het geëxtrudeerde volume te regelen als de versnelling verandert. Is het je ooit opgevallen dat bij het printen van hoeken van 90 graden de print daar een beetje kromt? Dat is precies waar de Linear Advance voor bedoeld is.

In termen van firmware is het vergelijkbaar met Junction Deviation. Ga naar regel 2205 in configuration_adv.h en je zult het vinden. Het enige wat je moet doen is het commentaar verwijderen zodat het gedefinieerd is. Dan moet je het kalibreren om de juiste waarde te vinden. We noemen het de k-waarde, standaard is die 0,22.

Het kalibreren van de k-waarde is vergelijkbaar met het kalibreren van de Junction Deviation waarde, we printen iets uit met verschillende waarden en kijken welke het beste werkt. Gelukkig heeft Marlin een absoluut briljante calculator die je kunt gebruiken om het allemaal uit te rekenen.

13. Z-sonde en bednivellering

In regel 1311 komen we bij de nivellering van het bed en de Z-sondes (configuration.h). Dit is een zeer uitgebreide sectie omdat er veel verschillende methoden van nivellering zijn, niet alleen automatische nivelleringstoevoegingen maar ook een heleboel andere dingen. Als je je wilt inlezen over firmware voor de BLTouch of soortgelijke apparaten, raad ik de video van TeachingTech aan, waarin wordt gesproken over het laten werken van een BLTouch op vrijwel elk apparaat.

Moet je de richting van jouw motor omkeren? Soms is dit nodig voor extruder upgrades of stepper driver veranderingen. Er zijn veel functies in Marlin die omkering van de richting vereisen, maar dat hoef je nu niet te doen. Wanneer je jouw firmware compileert en flasht, probeer dan gewoon een motor te bewegen en kijk of hij in de juiste richting loopt. Als je de richting moet veranderen, ga dan naar regel 1698 en verander INVERT_[X/Y/Z]_DIR in false of true

14. Bedgrootte en filament runout sensors

Het volgende in regel 1753 (configuration.h) is de bedgrootte. Bedden moeten een beetje speling hebben omdat we niet willen dat ons model te dicht bij de rand van het bed print, dus we kunnen onze min_positie instellen op 0, wat het punt zal zijn waar de eindstop of sensorloze homing deze as zal stoppen bij auto-homing. Misschien is het eindpunt al een redelijke afstand verwijderd van de rand van het bed, of misschien ligt het niet eens op het bed. In dat geval heb je speling nodig, dus wijzig je gewoon de min_positie in mm om jouw speling op te nemen, en verplaatst je de carriage naar de andere kant van het bed, naar het punt waar je niet voorbij wilt, en dat is jouw max_positie, het punt tot waar alle verplaatsingen worden beperkt.

Regel 1818 definieert de filament runout sensors (configuration.h). De eenvoudigste manier om een uitloopsensor in te stellen is het gebruik van een normale eindstop met een klein rolletje aan het einde. Dit rolletje is heel belangrijk, want als je het filament eruit trekt, zal de metalen strip verbuigen of zelfs breken, waardoor de schakelaar onbruikbaar of onbetrouwbaar wordt. Er zijn andere opties, zoals een opto-sensor, die volgens mij veel betrouwbaarder is. Ik heb nooit een probleem gehad met de sensor op de Prusa MK3, maar eindsensoren zijn gemakkelijk toe te voegen, ze zijn goedkoop en met het juiste ontwerp kunnen ze heel goed werken. Dus als je er een wilt gebruiken, uncomment filament_runout_sensor op regel 1830, je schakelt #define FIL_RUNOUT_ENABLED_DEFAULT in en stelt deze in op true. Je hebt er maar 1 nodig, tenzij je een dubbele extruder hebt, dus stel #define NUM_RUNOUT_SENSORS in op 1. Je moet ook het M600 commando ingeschakeld hebben (daarover later meer) dus schakel over naar regel 1877 (configuration.h).

Je moet ook naar ADVANCED_PAUSE_FEATURE gaan op regel 2752 (configuration_adv.h) en het commentaarteken verwijderen. Er zijn een heleboel andere tweaks die je hier kunt maken, en Marlin heeft er een aantal zeer nuttige, gemakkelijk te begrijpen commentaren naast gezet. Verander ze naar eigen inzicht en pas ze aan jouw printer aan.

Alles wat je nu nog moet doen is het bord aansluiten. Afhankelijk van je bord kun je het ook veranderen als je wilt. Om te controleren waar de standaard pin zit kun je naar SRC, PINS en je processormodel gaan, deze selecteren en op CTRL F drukken en FIL_RUNOUT_PIN invoeren, bij ons op een BTT SKR e3 Mini V3.0 is de pin PC15, ga naar Google en typ de naam van je board en pinout diagram in en kijk waar die pin zit.

15. M600

We hebben het M600 commando al genoemd. Het is een helaas te weinig gebruikte maar zeer nuttige firmwarefunctie, namelijk het veranderen van het filament tijdens het printen. Als je de eerste paar lagen in de ene kleur wilt printen, de volgende in een andere en dan steeds van kleur wilt wisselen, kan dat met deze functie. Kijk eens naar deze badge die we met het M600 commando hebben gemaakt.

Dus we hebben M600 en de geavanceerde pauzefunctie al ingeschakeld, nu moeten we de parkeerfunctie voor de printkop inschakelen. Dus ga naar regel 2362 (configuration.h) en activeer "nozzle park". Je kunt hier de positie wijzigen als je wilt, en ook de snelheid onder "aanvoersnelheid" en "minimale z aanvoersnelheid"

Ga nu naar regel 824 en schakel extrude max length in (configuration.h). Dit zal nieuw filament aantrekken tot deze lengte, wat genoeg is om het oude filament te verwijderen en de kleur volledig te veranderen. Deze waarde hangt af van of je een bowden of een direct drive extruder gebruikt. Bij een bowden met een lange PTFE-buis moet deze waarde vrij hoog zijn, bij een direct drive laag.

Ga vervolgens terug naar de geavanceerde pauzefunctie in configuration_adv.h en zorg ervoor dat PARK_HEAD_ON_PAUSE is gedecommentarieerd, zodat de nozzle dienovereenkomstig wordt geparkeerd (configuration_adv.h).

16. Extra functies - EEPROM, voorverwarmingsinstellingen, nozzlereiniging, print job timer, wachtwoord, taal, SD-kaartondersteuning, encodergevoeligheid, luidsprekers, LCD's, neopixels

Het volgende item is EEPROM in regel 2291 en moet zeker worden ingeschakeld (configuration.h) - het is als de geheugenfunctie op jouw printer. Dus als je iets verandert, eigenlijk alles met een Gcode-commando, kun je dat opslaan met een M500-commando en blijft het bewaard. Zonder die functie start de printer gewoon opnieuw op met de firmware-instellingen die je op jouw computer hebt ingesteld.

Volgende zijn de voorverwarmingsinstellingen in regel 2335 (configuration.h). Net als bij EEPROM zouden ze er standaard moeten zijn, ook al zijn de waarden soms niet zo geweldig. Ik heb graag dat deze waarden iets hoger zijn dan de werkelijke printtemperatuur, maar dat is maar een kleinigheid. Standaard zijn alleen PLA en ABS temperaturen vooraf ingesteld, maar als je die eigenlijk niet gebruikt of veel presets nodig hebt, kun je er tot 10 toevoegen.

Volgende is de clean nozzle functie in regel 2374 (configuration.h). Dit is nuttig voor een dual-extruder printer, maar kan ook nuttig zijn voor een single-extruder printer als je wilt dat de eerste laag perfect is.

Het volgende is het wachtwoord in regel 2498 (configuration.h) - misschien wil je niet dat bijvoorbeeld je kind of huisgenoten de printer gebruiken. Wachtwoordbeveiliging kan in dat geval nuttig zijn, maar als jij de enige bent met toegang tot de printer, is een wachtwoord eigenlijk zinloos.

Wij hebben ook instellingen voor LCD-ondersteuning in regel 2529 (configuration.h). Als Engels of Chinees niet je eerste taal is, is dat geen probleem, je hebt er hier een paar om uit te kiezen. Als jouw besturing een encoderwiel gebruikt, kun je de gevoeligheid wijzigen in regel 2602 (configuration.h). Verderop in de controllerinstellingen kun je jouw besturing selecteren, misschien een met SD-kaartondersteuning of een met een touchscreen.

Je kunt jouw printer ook uitbreiden met neopixels, dat zijn LED's die je aan jouw printer kunt bevestigen voor een betere verlichting of een coole lichtshow. Deze instellingen zijn te vinden in regel 3450 (configuration.h)

Eindelijk is er een nieuwe en erg coole functie genaamd Input Shaping. Dit is een nieuwe functie in Marlin die trillingen kan compenseren die lelijke defecten in jouw print kunnen veroorzaken. We hebben al een video en gids gemaakt om je te helpen bij het instellen.

Deze lijst dekt lang niet alles, maar geeft alleen een overzicht van wat er in het algemeen vaak wordt veranderd. Als je problemen hebt met een bepaald onderdeel van de Marlin-firmware of deze lijst graag uitgebreid ziet, laat het ons dan weten. Wij zullen deze gids in de toekomst uitbreiden om je te helpen met eventuele wijzigingen die je wilt aanbrengen.