Konvertera en 3D Stuffmaker Mega Prusa i en arbetande 3D skrivare (4 / 5 steg)
Steg 4: Firmware - den verkliga mardrömmen...
Om du någonsin försökt Stuffmaker stöd och fick en verklig person blir handlar om du det tydligt att från en viss punkt på de helt enkelt blockera all hjälp.
Detta händer oftast när du begära ändringar eller något pank som borde inte bryta och du behöver en ersättare.
För firmware började min mardröm när jag försökte skriva ut med några ABS.
Naturligtvis finns det ingen uppvärmd säng och skrivaren befordrades för att främst användas på PLA men i sina ursprungliga annonser ABS och andra filament noterades som användbara.
Visade sig max temp inställningar för hotend inuti firmware är fasta på en temp på runt 230° C - du kan gå högre men kommer inte att få rätt temp visas.
Medan jag fortfarande fick svar från deras support begärt jag Firmware så jag kan ändra dessa parametrar och ändra extrudern stepping så en ordentlig modell kan också användas.
Detta vägrades med kommentaren programvaran inte skulle öppen källkod!
Mind du designen är öppen källkod baserad och firmware (och Pronterface) helt enkelt ändras så för att titta isär.
När jag nämnde detta som en kränkning av open source-projekt och att jag skulle åtminstone vilja få en firmware med högre temp och extruder inställningarna i ett Eprom register stödet upphört.
E-post skickas från min ursprungliga konto erhåller inget svar idag...
Om du någonsin spelat med andra Arduino firmwares vet du redan det är så enkelt som talar om Arduino IDE programvara för att ladda upp skissen.
Eftersom vi vet att det är en Gen6 elektronik ombord utifrån Sanguino platform - hur svårt kan det vara att få vår egen firmware som Marlin eller Repetier att fungera?
Tja, visade sig vara ganska svårt :(
Det finns en hel del info på Reprap webbplatser om hur du använder Gen6 styrelser, inklusive det faktum att de flesta av dem kommer utan en bootloader.
Detta snabbar första starten lite men gör ladda upp ny firmware utan en ISP programmerare omöjligt.
Förresten, där "erbjudande" för "hög kvalitet utskrift programvara" inkluderar en ISP-programmerare som är tillgänglig på Ebay för under 30$.
Med tanke på firmware Marlin med parametrar ändras för sin modell, är 95$ prislappen en förolämpning.
Värsta är ändå att de som faktiskt gjorde det rapporterade det är inga ändringar av utskriftskvaliteten och att alla gamla problem kvarstår.
Så ville jag flash en bootloader och åtminstone få firmware dumpa i form av en HEX-fil skall ha en fungerande backup experimentera med andra firmware.
Här bud jag upp på grund av att inte veta att Stuffmaker används FUSE inställningar som skiljer sig från dem i Atmega 644PA databladet.
För uppladdning jag använde min gamla Arduino Mega programmeras som en ISP - ingår skissen i varje Arduino ISP version.
Problemet här är att Gen6 är ganska gammal och i nyare ISP versioner skissen ändrades orsakar problem med tidpunkten.
Jag återgått till den 018 versionen av IDE-programmet med Sanguino stöd.
Men när jag var blinkande bootloader olika FUSE inställningar orsakade firmware till korrupta och att göra saker värre också bud upp bootloader-resultatet var en värdelös styrelse som fortfarande dök upp som en Com-port men var i övrigt inte svarar.
Alla ytterligare försök till blixt bootloader misslyckats.
Det finns en trevlig online-kalkylator för inställningen FUSE Atmega marker, men utan riktigt djup kunskap om sakerna det är nästan omöjligt att få det rätt, särskilt om inställningarna är redan förstörd.
Efter några dagar av experimenterar hittade jag ett inlägg på webben där någon påpekade skillnaderna mellan de gemensamma 644, 644P och 644PA.
Detta fick mig att inse att den PA versionen är värdelösa i en 3D-skrivare som det är en utgåva med extrem låg strömförbrukning - som det skulle roll med all energin vi avfall för att värma glödtråden...
Hur som helst, från där jag kunde hitta rätt säkring inställningar som gör det möjligt för att komma tillbaka till en stat där jag kan flash bootloader ordentligt.
Jag använde Arduino till programmet och AVRDUDE versionen som kom med den senaste versionen Arduino IDE.
När du kontrollera docs för Arduino ISP projektet visas programmeraren riktar sig alltid som "Arduino" i alternativ - fungerar detta inte för Gen6 styrelsen!
I stället måste programmeraren inställning för AVRISP programmerare!
Här är stegen jag använde till säkringarna rätt inställda och att blinka en Marlin firmware:
1) avrdude - c avrisp -b 19200 - p m644p -P com6 -B 8 -u -e - U lås: w:0x3F:m - v - v - v - v
2) avrdude - c avrisp -b 19200 - p m644p -P com6 - v - v - v - v
3) avrdude - c avrisp -b 19200 - p m644p -P com6 -u - U efuse:w:0xFD:m - v - v - v - v
4) avrdude - c avrisp -b 19200 - p m644p -P com6 -u - U hfuse:w:0xDC:m - v - v - v - v
5) avrdude - c avrisp -b 19200 - p m644p -P com6 -u - U lfuse:w:0xFF:m - v - v - v - v
6) avrdude - c avrisp -b 19200 - p m644p -P com6 - U flash:w:ATmegaBOOT_644P.hex - v - v - v - v
7) avrdude - c avrisp -b 19200 - p m644p -P com6 - U lås: w:0x0F:m - v - v - v - v
Några förklaringar på ovanstående:
"-c avrisp" anger läget för programmeraren.
"-b 19200" anger du överföringshastigheten i Enhetshanteraren i Windows för porten.
"-p m644p" är vår Gen6 styrelse.
"-P com6" är com-porten på Arduino Mega som du vill se i IDE program eller Windows Enhetshanteraren.
"-v - v - v - v" detaljerad nivå till maximum - detta var du se vad som händer, vilket är bra för felsökning.
Linje 1 sätter säkringar och bord inställningar så vi kan faktiskt börja vad vad vi prova här.
Linje 2 är en enkel kontroll om kommunikationen fungerar - du kan behöva tvinga stoppa detta om det hänger i slutet genom att trycka på "CTRL C" på tangentbordet.
Om du får ett felmeddelande för linje 1 eller 2 måste du kolla din programmerare.
Linje 3 till 5 set säkringarna så vi kan faktiskt flash den bootloader, kan du lägga alla "-U" parametrar i en linje, jag ville bara se till att det är alla att ses här och enstaka rader gör det lättare i ett DOS-fönster.
Line 6 nu slutligen lägger en bootloader till vår styrelse - vänligen använd bootloader enligt ovan, det finns en annan version med ett något annorlunda namn men det kommer inte att installera.
Linje 7 fixar fuse inställningarna så att vi kan använda styrelsen och ladda upp skisser via Arduino IDE istället för att använda en programmerare.
Du kanske tror att om du behöver redan en programmerare att få bootloader fungerar kan det vara lättare att installera firmware detta sätt och inte bråka med bootloader alls.
Om du är bra att sammanställa dina egna HEX filen från källor har du rätt.
Men jag antar att de flesta människor har problem med denna skrivare är nybörjare med lite kunskap om med hjälp av Makefile och sammanställa.
Ändra parametrarna i Configuration.h och Configuration_adv.h - som innehåller våra inställningar, är mycket enklare och snabbare än att alltid sammanställa firmware till en HEX-fil för blinkande.
När du har exakt rätt inställningar för din skrivare kan det vara en annan historia dock...
Marlin, Repetier eller något annat?
Den ursprungliga firmware är baserad på Marlin så använder Marlin skulle vara ett bra alternativ.
För dem som vill ha lite kan mer Repetier vara det rätta valet.
Det betyder i alla fall vi måste hitta rätt inställningar för några saker innan vi kan ladda upp och prova.
Det här är där jag är lite fastnat just nu.
Stuffmaker följde inte hela värdigas specifikationer för Gen6 styrelsen och samma sak gäller för deras hantering av vägbeskrivning och gränslägesbrytare.
Att inte nämna kliva för axlarna och extruder.
Detta kommer att bli en lång uppgift att få det rätt men det är också en punkt där du skulle kunna hjälpa.
Om du redan har den ursprungliga Configuration.h och Configuration_adv.h filer från Stuffmaker Vänligen skicka deras innehåll eller bifoga filer.
Det skulle spara mycket tid att hitta rätt kliva, som i gengäld sparar mig en hel del glödtråden för testutskrifter att mäta :)
Samma om du vill hjälpa mig (och kanske andra) genom att tillhandahålla den firmware dumpen av din Stuffmaker Mega Prusa.
Kommandon för som finns på Gen6 sidor av Reprap projektet, om du inte hittar den eller behöver hjälp är välkommen att ställa frågor.
Jag kommer att contunue med detta Instructable som jag går, ladda upp bilder och några videos när det fungerar.
I detta skede kommer jag inte erbjuda en Marlin eller Repetier firmware som första jag vill se min skrivare utföra till specifikationer.
Jag ber om ursäkt för detta men ni förstår att det är bättre att ladda ner en arbetande firmware när allt är fixat än en som omöjliggör utskrift.
Uppdatering 25/05/2015:
Jag kunde få ett fungerande Arduino IDE miljö arbetar som passar Marlin på samma sätt som skrivaren.
Inte luras för att tro att den nyaste versionen av en programmering programvara också är den bästa eller rätt jobb.
Upptäckte att den hårda vägen...
Här är historien hittills:
För att få bootloader kommer jag använde de rekommenderade 018 resulterade version av Arduino IDE, försöker flash bootloader med något över 1,0 i anslutningsproblem eller ett icke uppstart system.
Det betyder att jag brukade AVRDUDE versionen som ingår i denna version flash bootloader med ovanstående kommandon och genom att ange AVRISP i stället för Arduino programmeraren.
Med en dedikerad falsher istället för programmering en Arduino för jobbet kan arbeta med andra versioner men och bör alltid arbeta med AVR suite för Windows med en lämplig ISP programmerare.
Den verkliga mardrömmen var att hitta en kombination av Marlin firmware och Arduino IDE som faktiskt skulle fungera tillsammans utan att orsaka oändliga listor över de fel som bör inte exisist till att börja med.
Tänka att någon Marlin firmware kan ersättas var det största misstaget jag gjorde här och jag kostade mig några dagar av frustration.
I detta skede jag slösat bort en annan dag forska bilder av Gen6 styrelser att bekräfta Stuffmaker faktiskt används de ursprungliga specifikationerna och inte en annan hemmagjord lösning - såvitt styrelsen är äkta och fullt Gen6.
Problemet var att hitta en Marlin version som matchade den annan hårdvaran i skrivaren som nära möjligt, och jag hittade bara en som gjorde det.
De ursprungliga skaparna av Mega Prusa nu har den tredje modellen, I3, ute men det bygger fortfarande på samma mekaniska egenskaper som den ursprungliga V1 som vi använder - i princip modell T av 3D-skrivare LOL
Justera den fasta programvaran till vår hårdvara var inte den enklaste biten som I3 modell har alla de finesser vi går miste om, som uppvärmd säng, auto säng nivellering, Z-axel sondera, fläktstyrning för styrelsen, värmare och extruder och några mer jippon.
Försöker kompilera det var problemet som nästan fick mig att ge upp på den.
Om du någonsin försökt sammanställa och ladda upp ett stort program från WWW till din Arduino eller skrivare du vet vad jag menar med anslutningsfel, SPI fel och alla problem att hitta en lösning för andra fel som inte borde vara där - efter allt jag fik de samma problem med att kompilera oförändrat firmware.
Det visade sig behöver du inte bara den Arduino IDE rätt version, 023, men också ändra vissa bibliotek, styrelsen definitioner och pin-konfigurationer.
Efter sortering allt som med några sömnlösa nätter var jag äntligen kunna kompilera utan fel nd strax efter ladda upp hela till skrivaren styrelsen.
Här fick saker riktigt intressant som alla axis, motorer och endstops måste ställas in korrekt, att inte tala om inställningarna för tabellerna termistor.
Ingen av de medföljande tabellerna ge korrekta mätvärden så långt, men min prototyp hotend med en annan (och i den fasta programvaran stöds) termistor kommer nära nog till vad min termometer läser med tanke på toleranserna.
Men det är ett problem som kan sorteras ganska lätt och för dem som vill ha en ordentlig hotend av den moderna typen kommer att uppskatta att vi kan ingen förändring våra termistor inställningar genom att helt enkelt justera firmware och ladda upp den.
X, Y, Z-axeln har kalibrerats med mindre än 0.1mm fel mätt på hela vägen de motsvarande axel.
Extruder fortfarande behov lite finjustering som det är avstängd av runt runt 0,5 mm men det bör inte vara ett problem som de slutliga extrudering inställningarna måste justeras för varje rulle nya glödlampor ändå.
För att möjliggöra enkla ändringar av dessa parametrar aktiverat jag EEPROM stöd för styrelsen, så alla vitala värden sparas i det minnet utan behov av en ny firmware till ändra dem.
Detta inkluderar alla axlar.
Kliva kan ändras med kommandot M92 och lagras i EEPROM med kommandot m500.
För att hålla reda på de aktuella inställningarna för visas alla lagrade värden i statusfönstret för Pronterface efter anslutning till skrivaren.
De reamaining steg innan jag erbjuder midfied firmware för villiga testare kommer att tabellerna termistor och den slutgiltiga kalibreringen med några test utskrifter.
När det är alla sorterade jag kommer att skapa en direkt extrudern på hotend baserat på Wester inriktade extruder men matchas till X-transport som jag vill undvika att skapa en ny (inte gillar idén att ta isär skrivaren för detta).
Sista och avslutande steg för detta steg är att optimera motorn rusar för bästa prestanda så utskrifter över våra vanligen krypande hastigheter är möjliga.
Temp inställningar är redan justerad för att tillåta 275° C men kan ändras högre i firmware om du har en fantasi hög temp hotends som används för tryckning i Nylon.
Efter det kan jag gå för maskinvara mods i styrelsen för en uppvärmd säng eller kanske en övergång till Arduino Mega med RAMPER.
Alla som vill testa den nya firmware kan kontakta mig via PM och jag kommer att ge en nedladdningslänk som innehåller all programvara krävs inklusive alla mods att få Arduino IDE fungerar korrekt.
När några testare bekräftat firmware fungerar som det ska jag ge den data överför golfbanan i detta Instructable för alla.
Men kom ihåg detta bara fungerar för en 3D STUFFMAKER Meaga Prusa av första generationen!
Om du har en av de nya modell, som de med en träram firmware bör fortfarande fungera men du kan behöva justera några inställningar att ta hänsyn till skillnaderna.
Uppdatering 26/05/2015:
Firmware är igång bra och stabil nu, första testutskrifter bekräftade justeringen och trappar är korrekt :)
Inte upp till Skriv ut missade några extruder delar för att få maskinen fungerar på det sätt det bör - utan ständig störning, extruder tugga, steg och en operatör som galen.
Firmware är stabil och så länge som din Stuffmaker inte ändras det kommer att köras utan problem.
Om du har köpt (eller ansett för att köpa) en olika hotend du kan nu göra bil stämmande med genom Gcode och lagra inställningarna i EEPROM utan att behöva ändra firmware så länge termistor är samma.
Det är inte du måste ändra tabellen termistor ut, vilket är oftast lika enkelt som att byta en rad i filen configuration.h genom Arduino ISP.
Kan ladda upp en kort video från första extruder kugghjulet ut senare ikväll.