Laser Cutter Umbau: Unterschied zwischen den Versionen
(→Variante A GRBL:) |
Bodo (Diskussion | Beiträge) (→Todos: Webinterface done) |
||
(14 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Der berühmt berüchtigte 40W China Laser Cutter | + | Der berühmt berüchtigte 40W China Laser Cutter, Modell K40 |
Zeile 37: | Zeile 37: | ||
Ziel ist es den Umbau nachvollziehbar zu machen und | Ziel ist es den Umbau nachvollziehbar zu machen und | ||
die Zusammenarbeit zu unterstützen. | die Zusammenarbeit zu unterstützen. | ||
+ | |||
Zeile 51: | Zeile 52: | ||
Das Originalgerät dient als Basis für den Umbau. | Das Originalgerät dient als Basis für den Umbau. | ||
+ | |||
+ | **Hardwareumbau | ||
+ | ***Anforderung | ||
+ | ****leichte Nachbaubarkeit, leicht beschaffbare Standard Komponenten, Geringer aufwand und Anforderungen für Umbauten | ||
+ | ****am Äußeren des Geräts soll so wenig wie möglich geändert werden z.B. keine sichtbaren Befestigungen | ||
+ | |||
==== Hardware ==== | ==== Hardware ==== | ||
Zeile 57: | Zeile 64: | ||
* Spannungsversorgung | * Spannungsversorgung | ||
* Lasereinheit | * Lasereinheit | ||
− | * | + | * Laserstrahlpositionierungseinheit |
ersetzt wird | ersetzt wird | ||
− | * | + | * Steuerplatine |
* Lüftungs- und Kühlungseinheit | * Lüftungs- und Kühlungseinheit | ||
ergänzt | ergänzt | ||
* Sicherheitseinrichtungen | * Sicherheitseinrichtungen | ||
+ | ** Überwachung der Schneidraumtür | ||
+ | ***Anforderung | ||
+ | ****Minimal | ||
+ | *****zuverlässiges und tolerantes erkennen der geschlossenen Schneidraumtür | ||
+ | *****wenn Tür nicht geschlossen, dann kann Laser nicht einschalt werden (Warnung, per Software) | ||
+ | *****wenn Gerät stromlos, kann Tür geöffnet werden z.B. nach Notabschaltung um Feuer zu löschen | ||
+ | *****wenn Tür geschlossen ist und der Laser eingeschaltet werden wird, dann wird die Tür vor dem Einschalten des Lasers verriegelt | ||
+ | *****wenn die Tür als offen erkannt wird, dann wird dies optisch angezeigt | ||
+ | *****bei einer Störung an der Verriegelung kann die Schneidraumtür trotzdem geöffnet werden | ||
+ | ****Optional | ||
+ | *****Integration einer Transportsicherung für die Schneidraumtür | ||
+ | |||
* Beleuchtung | * Beleuchtung | ||
* sichere Kontrollmöglichkeit des Laserprozesses – Kamera | * sichere Kontrollmöglichkeit des Laserprozesses – Kamera | ||
* Not-aus Schalter | * Not-aus Schalter | ||
− | |||
* Temperatur Sensor Laser Kühlwasser | * Temperatur Sensor Laser Kühlwasser | ||
Zeile 80: | Zeile 98: | ||
* [https://github.com/gnea/grbl/wiki GRBL] Arduino Firmware | * [https://github.com/gnea/grbl/wiki GRBL] Arduino Firmware | ||
− | ** [https://github.com/gnea/grbl-Mega] | + | ** [https://github.com/gnea/grbl-Mega Sourcen] |
* [https://github.com/LaserWeb/LaserWeb4/wiki LaserWeb] Frontend | * [https://github.com/LaserWeb/LaserWeb4/wiki LaserWeb] Frontend | ||
+ | |||
+ | Änderungen notwendig an GBRL-Software: | ||
+ | * Da keine Z-Achse, wie bei CNC-Maschinen vorhanden ist, muss auch im Homing-Prozess das Z-Homing deaktiviert werden! Dazu in der config.h die Zeilen | ||
+ | #define HOMING_CYCLE_0 (1<<Z_AXIS) // REQUIRED: First move Z to clear workspace. | ||
+ | #define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS)) // OPTIONAL: Then move X,Y at the same time. | ||
+ | durch | ||
+ | //#define HOMING_CYCLE_0 (1<<Z_AXIS) // REQUIRED: First move Z to clear workspace. | ||
+ | #define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS)) // OPTIONAL: Then move X,Y at the same time. | ||
+ | ersetzen! Getestet und für gut empfunden! | ||
+ | |||
+ | Weiterhin wird der Feed Hold-Pin als Sicherheitstür-Kontakt verwendet. Dazu muss die Zeile | ||
+ | // #define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable. | ||
+ | einkommentiert werden: | ||
+ | #define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable. | ||
+ | und die Polarität des Inputs invertiert werden, da der Taster bei geschlossener Tür auch geschlossen ist: | ||
+ | // #define INVERT_CONTROL_PIN_MASK ((1<<CONTROL_SAFETY_DOOR_BIT)|(1<<CONTROL_RESET_BIT)) // Default disabled. | ||
+ | zu | ||
+ | #define INVERT_CONTROL_PIN_MASK (1<<CONTROL_SAFETY_DOOR_BIT) // Default disabled. | ||
+ | ändern | ||
+ | |||
+ | === Status === | ||
+ | |||
+ | ==== erledigt ==== | ||
+ | * GRBL v.1.1 wurde auf Arduino '''UNO''' (da original GRBL nur Atmega 328P unterstützt) geflasht und liegt in Lasercutter | ||
+ | * Config von [https://github.com/LaserWeb/LaserWeb4/wiki/2.2-Initial-Configuration---GRBL-LPC-1.1 hier] übernommen und getestet: 160 Schritte/mm passen bei Treibereinstellung auf 1/16 Microstepping | ||
+ | * Ansteuerung der Schrittmotoren funktioniert über das CNC-Shield und Bedienung über [https://github.com/vlachoudis/bCNC bCNC] | ||
+ | * Stromgrenzen eher konservativ gesetzt auf 0,8 Volt Referenzspannung = ca. 0,5A Motorstrom bei Shuntwiderstand = 0,2 Ohm | ||
+ | * Endschalter angeschlossen und Config von Gbrl angepasst (siehe unten) | ||
+ | * Rauchabsaugung mit 2x PC-Lüfter 80mm + 3D gedrucktem Adapter + Staubsaugerschlauch zum Fenster | ||
+ | * [http://laser.elab.bodo.io/ Web-Interface] aktuell noch online Login | ||
+ | |||
+ | ==== Todos ==== | ||
+ | * ich konnte beim ersten Lasern ein Stottern der Motoren hören und es wurden Schritte verloren. Firmware oder NT?? | ||
+ | * Login zum Web-Interface zufügen | ||
+ | * Fenster oben im eLAB entfernen | ||
+ | * Fenster durch Platte mit Isolierung ersetzen | ||
+ | * Stromversorgung über Lasercutter-Netzteil | ||
+ | * Sicherheitsschalter (Tür und Notaus) integrieren. Vorschlag: 2 Level-Security: 1x wo aktuell der Laser-Schalter (P+ zu G) angeschlossen ist über Türkontakt zusätzlich unterbrechen und 1x über Gbrl | ||
+ | * In Kreis zwischen P+ und G können weitere Unterbrecher eingefügt werden: z.B. unterbrechen, wenn Kühlung/Lüftung nicht an ist | ||
+ | * Ansteuerung des Lasers '''Über Test-Switch An(K+ zu K-(GND) kurzgeschlossen)/Aus (Open)''' | ||
+ | * Leistung des Lasers über PWM an IN-Pin | ||
+ | * Steuerung der Kühlung + Absaugung. Vorschlag: Coolant Enable-Pin für beide verwenden. | ||
+ | * Innenbeleuchtung installieren und anschließen. Vorschlag vorerst ungesteuert --> Wenn Spannung an, dann Licht an. | ||
+ | * Neues Netzteil 24V mit mehr Power (das eingebaute ist wohl arg am Limit) niedrige Prio | ||
+ | |||
+ | ==== Aktuelle Config: ==== | ||
+ | $0=10 | ||
+ | $1=25 | ||
+ | $2=0 | ||
+ | $3=0 | ||
+ | $4=0 | ||
+ | $5=1 | ||
+ | $6=0 | ||
+ | $10=1 | ||
+ | $11=0.010 | ||
+ | $12=0.002 | ||
+ | $13=0 | ||
+ | $20=1 | ||
+ | $21=0 | ||
+ | $22=1 | ||
+ | $23=1 | ||
+ | $24=100.000 | ||
+ | $25=1000.000 | ||
+ | $26=250 | ||
+ | $27=1.000 | ||
+ | $30=1000 | ||
+ | $31=0 | ||
+ | $32=1 | ||
+ | $100=160.000 | ||
+ | $101=160.000 | ||
+ | $102=160.000 | ||
+ | $110=24000.000 | ||
+ | $111=24000.000 | ||
+ | $112=24000.000 | ||
+ | $120=1000.000 | ||
+ | $121=1000.000 | ||
+ | $122=1000.000 | ||
+ | $130=300.000 | ||
+ | $131=220.000 | ||
+ | $132=50.000 | ||
===== Variante B Marlin: ===== | ===== Variante B Marlin: ===== | ||
Zeile 99: | Zeile 197: | ||
==== Neue Hardware ==== | ==== Neue Hardware ==== | ||
− | neue Arduino | + | neue Arduino basierte Steuereinheit |
Variante A: | Variante A: | ||
Zeile 126: | Zeile 224: | ||
* WIKI Seite weiter vervollständigen | * WIKI Seite weiter vervollständigen | ||
https://trello.com/c/td0hgULM/11-bodo-laser-cutter-umr%C3%BCsten | https://trello.com/c/td0hgULM/11-bodo-laser-cutter-umr%C3%BCsten | ||
+ | |||
+ | === Priorisierte Liste === | ||
+ | |||
+ | Version 1: Minimalversion, benutzbar für Experten | ||
+ | * Sicherheit | ||
+ | ** Laser ein == Tür zu | ||
+ | ** wenn Laser-Job gestartet, dann Pumpe an + Absaugung an | ||
+ | ** wenn Maschine eingeschaltet, dann Licht im Innenraum an | ||
+ | |||
+ | Version 2: mehr Sicherheit | ||
+ | * Sicherheit | ||
+ | ** Not-aus Button, d.h. wenn gedrückt, dann | ||
+ | *** Laser aus | ||
+ | *** Tür auf | ||
+ | *** Alarm Sound | ||
+ | * Komfort | ||
+ | ** Webcam montieren im Innenraum (am Kopf?) | ||
+ | |||
+ | Version 3: Bedienfehler verhindern | ||
+ | * Sicherheit | ||
+ | ** Temperatur der Laser-Röhre messen und entsprechend den Betrieb gar nicht starten | ||
+ | ** Rauchmelder? | ||
+ | * Komfort | ||
+ | |||
+ | |||
+ | Version .... | ||
+ | * Komfort | ||
+ | ** Licht ansteuern | ||
+ | ** Display | ||
+ | ** Z-Tisch | ||
+ | ** Objekt-Dreh-Einheit (Flasche, Glas, Nudelholz) | ||
+ | ** geschlossener Kühlkreislauf mit Radiator? |
Aktuelle Version vom 2. Februar 2020, 15:46 Uhr
Der berühmt berüchtigte 40W China Laser Cutter, Modell K40
Inhaltsverzeichnis
Strukturrieungvorschlag
- Motivation
- was soll der Wiki Eintrag leisten
- Vision
- Eigenschaften des umgebauten Gerätes, nicht als starr an zu sehen
- Design
- Dokumentation der Entscheidungen die Aufgabe auf ein bestimmte Art und Weise zu lösen
- Hardware
- Original Hardware
- Beschreibung der Hardware die im Gerät verbaut ist und weiter verwendet wird
- neue Hardware
- Beschreibung der neu verwendeten Hardware
- Original Hardware
- Software
- Teilkomponente
- Entwicklungsumgebung
- Programm Code
- Wie bringt man die Software ans laufen
- Teilkomponente
- Linksammlung
- mehr oder weniger interessante Webseiten zum Thema
- Fragen und Antworten
- Alle offenen Fragen und deren Antworten, die noch erarbeitet werden müssen
- TODO
- nächste Bearbeitungsschritt
Motivation
Diese Seite dient als Dokumentation des Umbaus. Ziel ist es den Umbau nachvollziehbar zu machen und die Zusammenarbeit zu unterstützen.
Vision
Beschreibung
Ziel ist ein funktionale Einheit, so viel wie möglich Funktion soll im Gerät selbst stattfinden. Das Gerät wird im wesentlichen über ein Webinterface bedient. …...
Design
Das Originalgerät dient als Basis für den Umbau.
- Hardwareumbau
- Anforderung
- leichte Nachbaubarkeit, leicht beschaffbare Standard Komponenten, Geringer aufwand und Anforderungen für Umbauten
- am Äußeren des Geräts soll so wenig wie möglich geändert werden z.B. keine sichtbaren Befestigungen
- Anforderung
- Hardwareumbau
Hardware
erhalten bleibt
- Spannungsversorgung
- Lasereinheit
- Laserstrahlpositionierungseinheit
ersetzt wird
- Steuerplatine
- Lüftungs- und Kühlungseinheit
ergänzt
- Sicherheitseinrichtungen
- Überwachung der Schneidraumtür
- Anforderung
- Minimal
- zuverlässiges und tolerantes erkennen der geschlossenen Schneidraumtür
- wenn Tür nicht geschlossen, dann kann Laser nicht einschalt werden (Warnung, per Software)
- wenn Gerät stromlos, kann Tür geöffnet werden z.B. nach Notabschaltung um Feuer zu löschen
- wenn Tür geschlossen ist und der Laser eingeschaltet werden wird, dann wird die Tür vor dem Einschalten des Lasers verriegelt
- wenn die Tür als offen erkannt wird, dann wird dies optisch angezeigt
- bei einer Störung an der Verriegelung kann die Schneidraumtür trotzdem geöffnet werden
- Optional
- Integration einer Transportsicherung für die Schneidraumtür
- Minimal
- Anforderung
- Überwachung der Schneidraumtür
- Beleuchtung
- sichere Kontrollmöglichkeit des Laserprozesses – Kamera
- Not-aus Schalter
- Temperatur Sensor Laser Kühlwasser
Software
wird komplett ersetzt
- Hardwaresteuerung und Auftragsabarbeitung via Arduino Freeware
- Benutzerinterface und Auftragserstellung via Webinterface basierend auf Open Source
Variante A GRBL:
Änderungen notwendig an GBRL-Software:
- Da keine Z-Achse, wie bei CNC-Maschinen vorhanden ist, muss auch im Homing-Prozess das Z-Homing deaktiviert werden! Dazu in der config.h die Zeilen
#define HOMING_CYCLE_0 (1<<Z_AXIS) // REQUIRED: First move Z to clear workspace. #define HOMING_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS)) // OPTIONAL: Then move X,Y at the same time.
durch
//#define HOMING_CYCLE_0 (1<<Z_AXIS) // REQUIRED: First move Z to clear workspace. #define HOMING_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS)) // OPTIONAL: Then move X,Y at the same time.
ersetzen! Getestet und für gut empfunden!
Weiterhin wird der Feed Hold-Pin als Sicherheitstür-Kontakt verwendet. Dazu muss die Zeile
// #define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable.
einkommentiert werden:
#define ENABLE_SAFETY_DOOR_INPUT_PIN // Default disabled. Uncomment to enable.
und die Polarität des Inputs invertiert werden, da der Taster bei geschlossener Tür auch geschlossen ist:
// #define INVERT_CONTROL_PIN_MASK ((1<<CONTROL_SAFETY_DOOR_BIT)|(1<<CONTROL_RESET_BIT)) // Default disabled.
zu
#define INVERT_CONTROL_PIN_MASK (1<<CONTROL_SAFETY_DOOR_BIT) // Default disabled.
ändern
Status
erledigt
- GRBL v.1.1 wurde auf Arduino UNO (da original GRBL nur Atmega 328P unterstützt) geflasht und liegt in Lasercutter
- Config von hier übernommen und getestet: 160 Schritte/mm passen bei Treibereinstellung auf 1/16 Microstepping
- Ansteuerung der Schrittmotoren funktioniert über das CNC-Shield und Bedienung über bCNC
- Stromgrenzen eher konservativ gesetzt auf 0,8 Volt Referenzspannung = ca. 0,5A Motorstrom bei Shuntwiderstand = 0,2 Ohm
- Endschalter angeschlossen und Config von Gbrl angepasst (siehe unten)
- Rauchabsaugung mit 2x PC-Lüfter 80mm + 3D gedrucktem Adapter + Staubsaugerschlauch zum Fenster
- Web-Interface aktuell noch online Login
Todos
- ich konnte beim ersten Lasern ein Stottern der Motoren hören und es wurden Schritte verloren. Firmware oder NT??
- Login zum Web-Interface zufügen
- Fenster oben im eLAB entfernen
- Fenster durch Platte mit Isolierung ersetzen
- Stromversorgung über Lasercutter-Netzteil
- Sicherheitsschalter (Tür und Notaus) integrieren. Vorschlag: 2 Level-Security: 1x wo aktuell der Laser-Schalter (P+ zu G) angeschlossen ist über Türkontakt zusätzlich unterbrechen und 1x über Gbrl
- In Kreis zwischen P+ und G können weitere Unterbrecher eingefügt werden: z.B. unterbrechen, wenn Kühlung/Lüftung nicht an ist
- Ansteuerung des Lasers Über Test-Switch An(K+ zu K-(GND) kurzgeschlossen)/Aus (Open)
- Leistung des Lasers über PWM an IN-Pin
- Steuerung der Kühlung + Absaugung. Vorschlag: Coolant Enable-Pin für beide verwenden.
- Innenbeleuchtung installieren und anschließen. Vorschlag vorerst ungesteuert --> Wenn Spannung an, dann Licht an.
- Neues Netzteil 24V mit mehr Power (das eingebaute ist wohl arg am Limit) niedrige Prio
Aktuelle Config:
$0=10 $1=25 $2=0 $3=0 $4=0 $5=1 $6=0 $10=1 $11=0.010 $12=0.002 $13=0 $20=1 $21=0 $22=1 $23=1 $24=100.000 $25=1000.000 $26=250 $27=1.000 $30=1000 $31=0 $32=1 $100=160.000 $101=160.000 $102=160.000 $110=24000.000 $111=24000.000 $112=24000.000 $120=1000.000 $121=1000.000 $122=1000.000 $130=300.000 $131=220.000 $132=50.000
Variante B Marlin:
Hardware
Original Hardware
Schnittstelle zwischen Laserstrahlpositionierungseinheit und Steuerplatine
Ribbon cable CONN FFC 12POS 1.25MM
Neue Hardware
neue Arduino basierte Steuereinheit
Variante A:
- Arduino Mega2560
- CNC Shield
Variante B:
- Arduino Mega
- RAMPS 1.4 Shield
- RepRap Discount Smart Controller LCD, Drehencoder, SD-Card (optional)
- K40 RAMPS Conversion
Link Sammlung zum Umbau
- http://3dprintzothar.blogspot.com/2014/08/40-watt-chinese-co2-laser-upgrade-with.html
- https://github.com/robotfreak/buildlog-lasercutter-marlin
- https://k40laser.se/
- http://donsthings.blogspot.com/2016/11/the-k40-total-conversion.html
- Erdungs Probleme
- Stromversorgung Upgrade
TODO
- WIKI Seite weiter vervollständigen
https://trello.com/c/td0hgULM/11-bodo-laser-cutter-umr%C3%BCsten
Priorisierte Liste
Version 1: Minimalversion, benutzbar für Experten
- Sicherheit
- Laser ein == Tür zu
- wenn Laser-Job gestartet, dann Pumpe an + Absaugung an
- wenn Maschine eingeschaltet, dann Licht im Innenraum an
Version 2: mehr Sicherheit
- Sicherheit
- Not-aus Button, d.h. wenn gedrückt, dann
- Laser aus
- Tür auf
- Alarm Sound
- Not-aus Button, d.h. wenn gedrückt, dann
- Komfort
- Webcam montieren im Innenraum (am Kopf?)
Version 3: Bedienfehler verhindern
- Sicherheit
- Temperatur der Laser-Röhre messen und entsprechend den Betrieb gar nicht starten
- Rauchmelder?
- Komfort
Version ....
- Komfort
- Licht ansteuern
- Display
- Z-Tisch
- Objekt-Dreh-Einheit (Flasche, Glas, Nudelholz)
- geschlossener Kühlkreislauf mit Radiator?