Ankündigung

Einklappen
Keine Ankündigung bisher.

PA programmieren funktioniert nicht (Mega 2560)

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

    PA programmieren funktioniert nicht (Mega 2560)

    Hab meinen Aufbau auf einen Mega 2560 umgebaut (vorher mit Pro Mini, Nano, Micro und Pro Micro am laufen gehabt) und bekomme jetzt beim programmieren der PA über die Suite einen Fehler.
    Jemand ne Idee??

    Code:
    KONNEKTING Suite - Version 1.0.0-BETA4 Build 2016-10-10_18-18-18
    Betriebssystem: Windows 10
    KNX Verbindung: IP-Interface: 1.0.254@192.168.178.29
    KNX Telegramm entdeckt. Verbindung scheint in Ordnung zu sein.
    [Programmiere] 1.1.220 SirSydom LED-Dimmer 4channel
    [Programmiere] Initialisiere ...
    [Programmiere] Lese KOs ...
    [Programmiere] Lese Parameter ...
    [Programmiere] Fortschritt: 1/28
    [Programmiere] Bitte 'Programmieren' Knopf drücken...
    [Programmiere] Ein Fehler ist aufgetreten.
    de.konnekting.deviceconfig.ProgramException: Problem writing individual address
        at de.konnekting.deviceconfig.Program.program(Program.java:122)
        at de.konnekting.suite.ProgramDialog$4.run(ProgramDialog.java:192)
        at java.lang.Thread.run(Thread.java:745)
        at de.konnekting.suite.BackgroundTask$1.run(BackgroundTask.java:59)
    Caused by: de.root1.slicknx.KnxException: Waiting for answer of type de.konnekting.mgnt.protocol0x00.MsgAck timed out.
        at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.expectSingleMessage(ProgProtocol0x00.java:201)
        at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.expectSingleMessage(ProgProtocol0x00.java:226)
        at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.expectAck(ProgProtocol0x00.java:238)
        at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.writeIndividualAddress(ProgProtocol0x00.java:388)
        at de.konnekting.mgnt.KonnektingManagement.writeIndividualAddress(KonnektingManagement.java:70)
        at de.konnekting.deviceconfig.Program.program(Program.java:118)
        ... 3 more
    
    [Programmiere] Fertig! Dauer: 2590 ms
    Code:
    DEBUG! free ram: -1
    Initialize KonnektingDevice
    15/7/255 = 0x7fff
    Manufacturer: 0x1ca9 Device: 0x02 Revision: 0x00
    numberOfCommObjects: 20
    memRead: index=0x00
    memRead: data=0x7f
    _deviceFlags: 01111111
    ->EEPROM
    memRead: index=0x01
    memRead: data=0x11
    memRead: index=0x02
    memRead: data=0xdc
    memRead: index=0x0a
    memRead: data=0xff
    memRead: index=0x0b
    memRead: data=0xff
    memRead: index=0x0c
    memRead: data=0xff
    ComObj index=0 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x0d
    memRead: data=0xff
    memRead: index=0x0e
    memRead: data=0xff
    memRead: index=0x0f
    memRead: data=0xff
    ComObj index=1 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x10
    memRead: data=0xff
    memRead: index=0x11
    memRead: data=0xff
    memRead: index=0x12
    memRead: data=0xff
    ComObj index=2 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x13
    memRead: data=0xff
    memRead: index=0x14
    memRead: data=0xff
    memRead: index=0x15
    memRead: data=0xff
    ComObj index=3 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x16
    memRead: data=0xff
    memRead: index=0x17
    memRead: data=0xff
    memRead: index=0x18
    memRead: data=0xff
    ComObj index=4 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x19
    memRead: data=0xff
    memRead: index=0x1a
    memRead: data=0xff
    memRead: index=0x1b
    memRead: data=0xff
    ComObj index=5 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x1c
    memRead: data=0xff
    memRead: index=0x1d
    memRead: data=0xff
    memRead: index=0x1e
    memRead: data=0xff
    ComObj index=6 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x1f
    memRead: data=0xff
    memRead: index=0x20
    memRead: data=0xff
    memRead: index=0x21
    memRead: data=0xff
    ComObj index=7 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x22
    memRead: data=0xff
    memRead: index=0x23
    memRead: data=0xff
    memRead: index=0x24
    memRead: data=0xff
    ComObj index=8 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x25
    memRead: data=0xff
    memRead: index=0x26
    memRead: data=0xff
    memRead: index=0x27
    memRead: data=0xff
    ComObj index=9 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x28
    memRead: data=0xff
    memRead: index=0x29
    memRead: data=0xff
    memRead: index=0x2a
    memRead: data=0xff
    ComObj index=10 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x2b
    memRead: data=0xff
    memRead: index=0x2c
    memRead: data=0xff
    memRead: index=0x2d
    memRead: data=0xff
    ComObj index=11 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x2e
    memRead: data=0xff
    memRead: index=0x2f
    memRead: data=0xff
    memRead: index=0x30
    memRead: data=0xff
    ComObj index=12 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x31
    memRead: data=0xff
    memRead: index=0x32
    memRead: data=0xff
    memRead: index=0x33
    memRead: data=0xff
    ComObj index=13 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x34
    memRead: data=0xff
    memRead: index=0x35
    memRead: data=0xff
    memRead: index=0x36
    memRead: data=0xff
    ComObj index=14 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x37
    memRead: data=0xff
    memRead: index=0x38
    memRead: data=0xff
    memRead: index=0x39
    memRead: data=0xff
    ComObj index=15 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x3a
    memRead: data=0xff
    memRead: index=0x3b
    memRead: data=0xff
    memRead: index=0x3c
    memRead: data=0xff
    ComObj index=16 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x3d
    memRead: data=0xff
    memRead: index=0x3e
    memRead: data=0xff
    memRead: index=0x3f
    memRead: data=0xff
    ComObj index=17 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x40
    memRead: data=0xff
    memRead: index=0x41
    memRead: data=0xff
    memRead: index=0x42
    memRead: data=0xff
    ComObj index=18 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    memRead: index=0x43
    memRead: data=0xff
    memRead: index=0x44
    memRead: data=0xff
    memRead: index=0x45
    memRead: data=0xff
    ComObj index=19 HI=0xff LO=0xff GA=0xffff setting=0xff active=1
    IA: 0x11dc
    Reset triggered!
    Reset attempts: 9
    Data available: 1
    data not useable: 0x00. Expected: 0x03
    Data available: 1
    Reset successful
    Init : Normal mode started
    
    Init successful
    KnxDevice startup status: 0x00
    getParamValue: index=0 _paramTableStartindex=70 skipbytes=0 paremLen=1
    memRead: index=0x46
    memRead: data=0xff
     val[0]@70 -> 0xff
    getParamValue: index=1 _paramTableStartindex=70 skipbytes=1 paremLen=1
    memRead: index=0x47
    memRead: data=0xff
     val[0]@71 -> 0xff
    getParamValue: index=2 _paramTableStartindex=70 skipbytes=2 paremLen=1
    memRead: index=0x48
    memRead: data=0xff
     val[0]@72 -> 0xff
    Setup is ready. go to loop...
    PrgBtn toggle
    PrgBtn 1
    
    
    konnektingKnxEvents index=255
    internalComObject index=255
    buffer[0]    hex=0x00 bin=00000000
    buffer[1]    hex=0x01 bin=00000001
    buffer[2]    hex=0x11 bin=00010001
    buffer[3]    hex=0xdc bin=11011100
    buffer[4]    hex=0x00 bin=00000000
    buffer[5]    hex=0x00 bin=00000000
    buffer[6]    hex=0x00 bin=00000000
    buffer[7]    hex=0x00 bin=00000000
    buffer[8]    hex=0x00 bin=00000000
    buffer[9]    hex=0x00 bin=00000000
    buffer[10]    hex=0x00 bin=00000000
    buffer[11]    hex=0x00 bin=00000000
    buffer[12]    hex=0x00 bin=00000000
    buffer[13]    hex=0x00 bin=00000000
    protocolversion=0x00
    msgType=0x01
    handleMsgReadDeviceInfo
    KNX_WRITE_REQUEST index=255
    
    
    konnektingKnxEvents index=255
    internalComObject index=255
    buffer[0]    hex=0x00 bin=00000000
    buffer[1]    hex=0x15 bin=00010101
    buffer[2]    hex=0x00 bin=00000000
    buffer[3]    hex=0x00 bin=00000000
    buffer[4]    hex=0x00 bin=00000000
    buffer[5]    hex=0x00 bin=00000000
    buffer[6]    hex=0x00 bin=00000000
    buffer[7]    hex=0x00 bin=00000000
    buffer[8]    hex=0x00 bin=00000000
    buffer[9]    hex=0x00 bin=00000000
    buffer[10]    hex=0x00 bin=00000000
    buffer[11]    hex=0x00 bin=00000000
    buffer[12]    hex=0x00 bin=00000000
    buffer[13]    hex=0x00 bin=00000000
    protocolversion=0x00
    msgType=0x15
    handleMsgReadIndividualAddress
    KNX_WRITE_REQUEST index=255
    
    
    konnektingKnxEvents index=255
    internalComObject index=255
    buffer[0]    hex=0x00 bin=00000000
    buffer[1]    hex=0x14 bin=00010100
    buffer[2]    hex=0x11 bin=00010001
    buffer[3]    hex=0xdc bin=11011100
    buffer[4]    hex=0x00 bin=00000000
    buffer[5]    hex=0x00 bin=00000000
    buffer[6]    hex=0x00 bin=00000000
    buffer[7]    hex=0x00 bin=00000000
    buffer[8]    hex=0x00 bin=00000000
    buffer[9]    hex=0x00 bin=00000000
    buffer[10]    hex=0x00 bin=00000000
    buffer[11]    hex=0x00 bin=00000000
    buffer[12]    hex=0x00 bin=00000000
    buffer[13]    hex=0x00 bin=00000000
    protocolversion=0x00
    msgType=0x14
    handleMsgWriteIndividualAddress
    memUpdate: index=0x01 data=0x11
    memUpdate: index=0x02 data=0xdc
    DeviceFlags after =0x7f
    memUpdate: index=0x00 data=0x7f
    sendAck errorcode=0x00 indexInformation=0x00
    KNX_WRITE_REQUEST index=255
    ETS sagt:
    screen01.PNG

    #2

    Code:
    MsgAck timed out
    Sicher dass in der Loop nichts blockiert? Suite im Debug Modus gestartet?

    Kommentar


      #3
      ich hab das exakt gleiche Sketch (nur die Pinbelegung wurde geändert) gestern noch auf einen Pro Micro geladen, da funzt alles.

      Nein, Suite war nicht im Debug.
      Ich denke nicht dass in der Lop was blockiert, aber ich kann die nochmal komplett frei machen.

      Was ich komisch finde, ist dass die Suite sagt, Gerät antwortet nicht, das letzte Telegram aber vom Gerät ist... (das mit nur 00)

      Was mir ebenfalls noch aufgefallen ist, dass die DeviceLib im DebugUtil einen Fehler bei freeRam hat - beim Mega bekomme ich da -1.
      Aber das ist ja nur Debug, oder?

      Kommentar


        #4
        Code:
         
         de.konnekting.deviceconfig.ProgramException: Problem writing individual address
        Den Fehler habe ich gerade auch und werde nicht schlau daraus.

        Kommentar


          #5
          FreeRam funktioniert noch nicht auf allen Prozessoren (ist ja auch nur Ausgabe, wird nirgendwo sonst verwendet)... und MEGA unterstützen wir offiziell sowieso nicht
          wenn dein Sketch mit Debug-Ausgaben läuft, dann MUSS die Suite auch im Debug laufen, sonst passen die Timings nicht und es kommt zu solchen Fehlern.

          Kommentar


            #6
            Zitat von Eugenius Beitrag anzeigen
            wenn dein Sketch mit Debug-Ausgaben läuft, dann MUSS die Suite auch im Debug laufen, sonst passen die Timings nicht und es kommt zu solchen Fehlern.
            DAS wusste ich nicht.
            Komisch, mit 32u4 geht es anstandslos, aber wer weiß. Probiere es heute Abend mal mit Suite im Debug.

            Kommentar


              #7
              Zitat von Eugenius Beitrag anzeigen
              FreeRam funktioniert noch nicht auf allen Prozessoren (ist ja auch nur Ausgabe, wird nirgendwo sonst verwendet)... und MEGA unterstützen wir offiziell sowieso nicht
              in dem Fall liegt es einfach nur einem #define wo der mega nicht berücksichtigt wurde. Sonst würde es gehen.
              Ich teste jetzt mal ausführlich mit dem mega, und dann kann man evtl. auch offiziell supporten?

              Kommentar


                #8
                Zitat von SirSydom Beitrag anzeigen
                DAS wusste ich nicht.
                Komisch, mit 32u4 geht es anstandslos, aber wer weiß. Probiere es heute Abend mal mit Suite im Debug.
                Mit dem Zero klappt es auch fast immer. Das liegt wohl am Native USB

                Kommentar


                  #9
                  Code:
                  de.konnekting.deviceconfig.ProgramException: Problem writing individual address
                      at de.konnekting.deviceconfig.Program.program(Program.java:122)
                      at de.konnekting.suite.ProgramDialog$4.run(ProgramDialog.java:192)
                      at java.lang.Thread.run(Thread.java:745)
                      at de.konnekting.suite.BackgroundTask$1.run(BackgroundTask.java:59)
                  Caused by: de.root1.slicknx.KnxException: Waiting for answer of type de.konnekting.mgnt.protocol0x00.MsgAck timed out.
                      at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.expectSingleMessage(ProgProtocol0x00.java:201)
                      at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.expectSingleMessage(ProgProtocol0x00.java:226)
                      at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.expectAck(ProgProtocol0x00.java:238)
                      at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.writeIndividualAddress(ProgProtocol0x00.java:388)
                      at de.konnekting.mgnt.KonnektingManagement.writeIndividualAddress(KonnektingManagement.java:70)
                      at de.konnekting.deviceconfig.Program.program(Program.java:118)
                      ... 3 more

                  Exceptions werden von oben nach unten gelesen:

                  de.konnekting.deviceconfig.ProgramException: Problem writing individual address
                  --> Das hat nicht funktioniert: Das Programmieren der Physikalischen Adresse (in der KNX Spec ist immer die rede von der "individual address", niemals von einer "physical address")

                  Und warum das nicht funktioniert hat steht da auch:
                  Caused by: de.root1.slicknx.KnxException: Waiting for answer of type de.konnekting.mgnt.protocol0x00.MsgAck timed out.

                  Jedes Programmier-Telegramm das die Suite an den Arduino schickt, muss innerhalb einer bestimmten Zeit mit einer "Ok, kam an"-nachricht, dem "Acknowledge", bestätigt werden.

                  Und hier kam offenbar nicht innerhalb der erwarteten Zeit die Antwort.

                  Zur Problemlösung:

                  1) Sobald der Arduino mit DEBUG läuft, d.h. Ausgaben auf der seriellen Konsole macht (und das ist im Beta-Stadium unserer Lib eigentlich der Standardfall), *MUSS* die Suite ebenfalls in der Debug-Variante gestartet werden. Sonst passt das Timing nicht zueinander. In machen Fällen mag es auch ohne DEBUG der Suite klappen, aber das ist mehr Zufall wie Absicht.

                  2) Wenn trotz DEBUG auf beiden Seiten das ganze nicht zuverlässig klappt, ist folgendes zu tun:

                  a) In der ETS den gruppenmonitor laufen lassen und auf Telegramme auf 15/7/255 filtern
                  b) kurz vor dem programmieren die liste löschen
                  c) das Programmieren starten
                  d) direkt nach dem Fehler den Gruppenmonitor stoppen
                  e) Kein Screenshot vom gruppenmonitor, sondern exportieren der Daten zusammen mit
                  f) dem vollständigen (!) Log des Arduinos auf der seriellen Konsole

                  Arduino-Log + ETS Gruppenmonitor-Log + vollständiger Code der loop() Funktion des Sketches dann direkt an mich (am besten per Github Ticket) oder hier posten. Nur so lassen sich die genauen Zusammenhänge verstehen und nachvollziehen..

                  Kommentar


                    #10
                    mit Suite im Debug bzw. Sketch auf "normal" läufts wie geschmiert.

                    Kommentar


                      #11
                      Anfängerfehler

                      Kommentar


                        #12
                        Ich überlege mir noch ob ich nicht ein "auto timing" ermittle... irgendwie von der Suite aus ein Telegramm an den Arduino schicken und auf ACK warten und dieses Timing dann als timeout (+-5% oder so) für die restliche kommunikation nutzen. Dann gibt's die Suite nur noch mit einer Start-Datei...

                        Muss das bei gelegenheit mal testen.

                        Kommentar


                          #13
                          Einfach den timeout fürs Empfangen verlängern? Muss ja nicht unnötig kompliziert werden...

                          Kommentar


                            #14
                            Dann wird der proogrammiervorgang ggf. länger/langsamer

                            Kommentar


                              #15
                              warum?
                              Timeouts sollten im Regelfall ja nicht auftreten (Zumindest nicht in relevantem Ausmaß)

                              Kommentar

                              Lädt...
                              X