-=[ In het kort ]=-
Terugloop, richting home-position, werkt niet voor de Z-as van een zelfgemaakt Anet controllerboardje. Hieronder heb ik de details geschreven.
-=[ Intro ]=-
Momenteel ben ik bezig met het bouwen van een nieuwe 3D-printer. Ik heb daarvoor een PCB gemaakt, die identiek is aan een boardje van een Anet Ax (6 of 8). Een tijd geleden heb ik hier ook een foto van gepubliceerd.
Een gewone Anet A8 is normaliter voorzien van een stepstick-driver met een A4988. Mijn ontwerp gaat uit van een TB6600. Dit is een driver die beduidend meer stroom kan leveren.
[Controllerboard]

[TB6600 StepStick]

[Opgebouwd]

-=[ Probleem ]=-
Voordat ik de printer in elkaar ging zetten, besloot ik om eerst het boardje te testen. Daarmee bedoel ik dat alle assen getest worden met een TB6600 "stepstick" en daarop een NEMA17 steppermotor aangesloten.
Deze stepstick werd in het controllerboardje gestoken om na opstarten de steppermotor te laten draaien. Als eerste heb ik de X-as getest. Naar en van de home-position verloopt probleemloos : een links-om en rechts-om draaiende motor. Nadat deze "stepstick en steppermotor"-combinatie ook succesvol was getest voor de Y-as, werd de Z-as getest.
En hier gebeurde iets merkwaardigs. Van de home-positie af, levert een draaiende motor op. Terug richting de home-position, nam in het scherm de afstand-teller terug, maar de motor draaide niet.
StepStick
Ik vermoedde dat de stepstick wellicht niet meer goed werkte. Echter, voor de X- en Y-as werkte het juist wel weer normaal. Vervolgens terug geplaatst voor de Z-as, en het probleem was er weer.
Ik heb hier 3 identieke stepsticks met een TB6600 liggen. Ik heb ze alle 3 voor de XY,- en Z-as getest. Alle 3 leveren ze exact hetzelfde resultaat op : Bij Z-as de ene kant wel draaien, de andere kant een stilstaande motor. En aangesloten voor de X/Y-as werken ze wel gewoon. Daar maak ik uit op dat de stepstick zelf geen probleem is.
Controller-board
Uit voorzorg heb ik de stepstick verwijderd om alle contacten en verbindingen door te meten op de controllerboard.
Dit heb ik uit op alle 3 assen gecontroleerd / door gemeten. Dus van contact-pin voor de stepstick tot aan de pinnen van de Atmega1284P.
Ik heb zelfs tot aan de pinnen van de TB6600 gemeten. Er waren geen bijzonderheden te meten, alles was rechtstreeks verbonden. Ook zijn de contactpunten met de soldeerbout nagelopen (en wederom nagelopen met de multimeter). Ook eventueele kortsluitingen tussen de aanstuurpinnen voor Enable, Dir en Step zijn gecontroleerd.
Brakke of vreemde verbindingen zijn daarmee uitgesloten.
Instellingen Marlin
Voor de zekerheid heb ik de as-richting omgekeerd gezet voor de Z-as. ("INVERT_Z_DIR true" versus "INVERT_Z_DIR false")
Zou er iets defect zijn, dan zou hier iets te zien zijn.
Rechtsom (van home-position af) zorgde voor een draaiende motor, maar nu in omgekeerde richting. Linksom (naar heom-position) weigerde de motor te draaien. Vervolgens ben ik de instellingen voor de Z-as gelijk gaan stellen als voor de X/Y-as :
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 100, 23 }
en
#define DEFAULT_MAX_FEEDRATE { 300, 300, 300, 25}
Het gaat tenslotte om het laten draaien van een losse steppermotor aan de "stepstick". Het zou er voor moeten zorgen dat de motor identiek zou moeten reageren voor de X/Y,- en Z-as. Echter, het probleem blijft.
Signalen meten
* Mutimeter
Omdat ik verwachtte dat er iets mis zou zijn met de Z-Dir pin, ben ik daar gaan meten.
Linksom en rechtsom liet tot mijn verbazing zien dat het allemaal prima werkte (0 en 5V signalen kloppen). Uit voorzorg zijn van alle 3 assen ook de Enable-pinnen gemeten. Ook dat werkt netjes.
Dan maar met een multimeter (frequentie) meten op de step-pin. Hier was iets aparts te zien.
Bij afstandtoename werd er iets gemeten, bij afname niet (ook als ik de INVERT_Z-Dir omkeer).
* Scoop
Een goede reden om de scoop erbij te pakken. En hier schijnt iets aantoonbaar mis te gaan. Bij bewegen van het 0-punt af (afstand toename) zijn 5V-stuurpulsen zichtbaar. Terugkeren richting home-position (0-punt) zijn er helemaal geen stuurpulsen te zien. Wisselen van de instelling INVERT_Z-Dir (true naar false) leverde hetzelfde probleem op.
Met andere woorden, bij terugkeren richting home-position worden geen pulsen verzonden (ongeacht de ingestelde draairichting van de motor).
-=[ Vraag ]=-
Dankzij bovenstaande stappen en controles krijg ik steeds meer het idee dat er "iets" niet goed staat ingesteld in de broncode van Marlin.
Maar wat ?
Kennelijk gaat er iets mis bij het bewegen richting de home-position. Op het scherm is de toe/afname te zien..
Het geeft mij het idee dat er een variable is, die toe kan nemen, maar niet meer kan afnemen. Of beter gezegd, er wordt in dat geval vergeten om de motor ook nog even aan te sturen met step-pulsen. Of misschien is er een probleem in de Atmega1284P.
Vandaar mijn vraag of iemand dit probleem herkend of meegemaakt heeft en kan aangeven wat de oorzaak is. Ik ben op een dood punt aangekomen en loop vast op een merkwaardig raadsel.
P.S.1. Met het 0-punt bedoel ik de "home-position" van een as.
P.S.2. Ik maak gebruik van Arduino 1.8.5 en Marlin 1.1.9.
P.S.3. Ik weet het, bovenstaande is een heel epistel. De bedoeling is om te laten zien waar ik allemaal aan gedacht / gecontroleerd heb om dingen uit te sluiten.