Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Repetier Firmware neuen Code beibringen ->Lasercutting

geschrieben von DomiMa 
Repetier Firmware neuen Code beibringen ->Lasercutting
30. December 2013 15:12
Hallo zusammen,
ich bastel gerade an einem 3D-Drucker und teste gerade verschiedene Firmwares für mein RAMPS 1.4.
Derzeit gefällt mir Repetier am besten.
Ich möchte zukünftig damit nicht nur ABS-Drucken, sondern auch Schablonen mit einer Laserdiode ausschneiden.
Also muss das System einigermaßen universell sein.
Frage:
Wo muss ich der Arduino-Firmware beibringen, wenn der Code M52 bzw. M53 ankommt z.B. den Ausgang D10 aktiviert/deaktiviert (entspricht Laser an/aus).
Alternativ geht auch ein Pin von dem Aux1-Port (die dürften in der Originalkonfiguration nicht belegt sein), dann muss ich halt noch ein Relais hinzufügen.

Das geht bestimmt recht einfach, ich kenn mich nur leider mit der Firmware nicht gut genug aus.

Oder hat jemand einen anderen Vorschlag, wo evtl. schon die Firmware für 3D-Druck & Lasercutting vorbereitet ist?

Vielen Dank für eure Hilfe & gutes neues Jahr

Dominik
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
30. December 2013 15:29
Hallo DomiMa,

in der reprap wiki habe ich erst mal nichts gefunden das die beiden Codes unterstützt werden. Du müsstest Dir einen andern Code dafür aussuchen .
Dann mit einem freien Ausgang ein Relais mit Freilaufdiode schalten ist kein Problem.

Allen ein Gutes Neues Jahr

Uwe94 - Berliner
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
30. December 2013 15:44
Hallo, danke für deine Antwort.
M3 / M5 für An/Aus wäre denke ich auch möglich.
Diese habe ich in der Liste der Codes in deinem Link gefunden und sollten für den 3D-Druck nicht benötigt werden. (Steuern eigentlich Frässpindeln)

Wie würde denn M3 für D0 -> High und M5 für D0 ->Low in der Configfile aussehen?

Noch eine blöde Frage: warum sollte denn M52&M53 nicht unterstützt werden?
Wenn der Arduino den G-Code "liest" und die genannten Codes kommen, soll er halt darauf entsprechend reagieren.
Oder hab ich da was nicht richtig verstanden?

Vielen Dank

Dominik
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
30. December 2013 17:56
Hallo Dominik,

M52/M53 werden im einfachsten Fall von der Soft übergangen oder es kommt eine Fehlermeldung.Die Codes sind einfach nicht programmiert und werden nicht ausgewertet.
Mit der Config kann ich mich erst Morgrn beschäftigen , habe nur noch das Spielzeug in betrieb.

MfG Uwe94 -Berliner
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
31. December 2013 11:30
Hallo zusammen,
ich habe mich jetzt mal an den Code gewagt,
könnt ihr mir bitte bestätigen, dass ich auf dem richtigen Weg bin?

Repetier Lasermodifikation:

in Mainmenü: ab line 374
//Initialize Laser Pins
SET_OUTPUT(LASER_EN);

in Commands.cpp: ab line 623
case 52: // M52 Turn on LASER
WRITE(LASER_EN, HIGH);
break;
case 53: // M53 Turn off LASER
WRITE(LASER_EN, LOW);
break;

in pins.h in line 4
#define LASER_EN 42 //Set to D42

bei der Überprüfung meckert die Arduino-Software schonmal nicht smiling bouncing smiley, mal sehen wie sich die Hardware verhält.
Der nächste Schritt wäre dann für mich den Laserpin auf einen der vorhandenen Ramps-Mosfets zu legen.
Wenn ich in der Configuration nur einen Extruder verwende habe ich doch zwei Mosfet-Pins frei, richtig?

Vielen dank & schönes Jahresende...
Dominik
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
31. December 2013 13:20
Hallo Dominik,

ich hab mal ein wenig Gegoogelt. Im Prinzip bist Du auf den richtigen Weg.Das ganze geht nur über eine Softanpassung oder in dem man z.B die Hotendheizung. Bettheizung, oder Lüftersteuerung dafür nutzt.
Du kannst Dir ja auch mal die Soft GRBL ansehen. Da gibt es zumindest schon einmal eine Spindelansteuerung.GRBL WIKI.
Im Detail - änderungen in der Soft - muss ich passen. So weit habe ich mich noch nicht vorgearbeitet.

Noch Fünf Stunden dann isses so weit.

Allen einen guten Rutsch
Uwe94
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
03. January 2014 11:13
So, mein Code funktioniert fast. Keine Fehlermeldungen.
Nur wird der Port nicht dauerhaft auf "High" geschaltet wenn der Code dafür kommt, sondern nur für ein paar Millisekunden.
Kann mir jemand sagen wie ich in der Firmware formulieren muss:
"Wenn du das Commando M52 bekommst, setze den Pin D42 auf high.
Und zwar solange bis du den Befehl M53 bekommst um ihn wieder abzuschalten."


