Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX mit RP2040 / Pi Pico

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

    KNX mit RP2040 / Pi Pico

    Hallo zusammen,

    Ich habe mir soeben NanoBCUs besorgt, damit ich mit meine neuen Raspberry Picos an den KNX-Bus hängen kann. Leider ist die Lernkurve nun ziemlich steil, aber ev. kann mir ja wer helfen.

    Welche Firmware soll ich da raufspielen? Wenn ich gefragt werden würde, wäre mir etwas auf Basis von MicroPython am liebsten, aber natürlich schrecke ich vor C(++) nicht zurück.

    Und dann wäre da natürlich noch die Frage der GAs u.s.w. also gibt's da auch schon so eine Art von "Hello Word?" also z.B. ein Tastendruck am Pico sendet eine Message an den Bus und die kann ich dann in meinem VIS vom ioBroker anzeigen lassen (träumen wird man ja wohl noch dürfen)

    Vielen Dank für jede Art von Link und Tipp zum Thema Newbie in KNX und Pico,
    Christof

    Linux - Life is too short for reboots
    - First they ignore you. Then they laugh at you. Then they
    fight you. Then you win(*). -- Ghandi

    #2
    Hast du Erfahrung mit MicroPython?
    Ich habe seit ein paar Jahren ein Board mit dem STM32F405RGT am laufen. Das ist der Controller, der auch auf dem PyBoard sitzt. Ich hatte die Hardware extra kompatibel gemacht.
    Das Board wacht alle 30 Sekunden auf, liest die Temperaturen über 1Wire Sensoren ein und sendet sie auf den Bus.

    Empfangen von Daten hatte ich auch mal rudimentär implementiert, aber nicht weiter verfolgt, da ich nur Senden brauche.
    Programmierung über ETS interessiert mich auch nicht, sondern das läuft über USB. Es steht alles im main Script. (Mit Isolator oder potentialgetrenntem Notebook kannst du auch live am REPL entwickeln.)

    Wenn du Erfahrung mit MicroPython hast, könntest du das sicher anpassen.
    Beim Pico verwende ich selber immer eher CircuitPython, da ich die Anbindung als Flashlaufwerk ganz praktisch finde (wobei man wissen muß, was man tut).
    CircuitPython unterstützt aber leider keine Interrupts. Das mag für andere Sachen ein Problem darstellen. Selber muß ich irgendwann noch Fensterkontakte mit anbinden. Dann sind Interrupts evtl. die bessere Lösung.

    Gruß,
    Dietmar

    Kommentar


      #3
      Danke für die Antwort!

      Ich habe Erfahrung mit MicroPython, aber auch mit C(++) und HW ist für mich als Analogdesigner auch kein böhmisches Dorf. Ziel ist eigentlich nicht unbedingt ETS, ich habe ein IP-Interface am Bus und mache mit ioBroker die Steuerung die "intelligent" ist. Da sollen Messdaten/Events verarbeitet werden, wo die Kommunikation über KNX läuft, weil das schon verkabelt ist. Als Prio2 wäre dann die Einbindung in das ETS-Ökosystem mit GAs interessant, damit das auch noch (rudimentär) läuft, wenn der Raspberry Pi mit dem ioBroker muckt.

      Ich habe einen USB-Isolator schon vor mir liegen, warte noch auf den Buskoppler, aber der sollte bald eintrudeln.

      Hättest Du zufällig Links mit einer Beschreibung des KNX-Protokolls rumliegen? Ich glaube mich an 9600 Baud serielle Kommunikation zu erinnern, aber wie ist die Buskommunikation gebaut, gibt's einen Master oder macht jeder "was er will"? Ich habe gerade PIO am Pico am Laufen (https://www.digikey.at/en/maker/proj...b65997642e0831) das ist herrlich, weil es mich an die Zeiten vom C64 erinnert :-)

      LG,
      Christof

      Linux - Life is too short for reboots
      - First they ignore you. Then they laugh at you. Then they
      fight you. Then you win(*). -- Ghandi

      Kommentar


        #4
        Hey Christof,

        du kannst dir natürlich hier die Knx Spezifikation herunterlade (auch wenn die version schon älter ist).
        oder du nimmst einen bereits vorhandenen KNX-Stack, wie zum Beispiel den von thelsing auf github.
        Mit dem kannst du auf arduino Basis in C++ entwickeln.
        Auch der RP2040 wird schon ansatzweise unterstützt.

        Großer Vorteil davon: Man kann dein Gerät über die ETS parametrisieren.

        Es gibt keinen Master, da KNX dezentral ist.


        Gruß Mike

        OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

        Kommentar


          #5
          Zitat von thewhobox Beitrag anzeigen
          Auch der RP2040 wird schon ansatzweise unterstützt.
          Nein, nicht ansatzweise!
          Ich wüsste nicht, das da noch was fehlt außer evrl ein wenig Feinschliff. Absolut einsatzbereit

          Ich kann nur zum thelsing/knx raten. Und lasse die Pfoten vom Python, das hat IMO auf MCUs nix verloren..
          OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

          Kommentar


            #6
            Danke für den PIO-Link. Damit hatte ich mich noch nicht beschäftigt. Für die Pulserzeugung wäre das ganz nützlich gewesen, aber da habe ich das PyBoard mit Timern und DMA im Einsatz.

            Ich schicke dir eine Python-Datei per PM. Der Code zum Empfangen ist da noch sehr rudimentär, weil ich bei mir nur Senden brauche.

            Mit der KNX-Spezifikation brauchst du dich eigentlich nicht groß beschäftigen. Du solltest dich aber irgendwo soweit einlesen, daß du weisst, was PAs, GAs und dpts sind. Telegramme sind leider nicht selbstbeschreibend. Du musst also wissen, welcher dpt (Data Point Type) zu einer GA gehört.

            Gruß,
            Dietmar

            Kommentar

            Lädt...
            X