[CNC] Zelfbouw CNC machine

Pagina: 1
Acties:

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33
Goedemorgen! Ik heb vandaag het ontwerp afgerond van mijn nieuwe CNC machine. Het idee is om 'm te maken van 18mm berken multiplex/betonplex, wat balkjes van hout en hier en daar wat staal om het geheel te versterken. De spindle wordt een watergekoelde 24k rpm spindle.

Het werkgebied van de machine is 580x445x140 mm.

Dit is inmiddels de 3e iteratie van het ontwerp. Twee belangrijke doelstellingen die ik had waren om (1) zo min mogelijk ruimte te verspillen; dat zie je aan de motoren die verzonken zijn en (2) om te voorkomen dat stof komt op de linear rails. Op termijn zet ik denk ik nog een stofzuiger over de spindle heen.

De gehele ontwerpen zijn te vinden op https://a360.co/2x2cHVC . Alle input is uiteraard meer dan welkom, voor ik de zaag in het materiaal zet ;-)

Afbeeldingslocatie: https://tweakers.net/i/e4aW8h2U4n3wCmd465TSool7RQg=/800x/filters:strip_exif()/f/image/mC2NBsxe0L0bHS0TrO5NJZQ7.png?f=fotoalbum_large

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 10-06 17:56

SA007

Moderator Tweaking
Als ik bijv naar de vlakke geleiders kijk zie ik 2 vlakke strips met de schroeven ertussen.
Als ik naar de exploded view kijk zie ik dat er een moer op de schroef zit en u-vormige blokjes die over de strips heen schuiven.

Daaruit maak ik op dat de meeste krachten die niet direct naar beneden zijn opgevangen worden door de schroef.
De spindel zit op eenzelfde constructie.

Wellicht is dat op te losse door zo'n soort geleiders te vinden (in het engels dovetail slides):
Afbeeldingslocatie: https://www.genericslides.com/images/largeimages/DL2-DOVETAIL%20SLIDE.JPG

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33
Ein-de-lijk wat beelden, ik moet toch wachten op de goederen...

Als ik het plaatje completer maak, vindt nastram het niet leuk meer :-( Ik heb nog wat meer berekeningen uitgevoerd, maar dit zijn de belangrijkste. Dit zijn simulaties voor 300N kracht.

Afbeeldingslocatie: https://tweakers.net/i/pQBINzWOsYr4zlr6cdHzLvut1Ks=/800x/filters:strip_exif()/f/image/wO4vBOxMGneO2wN0k32JO0sh.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/4DGjKH3NxxJ5rB6YPgzvR5deK9c=/800x/filters:strip_exif()/f/image/GuiH3MlBoLHpQ2f7PTRCkoe0.png?f=fotoalbum_large

Heb daarnaast nog wat tests uitgevoerd op de stappenmotoren. Punt is uiteraard dat ik ze wil gaan verzinken, wat de warmte niet ten goede komt. Heb de stappenmotors inmiddels binnen dus ben dat gewoon eens in een testopstelling gaan testen. Conclusie: niks om over zorgen te maken.

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33
Joep schreef op vrijdag 17 april 2020 @ 16:33:
[...]

Dat het kan gaan lekken en je elektronica kan kortsluiten, dat het irritant is wanneer je de spindle er af moet halen en dat het meer weegt dan luchtkoeling.
OK helder.

Wat me overigens wel nog opviel is dat de Chinese luchtgekoelde spindles beter te bevestigen zijn / een veel steviger bracket hebben. Oh en minder RPM doen, veel luidruchtiger zijn en koolborstels hebben.

Zoals ik zei, ben er nog niet over uit...
En simuleer nu eens een freesbeweging van de linkerkant van de brug naar de rechterkant.
Bij deze; ik word er nog steeds niet heel bang van (en denk nog steeds dat de Z as het zwakst is :) ) :

Afbeeldingslocatie: https://tweakers.net/i/7A181B5gzE9Q0AfRJNW1CbRaF8A=/800x/filters:strip_exif()/f/image/mWvSnyJ7zWeZyIvbBGrSXZFO.png?f=fotoalbum_large

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33
Nog niet alle onderdelen zijn helaas geleverd. Maar al wel genoeg om de bouw te beginnen.

Ik had besloten voor nu een CNC shield v3 te gebruiken. Die past op een arduino uno. Voeding kan je gewoon aansluiten op het CNC shield, waarna je de stepper motor drivers kunt aansluiten via de motor aansluitingen op het shield. Dat houdt het allemaal wel zo overzichtelijk. Je hebt 8 kabeltjes per stepper nodig, dus dat werd FTP kabel. :) De drivers zelf zitten op een profiel geschroefd; daar komt een fan voor, voor de warmte.

Afbeeldingslocatie: https://tweakers.net/i/Q44KWWhLEKnB7mFCNOTTtd7Bz10=/800x/filters:strip_icc():strip_exif()/f/image/YoZlsT0vX9LQXqrmjBVJmvKK.jpg?f=fotoalbum_large

Op termijn is het plan om de arduino te vervangen door een DUE; voor nu is dit prima.

De steppers zelf en limiter switches heb ik overigens ook via FTP kabel gewired. Dat is 4 voor de stepper motor en 2x2 voor de limiter switches, ofwel 8 draadjes = 1 FTP kabel per as.

Vwb. de constructie, planken, balken en aluminium zitten op de onderplaat van de x-y-z as gelijmd met D4 houtlijm (constructie lijm). Waar ik naar op zoek was, was een lijm die sterker was dan hout, maar je wel kon klemmen. Epoxy viel daardoor af. Na lijmen op de juiste plaats zetten, klemmen en vastschroeven met een hele stapel RVS schroeven.

Het eerste resultaat:

Afbeeldingslocatie: https://tweakers.net/i/XI56KSMnWIBtj8j6lqEnbcbnCXM=/800x/filters:strip_icc():strip_exif()/f/image/6zjZnjQVzVSQBISUx70FCHX7.jpg?f=fotoalbum_large

Op dit moment is het doel om de uitlijning zo goed mogelijk te krijgen. Uiteindelijk wordt er een stalen plaat op gelegd met daarop een plank die rechtgefreesd wordt, maar voor die tijd wil ik eigenlijk al de marges zo klein mogelijk krijgen. Daarvoor moet alleen wel de bedrading nog in orde zijn. Vervolgens komt de stalen plaat erop, waarna ik de x-as zo goed mogelijk ga uitlijnen. Helaas zitten alleen nog wat dingen in de post voordat ik dat kan doen.

De linear rail op de y-as zit ook nog maar op 1 plaats vast. 2 linear rails zitten helaas nog ergens in de pakketpost en ik wil ze pas fixeren zodra ik die binnen heb. Als hulpstukken gebruik ik een paar extra plankjes, die vergelijkbaar zijn als die bij de stappenmotoren gebruikt worden (en die dus perfect op een linear rail passen). Die aanpak heeft als voordeel dat de boog kan worden verplaatst tijdens het schroeven, zodat het allemaal kaarsrecht wordt. Links op de foto zie je al een rij boorgaten in het alu profiel waarmee dat is gedaan.

De linear rails zelf vanuit China hadden nog wat liefde nodig voor ze goed bruikbaar zijn... Alle rails en carriages zijn uit elkaar gehaald, helemaal met alcohol schoongemaakt, waar nodig bijgewerkt, opnieuw ingevet met superlube en weer in elkaar gezet. Het verschil voor en na is gigantisch. Ik was nog aan het overwegen om dat ook nog met de ball screws te gaan doen; die kunnen ook nog wel wat liefde gebruiken.

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33
Na nog wat weekendjes te hebben getest en getweakt was ik er nog niet helemaal blij mee. Inmiddels heb ik een behuizing gemaakt om de machine, zodat er geen bitjes gaan rondvliegen als er iets fout gaat. Het frame is prima, de spindle e.d. zijn prima -- maar het gezeik is de elektronica.

GRBL is een leuk systeempje, maar...

- Enable switches van stappenmotoren zijn 'alles of niets'.
- Aansturing van de spindle is mickey mouse.
- De mogelijkheden voor software aanpassing zijn vrijwel nul.
- Limiter switches (m.n. de y-as) hebben te veel last van interferentie. Dat is mijn fout overigens...

Dat de enable 'alles of niets' is kon ik nog wel mee leven, de rest niet. Dus, tijd voor Plan Beter.

Allereerst de limiter switches. Ik heb er een tijdje over nagedacht en ben tot de conclusie gekomen dat je idealiter je een geisoleerd circuit wilt per limiter switch, met een optocoupler er tussen. Dat mijn y-as aangestuurd wordt met 2 verschillende stappenmotoren en dus 4 limiters heeft, betekent alleen maar dat je die twee signalen wilt combineren _na_ de optocoupler. Als je het er voor doet (zoals ik nu heb) krijg je nl. een loop, waardoor je stroompjes krijgt die gaan lopen. Dat laatste had ik last van. En een simpele elco ertussen loste het probleem niet op.

Een ander irritatiepunt dat ik had was hoe de limiter switches werken met GRBL. GRBL houdt een pull-down resistor hoog, zodat je als er met grond wordt verbonden een stroom gaat lopen. Dat is leuk, maar ik wil graag een ledje op een limiter switch hebben, zodat je kan zien waar het fout is gegaan. Dat is sowieso al een dingetje, aangezien de +/- op een as zijn gecombineerd naar 1 limiter switch (pinnetjes tekort...) Welnu, als je dat doet, gaat er een stroom lopen zodra de switch gehit wordt, waardoor de pull-down resistor niet met grond wordt verbonden. Resultaat is dat je niet een state change krijgt bij de 'hit' of 'reset' van de switch (een van de twee) - terwijl je eigenlijk in beide gevallen een state change wilt. Oplossing is om het ledje eraf te slopen, door de +5V pin weg te laten. Of om een optocoupler te gebruiken.

Dan de VFD...

Voor de spindle is het probleem dat zo'n VFD stieken best veel functionaliteit heeft, waarvan je een deel toch echt wel wilt hebben. Als voorbeeld, je kunt zeggen dat je bijv. 24000 RPM wilt - maar daarna wil je wel even wachten met CNC tot je dat toerental hebt bereikt. Bovendien wil ik als ik zeg '12000' niet '10000' of '13000', wat je denk ik krijgt met een analoog signaal. Dat lijkt misschien een beetje overdreven, maar het PWM signaal van een arduino heeft maar ongeveer 500 Hz, dus met een simpel circuit is de resolutie gewoon beperkt. Ander voorbeeld is de forward/backward. De software kan dat wel, maar de signalen zijn bijzonder incompatible met de VFD, die dat op 3 lijntjes (run, forward, backward) wil ipv. 1 (forward + spindle speed 0 = uit). En tot slot werken de digitale pins op mijn (P2A) VFD met 24V switches ipv. de standaard 5V pins die je op andere VFD's ziet. Bah.

