vrijdag 30 mei 2014

Van Sprinter naar Marlin

Bij de installatie van de elektronica en de software van onze MendelMax hebben we aanvankelijk gekozen voor de Sprinter firmware. Dat stelde de minste eisen en was het eenvoudigst, en omdat we geen geavanceerde zaken wilden voldeed het prima.

Maar toen schaften we een grafisch display aan en werd alles anders. Het display willen we gebruiken bij onze nieuw te bouwen Kossel, maar natuurlijk wilden we hem alvast testen op de MendelMax. Sprinter blijkt geen displays te ondersteunen, en daarom moesten we overstappen op Marlin. Dat is op Sprinter gebaseerd, maar geavanceerder en met meer mogelijkheden. Een van de voordelen van Marlin is dat de software vooruit kijkt, en daardoor betere kwaliteit prints aflevert. We zullen zien. Een ander voordeel is dat Marlin een auto bed leveling probe ondersteunt, wat we willen gebruiken bij de Kossel

Marlin blijkt ook een stuk groter te zijn dan Sprinter als de ondersteuning voor LCD's wordt meegenomen. Te groot zelfs voor onze Atmega 1280 Arduino-kaart. Geen nood, bij de Kossel komt een Atmega 2560, waarmee het wel moet lukken. Maar ondertussen zijn we dus over op Marlin, en daar blijkt nog even wat werk in te zitten.

Om Marlin lekker te laten werken moeten we in de Arduino-software aanpassingen doen in het bestand Configuration.h - net zoals bij Sprinter. Ook hier moeten we weer opgeven met wat voor hardware en temperatuursensoren we werken, wat de standaardwaarden zijn voor de stappenmotoren van de x-, y- en z-assen en de extruder, en hoe het zit met de eindstops.

Zodra we alles hadden aangepast en wilden gaan printen, ging de MendelMax als een dolle te keer. De bewegingen van de x- en y-as waren erg abrupt en gaven nogal wat vibraties, maar de print kwam tot stand en behoorlijk snel ook. Helaas ging het verderop in de prints steeds fout omdat de printer een sprong maakte in de x-richting. Prints werden dus scheef, en dat moest aan Marlin liggen omdat we er met Sprinter geen last van hadden.

In de firmware vonden we instellingen die de maximale versnelling langs de assen vastleggen. Deze staan standaard erg agressief ingesteld; 9000 millimeter per seconde kwadraat. Dat is 0,9 G! Die hebben we teruggezet naar 900. Ook de standaardversnelling hebben we teruggebracht, en wel naar 300 mm/s^2. Hiermee was het probleem opgelost en gedroeg de printer zich ongeveer zoals we onder Sprinter gewend waren. Omdat een beetje extra snelheid nooit weg was, hebben we geƫxperimenteerd met hogere waarden, en een standaardversnelling van 600 bleek geen kwaliteitsverlies te geven. We zijn tevreden, en kunnen met de Kossel (die een veel lichtere Bowden-extruder krijgt) experimenteren met hogere waarden.

Hieronder nog eens de belangrijkste instellingen die voor ons prettig werken. Natuurlijk zijn de waarde afhankelijk van de gebruikte stappenmotoren, tandwielen, transportbanden en trapeziumspindels.

#define BAUDRATE 250000

#define MOTHERBOARD 33

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

const bool X_MIN_ENDSTOP_INVERTING = false; 
const bool Y_MIN_ENDSTOP_INVERTING = false; 
const bool Z_MIN_ENDSTOP_INVERTING = false;

#define INVERT_X_DIR true    
#define INVERT_Y_DIR true    
#define INVERT_Z_DIR false

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

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 3200/3, 750}
#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}    
#define DEFAULT_MAX_ACCELERATION      {900,900,80,10000}
#define DEFAULT_ACCELERATION          600    
#define DEFAULT_RETRACT_ACCELERATION  600

#define DEFAULT_XYJERK                5.0    
#define DEFAULT_ZJERK                 0.4    
#define DEFAULT_EJERK                 5.0

Verder hebben we de standaardwaarden aangehouden.

Geen opmerkingen:

Een reactie posten