Archiv der Kategorie: CNC

CNC: Makercam mit Affinity Designer nutzen

Wer eine kleine CNC Portalfäse besitzt, dem wird http://www.makercam.com sicher bekannt sein (dieses Tool basiert leider auf Flash und ist hoffentlich noch länger nutzbar. Mit dem Auslaufen der Flash Unterstützung im Browser muss man sich aber früher oder später nach einem anderen Tool umsehen oder sich zumindest die SWF Datei lokal auf Festplatte wegspeichern).

Mit makercam können aus 2D SVG Vektordateien Fräsdateien im GCODE Format berechnet und exportiert werden. Folgend will ich kurz den Workflow mit Affinity Designer beschreiben.

Im Affinity Designer ist es wichtig, dass unabhängig von dem eigentlich Fräsergebnis, die Dokumentenabmessungen für Länge und Breite im Affinity Desginer immer identisch sein müssen (sprich 1:1)! Ist dies nicht der Fall geht in makercam die korrekte Proportion verloren.

Hier im Beispiel ist gut zu sehen dass die Abmessungen im Affinity Designer größer sind als das final zu  fräsende Endergebnis.

Am Schluss muss für makercam noch eine SVG Datei gespeichert werden. SVG für Web ist vollkommend ausreichend.

Bevor man die Datei in Makercam lädt, muss die SVG Import Default Resolution (px/inch) in Edit Preferences eingestellt werden. Für Illustrator und Inkscape sind in dem Dialog entsprechende Defaultwerte zu finden. Für Affinity Designer muss hier 182.88 eingegeben werden.

Nun kann das Affinity Design SVG geladen werden. Auf alle Fälle sollte anhand des Rasters in makercam noch mal die Größe (=> Default Resolution) und Proportion (=> Affinity Design Dokumentenabmessungen) überprüft werden.

Ist alles korrekt kann man wie gewohnt in makercam mit profile, pocket, follow, drill, usw. definiert werden wie gefräst werden soll.

Einem finalen Fräsen steht nun nichts mehr im Weg ;-)

Als Beispiel siehe iPhone/iPad mini Kombiständer.

F-Engrave Python Tool unter OS X

F-Engrave ist ein kleines feines open source tool um g-code für eine CNC Fräse zu generieren. Dieses generiert entweder aus einer Bitmap- oder Vektordatei die entsprechenden Daten zum Fräsen auf einer CNC Portalfräse mit einem V-Fräser.

f-engrave-on-mac-v-carve

In einem Inventables Forum Beitrag wurde dies diskutiert wie man dieses unter OS X zum laufen bekommt. Ich habe dieses hier fertig zum Download (jetzt mit v1.57 of F-Engrave) zur Verfügung gestellt.

 

Protoneer CNC Shield: Spannung der Pololu stepper driver einstellen

Über die Potenziometer kann die Spannung der Stepper driver eingestellt werden. In diesem Pololu-DRV8825 Video wird dies sehr gut erklärt.

Um ganz ehrlich zu sein bin ich hier nicht in die Tiefe eingestiegen und bin mehr nach dem trial-and-error Prinzip vorgegangen ;-)

Als Messpunkt kann direkt der Schraubenzieher beim einstellen am Potentiometer genutzt werden. Wenn ich mich richtig erinnere habe ich dort auf 1,3 Volt eingestellt.

In meinem Setup mit Nema 23 Steppermotoren scheint dies ein guter Wert zu sein, obwohl die Pololus mit ihrer Maximum current per phase (bei aktiver Kühlung) von 2.2 A nicht die 3 A liefern können, die die Steppermotoren verkraften könnten. Theoretischer weise werden die Stepper im Moment „underpowered“ Betrieben.

Zum anderen funktionieren die Motoren nur im halfstep korrekt, ein Test mit fullstep lieferte massive Schrittverluste.