Conclusie, ik wil het digitaal hebben - en de beste manier om dat te doen is via RS485.

Daarin zit een probleem. Voor een RS485 aansluiting heb je 3 of 4 pinnetjes nodig - en in GRBL zijn die eigenlijk allemaal in gebruik. En na RS485 ben ik eigenlijk nog wel wat ambitieuzer en wil ik nog wel wat meer, zoals automatische levelling inbouwen met 2 sensoren (1 voor het stuk en 1 voor de tool - zodat toolchanges en heightmaps makkelijk te maken zijn). Maar zelfs al zou ik pinnetjes van andere functionaliteit stelen, dan nog is het een issue, omdat GRBL vrijwel alle memory en flash resources van een arduino gebruikt. Kortom, pinnetjes tekort, hardware tekort en software werkt niet mee.

De enable pins voor de steppers zijn eigenlijk geen issue, maar vind ik gewoon suf.

De reden dat ik deze problemen niet direct had opgelost vanaf het begin, was vooral vanwege de hoeveelheid werk. GRBL is wel lekker makkelijk en optocouplers solderen op de juiste manier is ook een hoop ellende. PCB had ik geen ervaring mee. Afgelopen week heb ik daarom besloten maar eens een PCB bordje te CNC'en voor de optocouplers. Nu nog ongetest, maar ik heb er op zich wel vertrouwen in:

Afbeeldingslocatie: https://tweakers.net/i/tfTXcpSdnxVOQnL10FxdBlkEqTM=/800x/filters:strip_icc():strip_exif()/f/image/1YR9jBM8rdZaPpuPgIDf4YrG.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/LKeDdLn5dQwR5F_4XzDMeyBq72M=/800x/filters:strip_icc():strip_exif()/f/image/7zDW7RC0sE1wWLIIeuJj79T4.jpg?f=fotoalbum_large

En de link met de designs.

Dit is stap 1 van de 3.

Stap 2 is dat er ook nog een PCB bordje nodig voor de stappenmotoren, zodat die enorme stapel draadjes weg kunnen. De TB6600 hebben intern al optocouplers voor de ingangssignalen, dus daarmee werken ook die geisoleerd. Dit is een veel simpeler bordje, waarbij eigenlijk alleen maar een voltage regulator en wat voltage level converters nodig zijn. Op dat PCB bordje komt ook een connector voor de RS485 aansluiting voor de VFD.

Na testen wordt stap 3 dat de Arduino UNO (5V) gaat worden vervangen door een Arduino DUE (3.3V) en een deel van de bekabeling wordt aangepast. Een DUE kan draaien op TinyG2 (G2Core) wat veel meer functionaliteit heeft en bovendien flink wat ruimte heeft voor groei.

TinyG2 gaat ook nodig zijn voor de VFD aansturing, wat stap 3 is. De VFD gaat worden aangestuurd via RS485; waar ik nog zelf wat code voor zal moeten krassen.

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33

Afzuiging en omkasting

Omkasting eromheen met fatsoenlijke geluidsisolatie.

Afbeeldingslocatie: https://tweakers.net/i/XJdIN6sKTmEnHzmHiTkusM8aKt8=/800x/filters:strip_icc():strip_exif()/f/image/MWyeKyr9l1ShWJvgF9o4qWhl.jpg?f=fotoalbum_large

De stofafzuiging heb ik inmiddels ook in orde. Ik heb een cycloon geklust met wat hout en wat platen plexiglas, die precies onder de kast past. Ik kan het niet beter uitleggen dan dit: YouTube: A small Cyclone Dust Collector with a Cheap Vacuum . Anders dan het filmpje kan ik aanraden om plexiglas niet op spanning te buigen, maar echt even goed te verwarmen, gewoon boven een gasfornuis met handschoenen aan. Resultaat:

Afbeeldingslocatie: https://tweakers.net/i/UOnFlPZaNoDvacM7fzrRsRyN28E=/x800/filters:strip_icc():strip_exif()/f/image/f0WBRYxcZx6RWrFQy3YjIPM9.jpg?f=fotoalbum_large

Designs zijn hier te vinden: https://a360.co/2IrkmCH . Het enige dat je dan nog nodig hebt is iets om je stofafzuiging op te hangen. Ik heb 'm aan de X-as gehangen met een twee "half coupler"s (zoek op Google). Het enige dat je dan nog nodig hebt is iets om het stof onder je spindle af te zuigen: https://a360.co/3qnoROV zeg maar. Mocht je geen 3D printer hebben, mijn prototype was gewoon een 32mm pvc buis van de praxis, die ik gevuld had met zand, goed verwarmd had boven het gasfornuis en daarna in een malletje had geduwd... paar gaatjes erin, wat tochtstrip eronder en het je hebt een fantastische afzuiging.

Tool changes

Tool changes zijn best waardeloos. En dus heb ik maar weer iets geklust... Van Amazon heb ik een z probe gekocht. Het enige probleem is dat die dingen normaal werken op een stroom die gaat lopen... als je dus vergeet om je krokodillenklem te zetten of als het ding eraf valt, gaan er dingen Heel Hard Stuk. Nou, dat wilde ik niet.

Het makkelijkste is om een Normally Closed metalen drukknop te kopen en deze op de een of andere manier te monteren op een vaste hoogte. Koop gewoon een stapeltje, want je wilt er een die goed repeatible is en 1 cm breed ofzo.

Dat heb ik niet gedaan... De z-probe heb ik uit elkaar gehaald en even het schroefdraad eraf geveild. Vervolgens heb ik er een platte M6 schroef in gezet en het schroefdraad daarvan met shrink tube omhult. Daar heb ik een draadje aan gemaakt. Aan de binnenkant van de probe heb ik een metalen ring gezet en daar ook een draadje aan gemaakt. Tot slot heb ik onder het metalen deel een veer gelijmd en het geheel dichtgeschroefd. Voor de oplettende lezers: dat is dus in feite een drukknop die 'normally closed' is.

Afbeeldingslocatie: https://tweakers.net/i/M3537kq24p90RC6cFWgX2dOevSM=/x800/filters:strip_icc():strip_exif()/f/image/waxBhRFodO6sui2GTFSifxPw.jpg?f=fotoalbum_large

Deze knop staat nu op mijn CNC en heeft een standaard hoogte van precies 22mm. Bij testen gevonden dat hij repeatible is tot 0.003mm . :) Na een tool change, ga ik nu gewoon naar de probe, doe een Z-probe, zet mijn Z op 22mm en klaar. Zo blijft mijn spoilboard heel en zijn tool changes een stuk makkelijker.

Next step: in GRBL_ESP32 zit een ATC branch met wat custom code. Die ga ik aanpassen z.d.d ik een z-probe automagisch kan doen bij een standaard tool change. Dan gaat het gewoon helemaal vanzelf.

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33
Allright, een cnc bouwen dus…

Poging 1 was een cnc van hout. Dwz, de bodem was een torsie box met een stalen plaat van 5 mm, de zijkanten waren stalen platen en er zaten in de hoeken aluminium L profielen. Nouja, hout dus…
Anders dan je wellicht zou vermoeden, is sterkte van de constructie niet een issue hier. Ik kon met deze houten CNC makkelijk hout fresen, aluminium fresen en zelfs langzaam staal. Er waren alleen twee problemen met mijn cnc.

Allereerst kan hout niet tegen vocht – en dus ook niet tegen koeling voor het frezen van metalen. Dat werd op een gegeven moment steeds meer een dingetje en was een van de belangrijkste dingen.
Ten tweede heeft een dergelijke houten constructie blijkbaar een vrij lage eigenfrequentie, waarop de installatie dus gaat vibreren met bepaalde frequenties. Zo kon ik bijvoorbeeld met een 2mm bitje en een 6mm bitje prima staal frezen – maar niet met een 4mm bitje. Als ik dat deed, vibreerde het bitje alle kanten op en dus ultimo stuk.

En ten derde vond ik het ding niet groot genoeg qua werkgebied.

Dus, back to the drawing board…

In plaats van hout besloot ik een nieuwe poging te wagen. Ik zie de CNC en de enclosure als één en hetzelfde ding. De enclosure biedt rigiditeit, veiligheid en afzuiging en kan dus direct hiervoor gebruikt worden. De cnc is gewoon het ding wat in de enclosure rijdt. Mijn startpunt was dus een kast ontwerpen met een bepaalde afmeting, met dingen als geluidsisolatie, afzuiging en elektronica en een plaats waar de boel kan bewegen.

Afbeeldingslocatie: https://tweakers.net/i/knepsbhEAQQkeGBNWSlP3ScxSzE=/x800/filters:strip_exif()/f/image/4IlZ8EUl8lA2ZIKeATZWm04E.png?f=fotoalbum_large

De CNC past hier mooi in en kunnen we nu ontwerpen. Mijn grote lesson learned van de tweede cnc was dat je echt alles mee moet nemen in je ontwerp- dus ook kabels, endstops, gaten voor kabels, etc. Anders moet je halverwege ineens wat gaatjes erbij gaan maken en wordt het allemaal een beetje een drama. Als je er vanaf het begin rekening mee houdt, zie je vooraf gewoon waar je allemaal ellende gaat krijgen en kan je er een oplossing voor verzinnen voordat je gaat bouwen. Ik heb ook de moeite genomen om alle componenten van ome Ali gewoon in detail te ontwerpen, zodat ik problemen kon zien met bijv. componenten die net langs elkaar bewegen, met isolatie die ook best dik is, met een stofzuiger die niet past, etc, etc. Het kost wat meer avonden, maar dan heb je ook wat.

Dit werd het Grote Master Plan:

