Prusa i3 firmware – Marlin met RAMPS board

Marlin Logo

Marlin met RAMPS board
Prusa i3

Deze pagina beschrijft het backuppen, bijwerken of instellen van de software Marlin voor de 3D printer “Prusa i3”, met behulp van de Arduino IDE.

Mijn “Prusa i3” printerconfiguratie (hardware)

– Frame: Prusa i3 Improved for laser cut (wood)
– Controller: Arduino MEGA + RAMPS 1.4 shield + A4988 drivers.
– Stappenmotor X-as: NEMA 17 / 42BYGHW811 / 2.5A(U) / 1.8deg/step / Tandwiel: GT2-20 tands.
– Stappenmotor Y-as: NEMA 17 / 17HS4401 / 1.7A(U) / 1.8deg/step / Tandwiel: GT2-20 tands.
– Stappenmotors Z-as: NEMA 17 / 42BYGHW811 / 2.5A(U) / 1.8deg/step / Stang: M5.
– Extruder: 1 kleur / Bowden Geetech J-head-23QWS.
– Endstops: Makerbot 1.4.
– Heated Bed: MK2B PCB.
– Temperatuursensoren: Weerstand in glas 100K NTC (3950) 1%.
– Display: RepRapDiscount Smart Controller  (LCD 4×20 met draaiknop, buzzer en reset).

Prusa i3 wood voorkant

Prusa i3 wood achterkant 01Prusa i3 wood achterkant 02

Wat heb je nodig?

1) Arduino IDE
2) 3D Printer Firmware – Marlin

Backup maken

Firmware backup
Voordat je begint met het updaten van een (goed werkende) printer, is het verstandig om eerst een backup te maken van de firmware van de Prusa i3, onder het RAMPS bord zit een Arduino MEGA, en backup met avrdude.exe is te maken met het commando:

avrdude.exe -v -c stk500v2 -p m2560 -P COM4 -b 115200 -U flash:r:prusa.hex:i

Of

avrdude.exe -v -c wiring -p m2560 -P COM4 -b 115200 -U flash:r:prusa.hex:i

Ps. avrdude is te vinden in: ArduinoIDE\hardware\tools\avr\bin\

(eventueel avrdude.conf uit ArduinoIDE\hardware\tools\avr\etc\ ook hierheen kopiëren)

Eeprom en printer instellingen
Als je bijvoorbeeld het softwarepakket Repetier Host hebt geïnstalleerd doe je er goed aan de printer instellingen en Eeprom instellingen te noteren, hieronder een screen van de instellingen van een goed werkende Prusa i3 “Wood” printer:

Prusa i3 - Printer informatie

Prusa i3 - Eeprom instellingen

Installeren van Marlin

Nadat je ArduinoIDE hebt geïnstalleerd installeer je de “Marlin” folder vanuit het archief “Marlin v1.0.2-1” naar Arduino IDE

Dus de folder “Marlin-1.0.2-1 (2015-05-30).7z\Marlin-1.0.2-1\Marlin” naar “ArduinoIDE\Marlin“.

Start de Firmware op door op Marlin.ino te dubbelklikken, ArduinoIDE wordt dan opgestart, daarin zie je heel veel TAB’s en venstertjes openstaan:

ArduinoIDE met Marlin

Marlin configureren voor de Prusa i3

Let op: Dit stukje behandeld lang niet alle aspecten en mogelijkheden van de firmware, maar geeft de veranderingen in beeld voor de “Prusa i3” vanuit de standaard Marlin instellingen.

Board selecteren
De meeste instellingen staan in het bestand configuration.h, daar moet je ook het board selecteren in de regels:

Ps. de aanwezige boards voor Marlin kun je vinden in het bestand boards.h

We kiezen hier voor: BOARD_RAMPS_13_EFB

Arduino Mega shield Ramps 1.4

Naam instellen
Je kan je printer een naam geven, van ongeveer max. 10 karakters, dit doe je op de regel:

// #define CUSTOM_MENDEL_NAME "This Mendel"

Bijvoorbeeld voor de Prusa i3:

#define CUSTOM_MENDEL_NAME "Prusa i3"

Temperatuursensoren instellen
Het volgende stuk in behandeld de temperatuur instellingen:

De gebruikte weerstand in mijn geval voor de extruder en het heated bed is (en de meest gebruikte): weerstand glas 100K NTC (3950):

Weerstand 100K NTC (3950)

Dat geeft weerstand optie: 11

Ps. Weet je niet welke je moet hebben, in veel gevallen werkt optie 1 ook.

Maximale temperaturen instellen
In het volgende stukje kun je maximale waarden van de temperaturen instellen:

In veel gevallen is boven de 230 graden funest voor je extruder systeem, voor mijn extruder: Bowden Geetech J-head-23QWS is 230 graden meer dan voldoende, mijn MK2B heated bed heb ik op 80 graden staand, zelfs voor ABS is dat meer dan genoeg:

Bewegingsrichtingen instellen
In het volgende stukje worden de bewegingsrichtingen behandeld, voor de prusa is dit de volgende instelling:

Maximale printgrensen instellen
Hier heb je een meetlint, rolmaat of duimstok voor nodig, meet de maximale waarden op in mm wat je op het printbed kan printen vanuit het nulpunt gemeten:

Voor mijn Prusa i3 “Wood” is dit:

Motor stappen en snelheden instellen
Hier heb je een aantal berekeningen voor nodig, zie onder

Formule riem aandrijving (X-as/Y-as):
In veel gevallen is deze voor de X-as hetzelfde als de Y-as, het aantal stappen per unit wordt bepaald door het aantal stappen per omwenteling gedeeld door het aantal tanden van het tandwiel, gedeeld door de riem pitch (afstand tussen de tandjes)

Stappen per unit = Motor stappen per omwenteling / aantal tandwiel tanden / riem pitch

In mijn geval heb ik NEMA 17 stappenmotors met 1,8 graad per rotatie met op de as een GT2-20 tand tandwiel met een GT2 riem, mijn poluludrivers staan op 1/16 stappen.

Motor stappen per rotatie: een rotatie is 360 graden / aantal graden per stap geeft: 360/ 1,8 = 200 stappen per omwenteling.

1/16 = 200 / 20 / 2 geeft: 1/16 = 5 , geeft: 1 = 80 , dat geeft het getal: 80

Ps. er is een handige website voor ingericht: prusaprinters.org calculator

Prusa i3 stappen calculatie XY-as

Formule stang aandrijving (Z-as):
Het aantal stappen per unit wordt bepaald door het aantal stappen per omwenteling, gedeeld door de draadstang pitch (bijvoorbeeld de afstand van de verplaatsing van een moer bij in 1 omwenteling)

Stappen per unit = Motor stappen per omwenteling / draadstang pitch

In mijn geval heb ik NEMA 17 stappenmotors met 1,8 graad per rotatie en een verloop naar een M5 draadstang, mijn poluludrivers staan op 1/16 stappen.

Motor stappen per rotatie: een rotatie is 360 graden / aantal graden per stap geeft: 360/ 1,8 = 200 stappen per omwenteling.

1/16 = 200 / 0.8 geeft: 1/16 = 250 , geeft: 1 = 4000 , dat geeft het getal: 4000

Prusa i3 stappen calculatie Z-as

Extruder aandrijving (E-as):
Het aantal stappen per unit wordt bepaald door het aantal stappen per omwenteling, maal de overzetverhouding, gedeeld door wiel diameter maal Pi.

In mijn geval heb ik Bowden (buis) extruder systeem op het chassis, zoals bijvoorbeeld deze:

3D Printer – Extruder – Compact Bowden Extruder, direct drive 1.75mm

bowden extruder voorbeeld

met een NEMA 17 stappenmotor met 1,8 graad per rotatie en rechtstreeks op de as een MK8 wiel, mijn poluludrivers staan op 1/16 stappen.

De formule is: Stappen per unit = Motor stappen per omwenteling * overzetverhouding / (wiel diameter * 3.1415)

MK8 wiel afmetingen:

De wiel diameter die we nodig hebben is: 7 mm.

Motor stappen per rotatie: een rotatie is 360 graden / aantal graden per stap geeft: 360/ 1,8 = 200 stappen per omwenteling.

1/16 = 200 / (wieldiameter * 3.1415) geeft 1/16 = 200 / 22 , geeft  1/16 = 9.10 , geeft: 1 = 145.45 , dat geeft het getal: 145

De configuratie geeft dan:

Let op!, de berekeningen hierboven zijn gebaseerd op de A4988 drivers:

Stappenmotor aansturing module A4988 bovenkant

Gebruikt je de DRV8825 drivers:

Stappenmotor aansturing module DRV8825 bovenkant

Dan moeten de waarden hierboven gehalveerd worden!

Preheat instellingen
Preheat instellingen staan ingebakken in de firmware en zijn te kiezen vanuit het menusysteem, mijn instellingen:

Ps. Zorg ervoor dat PLA_PREHEAT_HPB_TEMP niet de waarde van BED_MAXTEMP (eerder ingesteld) overschrijdt.

Display gebruiken
Het grote voordeel van het gebruik van een display module is dat je de printer zonder computer kan gebruiken, het programma (gcode) staat dan immers op een SD kaartje welke je in het slot kan van de display module kan steken.

Voor mijn display “Reprap Discount Smart Controller”:

Reprap Discount Smart Controller cartoon

moet ik de commentaar voor deze regel aanpassen naar:

Rotatieknop goed instellen

Standaard draait de rotatieknop de “verkeerde kant op”, ikzelf vind het fijn om het menusystemen en instellingen te wijzigen en getallen te vermeerderen door met de klok mee te draaien, ga naar de TAB Pins.h en wissel dan deze waarden om: BTN_EN1 (31) en BTN_EN2 (33) onder het kopje “#ifdef REPRAP_DISCOUNT_SMART_CONTROLLER“, deze regels:

Worden:


Meer informatie is te vinden op:
danielhansen.net
matterhackers.com

Top