Seite 4 von 8

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Mi 16. Mär 2022, 18:29
von micschi
Ich habe gestern etwas länger in der Software "1.45.01" gestöbert und das anvisierte zum Ziel auch erreicht.
Der Code für den Extruder Fan funktioniert ohne Änderung genauso wie man es erwarten würde. Das Hauptproblem für mich war, die richtige PIN-Nummer zu finden. Ich bin davon ausgegangen, dass die Nummer im Schaltplanausschnitt "CPU" den IO-Nummern in der Firmware entspricht. Dem ist aber nicht so, dass ist ziemlich verwirrend und hat mich die meiste Zeit gekostet. Oder habe ich hier was völlig falsch verstanden?

Zu finden ist die Definition der IO Nummern in fastio.h. Um zum Beispiel die richtige Nummer für X19/OUIT1 zu finden, habe ich im Schaltplan Unter Ausgänge nach "X19" geschaut und gesehen, dass es zu PIN "OUT1" gehört.
SP_RF1000_Ausgaenge.png
Unter "CPU" geschaut und gesehen, dass "OUT1" dem ATMega PIN PA3 entspricht.
SP_CPU.png
Dann habe ich in fastio.h nach A3 gesucht und gesehen, dass es bei DIO25 also Nummer 25 steht.
fastio_h.png
Das habe ich bei pins.h eingetragen, mit ein paar Kommentaren noch das drumherum beschrieben, kompiliert und auf den RF1000 übertragen.
pins_h.png
Dann den Extruder auf 70°C gesetzt und zack der Lüfter ging an, Extruder auf 0°C gesetzt, gewartet bis er unter 50°C kam und Lüfter ging wieder aus. :tanzen: Ich habe mich selten so über eine grün leuchtende LED auf einer Platine gefreut. :grins:
Man kann sogar die Geschwindigkeit des Lüfter über die EEPROM-Einstellungen anpassen.
eeprom.png
Ich habe es anschließend auch noch mit X10 und X8 getestet. Die funktionieren ebenfalls. Wir ihr auch angemerkt habt, werden sie für andere Funktionen genutzt. Sie sind aber in der Standardkonfiguration sauber deaktiviert und deswegen kommen sie sich nicht in die Quere.

Kommt mir so vor, als ob die fastio.h für eine andere CPU ist, obwohl dort atmega2560 erwähnt wird.

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Mi 16. Mär 2022, 19:30
von af0815
Es gibt einige Varianten der Platinen. Da hat die Evolution zugeschlagen, das macht das nicht einfacher. Es muss die Platinenversion mit der Schaltplanversion und dem Programm zusammenstimmen :woohoo: Aber wen es geht, so kann man sagen: "Ente gut, alles Gut". Altes chinesisches Splichwold.

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Mi 16. Mär 2022, 19:48
von AtlonXP
Das hast du gut gemacht.

Ich denke af0815 bedenken kann man ausräumen.
Der Grund ist, wir haben eine Firmware für alle Drucker.
Es gibt nur eine Grundversion für den RF1000, RF2000 und RF2000 V2.

Darum sollte es zu Mindes bei allen RF1000 passen.

LG AtlonXP

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 07:07
von af0815
AtlonXP hat geschrieben:Darum sollte es zu Mindes bei allen RF1000 passen.
Passen ja, aber sich durch die ganzen ifdef durchzuarbeiten und zu sehen welcher Port gerade mit welchen Symbol verknüpft ist, ist dadurch nicht unbedingt einfacher geworden. Das ist mit den 'Bedenken' gemeint. Bezeichnungen Schaltplan zu Programm sind gelinde gesagt etwas schwer zu durchschauen.

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 09:30
von mhier
micschi hat geschrieben:Das Hauptproblem für mich war, die richtige PIN-Nummer zu finden. Ich bin davon ausgegangen, dass die Nummer im Schaltplanausschnitt "CPU" den IO-Nummern in der Firmware entspricht. Dem ist aber nicht so, dass ist ziemlich verwirrend und hat mich die meiste Zeit gekostet.
Willkommen in der Arduino-Welt ;-) Irgend ein schlauer Mensch hat sich überlegt, dass es vielleicht einfacher ist, die Pins irgendwie anders zu benennen als im Datenblatt des Chips. Leider hatte er ziemlich unrecht, jedenfalls wenn man etwas anders macht als die Arduino-Software mit einem Original-Arduino-Board zu kombinieren. Und selbst in Arduino gibt es verschiedene Zähleweisen. Da blickt niemand durch.

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 18:29
von micschi
Ja, beim Programmieren sind die Problem immer da, wo man sie am wenigsten vermutet. :diabolisch:

Ich habe bei der Gelegenheit wegen der RAW Werte fürs Hotend geschaut. Ich habe die command.cpp wie folgt verändert:
VORHER

Code: Alles auswählen

void Commands::printTemperatures(bool showRaw) {
    static millis_t lastTemperatureSignal = 0;
    millis_t now = HAL::timeInMilliseconds();
    if ((now - lastTemperatureSignal) > 1000) {
        lastTemperatureSignal = now;

        Com::printF(Com::tTColon, Extruder::current->tempControl.currentTemperatureC, 1);
        Com::printF(Com::tSpaceSlash, Extruder::current->tempControl.targetTemperatureC, 0);
        // Show output of autotune when tuning!
        Com::printF(Com::tSpaceAtColon, (pwm_pos[Extruder::current->id]));


DANACH

Code: Alles auswählen

void Commands::printTemperatures(bool showRaw) {
    static millis_t lastTemperatureSignal = 0;
    millis_t now = HAL::timeInMilliseconds();
    if ((now - lastTemperatureSignal) > 1000) {
        lastTemperatureSignal = now;

#if NUM_EXTRUDER == 1
        Com::printF(Com::tTColon, Extruder::current->tempControl.currentTemperatureC, 1);   // T:CurTemp
        Com::printF(Com::tSpaceSlash, Extruder::current->tempControl.targetTemperatureC, 0);    // /TargetTemp
        // Show output of autotune when tuning!
        Com::printF(Com::tSpaceAtColon, (pwm_pos[Extruder::current->id]));  // @:Autotune

        if (showRaw) {
            Com::printF(Com::tSpaceRaw, "0 "); // RAW0 [(int)0 or "0"] funktioniert nicht, keine Ausgabe unter Reptier, aber "RAW00" geht oder "RAW0 "
            Com::printF(Com::tColon, (1023 << (2 - ANALOG_REDUCE_BITS)) - Extruder::current->tempControl.currentTemperature);
        }
#endif
Der Quelltext zum Ausgeben des Rohwertes für einen Extruder hat gefehlt. Die Zeichenkette RAW0: scheint für irgendeinen der Beteiligten ein Problem zu sein, da gibt es keine Ausgabe in Repetier. Und da das bei 2 Extruder auch ausgegeben wird, könnte da das Problem auch bestehen, ich kann das aber nicht testen.
Jedoch RAW00: oder RAW0 : gehen. Zumindest sieht jetzt die Rohwerte vom Hotend-Thermistor.
2022-03-17 18_28_44-Repetier-Host V2.2.4.png

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 19:38
von rf1k_mjh11
Hallo micschi,

Die Sache mit der fehlenden Ausgabe der rohen ADC-Werte hatte ich schon vor längerer Zeit bekrittelt. (Siehe dazu diesen Beitrag und die folgenden im Thread.)

Ich hatte die Ausgabe der Rohwerte damals auch hinbekommen und die Änderungen sind bei mir fix implementiert.
Ob die Community FW den gleichen Fehler hat wie die Conrad FW, kann ich nicht bestätigen. Allerdings ist der Fehler schon seit Tag 1. in der Conrad Version dabei. Ich vermute, es wurde von der Original-Repetier Version 'geerbt'. Wenn sich einer dem Sherlock Holmes besonders nahe fühlt und dem Ganzen auf den Grund gehen will, müsste er sich eine alte Repetier Version holen, aus der Zeit stammend, wo die Conrad Version ursprünglich geforked wurde. Dort müsste man dann schnüffeln.

Möge COVID-19 uns alle verschonen!

mjh11

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 20:49
von AtlonXP
Hallo micschi,
du scheinst dich hier als Programmierer zu entpuppen.
Gut so…! :-)

Zur RAW Ausgabe:
Ich denke das ist gut und reicht auch so.
Das E0 Hot End und das Heizbett wird als RAW nun ausgegeben.

Könntest du den Extruder Lüfter so wie du ihn aktiviert über X19 hast,
in die RF1000.h eine Zeile zum Anwählen mit 0 oder 1 einfügen und das Programm so ummodeln das es Funzt?
Das wäre dann ein Umschalten von der seitherigen Funktion auf deine Neu.

Ich würde mir diese Änderung noch per copy und paste selber zutrauen.
Jedoch kann man das nicht jedem Anwender abverlangen.

Da mhier nicht mehr bei Arduino Hand anlegen möchte und Nippels privat verhindert ist…
Magst du noch ein paar Dinge für unsere Community FW erledigen, wenn ich dir aufzeige was noch nötig wäre?

LG AtlonXP

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 21:00
von micschi
Hi,
so ein #define zum Aktivieren/deaktivieren bekomme ich hin.
Für die Community FW, dass kann ich auf jeden Fall versuchen. Wenn es nicht immer gleich sofort erledigt sein muss, finde ich da sicher immer etwas Zeit.

Ich habe mich vorhin endlich mal etwas mit dem Menü befasst, um festzustellen, was ich alles noch nicht kenne und auch mal nen Autotune (Pessen) gemacht, so dass der Überschwinger deutlich kleiner ist beim Hotend.
Und auf das schaltbare Licht bin ich im Menü gestoßen (auch X19). Dass kann man bei den #define auch gegen prüfen, so dass man nur eins aktiv hat.

Re: V2 durch E3D V5 Clone ersetzen.

Verfasst: Do 17. Mär 2022, 21:50
von AtlonXP
Das wäre Super.
Zeit spielt keine Rolle, es ist nur Hobby!

Ich kann dich soweit Unterstützen in Bezug wie sollte es funzen
und spiele auch gerne mal wieder den Beta Tester.

Zuerst jedoch, musst du dich mit dem Drucker und unserer Community FW besser vertraut machen.
Nach deinem PID ist das Überschwingen wohl wesentlich besser geworden.
Schau bei dem Aufheizen aus der Zimmer Temperatur heraus, bis Erreichen des Sollwertes,
wie weit die Temperatur beim ersten Mal überschwingt.
In Repetier Host kannst du dir die Aufwärmkurve darstellen lassen.

E3D hat hier auch etwas gedacht, in dem die dem E3D V6 nur eine 30 W Heizung beigelegt haben.
Die Heizleistung zur Thermischen Masse muss abgestimmt sein.

Ist die Heizleistung im Verhältnis zur Masse des Heizblocks groß, dann überschwingt dir die Temperatur weiter.
Das Ziel sollte sein, das erste Überschwingen auf + / - Minus 2 C° zu begrenzen.

Inndirekt hat auch die Ziel Temperatur einen Einfluss.
Umso höher die gewählt ist, erhöhen sich die Wärmeverluste und die Heizleistung singt somit ab.
Das Überschwingen wird somit geringer, oder die Ziel Temperatur kann durch zu schwacher Heizleistung, nicht mehr erreicht werden.

Wie man die Heizleistung begrenzen kann,
findest du auch in meinem erweiterten Link zur Community FW.

LG AtlonXP