Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

FSR Auto-Bed-Leveling-System

geschrieben von Glatzemann 
Re: FSR Auto-Bed-Leveling-System
20. September 2016 09:12
Ich konnte das Problem etwas verringern, indem ich mein Druckbett mit Ofen-Isolierwolle "abgestützt" habe und damit die Platte "leichter" gemacht habe.

Ich habe aber auch noch etwas am Code verändert. Ich checke in ein paar Minuten mal eine Änderung in den DEV-V2 Branch im GitHub ein. Bitte lade den mal auf dein FSR Board und teste damit mal, ob es besser wird.

Ich habe übrigens bei mir nach der Unterstütztung mit Wolle den Threshold auf ungefähr 70 eingestellt. Womit ich noch etwas Probleme habe ist, daß es für alle Sensoren nur einen Threshold gibt.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
20. September 2016 09:22
So, daß Update ist nun im GitHub Repository online.

Ich habe dort direkt noch ein wenig aufgeräumt und habe nun alle ausstehenden Themen erstmal auf die V3 der Firmware "geschoben". Wenn diese Version nun auch bei dir gut läuft, dann würde ich diesen Stand als V2 der Firmware releasen und danach die Arbeit an der V3 beginnen.

EDIT: Für alle anderen schreibe ich dann noch eine kurze Anleitung, wie man das Firmware-Update durchführen kann.

1-mal bearbeitet. Zuletzt am 20.09.16 09:23.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
20. September 2016 13:34
Gleich mal ausprobiert. Leider keine Änderung.

INFO:is_triggered: 0 is_calibrating: 0
INFO:short_average: 656 long_average: 655
INFO:sensor 1
INFO:is_triggered: 0 is_calibrating: 0
INFO:short_average: 879 long_average: 879
INFO:sensor 2
INFO:is_triggered: 0 is_calibrating: 0
INFO:short_average: 912 long_average: 911
INFO:thermistor
INFO:raw resistance: 2908822.50
INFO:temperature: -37.54

//Hier ausgelöst
INFO:triggering endstop out

INFO:diagnostic information
INFO:sensor 0
INFO:is_triggered: 1 is_calibrating: 0
INFO:short_average: 708 long_average: 658
INFO:sensor 1
INFO:is_triggered: 0 is_calibrating: 0
INFO:short_average: 881 long_average: 880
INFO:sensor 2
INFO:is_triggered: 0 is_calibrating: 0
INFO:short_average: 913 long_average: 912

Das nur mal als Feedback und noch ohne Federn als Stütze.
Re: FSR Auto-Bed-Leveling-System
21. September 2016 02:05
Ok, berichte bitte weiter und falls du noch eine Idee oder einen Wunsch hast, bitte bescheid geben.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
21. September 2016 03:53
Ich bin gestern so weit gekommen, dass ich mal versucht habe Ausreißer zu entdecken. Also Wert beim Update (v) außerhalb des Thresholds. Danach direct noch mal den Pin ausgelesen und geprüft, ob der 2. Wert innerhalb des Thresholds ist.

Wenn ich den Netzstecker reinstecke, fängt hat er 2-3 Werte pro Sekunde die stark vom Normalwert abweichen. Ich muss also erst mal schauen, wo die Störungen her kommen.

Dann habe ich noch Federn unter gesetzt. Damit könnte man das FSR auch einleveln, indem über die Federn alle 3 Sensoren in den gleichen Bereich nivelliert werden. Ich habe mir alle 3 Werte nebeneinander ausgeben lassen und danach die Federn verstellt, um auf einen Bereich von ca. 100-200 zu kommen.
Re: FSR Auto-Bed-Leveling-System
21. September 2016 04:11
Die Ausreißer habe ich auch schon beobachtet und die haben die unterschiedlichsten Gründe.

Um diese auszufiltern setze ich ja die beiden Averages ein. Der Long Average ist ein langfristiger Mittelwert und sollte auf kleine Ausreißer praktisch nicht reagieren. Wenn etwas schweres auf das Druckbett gelegt wird, dann passt sich dieser Wert langsam an die neue Situation an. Dann gibt es noch den Short Average. Der reagiert sehr schnell auf Ausreißer, soll aber einzelne Ausreißer "glätten". Der Threshold greift nun, wenn der Short Average um den Threshold vom Long Average abweicht.