Vielen Dank schonmal

Grüße, Dominik
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
03. January 2014 13:55
Hi Dominik!

Ich würde mich am M80 / M81 orientieren, da hier auch jeweils ein PIN geschaltet wird und nicht nur variablen gesetzt werden.
Daher würde ich die Funktionnen wait_until_end_of_move() aufrufen und die previous_millis_cmd = millis() ebenfalls ausführen. Evtl. hat das ja Einfluss.
      case 80: // M80 - ATX Power On
#if PS_ON_PIN>-1
        wait_until_end_of_move();
        previous_millis_cmd = millis();
        SET_OUTPUT(PS_ON_PIN); //GND
        WRITE(PS_ON_PIN, (POWER_INVERTING ? HIGH : LOW));
#endif
        break;
      case 81: // M81 - ATX Power Off
#if PS_ON_PIN>-1
        wait_until_end_of_move();
        SET_OUTPUT(PS_ON_PIN); //GND
        WRITE(PS_ON_PIN,(POWER_INVERTING ? LOW : HIGH));
#endif


Gruß
Boris
--
DIY Mendel90
Gen7 1.4.1 mit Repetier Firmware 0.91 + Repetier Host
Gen7 Extension Board mit LCD, SD-Card, Bluetooth und FAN-Control
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
03. January 2014 17:04
Hi Boris, danke, ich werde das mal testen.

Der Codeabschnitt (in commands.cpp) sieht mittlerweile so aus:

case 03: // M03 Turn on LASER
wait_until_end_of_move();
previous_millis_cmd = millis();
WRITE(LASER_EN, HIGH);
break;

case 05: // M05 Turn off LASER
wait_until_end_of_move();
SET_OUTPUT(PS_ON_PIN); //GND
WRITE(LASER_EN, LOW);
break;

Sobald ich wieder an der Steuerung sitze, werde ich mal Rückmeldung geben ob das so funktioniert.
Wenn das funktioniert, super, aber ich würde es auch gerne verstehen was da nun steht. Kann mir das jemand erklären?

Falls andere Bastler ein ähnliches Projekt vorhaben:
am LASER_EN Pin (D57) werde ich einen Darlington-Transistor (TIP120) anschließen,
an diesen kommt ein Spannungsregler 12->6V,
an diesen kommt ein einfacher Laser-Konstantstromtreiber (basierend auf LM317).
Mit dieser Vorschaltung lässt sich eine rote Laserdiode @250mW aus einem DVD-Brenner + Kollimatorlinse betreiben.
Bei sehr langsamer Geschwindigkeit (ca. 5mm/sek) reicht das aus um nicht zu dickes schwarzes Papier zu schneiden bzw. in Holz Muster einzubrennen.

Ich habe das ganze schonmal mit einer China-Schrittmotorsteuerung (TB6560) realisiert.
Das Projekt wurde aber wieder abgebaut, weil die Steuerung nur über einen Parallelport erfolgen konnte, nur WinXP-tauglich war
und die Achsbewegung über M6-Gewindestangen unschön war.


Vielen Dank & Grüße
Dominik
Re: Repetier Firmware neuen Code beibringen ->Lasercutting
03. January 2014 18:23
Ich kann es nur vermuten (bin noch nicht so tief in die Firmware-Programmierung eingestiegen).

Es wird schreibend auf ein Output Register zugegriffen um einen PIN auf high oder low zu setzen.
Ich nehme an, das bringt die Firmware aus dem Tritt wenn gerade noch andere Aufgaben laufen wie z.B. Bewegungen die noch abzuarbeiten sind.
Durch die entsprechenden Aufrufe wird der Firmware zunächst erlaubt diese Aufgaben zu erledigen.

Ich bin der Meinung, das ganze wird durch einen Interrupt gesteuert.
Wenn die Interrupt-Routine nun so lange läuft das zwischendurch ein weiterer Interrupt die Routine aufruft kann diese nie vollständig abgearbeitet werden.

Bei anderen G und M Codes wird oft nur eine Variable geändert.
Das scheint nicht so Zeitintensiv zu sein, so das man es auch während einer Bewegung tun kann.

Genaueres kann bestimmt Repetier dazu sagen, sofern er Zeit hat smiling smiley

Sonntag wird bei mir wohl ein Software-Bastel Tag sein. Dann werde ich meinen Mendel90 von der 0.83 auf die 0.91 updaten..
(und schauen was ich dann noch wieder alles einbauen muss winking smiley


Gruß
Boris
--
DIY Mendel90
Gen7 1.4.1 mit Repetier Firmware 0.91 + Repetier Host
Gen7 Extension Board mit LCD, SD-Card, Bluetooth und FAN-Control
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen