Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktionen von OpenKNX Firmwares kombinieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Moin,

    vielen Dank. Das hat sehr geholfen.
    Ich habe die Fingerprint-Firmware (nach einem .\Restore-Checkout-Hash.ps1) teils erfolgreich gebaut:
    Code:
    Environment          Status    Duration
    -------------------  --------  ------------
    debug_RP2040         FAILED    00:00:40.581   Edit: Ging im zweiten Anlauf.
    upload_JLINK_RP2040  SUCCESS   00:00:58.019
    release_R503         SUCCESS   00:00:37.363
    release_R503Pro      SUCCESS   00:00:53.533
    release_VFP_REG1     FAILED    00:00:36.931
    ========================================================= 2 failed, 3 succeeded in 00:03:46.428 =========================================================
    ​
    Fehlermeldungen dieser Art habe ich:
    Code:
    Compiling .pio\build\release_VFP_REG1\libdb1\knx\knx\bau.cpp.o
    Compiling .pio\build\release_VFP_REG1\libdb1\knx\knx\bau07B0.cpp.o
    Compiling .pio\build\release_VFP_REG1\libdb1\knx\knx\bau091A.cpp.o
    src\FingerprintModule.cpp: In member function 'virtual void FingerprintModule::setup()':
    src\FingerprintModule.cpp:27:13: error: 'LED_GREEN_PIN' was not declared in this scope
       27 |     pinMode(LED_GREEN_PIN, OUTPUT);
          |             ^~~~~~~~~~~~~
    src\FingerprintModule.cpp:28:13: error: 'LED_RED_PIN' was not declared in this scope
       28 |     pinMode(LED_RED_PIN, OUTPUT);
          |             ^~~~~~~~~~~
    src\FingerprintModule.cpp:31:13: error: 'SCANNER_TOUCH_PIN' was not declared in this scope
       31 |     pinMode(SCANNER_TOUCH_PIN, INPUT_PULLDOWN);
          |             ^~~~~~~Archiving .pio\build\release_VFP_REG1\libc94\libEEPROM.a
    ~~~~~~~~~~
    src\FingerprintModule.cpp:34:13: error: 'TOUCH_LEFT_PIN' was not declared in this scope
       34 |     pinMode(TOUCH_LEFT_PIN, INPUT);
          |             ^~~~~~~~~~~~~~
    Compiling .pio\build\release_VFP_REG1\libdb1\knx\knx\bau27B0.cpp.o
    Compiling .pio\build\release_VFP_REG1\libdb1\knx\knx\bau2920.cpp.o
    src\FingerprintModule.cpp:35:13: error: 'TOUCH_RIGHT_PIN' was not declared in this scope
       35 |     pinMode(TOUCH_RIGHT_PIN, INPUT);
          |             ^~~~~~~~~~~~~~~
    Compiling .pio\build\release_VFP_REG1\libdb1\knx\knx\bau57B0.cpp.o
    src\FingerprintModule.cpp: In static member function 'static void FingerprintModule::interruptTouchLeft()':
    src\FingerprintModule.cpp:98:48: error: 'TOUCH_LEFT_PIN' was not declared in this scope
       98 |     KoFIN_TouchPcbButtonLeft.value(digitalRead(TOUCH_LEFT_PIN) == HIGH, DPT_Switch);​
    Das wirkt, als fürde die Datei fehlen, in denen die Pins definiert sind - aber die include/hardware.h ist vorhanden und z.B. TOUCH_LEFT_PIN ist darin definiert.

    Edit:
    Das liegt daran, dass die Pin-Definitionen in der hardware.h nur für BOARD_ABTOOLS_FINGERPRINT_V13 gemacht werden.

    Das bedeutet, dass im Github-Stand aktuell nicht alle Targets gebaut werden können.



    Gruß,
    Hendrik
    Zuletzt geändert von henfri; 12.09.2024, 10:28.

    Kommentar


      #17
      Du willst ja entwickeln, Du solltest wirklich
      Code:
      ./restore/Restore-Dependencies-Branch.ps1
      nehmen, wie ich oben schrieb. Dann hast Du den aktuellsten GIT-Stand, von dem man sinnvoll ausgehen kann.

      Der REG1 ist ein Versuch von mir, einen VFP (also einen Virtuellen-FP) zu machen, der die Finger von einem (oder mehreren) existierenden Leser bekommt, selber aber keine FP-Hardware hat. Das Szenario ist aber noch nicht fertig, deswegen hab ich auch noch nichts für den REG1 released. Insofern ist der nicht wichtig.

      Da debug jetzt läuft (das kannst Du mit develop gleichsetzen), könntest Du in hardware.h jetzt ein Board definieren (mit den UP1-Pins), dieses Board in der pio.common.ini im [debug_RP2040] environent eintragen (musst mal schauen, in welcher Section genau die Boards stehen, viele sind auskommentiert, weil ich mit unterschiedlicher Hardware teste, nur ein -D BOARD_xxx darf aktiv sein) und dann debug_RP2040 bauen. Vorher aber den OpenKNXproducer mit dem normalen Fingerprint.xml laufen lassen (F1->Run test task->OpenKNXproducer Fingerprint). Ich hab mir für Run Test Task ein Shortcut Ctrl-Shift-T (passend zum Ctrl-Shift-B für Build Task) eingerichtet.

      Es bringt auch nichts, immer alle environments zu bauen, weil die unterschiedliche OpenKNXproducer-läufe vorher brauchen. Also nicht den Defult build task nutzen sonden in PIO unten in der Statuszeile den gewünschten Task auswählen (bei Dir develop_RP2040).

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #18
        Danke Waldemar,

        ich war schon ein Stück weiter gekommen und hatte meinen Beitrag oben editiert.

        Restore-Dependencies-Branch.ps1 hatte ich nicht gemacht, weil ich erstmal den letzten Release bauen wollte - um sicher zu gehen etwas zu bauen, was laufen soll.
        Zum REG1: Da kann man ja auch den FP anklemmen. Von daher finde ich es schon sinnvoll die Pins zu definieren - und dann baut er auch.

        Ich frage mich da nur:
        Code:
         #define TOUCH_LEFT_PIN 26
            #define TOUCH_RIGHT_PIN 27
            #define LED_GREEN_PIN 24
            #define LED_RED_PIN 25​
        Diese Hardware wird ja nicht jedes Gerät haben.
        Vergeben wir dann einen Pin, oder definieren wir eine Variable, die definiert ob Touch und LED vorhanden sind und führen den Code nur dann aus?
        Ist vielleicht eher eine Frage an abtools, da letzteres den Code beeinflust und nicht nur die hardware.h

        Ich bin jetzt dabei, die Pins für den UP1 zu definieren. Zum debug_RP2040 muss ich wohl erstmal in das Wiki. Auch ist mir noch nicht klar, ob ich den OpenKNXProducer laufen lassen muss, denn an der KNXProd habe ich ja noch nix geändert.

        Noch eine Frage zum SWA:
        Code:
            #define OPENKNX_SWA_CHANNEL_COUNT 1
            #define OPENKNX_SWA_SET_PINS 14
            #define OPENKNX_SWA_RESET_PINS 15
            #define OPENKNX_SWA_SET_ACTIVE_ON LOW
            #define OPENKNX_SWA_RESET_ACTIVE_ON LOW
            #define OPENKNX_SWA_BISTABLE_IMPULSE_LENGTH 50​
        Was sind die Set und Reset Pins?


        Gruß,
        Hendrik
        Zuletzt geändert von henfri; 12.09.2024, 10:18.

        Kommentar


          #19
          das OFM-SwitchActuator ist aktell nur für bistabile Relais gebaut, d.h. zum einschalten wird der SET Pin für OPENKNX_SWA_BISTABLE_IMPULSE_LENGTH auf OPENKNX_SWA_SET_ACTIVE_ON gesetzt.

          Für monostabile Relais müsste man das OFM erweitern. (aus meiner Sicht grundsätzlich sinnvoll).

          Zitat von henfri Beitrag anzeigen
          Zum REG1: Da kann man ja auch den FP anklemmen. Von daher finde ich es schon sinnvoll die Pins zu definieren - und dann baut er auch.
          Können - ja. Sollten - nein. Die Leitungslänge sollte nicht zu lang werden, und das ist bei einem REG Gerät unwahrscheinlich..
          OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

          Kommentar


            #20
            Hallo,

            verstehe, vielen Dank.
            Ich hab die Firmware jetzt erfolgreich für das UP1 mit Fingerprint gebaut.
            Morgen muss ich mal gucken, wie ich meinen Fork damit befülle (aktuell würde ich ja in das OpenKNX Repo pushen)
            Falls jemand die Kommandos so runtertippen kann, wäre ich dankbar. Aber sonst lese ich mir das an.

            Jetzt fehlen nur noch die Fingerprint-Reader.
            Aus Platzgründen, werde ich wohl aber doch im Fingerprint keine Sensoren und Schaltaktoren einbauen.

            Stattdessen überlege ich jetzt ein UP1-8xTH auf ein UP1-4xTH-4xIn oder UP1-2xTH-2xIn-4xOut umzubauen, für meine Sauna.
            Gibt es Relais für die Hutschiene, die vom UP1 geschaltet werden könnten - Busversorgt wäre natürlich elegant.

            Gruß,
            Hendrik
            Zuletzt geändert von henfri; 12.09.2024, 22:13.

            Kommentar


              #21
              Zitat von henfri Beitrag anzeigen
              Stattdessen überlege ich jetzt ein UP1-8xTH auf ein UP1-4xTH-4xIn oder UP1-2xTH-2xIn-4xOut umzubauen, für meine Sauna.
              Ich bin ja nicht so der Hardware-Mensch, aber an dem Satz hört sich alles für mich falsch an. UP1, um Hutschienen-Relais zu steuern, die dann Ströme schalten, die in einer Sauna vorkommen, zusätzlich zu Dampf, Feuchtigkeit... Du weißt schon, dass es einen guten Grund hat, dass es Hutschienen-Schaltaktoren gibt? Mir wäre das zu heiß... und damit meine ich nicht die Sauna. Aber es ist Dein Haus...

              Zitat von henfri Beitrag anzeigen
              Morgen muss ich mal gucken, wie ich meinen Fork damit befülle (aktuell würde ich ja in das OpenKNX Repo pushen)
              Den Fork hättest Du zuerst machen sollen, direkt auf Github. Und dann von Deinem Repo clonen.
              Den anderen Weg weiß ich leider nicht. Wird aber bestimmt gehen.

              Gruß, Waldemar



              OpenKNX www.openknx.de

              Kommentar


                #22
                Sorry, ich bezog mich auf die Firmware.
                Hardware REG1.
                Und natürlich kommt keine Elektronik in die Sauna sondern nach Außerhalb.

                Kommentar


                  #23
                  Zitat von henfri Beitrag anzeigen
                  Morgen muss ich mal gucken, wie ich meinen Fork damit befülle (aktuell würde ich ja in das OpenKNX Repo pushen)
                  Falls jemand die Kommandos so runtertippen kann, wäre ich dankbar. Aber sonst lese ich mir das an.
                  am einfachsten wäre folgendes:

                  du forkst das entsprechende repo von github
                  du clonst dieses repo lokal bei dir
                  du kopierst die inhalte aus dem bisherigen verzeichnis in das neu geclonte und pushed es.

                  es gibt elegantere wege, aber das ist der einfachste für git laien
                  OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                  Kommentar


                    #24
                    Zitat von henfri Beitrag anzeigen
                    Stattdessen überlege ich jetzt ein UP1-8xTH auf ein UP1-4xTH-4xIn oder UP1-2xTH-2xIn-4xOut umzubauen, für meine Sauna.
                    Gibt es Relais für die Hutschiene, die vom UP1 geschaltet werden könnten - Busversorgt wäre natürlich elegant.
                    Das ist nun ein separates Projekt auf Basis eines REG1 ? Ich komme nicht mehr ganz mit...

                    das 2xIn oder 4xIn ist unnötig - ein TH Kanal kann ja auch als 2xIn arbeiten.
                    Um Relais zu schalten sind GPIOs nicht wirklich geeignet - maximal ein Reed-Relais wäre drin. - d.h. du müsstest mit einem Reed-Relais (oder einer entsprechenden Halbleiter-Treiberschaltung) das große Relais schalten.
                    Alternativ kannst du auch diese typischen Relaisplatinen nehmen

                    sowas 51WIhQCAUrL._AC_.jpg
                    und dir ein passende REG-Gehäuse drucken (gibts fertig). Die brauchen Hilfsspannung (zB 24V) und die Eingänge sind reine Signalpins die man mit GPIO schalten kann.

                    Welche Lasten / Spannungen willst du schalten? 16A / 230V ?

                    Aber ganz ehrlich - für 230V würde ich einen Aktor kaufen bzw. wenn es unbedingt ein OpenKNX Gerät sein muss dann nimm doch Andreas Aktor.

                    Für kleine Lasten und Spannungen ist aktuell ein 4fach Aktor im REG1 in Entwicklung.. da wirds noch dieses Jahr erste Beta-Geräte geben..
                    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                    Kommentar


                      #25

                      Hallo,

                      ich bin jetzt erstmal wieder beim Schritt, das UP1-8xTH für den Fingerprint fit zu machen.
                      Die Pins habe ich in der Firmware angepasst und erfolgreich gebaut.

                      Ich wähle Upload&Monitor. Die Hardware ist über den Progger angeschlossen (bootsel nicht gedrückt)
                      Code:
                      J-Link>loadbin .pio\build\release_UP1\firmware.hex, 0x0
                      J-Link connection not established yet but required for command.
                      Connecting to J-Link via USB...FAILED: Cannot connect to J-Link.
                      J-Link>RSetType 2
                      J-Link connection not established yet but required for command.
                      Connecting to J-Link via USB...FAILED: Cannot connect to J-Link.
                      J-Link>ResetX 200
                      J-Link connection not established yet but required for command.
                      Connecting to J-Link via USB...FAILED: Cannot connect to J-Link.
                      J-Link>q
                      
                      Script processing completed.
                      
                      --- Terminal on COM3 | 115200 8-N-1
                      --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
                      --- More details at https://bit.ly/pio-monitor-filters
                      --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H zz0.4a9f12m8g0xzz
                      Wenn ich Bootsel gedrückt habe, dann wird wird kein Port gefunden (aber das Laufwerk vom RP erscheint im Explorer).

                      Nochwas:
                      Wenn ich Build Filesystem wähle, bekomme ich auch einen Fehler:
                      Code:
                       MODULE_FileTransferModule: 0.0.4+db4a240 (OFM-FileTransferModule)
                      
                      Building file system image from 'data' directory to .pio\build\release_UP1\littlefs.bin
                      warning: can't read source directory
                      *** [.pio\build\release_UP1\littlefs.bin] Error 1
                      ====================================================== [FAILED] Took 15.68 seconds ======================================================
                      
                      Environment    Status    Duration
                      -------------  --------  ------------
                      release_UP1    FAILED    00:00:15.681
                      ================================================= 1 failed, 0 succeeded in 00:00:15.681 =================================================
                      ​
                      Sorry, aber der Anfang ist schwerer, als ich mir wünschte - obwohl es sehr gut dokumentiert ist.

                      Gruß,
                      Hendrik​

                      Kommentar


                        #26
                        du hast ein environment gewählt dass als Uploadprotokoll J-Link hat und nicht USB. Und da du wahrscheinlich keinen J-Link hast geht das nicht. Du musst ein env mit USB wählen.

                        Ist dein repo auf github? Würde den Support einfacher machen
                        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                        Kommentar


                          #27
                          Hallo,

                          danke für deine Antwort und Hilfe.
                          Ich habe es gerade hier hochgeladen:
                          https://github.com/henfri/OAM-FingerprintUP1

                          Gruß,
                          Hendrik

                          Kommentar


                            #28
                            damit sollte es gehen
                            env:debug_RP2040
                            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                            Kommentar


                              #29
                              Hallo,

                              aber dann weiß er doch nicht, dass er meine Hardware-Konfiguration nutzen soll, oder?
                              Müsste ich das nicht so erweitern?
                              Code:
                              [env:debug_RP2040]
                              extends = RP2040_custom_develop
                              upload_protocol = mbed
                              build_flags =
                                ${RP2040_custom_releases.build_flags}
                                -D OKNXHW_UP1_CONTROLLER2040
                              ;upload_port = D:\​
                              Gruß,
                              Hendrik

                              Kommentar


                                #30
                                -D OKNXHW_UP1_CONTROLLER2040
                                brauchst du auf jeden Fall

                                welches env hast du denn bisher genutzt? in github hat gar kein env das passende -D ..
                                OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                                Kommentar

                                Lädt...
                                X