Ich hatte schonmal angedacht eine Debugmöglichkeit unter Windows zu schaffen, indem diese Werte in meinem Hostprogramm visualisiert werden. Würde dir (oder auch jemand anderem) das helfen?


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
21. September 2016 04:52
Hallo,

hab die aktuelle V2 bei mir aufgespielt und mir ist beim Konfigurieren folgendes Problem aufgefallen:

INFO:set configuration key 'hotb' to value 255
INFO:set configuration key 'hotr' to value 0
INFO:set configuration key 'hotTemp' to value 80
INFO:set configuration key 'hotBemp' to value 255

Sobald ich mit M800 einen langen K-Wert eingebe (z.B. hotTemp) kann ich danach keinen kurzen Wert mehr verwenden (z.B. hotB )

Gruß Matthias

1-mal bearbeitet. Zuletzt am 21.09.16 04:52.
Re: FSR Auto-Bed-Leveling-System
21. September 2016 05:33
Guter Hinweis, ich kann den Fehler bestätigen. Ich habe dafür Bug #26 im GitHub eröffnet und werde mich darum kümmern.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
21. September 2016 14:20
Quote
Glatzemann
Die Ausreißer habe ich auch schon beobachtet und die haben die unterschiedlichsten Gründe.

Um diese auszufiltern setze ich ja die beiden Averages ein. Der Long Average ist ein langfristiger Mittelwert und sollte auf kleine Ausreißer praktisch nicht reagieren. Wenn etwas schweres auf das Druckbett gelegt wird, dann passt sich dieser Wert langsam an die neue Situation an. Dann gibt es noch den Short Average. Der reagiert sehr schnell auf Ausreißer, soll aber einzelne Ausreißer "glätten". Der Threshold greift nun, wenn der Short Average um den Threshold vom Long Average abweicht.

Ich hatte schonmal angedacht eine Debugmöglichkeit unter Windows zu schaffen, indem diese Werte in meinem Hostprogramm visualisiert werden. Würde dir (oder auch jemand anderem) das helfen?

Danke. Ich hatte gestern abend solche Ausreißer immer wenn das Netzteil an war. Konnte ich aber heute nicht mehr nachvollziehen. War wohl einfach zu spät...

Ich habe jetzt mein Problem mit dem Dauerauslösen so gelöst, dass ich den longAverageBuffer trotz auslösen aktualisiere. Der Endstop ist ja trotzdem lang genug aktiv. Scheinbar ändert sich der Druck des Betts beim Verfahren leicht. Aber G32 ignoriert ja Auslöser während des Annähern des Betts an die Startposition. So ist aber oben bislang immer der Endstop in Ruheposition des Betts wieder aus und die letzen paar mm lösen dann nicht mehr vor der Düse aus, wenn ich langsam genug anfahre.

Sensor.cpp:

  if (timeAccu > longAverageThreshold /*&& !is_triggered()*/)
  {
    timeAccu -= longAverageThreshold;
    longAverageBuffer->push(v);
  }

Ich bin mir aber nicht sicher, ob das alle Fälle abdeckt.
Re: FSR Auto-Bed-Leveling-System
21. September 2016 14:25
Ok, daß ist interessant...

Ich habe auf is_triggered geprüft aus einem einfachen Grund: Wenn die Düse (feste) aufs Druckbett drückt und das über einen etwas längeren Zeitraum, so wird sich longAverage langsam ändern und fällt evtl. unter den Threshold. Das würde dann dazu führen, daß nicht mehr getriggered wird und die Düse evtl. noch fester ins Druckbett gedrückt wird.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
21. September 2016 15:13
Ich weiß nicht wie lange er brauchen würde um sich wieder auf den alten Zustand einzuschwingen, wenn die Düse längere Zeit drauf drückt, aber beim Druck selbst dürfte das doch minimal sein. Sollte sich das innerhalb einer Minute wieder regulieren, dürfte es kein Problem sein.

Nachtrag zu den Ausreißern. Ich habe die Leitungen zusammen mit den Zuleitungen zum Heizbett geführt. Jetzt, nachdem ich den Heizbettstecker wieder dran hab. Konnte ich die Ausreißer wieder nachstellen, indem ich das Netzteil einschaltete. Nun habe ich die Mantelung auf Minus gelegt (RJ45 Kabel für die Sensoren). Damit sind die Ausreißer ohne Bettbewegung weg.

