Posts tonen met het label software. Alle posts tonen
Posts tonen met het label software. Alle posts tonen

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.

zondag 18 mei 2014

Storingen en oplossingen: slechte hechting op het printbed

Een zelfgemaakte 3D-printer is meestal geen apparaat dat dag na dag, week na week storingsloos blijft werken. Om de zoveel tijd doet er zich een kleine of grote ramp voor, en dan is er werk aan de winkel. In een aantal postings noemen we wat veelvoorkomende storingen, hun oplossingen en manieren om ze te voorkomen. Deel 1: werkstuk blijft niet plakken op het printbed.

Het is van groot belang dat een werkstuk tijdens het printen precies op zijn plek blijft. Zo niet, dan komen de laagjes niet netjes op elkaar. Een print die niet goed op het printbed blijft plakken kan gaan schuiven of omvallen en dan is hij verpest. Ook kan het gebeuren - zeker als het werkstuk wat groter is - dat de eerste laag tijdens het printen loslaat en om begint te gaat krullen. De print gaat gewoon verder, maar de onderkant is dan krom: 'warping' met een mooi woord.

Warping hoeft geen ramp te zijn, maar bij een print als op de foto hiernaast is het gemakkelijk te zien dat een opkrullende onderkant voor problemen zou zorgen. De motor past niet meer, of zit scheef: allemaal ellende die je wil voorkomen.








Hoe zorg je dat het werkstuk blijft plakken tijdens het printen? Daarvoor is allereerst een goed vlakgesteld printbed noodzakelijk. Stuur hiervoor de printkop naar alle hoeken van het printbed, laat hem zakken tot de Z=0 positie en stel het bed zo af dat er op alle plakken net een papiertje tussen de printkop en het bed past. Als alle hoeken zijn gecheckt controleer je de eerste opnieuw. Stel zonodig bij, net zolang tot het overal klopt.


Bij de print op de foto hiernaast zie je dat de laag goed gehecht is: de banen zijn breed en bijna met elkaar versmolten. Het oppervlak is erg glad, zodat het spiegelt.

Ook een verwarmd printbed helpt enorm. De kunststof PLA blijft veel beter plakken als het printbed een graad of zestig is, en voor ABS kun je gerust richting 110 graden, als die temperatuur door je printbed wordt gehaald. Een verwarmd printbed is een investering, maar kan een hoop ergernis schelen. Zeker bij ABS blijkt een print haast niet plakken op een kale glasplaat. Dat komt ook doordat deze kunststof eigenlijk bedoeld is voor spuitmallen. Bij afkoeling krimpt ABS een beetje, en komt dan makkelijk los uit de mal. Bij een 3D-printer is dat voordeel juist een nadeel omdat de print ook gemakkelijk loskomt van de plaat. Een verwarmd werkvlak is noodzakelijk.

Als een print klaar is kan het zeker bij PLA gebeuren dat hij bijna niet van het printbed wil loskomen. Bij een verwarmd printbed komt het dan vaak vanzelf los als het bed is afgekoeld. Ga nooit wrikken aan een print die nog warm is, want dan zal hij vervormen.

Ook de software speelt hier een rol. In Slic3r (of welke slicing-software je ook gebruikt) zorgen diverse parameters voor een perfecte eerste printlaag. Zo kan de laagdikte van de eerste printlaag afzonderlijk worden ingesteld. Kies bij een normale laagdikte van 0,40mm bijvoorbeeld een iets dunnere eerste laag van 0,35mm. Ook kan Slic3r de extrudeersnelheid in de eerste laag wat opvoeren. Kies bijvoorbeeld voor 150% om in de eerste laag anderhalf keer zoveel filament door te voeren. Ook kan de temperatuur van de eerste laag iets hoger worden gekozen voor een betere hechting.

In uiterste nood kan software zorgen voor extra hechting door een 'raft' toe te voegen aan een print. De print wordt dat voorzien van een soort vlonder die na voltooiing gemakkelijk kan worden weggesneden of als een sticker worden losgetrokken. Dit kan een uitkomst zijn bij hoge prints met een klein grondoppervlak. Sommige ontwerpers houden er bij hun objecten al rekening mee dat hechting een probleem kan zijn. Bij het onderdeel op onderstaande foto zijn daarom ronde pootjes toegevoegd, die later kunnen worden weggesneden.


