CNC

Home/CNC

August 2016

NU JÄVLAR, NU KÖR VI!

By |August 23rd, 2016|Books and Magazines, CAD, CNC, Girl Power|

Jeg ble jentepappa for snart 15 år siden. Som alle gode jentepappaer, så begynte jeg å snekre dukkestue. Jeg hadde heller ikke den gangen trua på å gjøre ting halvveis, så jeg startet selvfølgelig med å konstruere møbler fra bunnen av – av eik.

Først, så handlet jeg boka “Making Miniature Furniture” av John Davenport, som jeg mistenker er pensjonert møbelsnekker. Møblene var konstruert med usynlige dove tail joints, håndlagede messingbeslag og innfelling av ymse tresorter, hvilket var noe bortenfor skillsettet til en nybakt jentepappa. Jeg var så en svipp innom “Making Tudor Dolls’ Houses” av Derek Rowbottom før jeg fant en bok, som hadde konstruksjonstegninger det faktisk var mulig å følge for noen med mindre enn 30 års erfaring som møbelsnekker og begrenset budsjett for miniatyrverktøy.

Jeg endte opp med “Make Your Own Doll’s House Furniture” av Maurice Harper. Sist jeg hadde den oppe, så hadde jeg også vært en tur innom Nilsson trelast for å handle meg en bit eik, samt en tur innom Østerlies fargehandel, for å handle shellakk og møbelvoks.

Nå. 15 år – og ett møbel senere, så er dukkestua fremdeles ikke påbegynt, men yngstejenta har tatt opp tråden. Hun har fått med seg at hun er datter av norges ukronede mester i prokrastrinering, så det har ikke stått på tidligere påminnelser, men jeg har vært litt for flink til å engasjere meg i ymse andre prosjekter, så samvittigheten er ikke den beste.

Men nå !

Nå er prosjekthorisonten åpen. Ihvertfall nesten. Har noe greier, som skal ferdigstilles til uka, men det er håndterbart.

Til høyre for meg, så har jeg nå en stack med finér. Blant annet rosewood og ymse andre eksotiske treslag, beregnet for gitarhalser. Til venstre for meg, så har jeg en liten 7-tommers CNC. Bak meg står en flatbedscanner. NU JÄVLAR, NU KÖR VI!

Trinn 1 – Scanning.

Puristene sverger til tynne filer, sandpapir, og til nød 1/12-skala elektroverktøy. Jeg er mer – pragmatiker. Vi lever tross alt i 2016. Datamaskinen er oppfunnet og vi har ikke uendelig med tid, slik som pensjonerte møbelsnekkere har.

Vi starter med en “George I Chair”, som ser rimelig overkommelig ut. Tegninger av denne fores inn i den digitale toolkjeden via en flatbed-scanner.

Vi har nå en bitmap, som må renskes opp litt før vi kan gå til neste trinn. Photoshop er fin å bruke til slikt.

book

Trinn 2 – Vektorisering.

Planen er å ende opp med en toolpath for fresen, så den bitmappen må vektoriseres. Etter en runde med ymse “la oss vektorisere bitmappen din”-sites og en hønngammal versjon av Illustrator, så endte jeg opp med dette. Clöse enough for et forsøk på å importere inn i Fusion 360.

Illustrator

Trinn 3. Touch-up og import i Fusion.

Vi har nå en vektorisert representasjon av den samme stolen, men det er litt huller her og der, samt at den er litt rufsete. Ved å importere SVG-fila inn i en fusion sketch, så kan vi veldig enkelt reparere hull, samt ekstrudere resultatet til en solid modell.

sketch

Trinn 4. Solid.

Dimensjoner er kjekt å tenke på allerede nå. Ta et par målepunkter i modellen og i orginaltegningen. Skyvlær er din venn i meat space og model/sketch er din venn i model space. Nå skalerer vi bare tegningen, slik at den er dimensjonsnøyaktig, høyreklikker på flatene som representerer objektet og velger “extrude” – til riktig tykkelse.

render

Trinn 5. CAM.

Nå er vi klar for å generere toolpath. Hopp til CAM-view i fusion. Her definerer vi et nytt setup, som inneholder informasjon om akser/koordinatsystem og emne. Under setup, så definerer vi en ny jobb. Her kan CNC-entusiasten boltre seg i en avsindig mengde prosessvarianter, men jeg valgte “3D Adaptive Clearing”.  Her må vi definere ymse parametre, som spindelhastighet, geometri på fresebit, ymse rater og geometrier.

