Neue Funktion Filamentload für RF1000 V RF.01.11

Firmware Veröffentlichungen und Einstellungen können hier angekündigt und diskutiert werden.
Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Hat sich bedankt: 5 Mal
Danksagung erhalten: 48 Mal

Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #1 von X4r3 » Fr 25. Dez 2015, 23:38

Ich möchte euch eine neue Funktion vorstellen die ich in die Firmware V RF.01.11 implementiert habe:

Ein G-code Befehl der das Filament in 1mm Schritten in den Extruder schiebt bis der F Wert ein delta Wert überschreitet. Ideal im Startcode um das Filament zu "laden". Luftdrucke weil vergessen wurde das Filament zu laden gehören nun der Vergangenheit an. :tanzen:
Beispiel:
M4001 S1000
Beträgt der F-Wert beim Ausführen das Befehls 1000, wird das Filament in den Extruder geschoben bis der Wert 2000 (1000 + 1000) überschritten wurde.

Getestet als Einzelbefehl in Repetier-Host und als Sd-Card abfolge im Startcode.
Der Extruder muss dabei aufgeheizt sein.

Startcode:

Code: Alles auswählen

;--------------------------------------
; Start Code RF1000 exp
;--------------------------------------
G28 ; home all axes
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G1 Z5 F300 ; lift nozzle, v=500mm/min = 8,3mm/s
M109 S[first_layer_temperature] ; wait for extruder temp to be reached
M400 ; Wait until move buffers empty
M4001 S1000; Load Filament until F > delta 1000
M400 ; Wait until move buffers empty
M3001 ; Aktivate Z-Compensation
;M3006 S+200 ; configure the static z-offset (units are [um]) - Firmware Version > 0.91.48
G92 E0 ; start line - reset extruder
;G1 E-2 F300; extruder retract 2mm
G1 X230 Y22 F5000 ; v=5000mm/min = 83,3mm/
G1 Z0.25 F300
G1 E5 F960
G92 E0
G1 X20 E15 F1000
; Acceleration up to...
; Acc printing
M201 X1000 Y1000 Z100
; Acc travel
M202 X1000 Y1000 Z100
;--------------------------------------


Ich habe mir bei Github einen Fork von RF1000 angelegt und meine Konfiguration für meinen RF1000 hinterlegt um in Zukunft nicht immer bei Firmwareänderung manuell meine Änderung nachtragen zu müssen. https://github.com/X4r3/Repetier-Firmware Ich bin totaler Github Anfänger und hoffe, dass die Änderungen mit wenig Aufwand nachgetragen werden können.

Hier die Ansicht der Änderung der neuen Filemantload Funktion: https://github.com/X4r3/Repetier-Firmwa ... 875b1980d8

Leider wird der komplette Code als Änderung angezeigt keine Ahnung woran das liegt, dabei verwende ich das offizielle Github Programm. Entweder mache ich was falsch oder das Programm ist einfach nur dumm.

Hier nochmal der wesentliche Code in der RF.ccp:

Code: Alles auswählen

         case 4001: // M4001 S1000 - Load filament until F value > delta 1000
         {
            if( Extruder::current->tempControl.currentTemperatureC >= MIN_EXTRUDER_TEMP )
            {
               if( pCommand->hasS() )
               {
                  // test and take over the specified value
                  nTemp = pCommand->S;
                  float deltaF = nTemp;
                  float fwert = readStrainGauge( ACTIVE_STRAIN_GAUGE );
                  //Com::printFLN( PSTR( "M4001: deltaF: " ), deltaF );   
                  //Com::printFLN( PSTR( "M4001: fwert: " ), fwert );   
                  
                  while( 1 )
                  {
#if FEATURE_WATCHDOG
                     HAL::pingWatchdog();
#endif // FEATURE_WATCHDOG
                     Commands::checkForPeriodicalActions();                     
                     GCode::executeFString(Com::tMountFilamentUntilF);                     
                     Commands::waitUntilEndOfAllMoves();

                     float nCurrentPressure = readStrainGauge( ACTIVE_STRAIN_GAUGE );   
                     //Com::printFLN( PSTR( "M4001: nCurrentPressure: " ), nCurrentPressure );                     
                     if( nCurrentPressure > fwert + deltaF )
                     {
                        //Com::printFLN( PSTR( "M4001: break - nCurrentPressure > fwert + deltaF" ) );
                        break;
                     }
                  }
               }
            }
         }


Vielleicht kann da ein Experte drüberschauen ob da noch was fehlt oder zuviel ist.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Benutzeravatar
rf1k_mjh11
Developer
Developer
Beiträge: 1764
Registriert: Di 6. Jan 2015, 19:44
Wohnort: Autriche
Hat sich bedankt: 220 Mal
Danksagung erhalten: 442 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #2 von rf1k_mjh11 » Sa 26. Dez 2015, 09:17

X4r3,

Danke für die Mühe. Ich habe zwar bisher noch nicht vergessen, Filament zu laden,
X4r3 hat geschrieben:Luftdrucke weil vergessen wurde das Filament zu laden gehören nun der Vergangenheit an. :tanzen:

habe dafür schon öfters vergessen, den "Einfachen Federspanner" zu spannen. Damit reicht die Förderkraft meist nicht, um einen brauchbaren Ausdruck herzustellen.
Ich werde aber warten, bis sich die RF01.11 ordentlich 'stabilisiert' hat, bevor ich 'upgraden' werde.

mjh11
Merke, am PC gibt es immer einen Weg!
Schafft es der Mensch, einmal etwas idiotensicher zu machen, kontert die Natur sofort mit einem besseren Idioten.

Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Hat sich bedankt: 5 Mal
Danksagung erhalten: 48 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #3 von X4r3 » Sa 26. Dez 2015, 11:04

Wegen Filament vergessen habe ich bei mir verschiedene Szenarieen.

Nach dem Druck, oder Druck-abbruch lasse ich das Filament 30mm aus dem Extruder fahren. Wenn ich danach einen neuen Druckversuch starte und nicht dran denke das Filament bis auf Anschlag reinzuschieben...

Die Startline im Startcode reicht dafür nicht aus. Auch will ich unnötig Abrieb verhindern. Vor allem beim Voltivo ABS Filament. Wenn es aus der Extruderdüse kommt erstarrt es relativ schnell. Wenn der Extruder nur auf einer Stelle fördert, dann kommt nur seitlich bei der Düse ein wenig etwas raus, dann ist Schluss und es nurnoch Abrieb. Anders ist es bei PLA da entsteht ein ordentlicher Haufen.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Hat sich bedankt: 5 Mal
Danksagung erhalten: 48 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #4 von X4r3 » Mo 28. Dez 2015, 02:09

Ich habe mir jetzt nochmal die Mühe gemacht und bei Github meinen Fork aufgeräumt und die commits neu angelegt, so dass nurnoch die echten Änderungen angezeigt werden. ... learning by doing ...

Jetzt ist es ersichtlicher was im Firmware-code geändert wurde: https://github.com/X4r3/Repetier-Firmwa ... 0689d64178
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Benutzeravatar
riu
Administrator
Administrator
Beiträge: 1293
Registriert: Do 4. Sep 2014, 23:48
Wohnort: Düsseldorf
Hat sich bedankt: 48 Mal
Danksagung erhalten: 163 Mal
Kontaktdaten:

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #5 von riu » Mo 28. Dez 2015, 02:36

X4r3 hat geschrieben:Vielleicht kann da ein Experte drüberschauen ob da noch was fehlt oder zuviel ist.


Hallo X4r3.

Ja eine Sache muss berücksichtigt werden. Es gibt Leute bei denen die Meszellen richtig/falsch herum eingebaut sind. Das bedeutet bei Druck von OBEN nimmt der F-Wert ab und der Druck von UNTEN gegen die Extruder-Längsachse steigt der F-Wert an.

Du prüfst also den Druck auf positives ansteigen und der wird im o.g. Beispiel aber weniger anstatt mehr. So platzt der Extruder irgendwann oder der Ladevorgang ist nur die Produktion von Filamentspaghetti.

Mein Vorschlag:

Code: Alles auswählen

 M4001 S-1000 / M4001 S1000
Das Vorzeichen signalisiert ob meine Gauge bei Druck von oben ins negative oder ins positive läuft.