Verder is een schoon printbed belangrijk. Als je direct op de glasplaat print, moet deze vrij zijn van stofjes of oude printresten. Zorg ook dat hij vetvrij is, bijvoorbeeld met ammonia. Even afnemen met schoonmaakazijn kan de hechting ook verbeteren.

Tenslotte zijn er allerhande manieren om het printbed beter te laten hechten door er wat op te plakken. Zelf hebben we uitstekende ervaring met kapton-tape. Ontwikkeld voor de ruimtevaart, dus... In Amerikaanse video's zie je ook vaak het blauwe schilderstape: Scotch Blue van 3M. Dat zijn we in Nederland nog niet bij de bouwmarkt tegengekomen. maar het wordt verkocht door Bol en bij MakerPoint. Daar kost een rol van 50m met een breedte van 5cm momenteel 13,50 euro. Zo'n brede rol is handig, want daarvan zijn minder banen nodig om het printvlak te bedekken. Om te kijken of het werkt hebben we zo'n rolletje bij Bol besteld. We werden er niet blij van: de ABS bleef totaal niet plakken op de gladde tape. We houden het daarom bij Kapton.

Sommige hobbyisten kiezen anderen noodgrepen, en spuiten bijvoorbeeld haarlak op hun glasplaat of een laagje aceton waarin ABS is opgelost. Een nieuw idee is de kleefstift; een soort Pritt-stick waarmee je een hechtingslaag aanbrengt op je printbed. Gezien in de winkel bij MakerPoint in Arnhem.

zondag 11 mei 2014

Software-update

Ook op softwaregebied is er het het laatste jaar het een en ander gebeurd terwijl we ons met andere dingen bezig hielden. Voorheen konden we nooit echt vrienden worden met Slic3r, tenzij we de Slic3r-optie binnen Pronterface gebruikten. Dat gaat nu beter. De nieuwe Slic3r (versie 1.0.1) werkt een stuk beter, en we hebben ook Pronterface/Printrun geupdated naar de versie van 2014.02.10.

Aanvankelijk was Slic3r weer eigenwijs, met een eerste printlaag vol blubber, dragen en smurrie. Dat konden we verhelpen door van 'simple mode' over te schakelen naar 'expert'. Daar zagen we dat Slic3r het nodig vindt op de eerste printlaag op dubbele dikte te printen. Slecht idee. Toen we dat hadden aangepast, en tevens de filament ratio op 0.9 hadden gezet, wilde het een stuk beter lukken.


Kunnen we eindelijk ook kiezen voor een honingraat-invulling!

Een andere belangrijke setting die Slic3r in expert mode heeft verstopt, is de retractie van het filament. Om te voorkomen dat je draden krijgt bij het bewegen van de kop, is het raadzaam om het filament even terug te trekken voordat je de beweging inzet. Meestal is 2mm genoeg. Het verschil is enorm. Vooral bij Bowden-extruders schijnt deze setting essentieel te zijn; we gaan het merken.

donderdag 18 april 2013

Avonturen met Slic3r, netfabb en openSCAD

Op onze queeste naar de perfecte extruder zijn we uiteindelijk terechtgekomen bij Greg's Wade Reloaded extruder. Downloaden en printen dus? Was dat maar zo makkelijk.

Om gebruikers met uiteenlopende typen hot ends van dienst te zijn is de extruder gepost in verschillende uitvoeringen. Wij kozen voor de j-head, maar dat werd bij het printen een teleurstelling. Het ging op sommige plekken gewoon mis, zoals bij de ondersteuning van het scharnier voor de idler. Uit de comments op Thingiverse begrijpen we dat de .stl-files zijn gemaakt voor printen met een laagdikte van 0.25 in plaats van 0.4. Dat gaat mis, en moeten we dus aanpassen.

We downloaden hiervoor OpenSCAD. Nu kunnen we in het .scad file de code aanpassen waarmee de extruder is gegenereerd. Om te beginnen vullen we waar 'layer_thickness' staat '0.4' in in plaats van '0.25'. Met 'compile & render' genereren we de tekening en exporteren dit naar een .stl-bestand.

Maar printen gaat ook nu niet goed. Het extrudergat is niet rond en een gat voor de idlerspanner ontbreekt. Dit zou kunnen komen door de verouderde versie van Slic3r die gebruikt wordt in Pronterface.

Daarom hebben we de nieuwe versie van Slic3r standalone geïnstalleerd en het daarmee geprobeerd. Dit is een echte aanrader! Het programma werkt prettig en snel, laat het toe om objecten bij elkaar te slepen en rangschikken en daarna is het genereren van een G-code file zo gebeurd.


Nog een tip: als Slic3r begint te klagen over de .stl-file, haal het dan eerst even door de checker van netfabb. Met deze online dienst worden foutjes weggepoetst, zodat er een printklaar bestand overblijft. Het resultaat is via een link in de mail te downloaden en als 3d-rendering te zien.


Printen gaat daarna inderdaad uitstekend, maar wat blijkt? Het is een extruder voor een j-head met een veel smallere PTFE-buis. Uitboren is geen optie, dus dat wordt opnieuw printen.

Dus terug naar de .scad file van Gred's Wade Reloaded. Het is ons iets gemakkelijker gemaakt omdat we hier kunnen kiezen voor verschillende extruders. Een en ander wordt via opmerkingen in de code uitgelegd. We kiezen 'jhead_mount', maar passen de code aan verderop in de file en kiezen voor een diameter van 16,4mm. Geëxporteerd en door netfabb gehaald, gesliced met Slic3r en in Pronterface geladen.


Printen gaat goed, maar dan: weer mis. De gaten waarmee het peek-blok aan de extruder moet worden bevestigd ontbreken. Terug naar OpenSCAD.

Dit keer letten we beter op en bestuderen de rendering aandachtig. We blijken te moeten kiezen voor 'geared_extruder_nozzle' voor een extrudergat van 15mm en de juiste gaten. Juiste gaten? De gaten voor de montage van het peek-blok zijn M4 in plaats van M3. Dat moeten we in de routine 'mendel_parts_v6_holes' aanpassen: overal waar 'm4' staat vervangen we dat door 'm3'.


En dat ziet er uit zoals we het willen hebben. Dus weer door netfabb, Slic3r, etc., etc.

Veel geleerd. Een goede extruder is van groot belang, omdat we hebben gemerkt dat negen op de tien storingen op de een of andere manier hier optreedt. Na montage van de nieuwe extruder printen we een stuk prettiger.



zondag 30 september 2012

Stap 14: de software

Het installeren en doorgronden van de software die de 3d-printer bestuurt is nog aardig lastig. We zijn best handig met computers, maar hebben hier toch aardig wat uurtjes op stuk gebeten. In onderstaand verhaal hebben we alle doodlopende routes, niet werkende programma's en andere ellende weggelaten. Het lijkt daardoor misschien een eitje, maar dat was het niet. Hopelijk kan de beschrijving als handleiding dienen voor andere bouwers.

We maken gebruik van een oude pc (Pentium 4) met Windows XP met internetverbinding en USB-poort. De software stelt verder bescheiden eisen.

1: Arduino software installeren
We gaan naar de Arduino website en volgen de instructies onder Getting started with Windows. Onder stap 2 wordt de Arduino software geïnstalleerd. Hier kiezen we niet voor de nieuwste versie (1.0), maar versie 0023. Als we dit eerder hadden geweten, hadden we ons een halve dag tijd bespaard...


2: Arduino driver installeren
Als we het Arduino-printje (nog zonder RAMPS) met een USB-kabel aansluiten, vraagt Windows om een driver. Hierbij moeten we even helpen. Kies voor installeren vanaf een specifieke locatie en zoek in de Arduino-map naar de map 'drivers/FTDI USB Drivers'. Daar vindt Windows een 'USB Serial Converter', en deze moet worden geïnstalleerd. Vanaf dat moment verschijnt de Arduino op de pc als een COM-poort, in ons geval COM-poort 3.


3: Arduino starten
We starten nu de Arduino-software en volgen de beschreven 'Getting started' procedure verder. We laden een programma dat de led op de print kan laten knipperen. We laten weten met welk type Arduino we werken (in ons geval Arduino Mega / ATmega 1280) en kiezen de juiste poort. Daarna kunnen we het programma uploaden en moet het lampje gaan knipperen. We zetten de baudrate op 115200; dit is de communicatiesnelheid tussen de pc en de elektronica.