Was ich beim Einstellen vermisst habe, ist eine lesbare Form der Sensordaten. Gerade bei der Einstellung der Federstärke ist das hilfreich. Ich habe einfach etwas debug hinzugefügt. Wenn es nicht stört würde ich das am Wochenende mal soweit aufbereiten, dass es Commitbar ist und über debuglevel steuern.
Re: FSR Auto-Bed-Leveling-System
21. September 2016 15:20
Cool... Gerne


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
21. September 2016 15:32
Da hier schon mal Stempel zum drucken angefragt wurden, meine Variante. Ich habe 20mm Durchmesser Stempel. Die Aufnahme ist etwas größer, so dass das Bett sich noch ausdehnen kann.

Was mich genervt hat, war die lose Verlegung der Sensoren. Deshalb habe ich eine kleine Halterung rangebaut. Damit konnte ich die Sensoren schön mittig fixieren und sie sitzen schön fest in der Halterung.
Anhänge:
Öffnen | Download - Stempelaufnahme.stl (86.9 KB)
Öffnen | Download - fsr-holder.stl (30.2 KB)
Re: FSR Auto-Bed-Leveling-System
23. September 2016 06:53
Hallo zusammen,

sorry für die späte Antwort, ich war die letzten Tage beruflich schwer beschäftigt.

> @andreas_zh: Cooles Projekt, bitte Fotos :-)

Ich habe zwei Fotos meines Aufbaus angehängt. Das erste zeigt meinen XL Kossel, wie er in die Ikea Fabriör Vitrine eingebaut ist. Fabrikör ist im Vergleich zum gesamten Drucker schon relativ teuer, aber darin ist der Drucker wesentlich Familien- und insbesondere Frauenkompatibel (...wo willst du das Ding denn hinstellen, das ist doch "hässlich"...)

Das zweite Bild zeigt eine Grossaufnahme meiner Aluminium Druckplatte, und wie diese dann auf den drei Wägezellen befestigt ist. Ich habe dafür Polyamidschrauben verwendet, um die Wärmeleitung in die Wägezelle etwas zu reduzieren. Unter der Druckplatte und der Heizmatte sieht man übrigens ein dünnes Alu-Blech. Ohne dieses Blech bin ich mit 250 Watt Heizleistung kaum auf 100 Grad gekommen, da die Konvektionskühlung zu stark war. Mit Alu-Blech komme ich innerhalb von 2-3 Minuten auf 100 Grad.

> Ich sehe bei den Wägezellen eigentlich 3 Probleme:

> Die Teile sind ziemlich groß und brauchen dementsprechend viel Platz.

Ja, das stimmt. Effektiv ist aber mein Platverbrauch/Bedarf jedoch auf ca. 2 cm Höhe beschränkt, welche ich theoretisch an Druckhöhe verliere. Letztendlich ist meine Druckhöhe durch die Länge der Seitenrails beschränkt, d.h. die Wägezellen stellen hier keinen Nachteil dar.

> Die Wägezellen sind bis +55°C spezifiziert.

Hups. Das habe ich nicht gewusst, bzw. nicht daran gedacht. Ich werde es dennoch damit probieren und dann im Betrieb sehen, wie stark sich der Wärmeeinfluss bemerkbar macht. Ich vermute, dass durch eine höhere Temperatur ein grosser Signaloffset entsteht. Das sollte jedoch durch mein OP-Amp Differenzierer ausgeglichen werden, da sich die Temperatur nur langsam ändert. Schlimm wäre es jedoch, wenn die Wäägezelle + Instrumentierungsverstärker irgendwann in den Sättigungsbereich gehen, d.h. das ich dann gar keine Gewichtsmessung mehr durchführen kann weil der Verstärker über/untersteuert ist.

Ich werde hierzu berichten, sobald ich Neuigkeiten habe.

> Die kannst du nicht einfach so unter ein Heizbett montieren, daß bis zu 120° heiß werden kann. Da muss zwangsweise noch eine thermische Isolierung hin, wie z.B. diese Peek-Stempel.

Ja. Falls ich ein Temperaturproblem feststelle werde ich wohl oder übel über eine zusätzliche Isolation nachdenken müssen. Aber Probieren geht ja über studieren!