Nichts desto trotz habe ich ein sehr gut funktionierende Kombination gefunden. In seltenen Fällen habe ich noch Schrittverluste auf der Y-Achse. Hier muss ich aber noch prüfen ob es eventuell ein mechanisches Problem ist oder die GRBL Softlimits aktiv werden.

 

Protoneer CNC Shield: aktive Kühlung der Pololu stepper driver

Die Pololu stepper driver wurden bei mir ziemlich heiß. Diese wurden teilweise mehr als Handwarm und aus Sicherheitsgründen habe ich die beigefügten Kühlkörper mit einem doppelseitig thermischen Klebeband aufgeklebt.

Ein erster naiver Versuch mit Sekundenkleber hielt der Temperatur nicht lange stand ;-)

Im Gehäuse sorgt ein 5cm Lüfter für eine ausreichende Kühlung.

[slideshow_deploy id=’1930′]

Arduino: HEX flash upload über Konsole unter Mac OS X

Notiz um eine „*.hex“ Datei mit avrdude auf ein Arduino hochzuladen. Beachte erste Zeile => korrektes /dev/tty*!

localhost:~ csg$ /Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/tty.usbserial-AI02MJ0U -b57600 -D -Uflash:w:/Users/csg/Dropbox/Arduino/grbl_v0_9j_atmega328p_16mhz_115200_for_SO2.hex:i

avrdude: Version 6.0.1, compiled on Jan 15 2015 at 12:42:51
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/csg/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/tty.usbserial-AI02MJ0U
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading input file "/Users/csg/Dropbox/Arduino/grbl_v0_9j_atmega328p_16mhz_115200_for_SO2.hex"
avrdude: writing flash (28832 bytes):

Writing | ################################################## | 100% 14.45s

avrdude: 28832 bytes of flash written
avrdude: verifying flash memory against /Users/csg/Dropbox/Arduino/grbl_v0_9j_atmega328p_16mhz_115200_for_SO2.hex:
avrdude: load data flash data from input file /Users/csg/Dropbox/Arduino/grbl_v0_9j_atmega328p_16mhz_115200_for_SO2.hex:
avrdude: input file /Users/csg/Dropbox/Arduino/grbl_v0_9j_atmega328p_16mhz_115200_for_SO2.hex contains 28832 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 12.20s

avrdude: verifying ...
avrdude: 28832 bytes of flash verified

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (H:00, E:00, L:00)

avrdude done.  Thank you.

 

Arduino auf Protoneer CNC Shield auf Raspberry Pi

Man schreib natürlich nicht umsonst einen Artikel wie die GRBL Firmware auf ein Arduino Nano geschrieben wird. In der Regel steckt ein konkretes Projekt dahinter. In meinem Fall ist es das Protoneer CNC Shield das ich auf eBay entdeckt habe. Dieses wird huckepack auf einen Raspberry Pi gesteckt und ist die Basis-Zentrale für eine CNC Fräse.

rpi-cnc-shield-with-arduino-nanos-1

Enthalten beim Protoneer CNC Shield ist das Board selbst, ein kompatibler Arduino Nano und Montagematerial. Nicht enthalten sind der Raspberry Pi sowie auch die Stepper Driver die die Motoren ansteuern.

Leider ist beim mitgelieferten Arduino ein CH340 USB to Serial Chip verbaut. Dieser wird unter Mac OS X nicht erkannt. Es muß erst ein Treiber von einer sehr langsamen Chinesischen Seite herunter geladen und installiert werden. Dazu ist es auch noch nötig die Prüfung zu deaktivieren ob die Kernelextension korrekt signiert wurde!?

rpi-cnc-shield-with-arduino-nanos-2
Links Arduino Nano V3 mit CH340 Chip, rechts mit FTDI

Da bekommt man schnell ein seltsames Gefühl :D Deswegen habe ich mir über eBay einen anderes Arduino Nano V 3 erstanden, der den Original FTDI Chip hat. So wird das Arduino Board sofort ohne murren auch auf einen Mac erkannt.

[slideshow_deploy id=’1885′]

 

Auf der Protoneer Homepage gibt es ein fertig installiertes Raspbian Image. Darauf ist der Serielle Treiber schon eingerichtet um mit dem Arduino zu kommunizieren, sowie auch den G-Code Sender bCNC. bCNC ist ein richtig cooles CNC Tool und nicht nur ein reiner G-Code Sender allein, sondern bietet noch weitere interessante Funktionen. Dieses wird aktiv weiter entwickelt.

bCNC Tool/G-Code Sender
bCNC Tool/G-Code Sender

Einziger Wermutstropfen ist dass dieses „nur“ in Python entwickelt wurde. Bei Umfangreichen G-Code Dateien muss man sich auf eine kurze Wartezeit einstellen. Außerdem darf die Bildschirmauflösung für die  bCNC Software nicht all zu klein sein. Auf einem angeschlossenen 7 “ TFT mit 800x480px am RPi wird die Bedienung schon etwas sehr frickelig.

So, das war es für’s erste. Weitere Beiträge zur CNC Fräse und CAM Software folgen wenn Zeit vorhanden ist ^^

Arduino: Grbl (CNC) auf Arduino Nano installieren unter OS X

In diesem Post will ich kurz die Installation von GRBL auf einem Arduino Nano beschreiben. GRBL ist ein gcode Parser und CNC Fräskontroller.

Zu Beginn muss die Arduino IDE installiert werden. Die Einstellungen können etwas getuned werden. Eine Ausführliche Ausgabe bei Kompilierung und Hochladen ist doch immer wichtig :-)

arduino-ide-settings

Im Menü Werkzeuge der IDE muss die Platine, Prozessor und Port entsprechend zum angeschlossenen Arduino Modell eingestellt werden. Ganz wichtig ist es auch, einen korrekten Programmer anzugeben. Dieser musste bei mir auf USBasp umgestellt werden, da sonst das hochladen nicht funktioniert hat und kryptische Fehlermeldungen dabei erschienen ^^

Korrektur (29.8.2015): Die letzte Aussage wegen USBasp ist natürlich totaler quatsch. Ich hatte  nur durch trial and error Glück, dass ich den Arduino erfolgreich flashen konnte. Im Nachhinein kann ich nur sagen dass aus Gründen die sich mir nicht erschließen plötzlich der richtige Programmer benutzt wird. Und selbiges auf zwei Mac Rechnern, einem MacBook Air und Mac mini, nur auf ersterem funktioniert.

Als nächsten Schritt lädt man das GRBL Git Repository herunter. Der darin enthaltene „grbl“ Ordner muss dann in folgenden Arduino Ordner kopiert werden:

# grbl Ordner in diesen Pfad kopieren
/Users/DEIN_LOKALER_USERNAME/Documents/Arduino/libraries

Anschließend steht grbl im Menü unter Bespiele zur Verfügung und kann geöffnet werden.

arduino-grbl-sketch

Einer Prüfung über die Arduino IDE steht nichts im Wege.

arduino-grbl-sketch-verify

Nach erfolgreicher Prüfung kann die Software auf das Board hochgeladen werden.

arduino-ide-upload

Bei erfolgreichen Vorgang sollte es so wie im obigen Screenshot aussehen.

Ein Test ob grbl erfolgreich installiert wurde kann mit dem Universal G-Code Sender (download) gemacht werden. Für diesen muss der Ordner „var/lock/“ mit entsprechenden Rechten angelegt werden.

universal-gcode-sender_001

Nach erfolgreicher Verbindung über die Connection oben links im Universal G-Code Sender meldet sich Grbl mit einem kurzen Lebenszeichen in der Konsole.

universal-gcode-sender_002

Grbl ist nun auf dem Arduino installiert und bildet die Grundlage für ein Hobby CNC Bastelprojekt.