Nu willen we weten of de Arduino ook goed samenwerkt met de RAMPS. We halen de USB-kabel los en monteren we de RAMPS op de Arduino-print. We sluiten hiervoor minimaal een van de stappenmotoren aan en voorzien de RAMPS van een 12 volt spanning (5 Ampere). Naar wens kunnen ook de eindstops, thermistors en het de verwarmingsplaat aansluiten (in dat laatste geval ook de andere 12 volts voeding aansluiten). Alle aansluitingen worden keurig beschreven op dit plaatje. Daarna prikken we de Arduino weer aan de USB-poort.

Met deze testfile kunnen we de nu werking van alle onderdelen testen. We laden hem in Arduino, uploaden hem en als het goed is moeten alle motoren op en neer bewegen en de printkop en verwarmingsplaat moeten aan en uit gaan. Dit is ook te zien aan de knipperende leds op de RAMPS-print.


3: De Sprinter firmware
Om de RAMPS wat moeilijker trucjes te laten uitvoeren moet hij worden voorzien van firmware: een stukje software waarmee de stappenmotoren worden aangestuurd, de eindstops worden uitgelezen, etc. De meestgebruikte firmwares voor RAMPS zijn Sprinter en Marlin. We kiezen voor Sprinter, die we hier kunnen downloaden. Klik op het zip-icoon midden boven. Daarna uitpakken en het file 'Sprinter.pde' openen in Arduino. Uploaden en de firmware zit op z'n plek.

Mogelijk moet de firmware op punten worden aangepast aan de gebruikte printer. Deze wijzigingen kunnen we aanbrengen inde firmware onder de tab 'configuration.h'. Veel staat al goed, maar er moet ook het een en ander worden gewijzigd. Zo moet de bewegingsrichting van sommige assen worden opgedraaid en de posities van de eindstops worden aangegeven.


4: Python
We zijn er bijna. Voordat we het programma Pronterface installeren waarmee we daadwerkelijk gaan printen, moeten we Python installeren. Dit is de programmeertaal waarin Pronterface werd geschreven. Hiervoor volgen we de procedure die hier is beschreven: scroll naar beneden onder 'Installing dependencies', en dan 'Windows'. Nee, het is niet noodzakelijk dat we hierbij precies weten wat we doen.

Voor veel mensen is de laatste instructie nogal cryptisch:
For the last one, you will need to unpack it, open a command terminal, go into the the directory you unpacked it in and run python setup.py install
Doe hiervoor het volgende: ga naar het Windows-startmenu en type 'cmd' in het zoek/uitvoervenster. Er opent zich een zwart prehistorisch venstertje. Type hierin 'cd d:\python' als 'd:\python' de map is waarin de laatste zip-file is geplaatst. Als hij op een andere locatie staat, voer dan deze in. Vervolgens verandert de prompt in 'D:\Python>' (of iets dergelijks) en kunnen we invoeren 'python setup.py install'. Rustig wachten tot hij klaar is. Venstertje kan worden gesloten.

5: Pronterface
Eindelijk! Bovenaan deze pagina vinden we de zip-file van Printrun, ofwel Pronterface. Uitpakken en installeren, en als het goed is kunnen we Pronterface daarna draaien.


Besturing is eigenlijk vrij simpel. Als we wat spelen met de knoppen wijst alles zichzelf. Kies de juiste poort onder 'Port', de juiste baudrate (115200) en klik 'Connect'. Pronterface zoekt de printer en maakt de verbinding. Met de x, y en z knoppen kunnen we de assen in verschillende snelheden bewegen. Zo kunnen we onze eindstops op de juiste plek krijgen. Met de 'set'-knoppen brengen we de extruder en het printoppervlak op temperatuur. Tenslotte kunnen we met 'Load file' een bestand inladen om te printen.

Onderdeel van Pronterface is Slic3r, dat veel parameters bevat die het printen specificeren, zoals snelheden, dichtheid en meer. Een goede uitleg van de Slic3r-opties staat hier en hier.