Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit NanoBCU und Arduino Pro Micro...

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

    Problem mit NanoBCU und Arduino Pro Micro...

    Folgende situation:

    ich versuch mit einen Arduino Pro Micro (3,3V) und NanoBCU erstmal einfach nur auf ein Telegram für eine bestimmten Gruppe zu reagieren.

    Dazu nutze ich die KNXTPUart Library von ThorstenGehrig https://knx-user-forum.de/forum/%C3%...arduino-am-knx

    Wird ein Telegram von dem Arduino gesendet sieht alles i.O. aus und die Telegrame gehen raus und kommen auch soweit korrekt an.

    Nun soll der Arduino auch auf Telegrame reagieren und hier wird es kompliziert...

    Fall 1: Die Telegrame kommen vom ETS über IP Gateway(im Verteilerschrank, Kabellänge/-distanz > 10m) - Arduino erkennt diese und reagiert entsprechend.

    Fall 2: Die Telegrame kommen von einem Taster auf dem Bus (Kabellänge/-distanz > ca. 5m) - Arduino erkennt die Telegramme und tut sein Arbeit

    Fall 3: Die Telegrame kommen von einem Taster auf dem Bus (Kabellänge/-distanz < ca. 5m) - Arduino erkennt die Telegramme nicht mehr richtig als KNX Telegrame. Wenn ich Adressen- und Gruppen-Auflösung erzwinge dann wird deutlich dass bestimmte Telegrame nicht korrekt interpretiert werden können, was sich zeigt wenn man sich die Gruppen und Absender Adressen ansieht.

    Ich hatte zwischenzeitig dann auch mal das Ganze mit der Siemens BCU versucht und da war alles wie es sein sollte, sprich Telegrame konnten alle richtig interpretiert und verarbeitet werden.

    Nun bin ich mit meinem Wissen am Ende. Was kann hier die Ursache für das Verhalten mit der NanoBCU sein? Sollte diese nicht zu der Siemens BCU analog funktionieren?

    Kann es sein dass ich etwas zwischen der NanoBCU und dem Arduino falsch mache oder hier etwas grundsätzlich falsch mache bzw. verstehe?

    #2
    interessant wäe, warum auf die eingehende Telegrame nicht reagiert wird.
    Ich kenne den Stack nicht und weiß daher auch nicht ob da sinnvolle Ausgaben kommen warum ein Telegram oder Bruchstücke davon verworfen werden.
    Das wäre der Ansatz.

    Du könntest unseren knx stack mal testen (knx demo), allerdings läuft der nicht auf den atmegas...
    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

    Kommentar


      #3
      Da wäre ich bei meinem weiteren Problem, ich komme mit Eurem Stack nicht weiter da hier, richtiger und vorausschauender Weise, der Stack deutlich komplexer ist weil Ihr dabei schon viel weiter seid und externe Programmierung mit integriert habt.

      Ich bin aber mit meinem Vorhaben erst komplett am Anfang und muss die eigentliche Idee erst realisieren. Ist es mit eurem Stack möglich in der main.ino alle Parameter wie KNX-Adresse und Source/Destination Gruppen zu definieren ohne dabei weitere Tools außer VS-Code zu nutzen?

      So sieht es aktuell aus mit KNXTPUart-Stack:

      Code:
      #include <Arduino.h>
      #include <KnxTpUart.h>
      
      KnxTpUart knx(&Serial1, "1.1.180"); // KNX Adresse
      long event_counter = 0;
      
      void setup() {
        // USB Serial Monitor/Konsole
        Serial.begin(115200);
        // KNX Serial zu NanoBCU
        Serial1.begin(19200, SERIAL_8E1);
        knx.uartReset();
        // Define group address to react on
        knx.addListenGroupAddress("1/1/107");
       
      }
      void loop() {
       
      }
      
      void serialEvent1() {
        KnxTpUartSerialEventType eType = knx.serialEvent();
       
          KnxTelegram* telegram = knx.getReceivedTelegram();
          String source =
              String(0+ telegram->getSourceArea()) + "." +
              String(0+ telegram->getSourceLine()) + "." +
              String(0+ telegram->getSourceMember());
          String target_group =
              String(0 + telegram->getTargetMainGroup())   + "/" +
              String(0 + telegram->getTargetMiddleGroup()) + "/" +
              String(0 + telegram->getTargetSubGroup());  
          Serial.println("SerialEvent " + String(event_counter) + " from Device: " + source + " to Group: " + target_group);
      
        event_counter++;
      }
      Zuletzt geändert von JimBeamJD; 09.03.2022, 19:52.

      Kommentar


        #4
        Zitat von JimBeamJD JimBeamJD Beitrag anzeigen
        Ist es mit eurem Stack möglich in der main.ino alle Parameter wie KNX-Adresse und Source/Destination Gruppen zu definieren ohne dabei weitere Tools außer VS-Code zu nutzen?
        nein.
        Aber die demo kannst du bauen, und mit fertiger, beiliegender knxprod programmieren. Eine ETS wirst du ja haben?
        Der Stack liefert über die Debug-Konsole wenigstens ein paar Ausgaben mit denen man ggf was anfangen kann..
        OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

        Kommentar


          #5
          Hi,

          falls Du wirklich auf einen ETS-programmierbaren Stack hinaus willst, macht es überhaupt keinen Sinn, sich vorher mit einem anderen zu beschäftigen. Du wirst dadurch keinen zusätzlichen Erkenntnisgewinn haben. Dann besser gleich richtig einsteigen.

          Kauf Dir ein RP2040-Board (z.B. Pico) oder ein SAMD-Board, nutze den knx-Stack und dann kannst Du experimentieren. Und Du brauchst Dich um alle Low-Level Sachen nicht zu kümmern sondern arbeitest auf Anwendungsebene und implementierst das, was Du machen möchtest.

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #6
            Das hatte(habe) ich tatsächlich vor, da ich aber nun mal kein Vollzeit-Programmierer bin und das ganze momentan nur eine Idee ist muss ich erstmal eine Art "proof of concept" versuchen. Ist dieses erfolgreich dann habe ich auch zusätzlich die Motivation es auf Dauer und für alle über euren Stack zugänglich zu machen. Will ja nicht jedes mal es hartkodiert im Sourcecode einmeißeln 😅.

            Im übrigen, es muss nicht Arduino sein, ein NodeMCU als ESP8266 oder ESP32 sind da im Grunde sogar besser geeignet. Da bin ich aber an der Seriellen Schnittstellen für Debugging gescheitert...

            Und wo ich beim Debugging bin, hier mal die Ausgabe der Kommunikation einmal vom Arduino über NanoBCU und einmal von ETS über USB Schnittstelle. Beide am selben Strang der KNX Leitung mit Distanzunterschied von gerade mal 40cm:

            KNX_Arduino.jpg
            Zeile 12, 19 und 21 zeigen dass am Arduino dieser nahegelegener Sensor(Taster) entweder gar nicht ankommt(Zeile 12), nur die Gruppe falsch decodiert wird (Zeile 19) oder beides (Zeile 21)!

            Alle anderen Telegrame in dieser Zeit wurden korrekt decodiert, liegen aber auch deutlich weiter weg auf dem Bus als der Tast-Sensor. Im Übrigen den Taster habe ich auch mal mit einem anderen getauscht um den Taster auszuschließen, was dann sich auch bestätigte, es ist tatsächlich die Entfernung und nicht der Sensor.
            Zuletzt geändert von JimBeamJD; 10.03.2022, 11:17. Grund: Korrektur Aktor/Sensor

            Kommentar


              #7
              also ein Taster ist übrigens kein Aktor, sondern ein Sensor. Aber das nur nebenbei.

              Kannst du mal ausprobieren ob es beim Senden mit einem anderen Gerät in unmittelbarer Nähe zum Gerät mit NanoBCU auch zu Problemen kommt?

              Wenn sich zwei unterhalten, kann es ja an A oder B oder an der speziellen Paarung A+B liegen...

              Welcher Taster ist es genau?
              Welches Netzteil wird verwendet?
              Ist das ein Testnetz oder produktiv?

              Hast du eine zweite NanoBCU und kannst mal mit der Testen? Das würde einen Einzelstückfehler ausschließen..

              Mach mal auch bitte Fotos von deinem Aufbau und auch Detailfotos der BCU.

              Ich habe dieses Fehlerbild noch nie gesehen und mir wurde davon auch noch nicht berichtet, es sind einige hundert BCUs >1 Jahr im Feld mittlerweile.
              OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

              Kommentar


                #8
                Von einem Problem an der NanoBCU selbst gehe ich auch nicht aus, eher von mangelndem Verständniss meinerseits für die ganze Materie mit TTL/UART. Kann es ein Problem mit dem Pegel der UART Schnitstelle sein? Die Siemens BCU hat ja 5V sowewit ich weiss, die NanoBCU nur 3,3V. Wobei das aber eigentlich von Bus unabhängig sein sollte...

                Zu deinen Vorsachlägen melde ich mich heute abend wenn ich es alles nochmal geteset habe.

                Kommentar


                  #9
                  Zitat von JimBeamJD Beitrag anzeigen
                  Die Siemens BCU hat ja 5V sowewit ich weiss, die NanoBCU nur 3,3V
                  richtig.
                  Da du ja einen
                  Zitat von JimBeamJD Beitrag anzeigen
                  Arduino Pro Micro (3,3V)
                  einsetzt passt das mit der NanoBCU.
                  Für die Siemens-BCU brauchst du Pegelwandler, sonst grillst du dir den Rx !!

                  Zitat von JimBeamJD Beitrag anzeigen
                  Kann es ein Problem mit dem Pegel der UART Schnitstelle sein?
                  Hier sehe ich überhaupt keinen Zusammenhang zur Entfernung der Busgeräte, halt das also für abwegig.
                  OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                  Kommentar


                    #10
                    Ich muss wohl das Thema jetzt etwas korrigieren...

                    Nach nun etwas ausgeweitetem testen (ich habe leider nur ein produktiven Bus) kann ich folgendes als Ursache für mich ausschließen:
                    • NanoBCU, mehrere ausprobiert, das Bild bleibt das gleiche, eine frische zusammengelötet, gleiches Bild
                    • Arduino und NodeMCU ESP8266, Bild bleibt das gleiche
                    • Sensoren (Busch&Jaeger 6108/07 Tasterankopplung 4-fach, UP), an anderer Stelle am Bus ist alles i.O. mit anderen Taster gleiches Bild

                    Mich hat bereits von Anfang an die Tatsache stutzig gemacht dass wenn der Sensor nicht am gleichen Strang hing, er erkannt wurde.
                    Also habe ich mal noch mal freies KNX Kabel ausgegraben und nochmal parallel von sauber funktionierenden Stelle des Buses abgezapft und an die Selbe Stelle geführt, alles i.O. Ich habe mich dann dem vermuteten Problem-Strang über weitere KNX Dosen ran genähert und wurde fündig, ausgerechnet das letzte Stück was zu dem Rechner mit ETS der USB Schnittstelle und auch der NanoBCU geht scheint das Problem zu verursachen...

                    Klemme ich eine Leitung gleichlang oder länger parallel an vor dem letzten Segment und gehe über diese besteht das Problem weiterhin, klemme ich dabei den Problemstrang ab ist alles i.O.

                    Im Grunde scheint meine Bus-Installation wohl ein kleines Problem zu haben und die NanoBCU scheint diese Art von Problemen deutlich zu zeigen. Denn weder die USB-Schnittstelle noch die Siemens BCU haben das so wahrgenommen.

                    Trotz dessen dass der Fehler scheinbar bei meiner Installation liegt, würde ich gerne wissen(verstehen) was die NanoBCU hier anders macht bzw. warum diese anders reagiert.

                    Kommentar


                      #11
                      eine Masseverbindung hast du aber nicht hergestellt z.B. durch das USB-Kabel, oder?

                      Wenn doch, und du keinen Isolator hast
                      a) kauf dir einen
                      b) teste mal mit einem Notebook ohne Netzteil (also auf Akku).

                      Zitat von JimBeamJD Beitrag anzeigen
                      Trotz dessen dass der Fehler scheinbar bei meiner Installation liegt, würde ich gerne wissen(verstehen) was die NanoBCU hier anders macht bzw. warum diese anders reagiert.
                      Die Siemens BCU nutzt den TPUart2 Chip, die NanoBCU einen OnSemi NCN5120.
                      Was da intern abläuft und wie die auf Störungen reagieren kann - im Rahmen der Spec bzw vor allem außerhalb der Spec - ganz anders sein.

                      Man müsste jetzt mal mit einem Speicheroszi die problematischen Telegramme an den relevanten Stellen aufzeichnen und vergleichen / analysieren.. da könnte man ggf. was erkennen.
                      OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                      Kommentar


                        #12
                        ja, mangels eines Oszi bin ich schon an anderen Ideen vorläufig gescheitert...

                        Ich werd das WE dazu nutzen und mal alle Eventualitäten bereinigen, ein USB Isolator ist bereits unterwegs. Notebook ist vorhanden muss nur dafür eingerichtet werden.

                        Melde mich dann sobald ich was neues habe, bin aber weiterhin für Ideen offen!

                        Kommentar


                          #13
                          So nun nach fast zwei Wochen, neu aufgesetztem Rechner (war lange nötig und bei der Gelegenheit - Wenn schon den schon!), "kurzen" Einarbeitung in die UART0 bis 2 Schnittstellen des ESP32 und nebenbei einen Weisheitszahn weniger nun das Ergebnis:

                          Ursache ist definitiv eine Stück der KNX Leitung in meiner Hausinstallation. Was genau damit ist kann ich nicht nachvollziehen liegt aber günstiger weise so dass ich aus der anderen Richtung kommend genau dieses Stück ab- und aus-klemmen kann. KNX im "Ring" zu verlegen war damit zum zweiten mal eine gute Idee. Anschluss, versteht sich von selbst - nur an einem Ende oder den Ring eben irgendwo auftrennen!

                          Damit kann ich für mich bestätigen die NanoBCU funktioniert wie sie soll! AUCH mit dem KNXTPUart Stack! Nun kann ich jetzt weiter an meiner Idee werkeln und wenn es so funktioniert wie ich es mir vorstelle, dann wird es hier im Forum einen Beitrag dazu geben.

                          Anzumerken ist es dass die NanoBCU wohl ein kleines Feature hat, denn im Gegensatz zu der SiemensBCU, ist sie scheinbar empfindlicher gegenüber physikalischen(?) Störungen auf dem Bus. Leider kann ich aber auch keine genauere Ursache feststellen außer das vermutlich defekte Stück Kabel irgendwann mal auszutauschen...

                          Kommentar


                            #14
                            Danke für die Rückmeldung!
                            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

                            Kommentar

                            Lädt...
                            X