Ankündigung

Einklappen
Keine Ankündigung bisher.

Beaglebone Cape als DMX controller

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

    Beaglebone Cape als DMX controller

    Hallo zusammen,

    heute nach viel Lesen in den letzten Monaten mein erster Beitrag.

    Vor einigen Monaten hatte ich mir Roberts BBB-cape angeschafft, u.a. auch weil Robert in einem seiner Beitrage schrieb, dass prinzipiell auch eine Funktionalitaet als DMX controller moeglich sein koennte - ganz nett, wenn man die (meisten) Leuchten zentral per Eldoled Treiber ansteuert.

    Die noetigen HW-Modifikationen (einen Treiberbaustein erstmal auf eine Huckepack-Testplatine packen) waren nicht sonderlich kompliziert und recht schnell gemacht.

    Softwareseitig war es (zumindest fuer mich) schon etwas schwieriger. Zum einen bin ich nicht so Linux-sattelfest und zum anderen sind/waren die verfuegbaren Informationen um die im BB enthaltene real-time unit (PRU - module uio_pruss) ans Laufen zu bekommen recht verstreut und spaerlich gesaet.

    Angefangen hab' ich auf dieser Seite, von dort hab' ich auch die Software (mit ein paar Modifikationen) allerdings sind die SW installationsanleitungen dort fuer Kernel 3.8 zu der man in Kombination mit den PRUs mehr im Netz findet.
    Robert hatte mir dankenswerter Weise einige gute Tipps gegeben, u.a. auch wo man noch Informationen finden kann und letztendlich kann man tatsaechlich das BB mit sehr kleinem HW Aufwand als DMX controller verwenden. Feine Sache wie ich finde.

    Hab' noch nicht wirklich viel getestet und auch erst 12 DMX Kanaele (3 Eldoleds) versuchsmaessig verdrahtet, aber es geht erstaunlich gut.

    Spaeter mehr - Gruesse - tullsta

    #2
    Cool - Sehr cool sogar.

    Halte uns mal auf dem Laufenden... Ich habe auch ein Cape von Robert... das wäre echt super wenn man es noch einfach um DMX erweitert könnte. Ich stehe auch vor der Entscheidung DALI vs. DMX...

    Das wäre auf jeden Fall ein gutes Argument für DMX!

    Kommentar


      #3
      Hallo zusammen,

      hier ein kleines update: seit 2 Wochen laeuft das Teil nun recht stabil ohne reboot.

      Fuer interessierte hier etwas detaillierter, was ich gemacht/geaendert hab (s.u.)

      Gruesse - tullsta



      Hardware Erweiterung
      Hier ist nicht wirklich viel noetig - man muss einen Treiberbaustein (SN 75176 A) mit drei Pins von P8/P9 des BBB verbinden:
      +5V => Pin P9_07/08 (SYS_5V)
      GND => P9_01/02 (GND)
      data => P8 Pin P8_06
      => den habe ich genommen => den urspruenglichen Pin kann man beiom BBB nicht nehmen da Pin 3 vom eMMC verwendet wird
      => siehe auch https://github.com/boxysean/beaglebone-DMX/issues/1
      => die software muss man dann entsprechend anpassen

      Den Schaltplan fuer die Treiberstufe gibt's hier:
      https://code.google.com/archive/p/ti...eBuilding.wiki bzw.
      https://github.com/boxysean/beaglebone-DMX

      Ich hab' das erstmal auf eine kleine Lochrasterplatine geloetet und diese dann mit den drei Kabeln an den BBB gehaengt.

      Server-Software Aenderungen
      - image
      zuerst musste ich von einem TI-image auf ein nicht-TI-image gehen.
      Kenne mich da nicht so unglaublich aus, aber die TI images verwenden anscheinend die remoteproc-library,
      welche sich nicht mit der uio_pruss vertraegt
      => z.B. https://groups.google.com/forum/#!to...rd/Ew2hTx9xtE8

      - uio_pruss
      man muss erstmal die PRU im BBB ans Laufen bekommen - das war etwas Gefrickel
      (zumindest fuer jemanden, der sich damit eigentlich nicht auskennt):
      > more /sys/devices/platform/bone_capemgr/slots
      0: P---L- 0 Home Automation Cape,00A0,IBB Robert Budde,cape-bone-ibb
      1: PF---- -1
      2: PF---- -1
      3: PF---- -1

      > echo pru_enable > /sys/devices/platform/bone_capemgr/slots
      > more /sys/devices/platform/bone_capemgr/slots
      0: P---L- 0 Home Automation Cape,00A0,IBB Robert Budde,cape-bone-ibb
      1: PF---- -1
      2: PF---- -1
      3: PF---- -1
      4: P-O-L- 1 Override Board Name,00A0,Override Manuf,pru_enable

      > modprobe uio_pruss
      > lsmod
      Module Size Used by
      uio_pruss 4582 0
      uio_pdrv_genirq 3309 0
      uio 8311 2 uio_pruss,uio_pdrv_genirq

      - dmx software
      diese hab' ich von hier runtergeladen:
      https://github.com/boxysean/beaglebone-DMX
      kleine Aenderungen in src/dmx.c waren neotig, da ein anderer Pin als P8 {in 3 beim BBB noetig ist.
      diese Aenderungen sind GPIO definitionen:
      #define DMX_PIN (12)
      LOCAL_export_pin(44);
      LOCAL_unexport_pin(44);
      Ausserdem musste ich noch einen pointer casten (2 oder 3 Stellen):
      if (bind(s, &si_me, sizeof(si_me))==-1)
      geaendert in
      if (bind(s, (struct sockaddr *) &si_me, sizeof(si_me))==-1)

      Anschliessend konnte ich die Sachen kompilieren (make) und als root starten:
      > ./dmx

      Client-software
      - wenn der server laeuft, kann man mit den im "controller"-Verzeichnins beinhalteten python scripts (python2 => Aenderungen fuer python3)
      ans Testen gehen - das ging bei mir problemlos.
      Ich hab' erstmal nur ein Oszilloskop an den Treiberausgang gehaengt dann ist die serielle Kommunikation recht offensichtlich zu erkennen
      - Kanal-nummer:
      die Eldoleds nummerieren die Kanaele von 1-512 - die dmx-Software allerdings von 0-511


      Sonstiges:
      Prinzipiell kann man die PRU auch direkt den Pin wackeln lassen (sie
      he https://github.com/boxysean/beaglebone-DMX/issues/1 - scheint mir prinzipiell netter zu sein). Das wuerde eine Modifikation im assembly-source-file benoetigen, die ich aber nach hinten geschoben hab - zu viele Baustellen.

      what's next
      von hier aus wuierde ich gerne ein sh.py-plugin schreiben, das die DMX kontrolle uebernimmt (Teil der Basis koennten die python controller-scripte sein) - da werde ich mich in den naechsten Wochen drangeben - auch hier zu viele Baustellen

      Zuletzt geändert von tullsta; 18.04.2016, 11:33.

      Kommentar


        #4
        Hallo - nur ein kurzes update:

        der DMX-controller laeuft jetzt ohne Probleme und reboot seit Mai durch.

        In den naechsten Wochen geht's an ein sh.py-plugin hierfuer - da kaeme ich evtl. mal mit Fragen

        LG - tullsta

        Kommentar

        Lädt...
        X