Afbeeldingslocatie: https://tweakers.net/i/cKsq6WbDdJ3Vm84BFlwsMaJQeDs=/800x/filters:strip_exif()/f/image/uwjJkul62oR1CcCojwtK2miV.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/0ChegSCFxVulRpGJx2dvpbcyF4c=/800x/filters:strip_exif()/f/image/BDkEjz2rLCj808hwTPeRznYi.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/AmaGt6ZcGyswkxASP0Ile0Rjnd8=/800x/filters:strip_exif()/f/image/mFfU2jdfPdBEBuKS4T1ADHfw.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/B52WB1jrjkSx0kNUz-I8EiBDb7M=/800x/filters:strip_exif()/f/image/PPhj89zksdBumvGxNVgXJuKF.png?f=fotoalbum_large

In een volgende posts ga ik in meer detail erop in…

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33

Chinese meuk en de fundering

Wat heb je nou eigenlijk allemaal voor dingen nodig? Nou, een paar ball screws (of lead-screws, dat is wat minder goed), een paar stappenmotoren, een spindle, een paar linear rails en een constructie.
Allereerst de constructie. De constructie is bij mij van staal en hier en daar wat aluminium. Ik ben niet zo’n groot fan van galvanische corrosie, dus waar staal en aluminium elkaar raken, zit er altijd lijm of epoxy tussen. Staal heb ik gelast. Met lassen moet je wel opletten… als je te veel last, verbuigt het staal en dat kan zomaar 0.2mm zijn of meer… Dus wat je wilt doen zijn puntlassen zetten en de verleiding weerstaan om gewoon alles te lassen. Uiteraard wil je de kast wel helemaal door lassen, dus dat gaat wel warping opleveren.

Alle stalen en aluminium componenten zijn precies op afstand gemaakt met de cnc die ik al had. Alle gaten zijn op die manier gemaakt, alle hoeken zijn op die manier gefreesd, etc. Alles is dus op 0.01mm afstand accuraat gefreesd… Note: mijn houten cnc mag dan wellicht niet zo goed zijn in diepte precies doen, maar de afstanden zijn dus allemaal perfect.

Het recept om dit te doen is als volgt. Allereerst klem je je metaal in een machineklem die je flink vast hebt zitten. Daarna doe je probing met een bitje aan de zijkanten en aan de bovenkant van het metaal (bitje verbinden met de + en metaal met de - pool van de probe). Dan weet je dus perfect wat waar de hoek zit. Datzelfde doe je met de hoek aan de bovenkant en aan de onderkant. En vervolgens ga je heel langzaam het metaal fresen; denk aan 0.1mm per pass, feed rate 300. Beetje olie erbij, klaar.

Ik heb het primair gecombineerd met lijmen. Specifiek: industrielijm, dat is sterk geconcentreerd cyaanacrylaat, ofterwijl: secondelijm. Als het goed genoeg is voor vliegtuigen en auto's, dan lukt het ook wel voor een hobby CNC. Dat spul is heel dun en heel sterk. Bovendien heb je een heel groot oppervlakte, en dus is het bijna niet los meer te krijgen. Het Grote Voordeel van lijmen is dat je even een paar seconden de tijd hebt voor het vast zit en het metaal niet 'warpt'. Wat recht is moet recht blijven... Bij het fresen zijn 5mm gaten gemilld, voor dowels. Bij het lijmen gebruik je die om dingen perfect op elkaar te zetten. Maw, als je stalen dowels gebruikt om dingen op elkaar te zetten qua afstand, er lijm tussen doet en dan aandrukt zit het echt perfect. Als je dan nog een paar punten last gaat het echt never nooit meer los; dat vindt je lijm alleen wel minder leuk, dus moet je snel en weinig doen.

Voor de spindle heb ik een VFD met een luchtgekoelde spindle van 1.5 kW. Dat is echt meer dan zat voor de meeste mensen en daarmee kan je echt wel een hoop stuk maken. De spindle is 0.01mm accuraat, wat je uiteraard net als alle chinese dingen even moet nameten met een bitje en een meetklok. De collets zijn “precision collets” van tooling steel van 0.001mm accuraat. En de bitjes zijn niks spannends. Veel mensen kiezen voor een watergekoelde spindle, maar in alle tijd dat ik met een frees bezig ben geweest begrijp ik er maar weinig van… een goed gebalanceerde spindle maakt heel weinig herrie en wordt niet heel erg warm. Luchtgekoeld is bovendien veel eenvoudiger en makkelijker accuraat te bevestigen.

Voor de overbrenging gebruik ik 1605 ball screws. Voor CNC’s tot ongeveer 4 meter doen ball screws het prima, daarna moet je iets anders gaan doen met rack & pinion enzo… geen last van. Je wilt daarbij eigenlijk een zo simpel mogelijk mechaniek gebruiken. Voor de y-as gebruik ik vanwege ruimtegebrek een overbrenging met bandjes. Voor de andere assen is het een directe overbrenging. Koppelingen zijn “plum”-style koppelingen, want die hebben de minste speling.

Afbeeldingslocatie: https://tweakers.net/i/Mwo7wcXqCHujHOe92b4netGDbSU=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():fill(white):strip_exif()/f/image/M3AN0Yumymtf4sa3S5NpAiUk.webp?f=user_large

Chinese ball screws worden standaard opgeslagen in petroleum, met het grit van de fabriek nog in de verpakking. Het eerste wat je dus doet is het ding goed schoonmaken, nog voor je ‘m beweegt! Daarna kijk je eerst of het ding recht is, want anders stuur je ‘m terug.

De BF12/BK12 mounts zijn het volgende ding. Standaard worden deze geleverd met de goedkoopste kogellagers die je maar kunt vinden. Dat willen we natuurlijk niet, dus we kopen bij onze ball screw, ook gewoon 2 goede P5-grade angular kogellagers voor de BK12 en een deep groove kogellager voor de BF12… volgens mij heb ik meer geld besteed aan de kogellagers dan aan de hele ball screw :). Kogellagers vervangen en klaar.

Stappenmotorjes. Ik zie legio mensen die gewoon de dikste en langste stappenmotor kopen die ze kunnen vinden. Don’t Do It. Dikke, lange stappenmotoren hebben vaak een hoge inductance en hebben dus een hoge spanning nodig om uberhaupt een beetje tempo te maken. Die zijn alleen wel sterker dan een korte dunne stappenmotor. Je moet je afvragen: waar zit de grootste vertraging van mijn machine? Het antwoord is meestal: de acceleratie en rapid moves. Rapids kan je zelfs vraagtekens bij zetten als je geen professionele Fusion360 licentie hebt, want F360 heeft die uitgezet.

Fresen doe je normaliter op een vrij lage feed rate. Denk aan 1000 mm/min ofzo max. Dat is 16 mm/sec. Vrijwel alle stappenmotoren halen dat wel, dus dan zit je grootste tijd in acceleratie en deceleratie bij bochten en rapids. Hoe sneller je dat kunt doen, hoe sneller je job klaar is. Een krachtige motor zou in principe sneller moeten kunnen accelereren maar heeft een hoge inductance en dus een lage topsnelheid op lagere voltages. Je kunt het voltage vervolgens omhoog schroeven, maar dan wordt het elektrisch lastiger, krijg je meer interferentie en wordt het duurder. En dan is er nog het puntje kracht… Je zult je gantry moeten verplaatsen en je frees door het stuk moeten halen. Tsja, dat kost kracht, bij staal wat meer dan bij hout. Een gemiddelde NEMA-23 of meer zal dat allemaal wel doen als je geen absurde zware installatie hebt. Mijn bewegende componenten zijn ruim 50 kg, wat geen enkel probleem is.

Tot slot is er de form factor van je stappertjes. Als je SFU1605 ball screws hebt, zoals de meeste mensen incl ik, komen die met BF12/BK12 koppelingen. Die koppelingen zijn 60mm breed. De koppeling met je stappenmotor moet perfect aansluiten. De makkelijkste manier om dat te doen, is door ook gewoon een 60mm brede stappenmotor te kiezen – die bestaan en ze heten NEMA-24.

Hoe groot moeten je steppers dan zijn? Zoals ik zei, korte steppers kunnen veel snellere rapids doen dan lange steppers, omdat er meer stroom door die spoelen moet worden gepompt. We kunnen het gelukkig gewoon allemaal uitrekenen. Ik heb dus maar een hele grote excel sheet gemaakt met daarin alle mogelijke steppers die ik kon vinden met alle technische specs. Vervolgens heb ik de max rate en max acceleratie uitgerekend die ik kan verwachten met mijn opstelling. En dan is het nog een kwestie van kiezen. Voor NEMA-24 is dit zo’n beetje de summary:

Afbeeldingslocatie: https://tweakers.net/i/tS0J-m40hZ1GOA8oTJ075QDTROY=/800x/filters:strip_exif()/f/image/rBMU1U7VZG4optjRbBxNy0D1.png?f=fotoalbum_large

Je kunt je wellicht nu voorstellen waarom ik voor de 24CS22C-400 steppers ben gegaan van Cloudray. 36v erop en klaar. Deze dingen zijn 56mm dik en 60mm breed. Dus lekker klein en sterk. Let op, je kunt hier geen 48V op zetten, 36v is de max. Hogere voltages moet je sowieso voorzichtig mee zijn, dus als je niet comfortabel ermee bent kan je er misschien maar beter niet aan beginnen.

Closed loop of open loop hebben we dan nog als enige keuze. Dit is een lang verhaal om uit te leggen. In het kort: als je firmware geen rotary encoders ondersteunt, zou ik gewoon voor closed loop gaan. Welke? Leadshine is eigenlijk de enige vendor die goed closed loop doet met fatsoenlijke compensatie en “overklokken” bij gemiste stappen, destijds verkocht StepperOnline ze. Ik had echter al drivers voor open loop, dus ik ben voor open loop steppers met DM556T drivers gegaan. De DM556T drivers zijn de Leadshine varianten van de DM556 drivers en die zijn erg goed, wederom, StepperOnline verkoopt ze. Chinese drivers heb ik ook liggen, die kan je het best gebruiken als bakstenen, voor als je een gewichtje nodig hebt en dat soort dingen. Als ik ze nieuw zou kopen, zou ik echter voor closed loop steppers gaan. En dan is er nog een dingetje… voor de z-as wil je waarschijnlijk een rem op de motor hebben, want als het ding stroom verliest valt hij dus heel langzaam naar beneden. Met een rem erop los je dat probleem op.

Afbeeldingslocatie: https://tweakers.net/i/F4t1kGeCr-4sN-mZZGq3qBHtDV0=/800x/filters:strip_exif()/f/image/2Ot5PrbvqhzMdWWRlPYf97LX.webp?f=fotoalbum_large

Steppers zijn niets zonder hun drivers. Drivers kan ik een heel verhaal over schrijven, met de vele uren support die we voor de firmware hebben besteed aan dingen die wel en niet werken. Zelf heb ik ook de nodige ervaring met TMC, TB6600, diverse DM drivers, etc, etc. De drivers die ik hiervoor ga gebruiken zijn mijn favoriete drivers: DM556T’s van StepperOnline. De T-varianten worden gemaakt door Leadshine; het echte merk, dus niet de counterfeits. Dat merk je meteen als je de drivers aanslingert, want ze zijn echt awesome. De gaatjes in de behuizing heb ik maar meteen getapt, want dan kan ik ze makkelijk bevestigen in mijn kast. (Veel meer over elektra later)

Afbeeldingslocatie: https://tweakers.net/i/HqVyEuGHMmNF8RvSSx8vX7_13Vk=/x800/filters:strip_icc():strip_exif()/f/image/YzLPLlaML5fnLUk0KLr2gH0E.jpg?f=fotoalbum_large

Ten slot is er nog linear rails. Uiteraard heb ik gewoon wat linear rails uit de wok gehaald, want die zijn lekker goedkoop. Wederom, met grit in de paraffine verpakt. Ook hier zijn de kogels doffe ellende, dus het eerst wat je doet is die dingen compleet uit elkaar trekken en flink schoonmaken met alcohol. De kogels meet je even goed op met een micrometer, gooi je weg en je haalt gewoon goede keramische G5-grade (maw: dure) kogeltjes. Keramisch heeft sowieso de voorkeur, omdat het niet uitzet of krimpt met verschillende temperaturen (frictie). Vervolgens zet je ze weer in elkaar en ga je evt. met wat precisie slijpgereedschap ermee rommelen tot ze goed lopen. Wat je vooral nodig hebt hiervoor is wat slijpstenen, hoge grit (2000-5000), evt. wat oliesteentjes en een hamer. Vwb. vet, SuperLube is een fantastisch potje met vet voor smering. De rails zelf goed schoonmaken, ook de randjes dus, en dan met siliconenspray behandelen tegen corrosie.

Huh wacht… een hamer? Ja echt… om de kleine toleranties goed te krijgen, zet je het wagentje met de schroeven nog relatief los op de rail met flink wat vet erin, en geeft het ding aan alle kanten wat tikjes met een hamer. Soms werken ze ook op de ene rail beter dan de andere… en je kan er maar beter gewoon een of twee extra kopen, want vaak zit er een tussen die het slecht doet. Vastschroeven, paar keer heen en weer halen en klaar. Als je het goed hebt gedaan, kan je de wagentjes helemaal niet draaien, maar vallen ze wel onder hun eigen gewicht naar beneden.

Afbeeldingslocatie: https://tweakers.net/i/k36FzalIwYwgB5J7S_nUT7jmPdU=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():fill(white):strip_exif()/f/image/1GnCyirzEmIxxYwGknZZKFYX.webp?f=user_large

Je kunt natuurlijk ook in plaats hiervan meteen goede linear rails en ball screws kopen. Als je ze tweedehands vind voor een leuk prijsje, vooral doen. Mijn ervaring is dat je in dit geval voor kwaliteit (heel flink) betaalt.

Linear rails zijn helaas ook vaak wat minder recht dan je zou willen. Op zich is dat niet erg, aangezien je ze toch vastzet op je constructie. En aangezien die van staal is, is de kans groot dat de relatief kleine rail gewoon netjes buigt. Als je echter een dikke rail hebt en wat extrusie profielen, kan je weleens bedrogen uitkomen…

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33

Precisie

Nu we dat uit de weg hebben, moeten we het hebben over precisie. Veel mensen maken een CNC, leggen er een spoilboard op en snijden het plat. Wat je dan krijgt is dat je spoilboard en je frees met elkaar evenwijdig lopen, maar dat zegt dus maar weinig over hoe “goed” je cnc is. Als je immers er vervolgens een vlakke plaat aluminium op legt en je gaat hier een mooi iets uit fresen, is hetgeen je eruit freest gedimensioneerd naar de afstand van je linear rails – en dus niet mooi recht. Ter illustratie:

Afbeeldingslocatie: https://tweakers.net/i/Pmk4f-6WFXhgxZX7eda-E_juA_Y=/800x/filters:strip_exif()/f/image/9ljpqIGltpZISjCvf4QFnJge.png?f=fotoalbum_large

Als je alles echt recht maakt, krijg je een veel mooiere machine. Hoe kan je dat doen? Daarvoor heb je een vlak referentiepunt nodig, waar je alles vanaf dimensioneert. En dit is het moment dat ik een paar pagina’s ga schrijven over een vlak referentiepunt…

Er zijn niet zo heel veel mogelijke vlakke referentiepunten denkbaar. Specifiek, er zijn er twee. De eerste is door gebruik te maken van een “vlakplaat” en alles hier vanaf meten. De tweede is door gebruik te maken van de zwaartekracht, en alles hier vanaf meten. Traditioneel gebruiken de meeste mensen een vlakplaat.

Sommige mensen gebruiken de zwaartekracht door “epoxy leveling” te doen en dan de vloeistof zijn werk te laten doen. Dat was ook mijn eerste poging, want dat zag er wel lekker makkelijk uit. Inmiddels ben ik daarvan weer genezen, want mijn ervaring was dat het een drama is. Na het er weer af te hebben gepeuterd, gingen we het maar eens goed doen…

Allereerst: normaal vensterglas is bijzonder vlak. Als je genoegen neemt met ~0.05mm, pak dan gewoon een plaat nieuw vensterglas, snij de randen er vanaf met een glassnijder en daarna kan je het gebruiken als referentiepunt MITS je er vrijwel geen kracht op zet. Als je nauwkeuriger wilt of als je het ook als bodem wilt gebruiken (zoals ik), heb je een vlakplaat nodig.

Dus… vlakplaat. Je kunt natuurlijk een vlakplaat gewoon kopen voor een kleine 500,-, maar dat is een hoop geld en niet zo leuk. Dus waarom kunnen we zo’n ding niet gewoon zelf maken? Wel, dat kan gewoon. Het enige wat je nodig hebt is een materiaal waar je 3 stukken van hebt die redelijk vlak zijn – en dan ga je met “Whitmore’s 3 plate method” de materialen tegen elkaar aan wrijven tot het vlak is. Ik kan het niet beter uitleggen dan deze url: https://ericweinhoffer.co...worth-three-plates-method .

Allereerst het materiaal. Staal is veel gebruikt en hardsteen (graniet) wordt veel gebruikt. Ik ben gevallen voor het graniet, omdat het spotgoedkoop is. Bij de lokale steenboer heb ik een mooie tegel van 80x80x3.5 cm gehaald die redelijk vlak was (dat kan je testen met een standaard alu profiel) voor een paar tientjes. Nouja, eigenlijk heb ik dus 3 stenen gehaald, want dat is een vereiste voor Whitmore, de andere stenen waren “bandjes” want die zijn makkelijker hanteerbaar. Een standaard steen uit de bouwmarkt is tot ongeveer 0.3mm nauwkeurig. Die 0.3 moet naar beneden en op dit moment kan je het nog gewoon met een alu profiel snel testen. Dat doe je met een bandschuurmachine en een hoop chocolade voor je vrouw die een half huis vol stof niet zo tof vindt. Of doe het gewoon buiten, dus niet zoals ik…

Daarnaast heb je een schuurmiddel nodig. Daarvoor wordt Siliciumcarbide gebruikt. Een beetje betaalbaar spul kan je urenlang naar zoeken, ik heb het na lang zoeken hier gevonden: https://www.bodemschat.nl...ppoeders-siliciumcarbide/ . Je krijgt dan een stapeltje zakjes met zand-achtig spul, wat slijpmiddel is. Vooral K-80 ga je gebruiken, de rest is alleen maar nuttig voor de fijnafwerking.

Afbeeldingslocatie: https://tweakers.net/i/uZc4RsvYHOjA8Qo0NMvzegqRgCI=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/hQIgkURRcOqhZSgrDtr6RZhP.jpg?f=user_large

Je hebt ook nog een vloeistof nodig. Meestal gebruiken mensen hiervoor BBQ-lighter vloeistof, wat helemaal top werkt… maar waar je behoorlijk licht in je hoofd van kunt worden. Ik heb uiteindelijk vooral gewoon water gebruikt. Je strooit wat water en poeder over je steen, doet je sequences en haalt de slurrie weg. Rinse, repeat (in de juiste volgorde). Zoals ik zei, K-80 is prima voor vrijwel alles, pas als je echt tevreden bent doe je 2 sequences in een hogere gradatie.

Nou, dat doe je dus een keertje of 50. Goed voor de spieren zullen we maar zeggen. Daarna is je plaat super duper vlak.

Er zijn nu twee mogelijkheden. Of je doet een gok, of je gaat op een gegeven moment meten. Nou was ik nog niet helemaal overtuigd na die 50 keer, dus ben ik maar eens gaan kijken naar het meten. Meten ja, nou, daar heb je dus een referentiepunt voor nodig. In de industrie worden daar twee dingen voor verkocht…

Het eerste is een repeat-o-meter. Tsja, leuk ding, ik heb er geen en die dingen zijn behoorlijk prijzig. Dat gaat ‘m dus niet worden.
Als tweede gebruikt iedereen de zwaartekracht. Deja-vu, daar hadden we dus beter mee kunnen beginnen… Nouja… Je kunt kiezen uit een precisie waterpas of een digitaal ding. Die waterpassen zijn echt supermooi, ze kosten een paar honderd euro tweedehands en kan je echt heel nauwkeurig mee meten. En als je ze laat vallen zijn ze uiteraard helemaal kapotstuk.

De digitale weg was de andere optie. Industrieel speelgoed was hiervoor wel te koop… voor zo’n 10.000,- voor een setje. Boehoe, dat is niet meer leuk, dat moet veel goedkoper kunnen... Dus ik heb van alles en nog wat geprobeerd en kwam uiteindelijk terecht op Murata accelerometers. Dit spul is niet te verwarren met de goedkope MPL/ADXL tr**p, wat meteen opvalt als je de datasheet leest (of naar de prijzen kijkt). https://www.murata.com/en-eu/products/sensor/accel

De Murata accelerometers zijn kei-gevoelige en kei-repeatable sensoren. Toevallig kwam ik een astronoom tegen die het gebruikt voor calibratie van de bolling van zijn enorme spiegel. :) Dat klinkt dus als goed spul… Één sensor kost ongeveer 50 euro, dwz: de IC, dan heb je verder nog niets. Ze zijn ook heel “interessant” met solderen, met specifieke ramp-up en ramp-down instructies voor hitte, je moet ze solderen binnen een paar dagen zodra ze uit de verpakking komen, ze hebben hele specifieke placement instructies ivm interferentie, etc, etc, etc. In de instructies staat met grote hoofdletters dat je het allemaal maar beter door een professionele partij kunt doen… Nouja, ach… het zijn vrij simpele PCB's die we gewoon met de CNC maken, bij het solderen vernietigen we 1 sensor en de andere doet het perfect. Mooi:

Afbeeldingslocatie: https://tweakers.net/i/DXn3zkgomlRKfOrjItPJxrsZx4c=/800x/filters:strip_icc():strip_exif()/f/image/XUYcQFdMrbbWWpqfxODEIjo9.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/JghT9FGYiu9MFNiTHyGGTyU_54o=/x800/filters:strip_icc():strip_exif()/f/image/YdLNxa2xkxqaXOtZKztAq7SJ.jpg?f=fotoalbum_large

Goed, dan nu de details. De professionele Murata accelerometers meten de hoek ten opzichte van de zwaartekracht op 0.001°/√Hz . Laten we zeggen dat we 1x per seconde het ding uitlezen, dan hebben we dus een accuratie van 0.001°. Sin(0.001) = 1.745e-5 en op een afstand van 10 cm is dat dus een afstand van 1.745e-4 centimeter hoogteverschil die je kunt meten. Awesome!

Het enige lastige is dat je dus hoeken meet tov. de zwaartekracht en dat is dus niet een vlak. Wat je nog nodig hebt is een machientje wat op basis van die mooie hoeken een mooi vlak kan maken. Nou ben ik niet de minste programmeur, dus ik ben gewoon achter de computer gekropen en heb daar een paar weekjes aan gespendeerd. Misschien wel wat langer…

Een klein machientje heb ik dus eerst geklust. Als basis gebruik ik een stalen plaatje, waar ik wat gaatjes in heb gemaakt en getapt. Vervolgens heb ik met vloeibaar soldeer hier een drietal kogellager balletjes in gemaakt – belangrijk hier is dat je exact weet wat de coordinaten zijn van de balletjes. Daarna moet je bedenken dat iedere kabel die je vastmaakt aan het ding de metingen beinvloed… tsja, dan maar wireless dus. Ik heb een ESP32 aangesloten op 4 batterijen voor 6V, heb daar vervolgens een bordje op gemaakt om het spul te mounten en tot slot de murata sensor erop. Een kleine firmware met een TCP/IP server doet een meting wanneer dit nodig is en geeft de resultaten wireless door. Zo ziet het ding eruit:

Afbeeldingslocatie: https://tweakers.net/i/o_Di1zwaG6yBlDuXcKyyDYpWIbY=/800x/filters:strip_icc():strip_exif()/f/image/GVJtuHYoiGWO6CWRxyghdgpQ.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/lSDS7ZNTRSC00HjArWHku_AZy-0=/800x/filters:strip_icc():strip_exif()/f/image/zAGgOPYfrgHCNhjQZ1VPxEnc.jpg?f=fotoalbum_large

Met dit soort precisies werken betekent ook inherent dat iedere onnauwkeurigheid in hoeken op je PCB te meten is. Eerst moet het ding dus worden gecalibreerd zodat je weet wat “nul” is. Na even nadenken kwam ik op het idee om een een vlakplaat en wat precisie blokjes met een constante dikte te gebruiken. Dat doe je gewoon een tiental keer en dan krijg je best een aardige nauwkeurigheid (lees: nauwkeuriger dan 0.001mm).

Afbeeldingslocatie: https://tweakers.net/i/wcLxL5errzL_Yu6vZIpE8XN97xY=/800x/filters:strip_icc():strip_exif()/f/image/jhe3q7zP6WHx8tZTz2zEgSPP.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/MEz97sfbvKoQQ1fjemKuCA-1GGE=/800x/filters:strip_icc():strip_exif()/f/image/9XqE9rky8Y4QLRZvPtHVJJDk.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/omj8EHLvOVZvs75wQCtomPQtbbQ=/800x/filters:strip_icc():strip_exif()/f/image/xtE0vkEhxD6IWwYFdljwxmLQ.jpg?f=fotoalbum_large

En dan hoeven we alleen nog maar te meten. Ik wilde eigenlijk gewoon een hoogtekaart zien van mijn vlakplaat. Dus maar weer code schrijven… Zoals ik boven al zei worden metingen uitgevoerd op 3 punten, waarvan ik de exacte positie ken. Dus met een stapeltje lineaire algebra kan je dan de meting compenseren met de calibratie en vervolgens de hoeken en afstanden allemaal bepalen. De vlakplaat heb ik vervolgens opgedeeld in allemaal kleine driehoekjes, die allemaal een meetwaarde hebben. Omdat ik van iedere meetwaarde dus de relatieve hoogte van alle drie de punten kan uitrekenen, kan ik als het goed is dus ook de hele vlakplaat opmeten. Dan nog een paar avondjes coderen aan visualisatie en het meten kan beginnen…

Het volgende wat er moet gebeuren is de plaatsing van het ding op de vlakplaat. Ik heb daarbij het liefst gewoon veel metingen, zodat fouten wegvallen… Initieel heb ik een keer met de hand het ding overal geplaatst, maar dat is behoorlijk vervelend werk. Het volgende wat ik daarom heb gedaan is even een stappenmotor gepakt en hierop een klosje garen vastgemaakt en die sleurt het device over de vlakplaat. Voor de meting zorgt hij dat de spanning van het draadje af is, zodat de metingen niet beinvloed worden. De vlakplaat moet hiervoor uiteraard wel erg goed schoon zijn, anders glijdt het ding niet zo lekker.

Een meting zag er bij mijn ongeveer zo uit:

Afbeeldingslocatie: https://tweakers.net/i/JofxU63WR41RuZovwEn3Jc8q3vQ=/800x/filters:strip_icc():strip_exif()/f/image/JzHOYJoVAmjyyUqADIwG81jG.jpg?f=fotoalbum_large

Dus hoe ziet mijn vlakplaat eruit na al dit werk? Na een maand klussen en programmeren weten we het eindelijk:

Afbeeldingslocatie: https://tweakers.net/i/M8CJ75a4Fl_OIfIeGbmIOOrxxKQ=/800x/filters:strip_exif()/f/image/8LeTZKFU2C2w3ubIk5vvx0BA.png?f=fotoalbum_large

Boehoe. Onnauwkeurig.
Na nog een keertje of wat Whitmore te doen, zag het er al een heel stuk beter uit... En zo zijn we nog even doorgegaan tot ik tevreden was. Inmiddels kan ik met tevredenheid zeggen dat ik een mooie vlakplaat heb :)

Goed, waar waren we ook alweer mee bezig… oh ja een cnc bouwen. Die vlakplaat is de basis van mijn CNC machine. Links en rechts komen er stalen rechthoekige buizen, de main gantry komt daar bovenop (zodat het ding niet te veel meer kan bewegen; gantry’s aan de onderkant zijn wellicht kosteneffectief maar verder behoorlijk jammer). En dan nog een z-as. Zo ongeveer, maar in deze fase is het nog een behoorlijke zooi:

Afbeeldingslocatie: https://tweakers.net/i/rOn5-6uGaaaNzsPlJoHvHdV5xLc=/800x/filters:strip_icc():strip_exif()/f/image/8nYoudQJgaMdmVC1vyoHBSa4.jpg?f=fotoalbum_large

De verschillende linear rails gaan we meten tov. de mooie vlakplaat met tools, dwz.: de mooie accelerometer werkt prima om te vertellen of alles recht is, en tot die tijd werkt een hoogte-caliper en een meetklok prima. Die dingen kan je net zo goed meteen kopen, die heb je toch wel nodig… Ik heb toevallig een Mitutoyo digitale meetklok, dat is op lange termijn wel handig… meer daarover als ik shims ga maken.

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33

Leveling en shimming

Goed, we hebben nu dus linear rails bevestigd. Dan kunnen we dus leveling gaan doen. We hebben bovendien een vlakplaat en de awesome sensor. Ik had op dit punt de elektronica al gedaan, maar dat is op zich niet nodig (en wellicht zelfs contra-productief).
Levelen, of “tramming”, is het proces waarbij je de afstanden helemaal goed krijgt. We kunnen het hebben over alle mogelijke details ervan en verschillende methoden, maar dit is de methode die ik gebruik...

Het eerste wat ik heb gedaan is mijn Mitutoyo digitale ingang aangesloten op een Arduino. Dat is niet nodig, maar je begrijpt later waarom. Vervolgens heb ik wat simpele software geschreven. De software geeft aan de firmware een “move” en doet vervolgens een meting met de Mitutoyo. Dat is gewoon omdat ik veel meetpunten wil, niet omdat het nodig is ofzo… het gaat in de praktijk denk ik sneller om je ball screws los te koppelen en gewoon met de hand te bewegen.

Dus, zo ziet het eruit:

Afbeeldingslocatie: https://tweakers.net/i/0whuFBewO_sBpIB1Rg-I3A1XGPc=/800x/filters:strip_icc():strip_exif()/f/image/lbntm9wCVb66kHjziUGFUAZh.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/M4UrqKGj-079JFPM8zOuxLStH_A=/x800/filters:strip_icc():strip_exif()/f/image/aAvdZseij9zwBYiF5RzKjCIJ.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/c1fJHX9GsIG2l6T-2jhyDkr_GiI=/800x/filters:strip_icc():strip_exif()/f/image/HpUXxLDNOpjsnQzPdBLQ0F02.jpg?f=fotoalbum_large

Allereerst, nadat je dit hebt gedaan, wil je niet meer alles uit elkaar halen. Maw, als je nog dingen wilt vastlijmen ofzo omdat het anders met vibratie toch wel los komt is NU het moment. Endstops en magneetjes enzo zijn goede kandidaten die je echt wel minimaal met loctite wilt vastzetten (ik gebruik zelfs industrielijm daarvoor). Maar ook de koppelingen van je stappenmotoren enzo.
Wat ik nu eerst probeer goed te krijgen is de y-as. De x-as zetten we zo veel mogelijk op de “laagste” stand; je hebt wat speling nodig voor tramming! Wat ik meet is de afstand van de vlakplaat tot spindle. Dat doe ik links en rechts. Vervolgens stop je de getallen in Excel en omdat je alle afstanden weet en weet dat je vlakplaat recht is, weet je dus ook wat de “fout” is.

Mooi. Enter dubbelzijdig tape. Pak een blokje aluminium (eerst wat gaatjes in tappen, anders krijg je die nooit meer los!), wat plaatjes staal en vervolgens gaan we het staalplaatje omvormen tot shims. We weten immers wat de error is – dus we weten ook hoe groot de shims precies moeten zijn.

Recept:
1. Het plaatje staal (!) meten we op met een micrometer
2. Vervolgens proben we (evt handmatig met een multimeter) de z=0 van het plaatje staal en maken hiervan een hoogtekaart.
3. In Fusion 360 maken we de shims op precieze maat.
4. In Candle zetten we de hoogtekaart (handwerk) en jawel: fresen maar.

First cut: steel… Awesome :) Filmpje:



Grote kans dat je een paar bitjes in het proces stukmaakt, want koeling hebben we nog niet… Die koop ik gelukkig per dozijn uit de wok dus dat is niet zo’n probleem. Ik vond dat mijn machine het best aan moest kunnen, dus ik frees dit staal met 1500 mm/min en een DOC van 0.5mm… misschien een beetje veel, ach… Als koeling gebruik ik op dit moment gewoon olijfolie met een kwastje, dat is niet ideaal, maar ik vind het betere spul zo’n rommel en stank geven en koelen doet het toch wel:

Afbeeldingslocatie: https://tweakers.net/i/WEsWEa3URAFKsdEkTP9uP7BDHXo=/800x/filters:strip_icc():strip_exif()/f/image/7nQ2VOtYkS3sboDAjOyxssDP.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/K_YFklkpzn37NRKnpcraq-1z96M=/800x/filters:strip_icc():strip_exif()/f/image/enEAtjwSLfAd7cDKUKsvFDyT.jpg?f=fotoalbum_large

Let op voor die vervelende metaalsplinters. Die zijn vlijmscherp, zo'n 2mm lang en gaan lekker in je handen of in de voeten van je dochter zitten. Werken met (hand)schoenen dus. Ik zuig ze graag daarna zo snel mogelijk weg met een stofzuiger (geen lege zak!) en dan nog even met een vochtig doekje alles weghalen. Om het helemaal goed te doen zou ik er nog een keer met een magnetische rod overheen moeten, maar die heb ik niet liggen. Dit was mijn eerste batch, zonder enige nabewerking:

Afbeeldingslocatie: https://tweakers.net/i/yg9mz-iRl7Ob7Oxo97R4NSxTeFg=/800x/filters:strip_icc():strip_exif()/f/image/Lz0gWUrDPHfVwOLhuzDwFQ1P.jpg?f=fotoalbum_large

Vervolgens moet je nog wel even je shims even nabewerken. Micrometer erbij en een wetsteen en/of wat schuurpapier op je vlakplaat, en als je je werk goed hebt gedaan krijg je vervolgens perfecte shims voor je machine. Shims eronder, nameten. Op een gegeven moment heb je gewoon een stapeltje shims liggen en kan je ermee pielen tot je tevreden bent.

Afbeeldingslocatie: https://tweakers.net/i/uO-3Zzv1DjVWtuY2PKZDT1z0uIY=/800x/filters:strip_icc():strip_exif()/f/image/Ix5r4iaiULb9T6iBvdgFt4DI.jpg?f=fotoalbum_large

Note: het is niet zo erg om shims te stapelen, zolang ze maar aan alle kanten even dik zijn. Pas op met lijm, want dit voegt dikte toe. Dwz, tenzij je net een honderdste ofzo te kort komt, dan doet een druppel secondelijm wonderen.

Ik heb ook een stapeltje shims gemaakt van 0.1mm RVS. Amazon verkoopt dat plaatspul hier: https://www.amazon.nl/gp/...tle_o00_s00?ie=UTF8&psc=1 . Wel oppassen bij het nabewerken van de randen, want het wordt best scherp.

De laatste honderdste millimeters op de y-as doe ik met… rubber. Rubber is mooi spul voor het dempen van vibraties (nou, dat doet het ding wel). Specifiek: siliconen rubber van 1mm dik. Ik comprimeer het standaard met overal dezelfde torque (zie best practices guide van de linear rails voor de torque settings) tot ongeveer 0.5mm. Daarna heb je dus ongeveer +/- 0.1mm om te fine-tunen. Dit is eerlijk gezegd een beetje een experiment wat nog weleens in mijn gezicht kan opblazen... het zou nl ook kunnen dat de vibraties niet gedempt worden maar versterkt worden door het rubber. Ik acht die kans alleen niet zo groot, aangezien ik het eerst behoorlijk comprimeer en het allemaal dus geen kant meer op kan. Let wel op: dit gaat je alleen maar lukken als je een sterke constructie, goede schroeven en flink wat schroefdraad hebt. Als je bijv een 2mm stalen buis hebt en dan met rubber erop gaat spelen, worden de krachten al zo groot dat je het schroefdraad eruit trekt. De bouten die ik gebruik zijn bijv. 12.9 grade, om te voorkomen dat het ellende geeft.

Y-as in orde? Als het goed is weet je dan nu ook het diepste punt(en) van je x-as en de hoogste punt(en). Het verschil mag niet meer zijn dan de speling die je hebt op je x-as. Zo wel, heb je ofwel je shims op de y-as niet goed, ofwel een probleem. Als je een probleem hebt… ik zou het serieus overwegen het los te maken en er eens flink met een grote hamer op te slaan en het nog eens te proberen. Dan de rail op de x-as los schroeven. De x-as kan je nu ‘trammen’ door van links naar rechts de afstand tot je surface plate te meten en bij te stellen. Rinse en repeat, wees geduldig, dit gaat je echt wel een paar uur kosten.

Als deze gedaan is, kunnen we verder naar het volgende ding: de hoeken… Je wilt je x-as onder een hoek van precies 90 graden hebben. Ik gebruik hier mijn mooie Murata sensor voor uiteraard – maar dit kan ook prima met een goede waterpas of met een goede hoekmaat. De x-as zelf wil je niet meer aan zitten op dit moment, maar je kunt bijv. wel wat kleine shims stoppen onder de bevestiging met je linear rails carriages en het geheel dus onder een hoek zetten op die manier. Eventueel kan je shims ter plekke nog wel op maat maken als je wilt.

Ditzelfde geldt voor de hoek waaronder je je z-as ophangt. Je spindle wil je onder een zo goed mogelijke hoek van 90 graden hebben. Uiteraard begin je met een hoekmaat, maar dit kan beter. De manier om dit te doen is door een zo lang mogelijk bitje in je spindle te stoppen en een meetklok vervolgens op je vlakplaat te fixeren. Er zijn speciale ronde (keramische) bitjes (zonder snijders) op de markt om dit soort onzin te doen. Als je nu je spindle naar beneden en boven beweegt, moet de afstand hetzelfde blijven. Let op, het gaat hier om je bitje, dus niet om de spindle zelf, onder welke hoek die hangt maakt niet zo veel uit.

Volgende keer een klein stukje over elektronica en dan sluiten we af met heel veel details over firmwares. Het kan even duren voor ik het allemaal heb opgeschreven... :)

  • atlaste
  • Registratie: November 2001
  • Laatst online: 11:33

Een stukje over elektronica en PCB's

Eerder schreef ik al dat het veel uitmaakt of je een goed gemaakt bordje gebruikt of een slecht gemaakt bordje. Aan de reacties op diverse forums te zien denk ik dat de meeste mensen dit effect onderschatten…
De beste elektronica die je kunt krijgen zijn de commerciële CNC controllers. Die kosten alleen ook zowel qua software als hardware serieus knaken, een stuk meer althans dan ik ervoor over heb. Aan het andere eind van het spectrum zit zo’n beetje Plain Old Grbl van Gnae (POG) en parallel Break Out Boards (BOB). Die zijn echt bijzonder populair… Dus waarin zit nou eigenlijk het verschil?

Allereerst wat we nou eigenlijk willen en waar we op moeten letten. CNC’s zijn heel goed in het produceren van een enorme hoeveelheid EMI (ElectroMagnetic Interference), maw: ruis. Ruis is vervelend, want het betekent dat je endstop afgaat als hij dat niet doet, het betekent dat je stappenmotor een stapje zet als hij dit niet doet, etc, etc. Dat kan best lelijk worden in de praktijk, in het slechtste geval kan je er zelfs je machine mee vernietigen. Dat willen we uiteraard niet, want dat is zonde. Hoe meer stroom er loopt door je machine, hoe meer EMI. Een 24v spindle op een CNC3018 doet dus niet zo veel, maar een 220V VFD spindle is wel serieus. Naast EMI hebben CNC machines vaak veel devices eraan vast geknoopt; daarmee bedoel ik bijv. wat servo’s, een rs485 aansluiting voor een closed loop spindle, een rotary encoder, etc, etc. En tot slot is er het kleine dingetje timing.

De elektronica is uitsluitend bedoeld voor de aansturing van dit alles, zodat de motoren hun pulses krijgen en de eindstops aankomen. Vrijwel alle elektronica-bordjes hebben hierbij een microprocessor, die een deel van het werk oplost. In het ideale geval wil je dat hierbij de microprocessor alleen op hoofdlijnen alles aanstuurt, en dat kleine dedicated “hardware peripherals” de hoge-frequentie details aansturen. Bij gebrek aan peripheral moet je meestal het issue in software oplossen.

Surprise, surprise, hardware oplossingen zijn vrijwel altijd beter hier. Als praktisch voorbeeld, pak bijvoorbeeld “pulse width modulation” (PWM). PWM is een manier om een blok-hoek signaal te maken door een bit aan en uit te toggelen. Voor kleine servo motoren is dat op gemiddeld 50 Hz, wat allemaal niet zo spannend is. Voor stappenmotoren gaat het echter om veel hogere frequenties en wordt het spannender. Hoe beter je deze timing voor elkaar krijgt, hoe soepeler het allemaal loopt, omdat je daarmee telkens op het juiste moment kunt “stappen”; slechte timing noemen we ook wel “jitter”. Ik denk dat we het er allemaal wel over eens kunnen worden dat “stapjes zetten” het meest belangrijke is wat een CNC hardware en firmware doet.

Waarom is “jitter” zo naar? Als je een stap zet op een stappenmotor, wordt in principe dit “stapje” gezet. Maar: dit is niet instantaan; omdat massa traag is en je nogal wat verplaatst, zet je het liefste stapjes op het moment dat je motor aan het beginpunt van het volgende stapje is aangekomen – waarbij je dus gebruik maakt van het traagheidsmoment van je machine, ipv. hier tegenin werkt. Stel je nu voor dat je timing niet zo lekker is, en je er telkens een stukje naast zit. Het effect hiervan op de motor is dat je telkens net-niet lekker uitkomt en de motor dus het stuk continue aan het versnellen en vertragen is. Maw, je krijgt geen mooie vloeiende beweging, maar een schokkende beweging. Uiteraard zie je dit terug in je werk.

Merk op dat er twee componenten zijn aan de timing hier. Allereerst hebben we het moment waarop een stap wordt gezet, en ten tweede hebben we de lengte van de pulse. Beiden moeten zo precies mogelijk worden getimed. Maar: computers zijn digitale componenten die werken op een klokfrequentie en ook nog andere dingen te doen hebben - en dus zit er inherent een onnauwkeurigheid in.

Allereerst hebben we de pulses voor stappenmotoren. Stappenmotoren geef je een pulse met een bepaalde lengte, zeg: 4 us. Afhankelijk van de driver wordt hierbij gekeken naar de “leading” (omhoog) of “trailing” (omlaag) edge. Voor het beste resultaat wil je dus dat je hardware vrijwel precies altijd die 4 us pulses geeft, ongeacht wat er verder allemaal gebeurt. Ten tweede moet je je realiseren dat het moment waarop deze pulse optreedt géén veelvoud is van die 4 us – want “tijd” is een continue iets! Hoe preciezer we in de software kunnen zeggen wanneer een pulse optreedt, hoe beter de “motion” van je cnc machine en hoe mooier het resultaat gaat zijn. Overigens kan je dit resultaat kan ook echt zien als je bijvoorbeeld aluminium of een ander metaal gaat frezen.

Timing zit tot slot ook nog in latency. In sommige gevallen is je timing van de eerste twee aspecten heel mooi – maar zit er een tijdsverschil tussen het “event” en het “signaal”. Een voorbeeld is een I2C/SPI pin extender, die veel worden gebruikt om een gebrek aan input pinnetjes op te vangen. Je kunt met een oscilloscoop meten hoeveel tijd er zit tussen het signaal en het daadwerkelijk doorkrijgen van dit signaal. Bij een gemiddelde pin extender die op 100 kHz draait is dat ongeveer 5 tot 10 us. Het verschil in latency van 5 us is hierbij een groter probleem dan de daadwerkelijke latency, omdat het ervoor zorgt dat de “triggering” van bijvoorbeeld endstops niet meer “repeatable” is. En dat kan ervoor zorgen dat je machine niet meer precies haaks is, of dat je homing niet meer op hetzelfde punt eindigt.

Enter hardware versus software. Als je hardware geen PWM doet, moet je dat dus zelf nadoen. Dat kan, maar in alle gevallen zijn dingen die je “moet nadoen” gevoelig voor jitter, omdat achtergrond processen tijd kosten. Kortom, niet ideaal… De meeste kleine processors zoals STM’s, ESP’s en Arduino’s hebben daarom hardware peripherals hiervoor, wat betekent dat je bepaalde processen op de achtergrond kunt laten doorlopen, ongeacht wat er allemaal verder gebeurt. Uiteraard, mits je firmware hier op de juiste manier gebruik van maakt en je bordje deze hardware ook gebruikt. Evenzo hebben pin extenders vaak een “interrupt” pin, waarmee je precies de latency kunt bepalen. Een paar andere voorbeelden:

Rotary encoders zijn het eerste voorbeeld. Pak bijv. een 5000 pulses per revolution optical encoder, wat niet heel bijzonder is. Een 1605 ball screw is 5 mm / rev. Met een rate van 6k mm/min kom je op 20 revolutions per seconde. Dat is dus worst case 100.000 pulses per seconde op een A en B lijn. Dat is al best serieus veel data, terwijl je nog niets hebt… Als je ze niet snel genoeg kunt afhandelen, heb je een probleem. Maar: met een hardware peripheral (zoals een dedicated IC of een PCNT zoals op de ESP32 zit: https://docs.espressif.co...nce/peripherals/pcnt.html ) is het triviaal om te doen.

Tweede voorbeeld is I2S. De meeste devices hebben weinig pins. Een BOB heeft uit mijn hoofd 16 I/O pins, een Arduino, ESP of STM meestal een stuk of 20. Dat is niet zo veel… en een veelvoorkomend probleem is daardoor dat je meestal te weinig pinnetjes hebt. Met I2S IC’s kan je via 3 lijnen 32 high speed pins aansturen… zelfs snel genoeg voor stappenmotors. Hoe snel precies? Wel, je stappenmotoren wil je aansturen op toch wel 100 kHz per pin of meer. 32x100 kHz serieel geeft 3.2 MHz op 3 pinnetjes (de werkelijke snelheid van I2C ligt overigens nog veel hoger). Direct Memory Access (DMA) is hierbij de hardware peripheral die met I2S een hoop goed maakt. In plaats van direct PWM te sturen naar je stappenmotoren, zet je met DMA de stappen in een buffer, die dan door de hardware naar je motoren wordt gestuurd. Kortom, ongeacht wat je allemaal nog meer allemaal voor taken uitvreet in je firmware, zolang de buffer maar netjes gevuld blijft, is het goed.

Hardware timers zijn de laatste peripheral die behoorlijk relevant zijn. Een nauwkeurige hardware timer die op een hoge frequentie loopt is veel beter in staat om op het juiste tijdstip de CPU een signaaltje te geven (om bijv. een stapje te zetten) dan een timer die op een lage frequentie loopt. Kortom, hieruit volgt direct dat we hoe dan ook een bordje zoeken met een vrij hoge klokfrequentie. Meer is echt veel beter hier; een 16 MHz Arduino met een maximale timer frequentie van 16 MHz / 1024 bit resolution = 16 kHz voldoet gewoon niet voor een beetje machine.

Naast hardware peripherals wil ik ook graag nog een opmerking maken over de kwaliteit van de PCB zelf. EMI en piekspanningen zijn echt wel een probleem van een CNC machine die een 220v spindle aanstuurt; dit zou ik niet onderschatten. Wat ik dus verwacht van een bordje is dat het isolatie heeft, om kan gaan met kortsluiting op de inputs, en dat het redelijk robuust is met power management. Dus daarmee bedoel ik dat er een aardige capacitor en inductor op zit om dipjes op te vangen, er wat filtering toegevoegd is, schmitt triggers er op zitten voor mooie edges, en dat er evt nog wat diodes en zekeringen op zitten voor andere ellende.

Waar ik bij high-speed lines (zoals I2S) op let is dat er ook aandacht is besteed aan placement en dat het een 4-laags PCB is. Voor scherpe 'edges', die nodig zijn voor correct functioneren van de componenten, is dit essentieel. Als je PCB een paar euro kost, ga er maar vanuit dat dit alles niet het geval is – zowel de componenten als de fabricage van een dergelijke pcb zijn daarvoor te duur… En zelfs van de kleur kan je al eea. afleiden; meerlaags PCB's komen eigenlijk alleen in het groen (want $$$ en pcb assembly services doen moeilijk daarover) en als je weet waar je op moet letten zie je dat het niet de standaard PCB-groen is, maar net iets een andere (donkerdere) tint...

De rest, zoals SD kaartjes, WiFi access, displays, etc maakt me allemaal niet zo veel uit. Dit valt bij mij onder het kopje “gimmick”.

Goed, een hele waslijst aan nuttige verlangens dus. Dus wat zijn de kandidaten?

1. Een standaard POG bordje. Peripherals van een Arduino zijn er heel weinig en de snelheid van een Arduino is dramatisch laag. Extensie is waardeloos, de I/O ports zijn er veel te weinig. Het mag dan ook niets kosten…
Afbeeldingslocatie: https://tweakers.net/i/hia3QyjvnHb9g1jQrHGIOldckwE=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/DitsvW6wyjp5x5icLGz2dAaP.jpg?f=user_large

2. Een van de vele POG clones voor Due, Mega, etc, etc. Ik heb er een stuk of 4 liggen inmiddels, ze hebben een beetje dezelfde issues als POG.

3. BOB’s. Ik denk niet dat we het hier lang over hoeven te hebben, ze voldoen niet aan de timing constraints, hebben weinig I/O ports en de kwaliteit van de bordjes laat te wensen over. Wel zijn ze spotgoedkoop. Nouja, Mach3 kost geld. LinuxCNC op BOB is dan beter, want er zijn kernel modules om het (veel) meer real-time te krijgen - maar dan nog zet ik vraagtekens erbij.
Afbeeldingslocatie: https://tweakers.net/i/r9FGtT4PdwP0LWmeueKqSDZWUqY=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/cw1d96ZODw7FwxwNnGT1nA1m.jpg?f=user_large

4. Teensy boards. Deze draaien GrblHAL. Now we’re getting somewhere. De Teensy 4.1 haalt zelf serieuze snelheden met 600 MHz, wat op zich een goede start is. Het is ergens jammer dat het allemaal op GRBL is gebaseerd, want dit doet de Teensy niet veel goeds… Het doet wel RS485 (spindle), SPI/I2C (I/O expanders) en iets obscuurs genaamd “FlexIO” wat neerkomt op geemuleerde I2S. Kosten zijn ook best aardig, deze Teensy bordjes zijn niet heel goedkoop maar ook weer niet gigantisch duur. ADC/DAC is beperkt, hardware counters lijken er niet te zijn, maar dat is op zich op te lossen via een hardware SPI counter. Phil Barrett verkoopt best aardige controllers, het enige waar ik hier niet echt blij mee ben is de firmware.
Afbeeldingslocatie: https://tweakers.net/i/_ki_besOZKqBja3Gl_Ub1rJVJ4I=/800x/filters:strip_exif()/f/image/yfRmF984OxNIiqTkLvsf83cz.png?f=fotoalbum_large

5. MESA FPGA. Mesa heeft echt wel wat mooie FPGA bordjes liggen voor LinuxCNC. Het begint all-in een beetje interessant te worden rond de 700 euro laatste keer dat ik keek. Kost wel wat… Qua wiring lijkt het me wel een nachtmerrie en ik weet ook nog niet hoe blij ik ga worden van de firmware, maar verder ziet het er best als super speelgoed uit…
Afbeeldingslocatie: https://tweakers.net/i/DcF0PLLgdbLoD6e9USR9x2nSTf8=/full-fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/vdChJ6m0Uexf8vLFmF43kJgy.png?f=user_large

6. ESP32. De ESP32 is best een geinige chip, aangezien hij heel veel high-speed Peripherals ondersteunt. Het ding draait op 240 MHz en is dual core. De ESP32 is zelf best goedkoop, een DIY bordje kost je ongeveer 5 euro. De prijs wordt gedrukt doordat de kritieke delen geconcentreerd zijn op meerlaags PCB’s. Maar, je moet nog wel een fatsoenlijke CNC PCB hebben voordat je er iets mee kunt doen. O.a. Barton Dring verkoopt best aardige bordjes via Tindie voor FluidNC. Ook hier is het jammer dat het op GRBL gebaseerd is, maar verder is het best mooi.
Afbeeldingslocatie: https://tweakers.net/i/0uwtRpo89PHtzADkdlIWMC0-YSI=/x800/filters:strip_icc():strip_exif()/f/image/Ug8Kt7dIiepMA3R4dN6PpOkF.jpg?f=fotoalbum_large

(Er zijn nog meer varianten denkbaar, zoals bijv. het gebruiken van een Raspberry Pi in combinatie met een BOB, maar bovenstaande zijn wel de meest voor de hand liggende.)

Je kunt het al raden, ik ben voor de laatste gegaan. De features die er niet waren in FluidNC, heb ik maar gewoon geprogrammeerd en toen was ik ineens een van de core developers. Ach ja, zo gaan dat soort dingen soms…

Ik kan iedereen die geen electrical engineer is aanraden om gewoon een bordje te kopen. Dus niet te doen waar ik veel te veel tijd aan heb besteed. :) Met een bordje bedoel ik dus een bordje en geen troep met een paar weerstandjes en condensatoren als filter. De ESP32 manier gebruikt een I2S extender voor de pinouts en die hebben specifieke placements op de PCB en specifieke requirements voor hoe de lijntjes lopen nodig. Schmitt triggers zijn niet optioneel, anders wordt de microprocessor overspoeld met interrupts door ruis. In theorie kan dat op een 2-lagen bordje als je een goede electrical engineer hebt, in de praktijk is 4 lagen meestal beter. Maar: 4 lagen bordjes kosten geld boven de 10x10 cm. Daarnaast wil je je lijntjes kort houden. Als je dat niet doet… nouja, dan krijg je ruis op de lijn, steps die worden gemist, kortom: ellende. Doe je het goed, krijg je 32 output ports. Dat is dus meer dan 8 motors die je kunt aansturen. Hoe snel? De scope zegt dat 300 kHz niet echt een probleem is - meer dan zat dus.

De ESP32 heeft een PCTR peripheral die gebruikt kan worden voor rotary encoders. Dat ding wordt helaas niet door de firmware ondersteunt. RS485 VFD’s worden wel al best aardig ondersteund. Inputs op een bordje van Bart hebben opto-isolatie en schmitt triggers. Kortom, er is nagedacht over ruis. PWM is prima; ADC, DAC gaat wel okee. En het is embedded, dus een real time systeem. Via RMT kan je pulses controleren op standaard pins.

Dus, klaar dan? Nou, niet echt… Ik mis nog wat diodes en zekeringen, wiring is een drama en vooral: zelfs met die 32 extra outputs kan ik nog wel wat meer I/O gebruiken… Terug naar de drawing board dus.

Ik heb zelf maar wat PCB’s geklust.

Afbeeldingslocatie: https://tweakers.net/i/eMwvivutjq9RwfaI3xzpBManUdo=/800x/filters:strip_icc():strip_exif()/f/image/lLCSFW1DlsnWA8TORrzmHOGp.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/wPz3bMdNN0Le5DPzz0AoyJiLFuw=/800x/filters:strip_icc():strip_exif()/f/image/2Ba6uDwANKbfIS5H2zrODpEj.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/yHubTDzCs96bXUc534Vs5Vx3hEA=/x800/filters:strip_icc():strip_exif()/f/image/GzRWZvX0G1qKHnWcTXtgwPRO.jpg?f=fotoalbum_large

En nog maar wat iteraties gesoldeerd…

Afbeeldingslocatie: https://tweakers.net/i/wBP44PYJk1tAqETFLJmIUvjXUSY=/800x/filters:strip_exif()/f/image/pMCxyETfNWF8rAU8mjsHq3s5.png?f=fotoalbum_large

En uiteindelijk kwam ik in een vierde iteratie met wat hulp van Bram uit op dit:

Afbeeldingslocatie: https://tweakers.net/i/hjU-_fQXUW-eI6PtKAiK6BZx2kI=/800x/filters:strip_icc():strip_exif()/f/image/PoUMSBfh8nIHqftTp3nXpUps.jpg?f=fotoalbum_large

Een aantal extra bordjes heb ik ook geklust die kunnen worden aangesloten via CAN bus, dat is nog een serieuze WIP...

Dit is mijn laatste versie van een bordje met:
- 4 lagen PCB’s, galvanische scheiding voor inputs, filtering, zekeringen, schmitt triggers, maw: de hele rimbam
- 8x motors
- 16x endstops (2 per axis)
- 2x 10v/5v output voor een laser en/of spindle
- 4x general purpose inputs voor low-latency werk zoals probes
- Optionele ruimte voor 9 SPI kanalen voor rotary encoders. Of voor andere outputs, we zien wel…
- Een CAN bus voor alle nice-to-have gimmicks die ik al dan niet al heb bedacht

Cable management was ik geen fan van met al die controllers, dus daar heb ik wat op bedacht. De bekabeling van mijn machine gebeurt via standaard RJ45 (UTP) kabels, zowel voor de stappenmotoren als voor de endstops. Met RJ45 breng je het signaal waar je moet zijn, vanaf daar heb ik kleine bordjes die het signaal aansluitbaar maken op je hardware. Als eindresultaat heb ik dus gewoon een bundeltje UTP en ter plekke wat kleine aansluitbordjes.

Afbeeldingslocatie: https://tweakers.net/i/vZvTBKIOmmhWHqDM82emlqo66Bc=/800x/filters:strip_icc():strip_exif()/f/image/mQCU9UpYVsmpddsSKe7wUNOY.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/wcmkTm7EyKFEwshFRLYHBnqORDw=/x800/filters:strip_icc():strip_exif()/f/image/m1bn9W92xXTa8G9x3eh64JOq.jpg?f=fotoalbum_large

Voor de gimmicks heb ik ook al wel wat spul bedacht. Ik heb een input module gemaakt voor optical / spi rotary encoders en een bordje voor wat buttons en wat rotaries, etc. Dat is allemaal nog niet zo in beton gegoten, we zien wel. Die dingen worden aangesloten met een RJ12 kabel.

Tsja, zou het ding eigenlijk wel doen wat ik wil? Als ik het goed heb gedaan, krijg ik mooie ‘scherpe’ edges, mooie gelijke pulses en relatief weinig overshoot. Om dat te weten heb ik dus het ding aan een scope gehangen en ben me helemaal suf gaan scopen:

Afbeeldingslocatie: https://tweakers.net/i/pDjZCop5Oa9TgMqAWv6JMA7XBLI=/800x/filters:strip_exif()/f/image/TGmpkeErLw6DgpQ9huyDSEtv.png?f=fotoalbum_large

De pulses zijn heel mooi gelijk en met de juiste breedte, de overshoot is niet zo groot en dat alles tot dik in de 300 kHz range. Meer dan zat voor de gemiddelde stappertjes. Er zitten wel wat kleine foutjes in het eerste bordje, maar dat lossen we wel op in versie twee. Dik tevreden dus.

En na de nodige software te hebben geschreven kwamen ook de endstops en andere componenten tot leven. Ook in het echt zijn de EMI problemen tot nu toe: nul.

In principe heb ik nu dus de hardware om alles te doen wat ik wil. Voor nu draait het allemaal prima op FluidNC. Dat wil overigens nog niet zeggen dat ik ook volledig tevreden ben over de software… maar meer daarover volgende keer in “firmware”.

[ Voor 3% gewijzigd door atlaste op 28-04-2022 14:48 ]


  • Pixelmagic
  • Registratie: September 2002
  • Laatst online: 14:10

Pixelmagic

Ubergeek

Afbeeldingslocatie: https://i.imgur.com/kzOZ7Ez.jpg

Zo, eerste échte project is klaar, moet een tafeltje voor in de tuin worden. Is net geen 60cm doorsnee.

Materiaal is mdf, laagje zwarte acryl er op voor het frezen. Eerste met een 1/8" bitje en de details met een 60 graden v-bit. Het plan is er met een laagje epoxy aan alle kanten overheen te gaan zodat het onder de overkapping buiten kan staan.

PVoutput van mijn 4950Wp


  • rb0wag
  • Registratie: Mei 2017
  • Laatst online: 16:47
Nou ga ik me hier ook maar eens melden.
Al een paar jaar op en af bezig met het bouwen van een cnc machine (paar jaar wegens veel andere projecten) en recentelijk weer met dit project bezig.
Machine wordt gebouwd met onderdelen die over zijn van andere projecten en ben er toentertijd op de bonnefooi mee begonnen zonder tekeningen en met dat wat ik dacht van dat gaat wel werken. Eerst maar eens zien of tie wil gaan draaien dan kan daarna nog wat beter materiaal aangeschaft worden.
Nu loop ik een beetje tegen de aandrijving van de y-as aan.
Heb op het moment twee opties alleen welke is nou het handigste.
1. Opsluiting/inklemmen van de omloop moeren met anti backlash.
2. Aan weerszijden een omloop moer zonder anti backlash en dit spelling vrij afstellen met shimmetjes.
Afbeeldingslocatie: https://tweakers.net/i/tsCIMwzokQwLxwKNNmhcSxEotsI=/x800/filters:strip_icc():strip_exif()/f/image/1bx8jH46OZztbuQU2Hnorebg.jpg?f=fotoalbum_large

Ikzelf nijg naar 2 omdat dat later ook makkelijk is om te zetten naar een kogelomloop systeem.
Wat denken jullie ervan of hebben jullie nog andere opties waar ik nog niet aan gedacht heb.
Pagina: 1