> Deine Lösung ist mit gut 100€ (ohne Hitzebarriere und Halter für die Sensoren) deutlich teurer (und im Aufbau komplexer) als "meine" Lösung. > Bei mir gibt's alles inkl. der Hülsen aus ALU und Stempel aus PEEK für deutlich unter 100€

Das ist korrekt. Der minimale Preis ist für mein Bastelvorhaben nicht das Ziel ich möchte einfach eine dauerhaft zuverlässige Lösung haben.


Viele Grüsse,

Andreas.
Anhänge:
Öffnen | Download - DSC_0783.JPG (120.3 KB)
Öffnen | Download - DSC_0782.JPG (93 KB)
Re: FSR Auto-Bed-Leveling-System
24. September 2016 10:25
Ich habe nun etwas debugging hinzugefügt für den Sensordaten. Pullrequest für DEV-2 ist erstellt.

Zum Justieren, habe ich zunächst versucht die ständigen Peeks wegzubekommen.

M111 P7

Zeigt die Differenz zu den letzten Lesevorgängen. Diese haben anfangs sehr geschwankt. Teilweise Peeks von 50 und höher. Durch den Hinweis auf Silikonplättchen habe ich mal kleine Formen gebastelt und vom Verhüterli Silikon 2mm dicke Plätchen gegossen. Je über und unter dem Sensor eins. Danach waren die Peeks vollständig weg. Schwankungen meist um 1 nur bei Bewegung bis 3.

Die Silikonplätchen wirken natürlich auch dämpfend bei Druck. Mein triggerThreshold liegt jetzt bei 8. Damit wird trotzdem bei geringem Druck ausgelöst. Auslöser beim Homing und Z-Probing während der Fahrt habe ich nicht mehr. Mit

M111 P3

wird während des Auslösens angezeigt wie hoch die Differenz ist. So kann man sich von unten an den Threshold herantasten.

Wer mit Federn arbeitet, kann den Federdruck mit

M111 P6

justieren. Ich habe die Erfahrung gemacht, dass unter 500 im nicht ausgelösten Zustand ein sehr leichter Druck schon hohe Änderungen bewirkt. Über 900 wird es sehr schwer Änderungen mit nur leichtem Druck zu erzeugen.

ACHTUNG!! P6 und P7 sind extra verlangsamt. Nur zum Einrichten verwenden. Nicht während des Z-Probings!
Nach Reset ist das Debuglevel wieder auf 0. Das geht natürlich auch mit

M111


Die Form für die Silikonplättchen habe ich mal angehängt.
Anhänge:
Öffnen | Download - SilikonKissen-Deckel.stl (684 bytes)
Öffnen | Download - SilikonKissen-Form.stl (104 KB)
Re: FSR Auto-Bed-Leveling-System
26. September 2016 10:10
Sehr gute Arbeit, ich habe deinen Pull-Request gerade gemerged, Pieps. Danke sehr dafür.

Mir ist beim Review noch eine Kleinigkeit aufgefallen. Die Zeile 56 in Sensor.cpp:

Quote

if (timeAccu > longAverageThreshold /*&& !is_triggered()*/)

Ich habe das auskommentierte !is_triggered() mal so übernommen, da es dadurch ja scheinbar zu einer Besserung kommt, aber ich habe da glaube ich ziemlichen Blödsinn programmiert.

Die Update-Methode wird n mal pro Sekunde aufgerufen und der aktuelle Sensorwert wird eingelesen. Dieser Sensorwert wird in den Short-Average Buffer geschrieben und dadurch wird der kurzfristige Sensorwert geglättet. Das funktioniert auch ganz gut und Ausreißer werden effektiv ausgefiltert.

Der Long-Average-Buffer funktioniert ähnlich, arbeitet allerdings mit einem Threshold. Hier werden nur alle paar Sekunden Werte reingeschrieben und genau das ist der Knackpunkt. Wenn beispielsweise folgende Werte-Reihe ankommt:

Quote

100 - shortAverageBuffer - longAverageBuffer
100 - shortAverageBuffer
101 - shortAverageBuffer
99 - shortAverageBuffer
110 - shortAverageBuffer - longAverageBuffer
100 - shortAverageBuffer
102 - shortAverageBuffer
.
.
.

So haben wir schon den Salat. Im shortAverageBuffer steht als gleitender Durchschnitt eine 101,7 drin. Das liest sich ganz gut. Im longAverageBuffer steht jedoch eine 105 drin. Bei einem Threshold von 3 würde ausgelöst, obwohl das nicht unbedingt Sinn macht.