Code: Alles auswählen

if ( ( nCurrentPressure > ( fwert + deltaF ) ) && fwert>0 )
{
     break;
}
else if ( ( nCurrentPressure < ( fwert + deltaF ) ) && fwert<0 )
{
     break;
}


So müsste das für beide Situationen passen.

Lieben Gruß,
Udo

Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Hat sich bedankt: 5 Mal
Danksagung erhalten: 48 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #6 von X4r3 » Mo 28. Dez 2015, 17:37

Ja an die verkehrt herum eingebauten Messzellen wurde nicht geachtet. Funktioniert dabei überhaupt der Drucker / Heatbedscan?
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Stefan baut Zeug
Developer
Developer
Beiträge: 103
Registriert: Mi 25. Nov 2015, 14:35
Hat sich bedankt: 5 Mal
Danksagung erhalten: 3 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #7 von Stefan baut Zeug » Mo 28. Dez 2015, 18:16

Auf jeden Fall solltest du eine maximale Extrusionslänge einbauen. Sollte sich durch diesen Vorschub die aktuell gezählte extrusionslänge verändern solltest du die wieder auf den alten wert setzen..

Ansosten wird es warscheinlich schon funktionieren, wobei ich beim 1.ten Layer meist sowieso live zusehe :)

mfg,
Stefan

Benutzeravatar
riu
Administrator
Administrator
Beiträge: 1293
Registriert: Do 4. Sep 2014, 23:48
Wohnort: Düsseldorf
Hat sich bedankt: 48 Mal
Danksagung erhalten: 163 Mal
Kontaktdaten:

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #8 von riu » Mo 28. Dez 2015, 20:57

X4r3 hat geschrieben:Ja an die verkehrt herum eingebauten Messzellen wurde nicht geachtet. Funktioniert dabei überhaupt der Drucker / Heatbedscan?


:yes: weil der HBS nur deltas benutzt und sich aber auch um die Vorzeichen kümmert.

Lieben Gruß,
Udo

Benutzeravatar
Zaldo
Globaler Moderator
Globaler Moderator
Beiträge: 629
Registriert: Do 24. Sep 2015, 10:38
Wohnort: Raum Frankfurt
Hat sich bedankt: 38 Mal
Danksagung erhalten: 50 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #9 von Zaldo » Di 29. Dez 2015, 04:20

Kann ich bestätigen. Ich hatte die DMS zwar richtig herum eingebaut, aber sie waren ab Werk falsch verlötet. Der HBS hat trotzdem funktioniert.
· Besserer Z-Referenzschalter · Druckbett Feinjustage · Platinenkühlung · Weiße Bauraumbeleuchtung · Not-Aus
· Dauerdruckplatte · Temperaturgeregelte Einhausung · Repetier Server auf Raspberry · MK8 Vorschubritzel

Benutzeravatar
X4r3
Erfahrener 3D-Drucker
Erfahrener 3D-Drucker
Beiträge: 145
Registriert: Mi 25. Nov 2015, 14:04
Hat sich bedankt: 5 Mal
Danksagung erhalten: 48 Mal

Re: Neue Funktion Filamentload für RF1000 V RF.01.11

Beitrag #10 von X4r3 » Mo 4. Jan 2016, 21:51

BUGFIX:
- Filamentload Funktion:
- Endlosschleife wurde geändert, nach 150 Schleifendurchläufen wird die Funktion abgebrochen (entpricht 150mm Förderweg).
- Die "Filament printed" Anzeige wird auf den Wert vor der Funktion zurückgesetzt.
- Falsch eingebaute oder verdrehte Messzellen werden nun berücksichtigt.

https://github.com/X4r3/Repetier-Firmwa ... 363b3e6327

Testlauf wurde durchgeführt und Funktion getestet.


riu, statt deiner Möglichkeit habe ich eine andere gewählt und zwar übers delta. Dann braucht man sich im G-code Befehl keine Gedanken über das Vorzeichen machen.

Code: Alles auswählen

if( nCurrentPressure > fwert + deltaF || nCurrentPressure < fwert - deltaF )
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
▐►►► X4r3's RF1000 ◄◄◄▌
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬


Zurück zu „Firmware / Tweaks“