24/05/2020
In de wereld van 3D-printen is precisie alles. Elke beweging van de printkop, elke bocht en elke versnelling heeft directe invloed op de uiteindelijke kwaliteit van het geprinte object. Een van de minder begrepen, maar uiterst belangrijke instellingen die hierbij een rol speelt, is Junction Deviation. Deze geavanceerde functionaliteit, standaard ingeschakeld in firmware zoals Marlin 2.0, probeert de overgang van de printkop tussen twee verschillende bewegingen zo soepel mogelijk te maken. Maar wat is het precies, hoe werkt het, en waarom zou je er aandacht aan besteden?
Junction Deviation is een algoritme dat de hoeksnelheid van de printkop berekent. Dit gebeurt niet willekeurig, maar is afhankelijk van meerdere factoren: de ingestelde versnelling, de hoek van de bocht die genomen moet worden en een specifieke Junction Deviation factor die je zelf instelt. In essentie vervangt het de oudere, meer ‘archaïsche’ jerk-instelling, die enkel afhankelijk was van de hoek van de bocht. Door deze dynamische benadering belooft Junction Deviation een consistentere en potentieel betere printkwaliteit, mits correct toegepast.

- Wat is Junction Deviation precies?
- De invloed van de Junction Deviation factor
- Junction Deviation versus Klassieke Jerk: Een Vergelijking
- Optimale instellingen en beste praktijken
- Veelgestelde Vragen (FAQ)
- Wat is het primaire verschil tussen Junction Deviation en Jerk?
- Moet ik Junction Deviation uitschakelen in Marlin 2.0?
- Hoe vind ik de juiste Junction Deviation waarde voor mijn printer?
- Welke slicer werkt het beste met Junction Deviation?
- Heeft Junction Deviation invloed op de totale printsnelheid?
- Kan Junction Deviation printfouten veroorzaken?
- Conclusie
Wat is Junction Deviation precies?
Laten we dieper ingaan op de kern van Junction Deviation. Waar de traditionele jerk-instelling een vaste snelheid definieerde waarmee de printkop van richting mocht veranderen, ongeacht de versnelling, berekent Junction Deviation deze snelheid dynamisch. Dit betekent dat je in plaats van voor elke situatie (buitenwanden, binnenwanden, infill, travel moves) een aparte jerk-waarde te bepalen, je slechts één Junction Deviation factor instelt. Het algoritme gebruikt deze factor vervolgens om de optimale hoeksnelheid (de ‘jerk’) te berekenen die past bij de huidige versnellingsinstellingen en de hoek van de beweging.
Het grootste voordeel hiervan is de inherente consistentie. Je hoeft niet langer talloze jerk-instellingen te beheren en aan te passen. De printer past de ‘jerk’ automatisch aan op basis van de context. Dit zou moeten leiden tot vloeiendere bewegingen en minder zichtbare artefacten, zoals ghosting of ‘ringing’, die vaak ontstaan bij abrupte snelheidsveranderingen in hoeken.
De keerzijde van de medaille
Hoewel het concept van Junction Deviation veelbelovend is, kent het ook een belangrijk nadeel, vooral als je streeft naar geoptimaliseerde printtijden en -kwaliteit voor verschillende onderdelen van je print. Voor een optimale printervaring wil je doorgaans:
- Lage versnelling en jerk (bijvoorbeeld ~500 mm/s²; 5 mm/s) voor buitenwanden om artefacten zoals ghosting te minimaliseren.
- Medium versnelling en jerk (bijvoorbeeld ~1000-2000 mm/s²; 10-15 mm/s) voor binnenwanden en infill om de printtijd te optimaliseren.
- Hoge versnelling en jerk (bijvoorbeeld ~3000+ mm/s²; 30+ mm/s) voor ‘travel moves’ (verplaatsingen zonder extrusie) om ‘stringing’ te verminderen.
Het probleem ontstaat wanneer je een algemene Junction Deviation factor instelt die geschikt is voor een goede oppervlaktekwaliteit (meestal een lage factor, bijvoorbeeld 0.01 - 0.03). Als je deze factor vervolgens gebruikt om de jerk voor snelle travel moves te berekenen, kom je vaak uit op hoeksnelheden van 10-15 mm/s. Dit is veel te laag voor travel moves, wat resulteert in aanzienlijke stringing, omdat het filament langer de tijd heeft om uit te lekken tijdens de langzame bochten.
Op dit moment is Cura een van de weinige slicers die ondersteuning biedt voor het instellen van verschillende versnellings- en jerk-instellingen op basis van de printsituatie (bijvoorbeeld voor buitenwanden, infill, travel). Dit maakt Cura een aanbevolen keuze als je het maximale uit Junction Deviation wilt halen. Zonder deze gespecialiseerde slicer-ondersteuning kan de standaard inschakeling van Junction Deviation in Marlin 2.0 in feite een belemmering vormen voor geoptimaliseerde prints.

Junction Deviation uitschakelen in Marlin 2.0
Als je de voordelen van gespecificeerde jerk-instellingen voor verschillende printsecties wilt benutten en je slicer dit niet ondersteunt, of als je gewoon terug wilt naar de klassieke jerk-methode, kun je Junction Deviation uitschakelen in Marlin 2.0. Dit doe je door in het bestand Configuration.h de regel #define CLASSIC_JERK te ‘uncommenten’ (het commentaarteken // ervoor te verwijderen).
De invloed van de Junction Deviation factor
De waarde die je instelt voor Junction Deviation is cruciaal en heeft een directe impact op het printgedrag. Deze waarde, vaak aangeduid als JUNCTION_DEVIATION_MM, vertegenwoordigt een ‘afstand’ vanaf de werkelijke hoek. Laten we de impact van deze waarde nader bekijken:
- Kleinere Junction Deviation waarde: Hoe kleiner dit getal, hoe meer de printer zal vertragen bij het naderen van hoeken. Dit resulteert in vloeiendere overgangen en kan de zichtbaarheid van artefacten verminderen, maar het heeft ook nadelen. Een te kleine waarde kan de totale printsnelheid aanzienlijk verlagen en in extreme gevallen leiden tot over-extrusie in de hoeken, omdat de nozzle langer op dezelfde plek blijft terwijl het filament blijft vloeien.
- Grotere Junction Deviation waarde: Een groter getal zorgt ervoor dat de printer sneller door hoeken beweegt. Dit kan de printsnelheid verhogen, wat wenselijk is voor efficiëntie. Echter, een te hoge waarde kan leiden tot merkbare trillingen in het mechanisme van de printer, wat zich uit in ‘ringing’ op het printoppervlak. In zeer extreme gevallen kan het zelfs leiden tot stappenmotorverlies (‘skipping steps’), waarbij de printkop zijn positie verliest en de print mislukt.
Het vinden van de juiste balans is essentieel. Voor een typische cartesiaanse printer met een jerk-instelling van 9 mm/s en een printversnelling van 1500 mm/s², zou de Junction Deviation als volgt berekend kunnen worden:
Junction Deviation = (Jerk^2) / (2 * Versnelling)In dit voorbeeld zou dat:
Junction Deviation = (9^2) / (2 * 1500) = 81 / 3000 = 0.027Een waarde van 0.027 zou dan een goed startpunt zijn voor deze specifieke printerconfiguratie. In het configuration_adv.h bestand van Marlin zou dit er dan zo uitzien:
//
// Use Junction Deviation instead of traditional Jerk Limiting
//
#define JUNCTION_DEVIATION
#if ENABLED(JUNCTION_DEVIATION)
#define JUNCTION_DEVIATION_MM 0.027 // (mm) distance from real junction edge
#endifDe wiskundige achtergrond van deze formule komt voort uit de manier waarop Junction Deviation een ‘virtuele boog’ gebruikt om de hoeksnelheid te berekenen. Bij een 90-graden bocht, waar één as plotseling stopt en de andere as begint te bewegen, is de ‘junction velocity’ (de snelheid in de hoek) gelijk aan de jerk-instelling. Door een virtuele boog met straal R en een afwijking d (de junction deviation) te introduceren, kan via de stelling van Pythagoras de relatie tussen R en d worden afgeleid, die uiteindelijk leidt tot de bovenstaande formule.
Junction Deviation versus Klassieke Jerk: Een Vergelijking
Om de verschillen en voordelen van beide methoden te verduidelijken, volgt hier een vergelijkingstabel:
| Eigenschap | Junction Deviation | Klassieke Jerk |
|---|---|---|
| Berekeningsmethode | Dynamisch, gebaseerd op versnelling, hoek en factor. | Statisch, vaste snelheid voor hoekovergangen. |
| Flexibiliteit | Eén globale factor, maar kan dynamisch worden aangepast indien slicer dit ondersteunt. | Vaste waarde, vereist handmatige aanpassing voor elke situatie. |
| Optimalisatie | Minder parameters om te tunen. Potentieel vloeiendere overgangen. | Vereist meer tuning per situatie (buitenwanden, infill, travel). |
| Artefacten | Ontworpen om ghosting/ringing te verminderen door vloeiende overgangen. | Kan leiden tot meer zichtbare artefacten bij verkeerde instellingen. |
| Stringing | Kan stringing veroorzaken bij travel moves als de JD factor te laag is voor snelle verplaatsingen zonder slicer-ondersteuning. | Effectiever in het verminderen van stringing door hogere jerk voor travel moves. |
| Setup Complexiteit | Eenvoudiger basisinstelling (één factor), maar complexer voor geavanceerde optimalisatie zonder slimme slicer. | Meer initieel werk (meerdere jerk-instellingen), maar direct controleerbaar. |
| Aanbevolen voor | Gebruikers die streven naar optimale printkwaliteit en/of gebruikmaken van geavanceerde slicers zoals Cura. | Gebruikers die meer directe controle willen over elke beweging, of met slicers die geen per-feature instellingen voor JD ondersteunen. |
Optimale instellingen en beste praktijken
Het kiezen tussen Junction Deviation en klassieke jerk, en het vinden van de juiste instellingen, hangt af van je printer, je slicer en je persoonlijke voorkeur voor printkwaliteit versus snelheid.
Wanneer Junction Deviation gebruiken?
Junction Deviation is met name nuttig als je printerbewegingen consistenter wilt maken en je bereid bent te experimenteren met je slicerinstellingen. Als je Cura gebruikt, kun je profiteren van de mogelijkheid om verschillende versnellings- en jerk-instellingen per feature in te stellen. Dit stelt je in staat om de voordelen van JD te benutten (vloeiende hoeken) zonder de nadelen (stringing bij travel moves). Begin met de aanbevolen waarden (bijvoorbeeld 0.02 - 0.03) en pas deze stapsgewijs aan op basis van testprints.
Wanneer terugvallen op Klassieke Jerk?
Als je slicer geen geavanceerde versnellings- en jerk-instellingen per feature ondersteunt, kan het vaak voordeliger zijn om Junction Deviation uit te schakelen en terug te vallen op klassieke jerk. Dit geeft je meer controle over de snelheid van travel moves en helpt stringing te voorkomen. Voor de meeste algemene prints met standaard slicers biedt klassieke jerk vaak een betrouwbaardere en makkelijker te tunen ervaring.

Het testen en finetunen van Junction Deviation
Net als bij elke andere belangrijke printerinstelling, is testen cruciaal. Begin met een berekende startwaarde voor JUNCTION_DEVIATION_MM. Print vervolgens testobjecten die veel hoeken en veranderingen in bewegingsrichting bevatten. Let op:
- Ghosting/Ringing: Als je ‘echo’s ziet van scherpe randen op het printoppervlak, kan je JD-waarde te hoog zijn. Verlaag deze geleidelijk.
- Over-extrusie in hoeken: Als hoeken ‘uitpuilen’ of dikker lijken, kan de JD-waarde te laag zijn, waardoor de printer te veel vertraagt. Verhoog deze lichtjes.
- Stringing: Als je veel ‘spinnenwebben’ of filamentdraden ziet tussen verschillende delen van je print, vooral na travel moves, is de hoeksnelheid tijdens travel moves waarschijnlijk te laag. Dit kan een indicatie zijn om JD uit te schakelen en over te stappen op klassieke jerk als je slicer niet de mogelijkheid biedt om de versnelling voor travel moves onafhankelijk te verhogen.
Onthoud dat de versnelling een integraal onderdeel is van de Junction Deviation berekening. Optimaliseer je versnellingsinstellingen (voor extrusie en travel) in je slicer voordat je uitgebreid begint te tweaken aan de Junction Deviation factor zelf. Een goed afgestelde versnelling legt de basis voor effectieve Junction Deviation.
Veelgestelde Vragen (FAQ)
Wat is het primaire verschil tussen Junction Deviation en Jerk?
Het primaire verschil is hoe de hoeksnelheid wordt berekend. Jerk is een statische, vaste snelheidslimiet voor richtingsveranderingen, ongeacht de versnelling. Junction Deviation is dynamisch en berekent de hoeksnelheid op basis van de versnelling, de hoek van de bocht en een JD-factor. Het past zich dus aan de context aan, terwijl jerk dit niet doet.
Moet ik Junction Deviation uitschakelen in Marlin 2.0?
Niet noodzakelijk. Het hangt af van je slicer en je prioriteiten. Als je Cura gebruikt en profiteert van de per-feature instellingen voor versnelling en jerk, kan Junction Deviation zeer voordelig zijn. Als je een andere slicer gebruikt die deze functionaliteit niet biedt en je last hebt van stringing door trage travel moves, kan het uitschakelen van Junction Deviation door #define CLASSIC_JERK te uncommenten een betere oplossing zijn.
Hoe vind ik de juiste Junction Deviation waarde voor mijn printer?
Begin met een berekende waarde op basis van je huidige jerk- en versnellingsinstellingen (bijv. (Jerk^2) / (2 * Versnelling)). Test vervolgens met kleine aanpassingen. Print testobjecten met scherpe hoeken en verschillende bewegingspatronen. Let op artefacten zoals ghosting, ringing en over-extrusie in hoeken. Verlaag de waarde voor minder trillingen, verhoog voor snellere hoeken, maar wees voorzichtig om geen stappen te missen.
Welke slicer werkt het beste met Junction Deviation?
Volgens de informatie is Cura een van de weinige slicers die geavanceerde ondersteuning biedt voor het afzonderlijk instellen van versnelling en jerk voor verschillende printfuncties (zoals buitenwanden, infill, travel moves). Dit maakt het mogelijk om de voordelen van Junction Deviation volledig te benutten zonder de nadelen.

Heeft Junction Deviation invloed op de totale printsnelheid?
Ja, absoluut. Een kleinere Junction Deviation waarde resulteert in langzamere hoekovergangen, wat de totale printsnelheid kan verminderen, vooral bij objecten met veel details en scherpe hoeken. Een grotere waarde versnelt de hoeken, wat de printsnelheid kan verhogen, maar dit brengt risico’s met zich mee zoals trillingen en ‘ringing’.
Kan Junction Deviation printfouten veroorzaken?
Ja, onjuiste Junction Deviation instellingen kunnen leiden tot printfouten. Een te lage waarde kan over-extrusie en een te lage printsnelheid veroorzaken. Een te hoge waarde kan leiden tot trillingen, ‘ringing’, en in extreme gevallen zelfs tot het missen van stappen door de stappenmotoren, wat resulteert in ‘layer shifts’ en mislukte prints. Het is een delicate balans.
Conclusie
Junction Deviation is een krachtige en geavanceerde functie in 3D-printerfirmware zoals Marlin 2.0, ontworpen om de bewegingen van de printkop te optimaliseren en de printkwaliteit te verbeteren door dynamisch de hoeksnelheid te berekenen. Hoewel het de potentie heeft om traditionele jerk-instellingen te overtreffen, vereist het een goed begrip van de werking en de interactie met de slicerinstellingen.
Door te experimenteren met de Junction Deviation factor en, indien mogelijk, een slicer te gebruiken die gedifferentieerde versnellings- en jerk-instellingen ondersteunt, kun je de prestaties van je 3D-printer significant verbeteren. Het is een instelling die, mits goed afgesteld, kan leiden tot merkbaar vloeiendere prints en een reductie van veelvoorkomende artefacten. Neem de tijd om het te begrijpen en te tunen; je prints zullen je dankbaar zijn.
Als je andere artikelen wilt lezen die lijken op Junction Deviation: Optimaliseer 3D-Prints, kun je de categorie Mode bezoeken.