Lange Rede, kurzer Sinn: Um das zu verbessern, sollten nur kurzfristig geglättete Werte in den longAverageBuffer geschrieben werden, sprich, die Zeile 59 sollte wie folgt aussehen:

Quote

longAverageBuffer->push(shortAverageBuffer->average());

In diesem Fall würde nämlich im longAverageBuffer eine 101 drin und der Trigger würde nicht ausgelöst. Erst wenn ein paar Messwerte so hoch sind, daß der shortAverage stark ansteigt wird getriggered. Der longAverage würde in diesem Fall erst später ansteigen und somit hätte man eine zuverlässigere Erkennung, auch wenn man das "is_triggered" drinne lässt.

Ich habe das leider noch nicht testen können, könnte aber bessere Ergebnisse liefern. Was ich schon getestet habe ist, den longAverageBuffer zu vergrößeren und den Intervall zu verkürzen. Das dürfte einen ähnlichen Effekt haben.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
26. September 2016 11:42
Ups. War nicht meine Absicht, dass reinzunehmen. Ist aber halt mein Branch von dem ich gemerged habe.

Jetzt verstehe ich das auch mit dem timeAccu. smiling smiley Deine Ausführung macht Sinn, bin mir aber nicht sicher, ob es dann zu Triggerverzögerungen kommen kann.
Re: FSR Auto-Bed-Leveling-System
26. September 2016 12:56
Ist ja kein Problem, verbessert ja was und ist ein Entwicklerzweig...

Das mit dem timeAccu ist eine gängige Technik aus der Spieleentwicklung um die Game-Loop zu timen. Der Vorteil ist, daß das Konzept sehr einfach ist (einfacher als Timer etc.), eine anständige Ausführungsreihenfolge gewährleistet ist, die Ausführung recht günstig ist und das "Reste" sich nicht "aufsummieren" und "nachgeholt" werden beim nächsten Schleifendurchlauf.

Ja, es kann zu Triggerverzögerungen kommen, aber die dürften kaum ins Gewicht fallen (hoffe ich). Die maximale Verzögerung ist halt die Größe des shortAverageBuffer (Default = 4) multipliziert mit der Zeit die für einen Update-Zyklus benötigt wird. Praktisch gesehen wird es aber vermutlich nur ungefähr 2 Zyklen benötigen. Ich denke (ohne das ich das richtig gemessen hätte), daß wir weit unter einen Millisekunde sein sollten mit der Verzögerung.

Ich denke aber auch, daß man dadurch den Threshold deutlich senken kann und das System damit etwas empfindlicher wird. Ein niedrigerer Threshold sollte auch dazu führen, daß die Auslöseverzögerung etwas kürzer wird.

Vielleicht komme ich morgen dazu, daß mal zu testen.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
03. October 2016 07:34
Hi,

sagt mal wo find ich denn einen Anschlussplan für die Platine ?
Auf [repraptools.de] finden nur einen für die "alte" Version ohne zusätzlichen Spannungsregler, auf github gibts sowas gar nicht - zumindest hätte ich nix gefunden.

LG Jörg


Meine Drucker: Geeetech i3x (Acryl Prusa i3) / P3Steel toolson edition / CL260 / China Delta mit reraptoolsfsr, smoothieware / Creality CR10/ Tronxy X1 / Renkforce RF100 / Ender 2/ Hypercube/Tronxy X3S / Tronxy X5S / Ender 3 / Alfawise U10
my thingiversthings / Location: AT/Wien
Re: FSR Auto-Bed-Leveling-System
03. October 2016 11:05
Hallo,

bin auch gerade dabei das FSR einzubauen, ein Anschlussplan und eine Kurzanleitung wären wirklich hilfreich!


@ Glatzemann
bitte stell doch auf deine Homepage eine Kurzanleitung mit aktuellen Plänen und aktuellen Stand der Firmware, es ist wirklich sehr mühsam sich hier auf den 26 Seiten die Infos zusammen zu suchen.
Belegung der RGB LED's fehlt auch, die hab ich mir rausgemessen (hoffe das passt)
wofür ist der Calibration Taster, wird der schon unterstützt, sollte man den ausführen oder ist der Eingang nur geplant?

