Re: FSR Auto-Bed-Leveling-System 17. October 2016 04:36 |
Registrierungsdatum: 14 Jahre zuvor Beiträge: 494 |
Re: FSR Auto-Bed-Leveling-System 17. October 2016 08:52 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 17. October 2016 09:05 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Quote
Glatzemann
Eben habe ich - da dies ja schon mehrfach Thema war - eine neue Version der DEV-V2 Firmware auf Github veröffentlicht.
- Alle Sensor-LEDs flackern während der Endstop-Ausgang durchgeschaltet ist. Druck wird nicht angezeigt.
So könnte man auf den Anschluss einer zusätzlichen LED verzichten, wenn der Endstop-Status "extern" angezeigt werden soll.
Re: FSR Auto-Bed-Leveling-System 17. October 2016 09:17 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 17. October 2016 09:48 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Wollte erst schreiben, nein. Ich habe aber noch mal nachgeschaut.Quote
Glatzemann
@Pieps: Werden bei dem aktuellen Stand in deinem Repetier-Fork eigentlich die Rückmeldungen eines einzelnen I2C-Kommandos an das FSR Board korrekt ausgelesen?
// Awaiting at least a 0-Byte for no feedback. HAL::i2cStart(FSR_I2C_PORT << 1 | I2C_READ); uint8 c = HAL::i2cReadAck(); while(c != 0) { // Write out on Serial device HAL::serialWriteByte(c); // read next byte c = HAL::i2cReadNak(); } HAL::i2cStop();
Re: FSR Auto-Bed-Leveling-System 17. October 2016 10:06 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 17. October 2016 10:08 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Vout = Rm * V+ / (Rm + Rfsr)
Re: FSR Auto-Bed-Leveling-System 17. October 2016 10:29 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 17. October 2016 14:20 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 491 |
Quote
Glatzemann
- Sensor-LEDs zeigen den Druck auf den jeweiligen Sensor an (aktueller Stand)
- Sensor-LEDs komplett abgeschaltet
- Sensor-LEDs zeigen Druck durch Helligkeit an. Wenn der Endstop-Ausgang durchgeschaltet ist, flackern alle Sensor LEDs sehr schnell. Das Flackern dient der Unterscheidung zwischen Druckwert und Endstop-Schaltung.
- Alle Sensor-LEDs leuchten während der Endstop-Ausgang durchgeschaltet ist. Druck wird nicht angezeigt.
Re: FSR Auto-Bed-Leveling-System 18. October 2016 17:05 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 66 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 03:52 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 105 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 03:56 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 07:19 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 08:49 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Quote
Glatzemann
Übrigens hier noch mal kurz der Hinweis: Die aktuelle Version DEV-V2 der Firmware, die auf GitHub zu finden ist, wurde nun erfolgreich auf zwei FSR Boards getestet. Größte Änderung darin ist, daß man den Auslöseschwellwert aller drei Sensoren individuell einstellen kann. Dies ist zum einen für die ganzen Leute, die ein kleines Ungleichgewicht im Druckbett haben (also eigentlich alle) und zum anderen für Fridi (allerdings noch nicht ganz fertig). Er möchte das FSR Board recht kreativ verwenden: Einen Sensor als Z-Probe und die restlichen beiden Sensoren für einen CNC-Tastkopf verwendet werden. Dafür bekommt er von mir drei individuell durchschaltende Endstop-Ausgänge.
Wer also Lust hat die neue Version mal zu testen (bitte mit ein wenig Vorsicht) und hier kurz Feedback zu geben, ist herzlich dazu eingeladen...
Sensor1 684, trigger 65 Sensor2 702, trigger 40 Sensor3 564, trigger 36
Re: FSR Auto-Bed-Leveling-System 19. October 2016 08:55 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 147 |
case 801: // Calibration startCalibration(); break;
//************** M117 Original ***************************** /* case 117: // M117 message to lcd if(com->hasString()) { UI_STATUS_UPD_RAM(com->text); #if JSON_OUTPUT && defined(WRITE_MESSAGES_To_JSON) Com::printF(PSTR("{\"message\":\""),com->text); Com::printFLN(PSTR("\"}")); #endif } break; */ //*********************************************************** //************** M117 FSR Board I2C ***************************** case 117: if(com->hasString()) { FSR::i2cSendString(com->text); Com::printFLN(PSTR("FSR I2C Command: "),com->text); } else { Com::printF(PSTR("No FSR Board command found")); } break; //*********************************************************** case 920: if(com->hasString()) { FSR::i2cSendString(com->text); Com::printFLN(PSTR("FSR I2C Command: "),com->text); } else { Com::printF(PSTR("No FSR Board command found")); } break;
case 'M': case 'm': { M = parseLongValue(pos) & 0xffff; params |= 2; if(M > 255) params |= 4096; //255 // handle non standard text arguments that some M codes have //*********************************************************************************** FSR I2C: M920 ergänzt ************* if (M == 20 || M == 23 || M == 28 || M == 29 || M == 30 || M == 32 || M == 36 || M == 117 || M == 920) { // after M command we got a filename or text char digit; while( (digit = *pos) ) { if (digit < '0' || digit > '9') break; pos++; } while( (digit = *pos) ) { if (digit != ' ') break; pos++; // skip leading white spaces (may be no white space) } text = pos; while (*pos) { //*********************************************************************************** FSR I2C: M920 ergänzt ************* if((M != 117 && M != 920 && M != 20 && *pos==' ') || *pos=='*') break; pos++; // find a space as file name end } *pos = 0; // truncate filename by erasing space with null, also skips checksum waitUntilAllCommandsAreParsed = true; // don't risk string be deleted params |= 32768; } break; }
void FSR::i2cSendString( char *gcode) { // initialize i2c bus wor writing HAL::i2cStart(FSR_I2C_PORT << 1 | I2C_WRITE); while (*gcode != 0) { HAL::i2cWrite(*gcode++); } // Send a string termination HAL::i2cWrite(0); HAL::i2cStop(); //***************** Rückmeldung I2C ********************** // Awaiting at least a 0-Byte for no feedback. // HAL::i2cStart(FSR_I2C_PORT << 1 | I2C_READ); // // uint8_t c = HAL::i2cReadAck(); // // while(c != 0) { // // Write out on Serial device // HAL::serialWriteByte(c); // // // read next byte // c = HAL::i2cReadNak(); // // //HAL::pingWatchdog(); // } // // HAL::i2cStop(); //********************************************************** }
Re: FSR Auto-Bed-Leveling-System 19. October 2016 12:25 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 12:53 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Ich habe gerade mal die Repetier/Master Änderungen in den Branch gezogen und noch Debug hinzugefügt, um besser zu erkennen, ob der Befehl auseinander geschnitten wird.Quote
twi127
Ich habe nun auch die aktuelle Version DEV-V2 eingespielt. Läuft soweit problemlos. Momentan spiele ich gerade etwas mit der I2C Anbindung an Repetier. Habe den Branch von Pieps geladen und an die aktuellste Repetierversion angepasst. Ich habe sämtliche Änderungen die auch der I2C Patch enthält entsprechend ergänzt, bzw. überprüft. Kompiliert ist mit Arduino Studio 1.6.12. Jetzt habe ich folgende Probleme: ergänze ich den Befehl M920 in Repetier wird der String nach Befehlseingabe M920 nicht erkannt. Verwende ich den bestehenden Befehl M117 und ändere den Code entsprechend ab, klappt die I2C Kommunikation Richtung FSR Board. Die Rückmeldung vom FSR Board klappt leider gar nicht. Sobald ich den entsprechenden Code aktiviere bekomme ich alle 2-3s einen Reset durch den Watchdog, auch wenn ich ihn in der Configuration deaktiviere. Vielleicht sehe ich den Wald vor lauter Bäumen nicht
Re: FSR Auto-Bed-Leveling-System 19. October 2016 12:58 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 105 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 13:17 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Quote
BastiPF
Steht bei mir aktuell. Nur leider kann ich mit diesen Werten absolut nichts anfagen. Was sagen mir diese und wo müssen sie so typischerweise eigentlich liegen?
Und wie kann ich überprüfen (außer am gelevelten Board) ob sich meine Wert bessern oder schlechtern?
Sorry für die Anfängerfragen, versuche das ganze nur einfach bisschen besser zu verstehen und evtl. irgendwann auch mal einen sinnvollen Input zu leisten.
M111 P7heraus. Dabei wird die Differenz angezeigt. Einfach mit dem Druck, der Auslösen soll auf das Bett drücken und ablesen.
Re: FSR Auto-Bed-Leveling-System 19. October 2016 14:32 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 147 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 15:11 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Re: FSR Auto-Bed-Leveling-System 19. October 2016 16:01 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 491 |
Quote
Pieps
Dabei habe ich aber erkannt, dass der Widerstandswert nicht in Relation mit dem Triggerthreshold steht:
Sensor1 684, trigger 65 Sensor2 702, trigger 40 Sensor3 564, trigger 36
Solange das Bett bei Druck nicht nach weiter nach unten gedrückt werden kann, ist das sicherlich egal. Bei meiner Konstruktion sind aber ein paar 10tel je nach Druck, bei der das Bett sich nach unten drücken lässt.
Re: FSR Auto-Bed-Leveling-System 20. October 2016 05:42 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 20. October 2016 13:00 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Quote
twi127
@ Pieps:
Also ich habe nochmals alles getestet und deinen aktualisierten Fork heruntergeladen. Anschließend habe ich meine Config + Pin in das Verzeichnis kopiert und alles hochgeladen. Es funktioniert leider nicht mit M920. Kopiere ich den Code nach M117 hoch, klappt alles. Repetier scheint hier irgendetwas durcheinanderzubringen. Eigentlich sollte der Parser funktionieren, da ja M920 entsprechend in gcode.cpp ergänzt ist. Anbei mein Log hierzu:
Außerdem habe ich die I2C Rückinfo nochmals getestet. Mein I2C Anschluss passt. Pole ich um, klappt auch das Senden ans FSR Board nicht mehr, bzw. es wird gesendet, aber das FSR macht nichts. Nach wie vor hänge ich bei aktivem Code in einer Reset Schleife per Watchdog. Anbei das Log:
Ach ja, ich verwende ein RADDS Board.
Re: FSR Auto-Bed-Leveling-System 20. October 2016 13:05 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Quote
xsven80x
@Pieps: Mich wundern die relativ hohen triggerThreshold. Ich habe gerade Auf 42 (alle Sensoren), da ich sonst noch öfter das Problem habe, dass Auslösungen beim Verfahren des Betts passieren. Jedoch sehe ich auch, dass das Bett bei einem Trigger durch die Düse deutlich nach unten gedrückt wird. Ich denke, triggerThreshold ist noch zu hoch, bei niedrigerem hab ich Auslösungen beim Verfahren der x- und y-Achse. Problem ist, dass die Auslösungen noch "anliegen", wenn er mit dem Probing anfängt.
Optimal wäre in der FW zu konfigurieren, dass er das Probing erst anfängt, sobald der Kontakt in Ruhe ist! Meint ihr, hier besteht eine realistische Möglichkeit das zu programmieren?
Alternativ könnte man das Problem in den Griff bekommen, wenn ich nach einer Auslösung den Kontakt wieder in Ruhe bringe (defaultEndstopMinHighMs) und danach für x-Sekunden (2 Sekunden??) sperre?
Oder bin ich einfach zu ungeduldig?
Gruß
Sven
Re: FSR Auto-Bed-Leveling-System 20. October 2016 13:56 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 491 |
Quote
Pieps
Ich habe Gegengewicht mit Silikonhülsen eingebaut. Hier ist ein Bild davon.
Das geht natürlich auch mit Federn, oder wie Glatzemann schreibt mit weicher Unterlage. Gleichzeitig Silikonplättchen, um nicht jedes geruckel auf die Sensoren zu übertragen.
Re: FSR Auto-Bed-Leveling-System 20. October 2016 18:00 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 632 |
Quote
xsven80x
Quote
Pieps
Ich habe Gegengewicht mit Silikonhülsen eingebaut. Hier ist ein Bild davon.
Das geht natürlich auch mit Federn, oder wie Glatzemann schreibt mit weicher Unterlage. Gleichzeitig Silikonplättchen, um nicht jedes geruckel auf die Sensoren zu übertragen.
Hey...
zwei dünne Silikonplättchen (Back"papier" aus Silikon) habe ich bereits über und unter den Sensoren. Jedoch reicht das offenbar noch nicht.
Habe gerade mal den V2 RC1 installiert und das Gefühl, hier würde eine Auslösung "hängen" bleiben. Ich kann es gerade noch nicht so ganz deuten, daher sorry für diese schwammige "Fehlerbeschreibung", aber vielleicht hat das von euch auch jemand beobachtet? Kann natürlich auch an mir liegen!
Gruß
Sven
Re: FSR Auto-Bed-Leveling-System 20. October 2016 19:00 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 43 |
if (timeAccu > longAverageThreshold /*&& !is_triggered()*/)
Re: FSR Auto-Bed-Leveling-System 21. October 2016 02:43 |
Registrierungsdatum: 9 Jahre zuvor Beiträge: 2.094 |
Re: FSR Auto-Bed-Leveling-System 27. October 2016 13:58 |
Registrierungsdatum: 8 Jahre zuvor Beiträge: 491 |