Ankündigung

Einklappen
Keine Ankündigung bisher.

Fragen zur OpenKNX-Entwicklung

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

    Fragen zur OpenKNX-Entwicklung

    Hallo,

    ich arbeite gerade an einer Änderung der UP1 Firmware. Dabei habe ich lediglich die onewire-Implementierung (OFM-THPSensorModule) verändert.
    Dabei habe ich zwei Probleme:
    1) Bei "upload and monitor" kommt dieser Fehler:
    Code:
    Retrieving maximum program size .pio\build\develop_UP1\firmware.elf
    Flash size: 16.00MB
    Sketch size: 1.00MB
    Filesystem size: 15.00MB
    Maximium Sketch size: 1048576 EEPROM start: 0x10fff000 Filesystem start: 0x10100000 Filesystem end: 0x10fff000
    Checking size .pio\build\develop_UP1\firmware.elf
    Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
    RAM:   [=         ]   6.1% (used 16116 bytes from 262144 bytes)
    Flash: [====      ]  43.6% (used 457380 bytes from 1048576 bytes)
    show_flash_partitioning(["checkprogsize"], [".pio\build\develop_UP1\firmware.elf"])
    
    Show flash partitioning:
      FLASH:                      0x00000000 - 0x01000000 (  16777216 Bytes)
        FIRMWARE:                 0x00000000 - 0x000729a4 (    469412 Bytes)
        FREE:                     0x000729a4 - 0x000f4000 (    530012 Bytes)
        KNX:                      0x000f4000 - 0x000fc000 (     32768 Bytes)
          DATA*:                  0x000f4000 - 0x000f6715 (     10005 Bytes)
          FREE:                   0x000f6715 - 0x000fc000 (     22763 Bytes)
        OPENKNX:                  0x000fc000 - 0x00100000 (     16384 Bytes)
        FILESYSTEM:               0x00100000 - 0x00fff000 (  15724544 Bytes)
        EEPROM:                   0x00fff000 - 0x01000000 (      4096 Bytes)
    
    * This value is an estimate
    
    Configuring upload protocol...
    AVAILABLE: blackmagic, cmsis-dap, jlink, pico-debug, picoprobe, picotool, raspberrypi-swd
    CURRENT: upload_protocol = jlink
    Uploading .pio\build\develop_UP1\firmware.hex
    SEGGER J-Link Commander V7.88k (Compiled Jul  5 2023 15:02:18)
    DLL version V7.88k, compiled Jul  5 2023 15:00:41
    
    
    J-Link Command File read successfully.
    Processing script file...
    J-Link>h
    J-Link connection not established yet but required for command.
    Connecting to J-Link via USB...FAILED: Cannot connect to J-Link.
    J-Link>loadbin .pio\build\develop_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​
    Ich hatte ja schon die Fingerprint-FW auf den UP1 angepasst. Da hatte ich das Problem nicht. Aber ich weiß nicht mehr, was ich anders gemacht habe.

    2) Ich habe die Firmware manuell geflasht (Bootmodus -> Laufwerk im Explorer -> .\OpenKNX_Dev\SEN-UP1-8xTH\.pio\build\develop_UP1\firmware.uf2 rüberkopiert)
    Wenn ich jetzt die Applikation über die ETS hochladen will, gibt es eine inkompatible Applikation:
    24-12-04__22-22.08.17_ETS6_-_Familie_Friedel.png

    Auch das Problem hatte ich beim FP nicht.

    Was mache ich falsch?

    Gruß,
    Hendrik

    #2
    Willst du den über jlink die fw hochladen? Wenn nein eventuell falsches Environment im Platform.io ausgewählt?

    Kommentar


      #3
      Ich denke, das läuft über USB/Massstorage beim RP2040, oder?
      Ich habe kein Environment ausgewählt... Muss ich morgen am PC mal suchen, wo ich das mache. Danke für den Hinweis.

      Bleibt aber (2).

      Kommentar


        #4
        mit welchem Befehl hast du die knxprd gebaut? Ist es die Beta oder oder die ohne?
        wenn du die knxprod nimmst, die du vor dem buildvorgang erzeugt hast um damit die fw zu bauen, darf das eigtl nicht auftreten.
        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

        Kommentar


          #5
          Ich nutze noch die Release knxprod, da ich ja nix geändert habe, was die knxprod betrifft.
          Gibt es einen Automatismus, der eine ID hochzählt?
          Beim Fingerprint habe ich es genauso gemacht und hatte kein Problem.

          Kommentar


            #6
            Zitat von henfri Beitrag anzeigen
            Ich nutze noch die Release knxprod, da ich ja nix geändert habe, was die knxprod betrifft.
            das macht jeder Entwickler etwas anders, wir haben viele Dinge standardisiert, aber einiges auch nicht.

            Beim SEN-UP1 gibt es zwei Applikations-IDs
            die 0xA103 für die Beta https://github.com/OpenKNX/SEN-UP1-8...N-UP1-8xTH.xml
            und die 0xA102 für die Release https://github.com/OpenKNX/SEN-UP1-8...TH-Release.xml

            es igbt auch zwei Tasks:
            https://github.com/OpenKNX/SEN-UP1-8...s.json#L45-L75
            der erzeugt die passende knxprod UND knxprod.h.

            Also: wenn du die vorhandene Release knxprod nutzen willst, dann musst du vor dem bauen der FW einmal ""OpenKNXproducer Release" ausführen.
            Dann hast du eine Chance, dass die Versionen zusammenpassen. Ggf ist aber der Stand im Repo schon weiter, und es passt trotzdem nicht zusammen.

            Dann musst du dir halt genau die richtige knxprod zu FW auch in die ETS laden.
            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

            Kommentar


              #7
              Hallo,

              Danke für Eure Antworten.
              Die Möglichkeit das über USB zu übertragen (richtiges Env) habe ich gefunden.
              Die Erklärung mit der Applikations-ID habe ich auch verstanden.

              Nur OpenKNXproducer Release finde ich nicht. Mit F1 und Eingabe des Tasks sollte ich das doch finden, oder?

              24-12-05__23-20.33.52_platformio.ini_-_SEN-UP1-8xTH_-_Visual_Studio_Code.png

              Gruß,
              Hendrik

              Kommentar


                #8
                ähh doch?

                2024-12-05 22_07_28-.png
                Angehängte Dateien
                OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                Kommentar


                  #9
                  Hm, bei mir muss ich "task " davor eintippen.
                  Angehängte Dateien

                  Kommentar


                    #10
                    Sorry, auch wenn es blöde Fragen sind (gerne ein Hinweis, wo ich mich besser einlesen kann):
                    Code:
                    Executing task: C:\Users\hendr\.platformio\penv\Scripts\platformio.exe run --target upload --target monitor --environment develop_UP1_USB
                    ...
                    
                    Configuring upload protocol...
                    AVAILABLE: blackmagic, cmsis-dap, jlink, pico-debug, picoprobe, picotool, raspberrypi-swd
                    CURRENT: upload_protocol = jlink
                    Uploading .pio\build\develop_UP1_USB\firmware.hex
                    SEGGER J-Link Commander V7.88k (Compiled Jul  5 2023 15:02:18)
                    DLL version V7.88k, compiled Jul  5 2023 15:00:41
                    
                    
                    J-Link Command File read successfully.
                    Processing script file...
                    J-Link>h
                    J-Link connection not established yet but required for command.
                    Connecting to J-Link via USB...FAILED: Cannot connect to J-Link.
                    J-Link>loadbin .pio\build\develop_UP1_USB\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​
                    Was mache ich falsch?

                    Gruß,
                    Hendrik

                    Kommentar


                      #11
                      henfri normal kannst du unten in der Leiste die Environments auswählen die in der Platform.io.custom definiert sind und in dieser sind dann auch die einzelnen Optionen (z.b. das Upload Protokoll, Debug oder Prod usw.) für das gewählte Environment angegeben.

                      Kommentar


                        #12
                        du hast das env mit jlink upload gewählt und wahrscheinlich keinen jlink.
                        du musst upload usb wählen (der so ähnlich)
                        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                        Kommentar


                          #13
                          Das mag ich nicht ausschließen, aber in meinem Log oben steht doch in der ersten Zeile
                          Code:
                          --environment develop_UP1_USB
                          Ich gucke aber nochmal.

                          Kommentar


                            #14
                            Zitat von henfri Beitrag anzeigen
                            Das mag ich nicht ausschließen, aber in meinem Log oben steht doch in der ersten Zeile
                            oh, das stimmt.

                            evtl ist was in der ini falsch - es gab da auch Ändeurngen am common evtl passt das nicht mehr.

                            Ja das wars. Ich hab das korrigiert und gepusht - und auch gleich die OpenKNX Umgebung hochgezogen (neues Logikmodul etc..).
                            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                            Kommentar


                              #15
                              Hallo,

                              vielen Dank!
                              Ich habe den aktuellen Stand gepullt.
                              Leider kompiliert er nicht.
                              Code:
                              Compiling .pio\build\develop_UP1_USB\lib7d6\OFM-THPSensorModule\HWSensorchannel_BME280.cpp.o
                              lib\OFM-LogicModule\src\Logic.cpp: In member function 'virtual void Logic::processInputKo(GroupObject&)':
                              lib\OFM-LogicModule\src\Logic.cpp:331:43: error: 'LOG_KoKOfE1' was not declared in this scope; did you mean 'LOG_KoKOfO'?
                                331 |     else if (iKo.asap() >= LOG_KoOffset + LOG_KoKOfE1 && iKo.asap() < LOG_KoOffset + LOG_KoKOfE1 + mNumChannels * LOG_KoBlockSize)
                                    |                                           ^~~~~~~~~~~
                                    |                                           LOG_KoKOfO
                              lib\OFM-LogicModule\src\LogicChannel.cpp: In static member function 'static uint16_t LogicChannel::calcKoNumber(uint8_t, uint8_t)':
                              lib\OFM-LogicModule\src\LogicChannel.cpp:194:26: error: 'LOG_KoKOfE1' was not declared in this scope; did you mean 'LOG_KoKOfO'?
                                194 |             lKoNumber += LOG_KoKOfE1;
                                    |                          ^~~~~~~~~~~
                                    |                          LOG_KoKOfO
                              lib\OFM-LogicModule\src\LogicChannel.cpp:197:26: error: 'LOG_KoKOfE2' was not declared in this scope; did you mean 'LOG_KoKOfO'?
                                197 |             lKoNumber += LOG_KoKOfE2;
                                    |                          ^~~~~~~~~~~
                                    |                          LOG_KoKOfO​
                              Ich habe zuvor ein restore-dependencies(-branch).ps1 ausgeführt (beides, da ich nicht weiß, was ich wann brauche)

                              Code:
                              - Reading the dependencies.txt file and processing each line.
                              - No dependencies found in dependencies.txt file. Please check the file.​
                              Muss ich vor dem Kompilieren noch etwas anderes machen?

                              Auch Openknx-Producer läuft nicht durch:
                              Code:
                              Executing task: C:\Users\hendr/bin/OpenKNXproducer.exe create --Debug -h include/knxprod.h src/SEN-UP1-8xTH.xml
                              
                              OpenKNXproducer 2.16.0.0
                              Processing xml file src/SEN-UP1-8xTH.xml
                              Processing include src/SEN-UP1-8xTH.xml
                              Generate: Using default generation procedure
                              Processing include SEN-UP1-8xTH.share.xml
                              Processing include ../lib/OGM-Common/src/Common.share.xml
                              Processing include Common.script.js
                              Processing include ../lib/OFM-THPSensorModule/src/THPSensor.share.xml
                              Processing include THPSensor.templ.xml
                              Processing include ../lib/OFM-VirtualButton/src/VirtualButton.share.xml
                              Processing include VirtualButton.templ.xml
                              Processing include ../lib/OFM-LogicModule/src/Logikmodul.share.xml
                              Processing include Logikmodul.script.js
                              Processing include Logikmodul.overview-intko.templ.xml
                              Processing include Logikmodul.templ.xml
                              Processing merged file...
                              - ApplicationNumber: A103 (41219), ApplicationVersion: 16, old ID is: %AID%, new (calculated) ID is: M-00FA_A-A103-10-0000
                              - Calculated InlineData for Versioning: 0000A1031000
                              - RegistrationVersion is: 0001/116
                              - ReplacesVersions entry is: 12 14 15
                              
                              Sanity checks...
                              - Id-Homogeneity... OK
                              - Id-Uniqueness...
                                --> M-00FA_A-A103-10-0000_CH-%PREFIX% is a duplicate Id in BTN_Main
                                --> M-00FA_A-A103-10-0000_CH-%PREFIX% is a duplicate Id in LOG_Logic
                              - ParameterType-Id-Syntax... OK
                              - Id-R_Suffix-Uniqueness... OK
                              - RefId-Integrity...
                                --> M-00FA_A-A103-10-0000_P-1001128_R-100112801 is referenced in ParameterRefRef , but not defined
                                --> M-00FA_A-A103-10-0000_UP-1001377_R-100137701 is referenced in ParameterRefRef , but not defined
                                --> M-00FA_A-A103-10-0000_UP-1001378_R-100137802 is referenced in ParameterRefRef , but not defined
                                --> M-00FA_A-A103-10-0000_UP-1001459_R-100145901 is referenced in ParameterRefRef , but not defined
                              ..
                              Gruß,
                              Hendrik
                              Zuletzt geändert von henfri; 07.12.2024, 22:56.

                              Kommentar

                              Lädt...
                              X