danke
Thomas
Re: FSR Auto-Bed-Leveling-System
04. October 2016 06:26
Ich habe gerade hier die Minimalbeschaltung und die erste Inbetriebnahme beschrieben. Es folgt noch eine Anleitung für die erweiterte Beschaltung (z.B. für die RGB-LEDs), eine genauere Beschreibung zum Anschluss an gängige Druckerelektroniken, eine Beschreibung der Softwarekonfiguration und -kalibrierung und eine Beschreibung für das Firmwareupdate.

Im Zweifelsfall bitte immer hier fragen, bevor etwas kaputt geht.

@thka: Der Calibration Taster wird schon verwendet. Mit diesem kann man eine Neukalibrierung der Sensoren erzwingen (z.B. nachdem man das Druckbett geputzt hat oder man eine Auflage gewechselt hat). Hier reicht ein normaler Schliesser, Polung ist egal. Wenn der Taster gedrückt wird, dann blinken die Sensor-LEDs reihum für ein paar Sekunden und es erfolgt eine Meldung auf der seriellen bzw. I2C Schnittstelle. Das zeigt den Kalibriervorgang an. Während des Kalibriervorgangs kann keine FSR Messung durchgeführt werden und der Endstop schaltet NICHT durch.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
Re: FSR Auto-Bed-Leveling-System
04. October 2016 06:55
danke, dann werde ich mir einen Taster Einbauen
Re: FSR Auto-Bed-Leveling-System
04. October 2016 16:07
Hallo zusammen,

heute habe ich Glatzemanns FSR-Board in Betrieb genommen... also zumindest es versucht!

Ich habe das Problem, ich glaube ähnlich Pieps, dass die LEDs (insbesondere im Stillstand des Druckers die des Sensor 1) immer leicht flackern. Das bedeutet, dass ich den Endstop niemals "ruhig" bekomme. Wenn der Drucker druckt, ist es noch viel schlimmer.

Nach flashen der aktuellen FW vom GitHub hat sich nichts geändert, nur die "Lage" des Endschalters ist invertiert (also wenn ein FSR auslöst, dann Endschalter geschlossen).

Roland habe ich bereits eine PM geschrieben, aber womöglich haben noch mehr das Problem? Das Problem besteht nur, wenn ich vom Netzteil des Druckers mit Spannung versorge. Wenn ich von meinem Labornetzteil Spannung abgreife, funktioniert das Board einwandfrei. Offensichtlich gibt es "Störungen" in der Spannungsversorgung des Druckers!?

Was tun?

Gruß
Sven
Re: FSR Auto-Bed-Leveling-System
04. October 2016 16:30
Ich hatte es erst dafür gehalten, dass Störungen durch die Elektrik kommen. Das kam mir aber schon komisch vor, da durch die Sensoren Strom fließt und mit 10KOhm (glaube ich) nicht gerade sehr groß sind. Das sollte eigentlich Störungen schon verhindern. Ich habe aber über die Debugeinstellungen es dann besser verstehen können.

Zieh dir mal den DEV-V2 Branch und spiele ihn rauf.

M111 P6

Zeigt dir den aktuellen Wert aller 3 Sensoren. Bei Werten unter 200 wird es sehr starke Schwankungen geben. Das bekommst du nur mit Silikonunterlage in den Griff. Bei mir aktuell 1mm Backunterlage vom Kafferöster, aus der ich 20mm Kreise ausgeschnitten habe. 2mm selbst gebastelte Silikonscheiben waren zu weich und haben zu sehr gedämpft.
Nach Einbau der 2mm dicken Silikondämpfer war die Schwankung nur noch +/-1 und beim Hochfahren des Bett max. 6-7. Das dämpft aber dann so stark, dass wieder ein gewisser Druck benötigt wird, um auszulösen.

Schankungen kannst du am besten mit
M111 P7
nachverfolgen.

Aktuell probiere ich gerade Silikon"federn" unter das Bett zu bauen, um eine Entlastung des Betts hinzubekommen ohne dass es zu wackelig wird.

Gruß
Pieps
Re: FSR Auto-Bed-Leveling-System
05. October 2016 05:08
Hi,

ich hab momentan drüber/drunter jeweils eine 1mm SilikonScheibe aus dem Dupliertsilikon (dem für die Verhüterlis).
Dünner geht hier imho durch nicht mehr dafür ist es zu dickflüssig.