Er man usikker på om man har gjort ting riktig, så kan toolpathen simuleres i Fusion.

simulering

Trinn 6. Post prosessering.

Når vi er fornøyd med CAM-oppsettet, så kan vi generere g-code for CNC-maskina. I dette tilfelle, så er det en noe modifisert Zen-CNC, kontrollert av en liten Arduino med GRBL. GRBL er ikke en predefinert CAM-profil i Fusion, men det finnes heldigvis nedlastbare profiler, som man kan importere. Man navngir jobben og velger fil/mappe. Pga oppløsningen på modellen og det faktum at jeg har valgt en absurd tynn endmill (0.8mm), så har vi nå en relativt småvoksen fil med G-code.

gcode

Trinn 7. G-code sender.

G-Code er en veldefinert standard for CNC-maskiner. P.g.a. noe begrenset kapasitet på arduinoen og oppsettet mitt, så må jeg streame gcode over til fresen via USB. Dette kan gjøres med en hvilken som helst gcodesender, men jeg har valgt å bruke GrblPanel, som jeg håper har blitt mer stabil enn sist jeg testet den.

grblpanel

Trinn 8. Fresing

Resten av kvelden skal jeg bruke til å be til et større sett av ymse avguder. Det er for seint å frese i dag, siden jeg da vil terge på meg fruen, jentene og katta p.g.a. det infernalske støynivået. Vi får nappe i startknappen i morra, og så ser vi hvor det bærer. I fall det ramler ut noe, som vagt minner om en stolrygg, så er det overhengende fare for at det kan bli live-fresing på Maker Faire. Hvis ikke, så vil dere bli møtt av statiske modeller, en vegg av unnskyldninger, fremført på chewbacca defense-maner.

I teorien, så kan jeg nå frese ut så mange “George I” stolrygger, som jeg bare ønsker, men i praksis, så har det vist seg at det er nå det blir spennende. Motoriserte hjemmesnekrede maskiner har en tendens til å oppføre seg penere i CAD-systemet enn i meat space. Fresebits vil knekke og det vil bannes – intenst.

Oppdatering:

Her er resultatet etter første fresing. Jeg hadde opprinnelig laget “ører” i designet, slik at delen ikke skulle løsne fra emnet, men disse ble av en eller annen grunn ikke med. De fineste detaljene, på stolryggen, kom heller ikke med, da sporene var smalere enn diameteren på fresen. Jeg måtte derfor stoppe fresinga 0,3mm fra bunnen av emnet, så det ble litt rufsete i nedkant. Jeg hadde valgt Sapelli (Entandrophragma cylindricum), men jeg tror kanskje dette er litt for mykt. Vi får teste rosewood neste gang. Fresen, var en flat endmill, 0,8mm i diameter. Etter montering og pussing, så kommer flere lag med shellakk, etterfulgt av voksing.

CNC

 

June 2016

Cabinet of Curiosities (Zen 3.0)

By |June 19th, 2016|CNC|

En miniatyr CNC er kjekt å ha, men for at den skal være anvendelig i et møblert hjem, så den bygges inn. Enter “Project Zen Enclosure”. Kabinettet har innebygget lys, er rimelig støvtett og har hendige magnetfester, som gjør det svært enkelt å komme til. Kabinettet vil neppe skjerme spesielt mange dB, men den vil forhindre arbeidsrommet fra å støves totalt ned, når fresen er i bruk.

Light

 

Magnet_Lock

(Magnetlås)

Zen

(Zen CNC)

Materialliste:

  • 2 stk LACK bord (IKEA).
  • 4 stk 3-5mm kabelkanal (Clas Ohlsson).
  • 4 stk 40x44cm, 4mm plater med plastglass (Biltema).
  • 8 små neodym-magneter (10x10x5mm’ish).
  • 3D-printede magnetfester i PLA.
  • Dobbeltsidig tape, for feste av magnetfester og håndtak til front.
  • LED-strip + Arduino (hvis man ønsker sci-fi lyseffekter i taket av kassa)

 

September 2012

G28

By |September 27th, 2012|CNC, Electronics|

Hvis man skal lage kretskort med en liten CNC fres, så må man regne med et par manuelle steg. Etter at gcoden er generert, så ender du gjerne opp med script for å:

  1. Drille hull
  2. Frese ut isolasjonssport på forsiden
  3. Frese ut isolasjonsspor på baksiden
  4. Frese ut ytterkantene av kretskortet

Mellom hvert av disse stegene, så er det ganske greit at fresen ikke mister koordinatsystemet sitt eller posisjonen sin i dette. Hvis dette skjer pga fingertrøbbel, feil eller behov for å justere noe, så må du påregne å avskrive de timene av livet du har brukt på å komme så langt, og så starte fra scratch igjen. Dette er for å si det mildt – irriterende.

En essensiell funksjon i en slik fres er derfor at du kan gi fresen beskjed om å “gå hjem” selv etter en restart. Du trenger derfor presise home-brytere, samt støtte for eks G28/G30 i gcodeparseren din

GRBL-koden hadde kun en sketchy home-implementasjon, så det ble nødvendig å reimplementere litt. Den hadde eksempelvis ikke støtte for NO-brytere, og de interne pull-up resistorene på AVR-chippen var ikke aktivert. Videre, så mistenker jeg at et interrupt eller lignende resulterte i støy i PORTB/PINB-registeret, slik at det var vanskelig å sense på bryterne. Jeg måtte derfor inn med debounce-aktig filterkode for å kunne ignorere det som for koden så ut som svært korte switch-aktiveringer (ikke debouncing av bryteren, men “falske aktiveringer” før bryteren ble truffet)

Det ser ut som det skjer ting i grbl snart, så jeg avventer den offisielle implementasjonen i spenning (Mye snacks i edge-versjonen). I mellomtiden så kjører jeg nå min egen private firmwareversjon – som virker.

Videoen under er kanskje ikke tidenes mest spennende, men den demonstrerer hva som skjer når du grbl-versjonen min nå tolker en G28-kommando:

 

Videre, så har jeg revet ut det gamle kinesiske stepperkontrollkortet og satt inn 3 stepperdrivere som egentlig er designet for makerbot. Resultatet er

  1. en kontrollboks som virker,
  2. en kontrollboks som har halve størrelsen
  3. en kontrollboks som plugges rett inn i en standard ATX-strømfforsyning
  4. sykt smooth stepping. Fresen gir nå nesten ikke en lyd fra seg under seek.
  5. en veldig fornøyd eier

Time Expander Technology Preview

By |September 6th, 2012|CNC, Electronics|

Kun et par bilder fra hobbyrommet i dag. Fant ut at jeg skulle slutte å leke mht vakuumutstyr og klatret derfor inn i boden for å ekstrahere Savant-pumpa fra alt skrotet. Prøvestartet den for første gang etter et par års lagring i garasje og det virker ikke som om den har tatt skade av eksilet. Den klarer 1×10-4 Torr og er perfekt til degassing av epoxystøp. Stor takk til Bergum for å ha vært mycket behjelpelig i anskaffelsesprosessen !

Har også lekt litt med konfigurering av g-code genereringa. Under ser du Benders testfresing av fotavtrykket til en TQFP64-pakke. Er neeeeesten i mål mht presisjon, men ikke helt. Kan hende V-bitten min ikke er spiss nok, eller at 0,1 mm fresedybde er for mye for dette kretskortlaminatet.

August 2012

Bender 2 – de første resultatene

By |August 23rd, 2012|CNC|

Jeg er ikke helt i mål enda m.h.t. den endelige konfigurasjonen, men allerede nå har jeg et fungerende oppsett for prototyping av kretskort. Et oppsett jeg faktisk kan leve med. Dette til en relativt nøktern kostnad på ca 600 USD.

Jeg kjører fremdeles med billigste sort spindel/chuck, men jeg tolker likevel presisjonen som helt ok for hobbyformål. De utfreste isolasjonssporene under er ca 0,5 mm. Dette er ganske grovt i kretskortsammenheng, men jeg var prisgitt de fresene jeg hadde liggende for denne første testen (har 0.2 mm endmills på tur inn). Jeg brukte her en V-formet fres som gikk 0,3 mm ned i materialet – d.v.s. 10 ganger tykkelsen på kobberbelegget (35 mikron). Vi har m.a.o. en del slakk som kan hentes inn m.h.t. å øke presisjonen. Uansett, så er jeg rimelig godt fornøyd med resultatene, spesielt tatt i betraktning at dette er ganske tidlig i løpet.

Presisjonen kan og skal økes, men jeg har ihvertfall bevist for meg selv at hele toolkjeden henger sånn tålelig sammen fra CAD til ferdig kort. Dette er en helt grei belønning for et par ettermiddager med “hacking”.

Hensikten med en slik fres er å få ned tiden på iterasjonene for design og test. Slik det ser ut nå, så er det helt klart mulig å korte ned ventetiden fra 2-3 uker til en ettermiddag (gitt at du kan klare deg med ett eller to-lags kretskort, og ikke tar den helt ut mht de mest horrible TQFP-pakkene)

 

Bender 2 – Two Powers

By |August 19th, 2012|CNC|

Mengden av anvendt elektrikertape og gaffa er nå avtagende. Jeg har i ettermiddag printet et sett med festebraketter til strømforsyningene, h.h.v. til steppermotorer og spindel, slik at disse kan monteres på bakplata til X-aksen. Konfigurasjonen begynner å bli rimelig tight, og ledningsjungelen begynner å komme under kontroll.

Bender 2 – final assembly

By |August 16th, 2012|CNC|

Bender har nå fått seg et shop vac-interface, kul logo, samt limit- og homing-switcher. Jeg har også skrudd sammen en liten kontrollboks som huser stepperdriver og en Arduino uno. Grbl er klonet fra git-repoet og bygget (tok vel i overkant av 5 sekunder totalt). Jeg begynner m.a.o. å bli rimelig klar for å snurre i gang et par tester. Håper bare at jeg har koblet alt riktig. Det er en _helvetes_ mengde ledninger involvert her :)

Bildet over viser et hjemmelaget bakpanel med noenlunde fornuftige tilkoblinger. Har her eksponert Arduinoens USB og power, 12V power (for steppere og stepperdriverkort (logikken på dette er 12V-tolerant, selv om det står maks 7V på kortet). 15-pins edge-connector tar en hjemmelaget plugg som eksponerer signaler for A/B+retur for 3 steppere, samt 3 homing-switcher.

Det kan virke som overkill å lage panel med denne type tilkoblinger, men det gjør flytting/de-/re-montering sykt mye enklere enn en det det ville vært med en hardwired variant. Trust me :)

Det neste blir å få inn ny firmware i Arduinoen og begynne å teste litt. Det gjenstår å se om chucken jeg har er presis nok for fresing av kretskort eller ikke. Hvis den klarer å frese ut et Lamna-kort, så tenker jeg jeg sier meg fornøyd (TQFP-pakke med sykt mange bein på realtivt begrenset areal). Hvis ikke, så kan jeg oppgradere til noe med maksimum 0.001 tommer runout for $120.

Bender revisited

By |August 9th, 2012|CNC, Rants|

Jeg spontanhandlet for en tid tilbake en liten 7″x7″ CNC-sak fra Zen Toolworks. Planen var å sette opp denne med en headless Ubuntu-boks med EMC2 (nå LinuxCNC) og et kinesisk TB6560 stepperdriverkort.

Jeg så først for meg denne som en generell hobby-CNC-fres, men den ble i praksis ikke brukt. Å måtte ha en egen PC for formålet virket tungvint. Jeg manglet deler av toolkjeden for å kunne frese ut det jeg ønsket. Støynivået er ille. Ditto med støvmengden. I praksis alt for mye hassle – og når makerbotten ankom, så ble Zen-fresen arkivert. Har en behov for å prototype dingser på generell basis, så tror jeg det er lite som slår en av de populære åpne 3D-printerne eller en laserkutter (følger spent med på utviklingen hos Lasersaur, da de kommersielle fremdeles koster like mye som en bruktbil).

Der jeg likevel tror Zen-saken kan komme til sin rett er for kjapp prototyping av kretskort. Hvis jeg antar at andre hobbyister er like store rotehuer som meg, så går det alltid _minst_ 2 iterasjoner etter første trykking før man har fått alt riktig – uansett hvor mye du sjekker i forkant. PCBer i små kvanta koster også en del. I praksis går det 500-1000 spenn for en batch med 2-3 små kort når man regner inn frakt, moms etc. I tillegg kommer ventetiden, som gjerne er et par uker.

En ting er ventetiden og leverandørens priser, men jeg må også tilstå at jeg 

ER LUT LEI AV Å MÅTTE  BETALE F…INGS MERVERDIAVGIFT PÅ EGNE PROTOTYPER, SAMT MÅTTE VENTE 14 FORP…. DAGER EKSTRA PÅ AT NISSENE I TOLLA SKAL SKRIVE UT FAKTURA TIL MEG OG DERETTER KREVE EKSTRA MOMS FOR DENNE  TJENESTEN. 

Det er m.a.o. en del å hente hvis man kan få strømlinjeformet et oppsett for isolation routing/milling hjemme.

Planen fremover er å få kontroll over kabler og bokser. Deretter ser jeg for meg å interface TB6560-kortet med en Arduino som kjører grbl (istedet for å måtte bruke en PC med EMC2/LinuxCNC). GCode kan derettes streames gjennom UART. Limit-switcher må på plass og støvsugerinterface må designes og printes.

Jeg er litt spent på nøyaktigheten man klarer å oppnå. Jeg har en følelse av at selve kassa er mer enn presis nok. Er litt mer usikker på selve fresen/spindelen, men denne kan i verste fall byttes ut.

Jeg ser at grbl-karene vurderer støtte for SD-kort, display og joystick. Fikses dette, så har en (hvis alt annet fungerer tilfredsstillende) en toolkjede for prototyping av PCBer som er like brukervennlig som en makerbot – og som koster en tiendedel av de kommersielle alternativene. (Det burde heller ikke være noen heksekunst å lage et shield for Arduino som implementerte FatFS for å lese fra SD-kort og som tilbød navigering i gcodefiler via et lite display og noen knapper. Dette kunne så streame G Code over UART til en grbl-kjørende Arduino)

Jeg hadde sannsynligvis ikke tatt opp dette prosjektet igjen hvis ikke noe hadde begynt å snurre i bakhodet etter en utstyrsdiskusjon i forbindelse med et nytt hackerspace som er under etablering i Trondheim. Hackerspacet går under navnet “Hackheim” og initativet er noe av det mest spennende som har skjedd i trondheim på ganske lang tid.

Har foreløpig ikke besøkt karene fysisk, men følger spent med på websider, facebook-side og på irc.

Hackheim holder til på:

April 2011

Using the toolchain

By |April 28th, 2011|CNC, Electronics|

Jeg har vel konkludert med at fresen fra Zen Toolworks håndterer emner opp til 8×8″ uten problem. Skjønner ikke helt hvorfor den markedsførers som 7×7″. Jeg vet at alt er større i USA, men jeg trodde en inch var sånn noenlunde standardisert.

Etter en del test & kalibreringsrunder, så anser jeg nå EMC-konfigurasjonen for endelig. Har oppdatert den dedikerte “Bender”-siden med ny info.

Jeg har så langt bare produsert en del som faktisk kan brukes til noe (se under), men jeg kjenner det allerede klør skikkelig etter en litt større sak – i metall. Gjerne en med encodere på stepperne slik at stepperkontrolleren kan kompensere for tapte steg ved mikrostepping.  Ser en får ganske ok utstyr helt ned i $2-3000,  men jeg frykter for hva frakta blir for 200 kilo hvis en skulle oppgradere til noe sånt.

Men nuh – over til det første stykket vaskeekte output fra maskina. Dette er et frontpanel for IN-12 Nixies i hardtre (designet i BasicCAM, seff – *kremt*). Etter kalibreringa, så tok jeg fram en IN-12 og et skyvelær, tok mål og knottet inn 2 arcs og 2 rette linjer i basicCAM.

Jeg har bitchet litt om at du kan miste step, men så lenge du lar hele jobben gå ferdig uten å avbryte den, så blir faktisk presisjonen helt ok.

Passformen ble tålelig bra. D.v.s. de russiske rørene har størrelsesordner større dimensjonsavvik seg i mellom enn avvikene som trøbbel med mikrosteppinga vil resultere i på CNC’en. Tror jeg også skal forsøke meg i samme materiale som maskina er laget av, dvs 8mm PVC. Etter å ha blingset på hominga av Z-aksen, så fant jeg ut at det var et ganske lett materiale å frese i.

Another link in the toolchain – del 7 (basicCAM – a New Dawn)

By |April 21st, 2011|CNC, Programming|

Mental spek: “Å lage noe som lot meg oversette design fra Moleskine-notater til GCode på en intuitiv og enkel måte.”

Å lage en slik oversetter innebærer dessverre at jeg lærer så mye GCode at jeg står i fare for å overfløddiggjøre sluttproduktet, men fan heller – vi har påskeferie. Kanskje overrasker jeg meg selv positivt med noe bra.

Jeg ønsket meg også on-the-fly 2D-visualisering for å bekrefte at designet henger på greip. Et krav var også spesifikasjon i presise real world-koordinater. Dette p.g.a. at det jeg designer som regel skal kobles sammen med noe som allerede eksisterer – og som neppe har zoom-knapp.

Status på basicCAM er som følger:

  • pissenkelt kommandosett implementert (moveto/rel, lineto/rel).
  • automatisk angivelse av entrymove + cutter radius compensation (siden det skal skje på vises ved rød normalvektor på linjesegmentene).
  • 2D visualsiering og GCodeoversettelse mens man skriver.
  • Syntakssjekk / parsing mens man skriver.

Dette virker kanskje banalt, men det er ikke mer som skal til for å spesifisere ting på kort tid. Det tok meg eksempelvis ca 20 sekunder å spesifisere freseinfo for en IN-12 nixie for ei aluminiumsplate. Eksempelvis, så vil følgende kommandoer danne basis for utskjæring rundt et nixie-rør (materialtykkelse, XY-begrensninger og fresediameter er parametriserbart)

  1. moveto 1 3
  2. linerel 0,4 -0,1
  3. linerel 0 -1
  4. linerel -0,4 -0,1
  5. linerel -0,4 0,1
  6. linerel 0 1
  7. linerel 0,4 0,1

Bildet over viser et frontpanel for nixie-rør. Dette tok under ett minutt å spesifisere. Under ser du en liten videosnutt av basicCAM i aksjon, slik det fremstår i dag. De samme 2 kommandoene er nok til å designe vingen på en TieFighter på omtrent like mange minutter.

Jeg ble ferska i kjellern av samboeren med vernebriller på mens jeg forsøkte å følge fresen med støvsugeren vår. Det bråkte noe infernalsk pga materialtykkelsen. Ungene fikk ikke sove, og klokka var 22:30. Det bråkte fælt, men jeg fikk dispensasjon til å gjøre ferdig det ene triangelet i designet på videoen før strømmen forsvant.

Bildet under viser output fra CNC-maskina etter at den har tygget output fra basicCAM (fra videoen over). Materialet er 6mm pleksiglass. Må nok en liten tur til inn i stepconf i EMC2 for å finrekalibrere for å få dimensjonene eksakt riktig ihht spek. Har også testet 1mm aluminium. Dette ser ut til å funke rimelig bra. Har en liten følelse av at stepperne av og til dropper et step.

Hvis du ser på bildet, så kan du ane en liten unøyaktighet på det nærmeste linjesegmentet. Jeg er litt usikker på om dette skyldes at jeg har gått for ekstremt til verks mht mikrosteppinga, eller om emnet rørte på seg i prosessen. Må debugges litt nærmere.

Det ser ut til å funke sånn tålelig bra foreløpig. Jeg skal implementere kommandoer for flater med variabel dybde, buer og tekst (ink implisitt tool change for tekst gravering) før jeg anser prototypen som ferdig. Deretter tenker jeg den bør kastes og erstattes med en webversjon og få seg et lite bakenforliggende repository. (Herr Dahl mer enn antydet at dette kunne være en glitrende anledning for undertegnede til å lære seg litt internettgreier)

Ellers, så kan jeg varmt anbefale en fysisk nødstopp-knapp, samt vernebriller. Maskina brukte kun et øyeblikk på å rive en 3mm hardstålfres i ganske mange små og skarpe splinter (my bad – hadde det litt travelt med å home Z-aksen, så maskina fant ut at den skulle frese litt i seg selv).