Die Werte damit liefere ich noch nach.

BG Jörg


Meine Drucker: Geeetech i3x (Acryl Prusa i3) / P3Steel toolson edition / CL260 / China Delta mit reraptoolsfsr, smoothieware / Creality CR10/ Tronxy X1 / Renkforce RF100 / Ender 2/ Hypercube/Tronxy X3S / Tronxy X5S / Ender 3 / Alfawise U10
my thingiversthings / Location: AT/Wien
Re: FSR Auto-Bed-Leveling-System
05. October 2016 06:18
Hallo zusammen,

danke für die antworten und die Lösungsansätze.

Aktuell liegen die FSR jedoch noch völlig ohne Belastung auf meinem Schreibtisch! Selbst wenn ich die Hülsen und Stempel montiere, ohne Belastung durch das Druckbett, habe ich die "Schwankungen" und Auslösungen. Ich trau mich ehrlich gesagt noch nicht den Drucker nun umzubauen, weil ich dann wahrscheinlich erst mal nicht mehr drucken kann! ;-)

Was mich stutzig macht ist halt, dass das Problem nicht existiert, wenn ich völlig unabhängig vom Drucker die Spannung von meinem Labornetzteil nehme. Da funktioniert alles ohne jegliche Auffälligkeit!

Hat noch jemand eine Idee?

Gruß
Sven
Re: FSR Auto-Bed-Leveling-System
05. October 2016 06:57
Du hast die Antwort doch schon in deiner Frage formuliert.
Sorge für 'ne vernünftige Stromversorgung und dann ist das vom Tisch.


Gruß Jürgen

Alles wird jut
Yet another Core XY 'YacXY'
Triffid_Hunter's_Calibration_Guide/de
Re: FSR Auto-Bed-Leveling-System
05. October 2016 07:26
Hallo,

naja, alles andere funktioniert ja tadellos... ich gehe davon aus, dass irgendetwas Störeinflüsse liefert (Lüfter oder dergl.). Ich ging davon aus, dass ich nicht der Einzige mit dem Problem bin.

Was Elektrik angeht habe ich nur gefährliches Halbwissen. Hat jemand für mich einen Tipp, wie ich die Spannung filtern kann? Meinetwegen auch nur für das FSR-Board (muss also nicht wer weiß wie stromfest sein!).

Danke & Gruß
Sven
Re: FSR Auto-Bed-Leveling-System
05. October 2016 07:54
Ich habe bisher nur von Pieps gehört in Sachen Stromversorgung aber das scheint sich ja mehr oder weniger aufgelöst zu haben?

Was setzt du denn für ein Netzteil ein?

Das Flackern der LED ist nicht so wirklich schlimm. Da werden mehr oder weniger die nackten Daten vom Sensor angezeigt, die mitunter etwas unruhig sind. Ich hatte hier schonmal geglättete Werte verwendet. Das sieht schöner aus, macht das Debuggen aber etwas schwerer.

Im Endeffekt solltest du einfach die Empfindlichkeit etwas hochdrehen und dann sollte das alles besser werden.


--
Microsoft MVP in den Kategorien DirectX/XNA * Visual C++ * Visual Studio and Development Technologies seit 2011

  • Mein Erster (RAMPS 1.4, Selbstbau WolfStrap-Derivat mit Linearführungen, Wade Extruder und E3D lite6 Hotend)
  • Cub44 (Selbstbau Dual Wire Gantry Derivat mit Zahnriemen und Linearschienen, RADDS 1.5 und DUE, Custom Hotend - E3D like, Compact Bowden Extruder)
  • HexMax (sechseckiger Delta (eigenes Design) mit Druckraum 300mm Durchmesser und >=400mm Höhe, RADDS 1.5, 24V, Custom Hotend, Compact Bowden Extruder)
  • P3Steel Toolson MK2 - Keine Zeit zum selbst planen ;-)

Andere Projekte: FSR Board (ABL-Sensor-Platine inkl. Firmware) * ThirtyTwo (32Bit RepRap-Firmware)
hd
Re: FSR Auto-Bed-Leveling-System
05. October 2016 12:45
hi,
bei miir wars mal der netzteilstecker.
der war recht locker im netzteil. hab den gegen einen alten von nem rechner getauscht. der sitzt fester und seitdem flackert nix mehr.
vibrationen haben auch nachgelassen.
gruss hd
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen