Beiträge von ChironControl

    Im Prinzip läuft die Sache:

    Ich kann die tpm2.net Daten aus Jinx! empfangen und ausgeben. Um 1024 channels/block kommen die Daten interessanterweise am schnellsten durch (dauert ca. 3,5ms). Kürzere oder längere packets machen es langsamer. Es ist da aber so oder so reichlich Luft. Ich habe das nur stichprobenartig mal mit angeschaut.


    Ich finde das eine sehr schöne Selbstbau-Lösung mit dem Teensy. Es sind bis 42 Pins möglich beim Teensy 4.1. Bei 30 fps wären das 1100 LEDs pro Pin = 46200 LEDs insgesamt. Da sind meine 14400 ja bescheiden.


    Jetzt habe ich noch Arbeit, die Daten korrekt auf die LEDs zu mappen. Die Reihenfolge der Pins kann nicht (oder nicht für alle) verändert werden, wie ich jetzt erst gemerkt habe. Dann auf die physikalische Anordnung bringen. Das ist alles lösbar.

    Damit Jinx! 1024 channels sendet, muss ich dort übrigens 1023 einstellen... hat mich ne Zeit gekostet, das zu checken.


    Mit einem Klick alle LEDs zu patchen ist schon sehr, sehr angenehm und macht das extrem flexibel für zukünftige Änderungen.

    Da ich am Ende 10 "Module" von 2m x 20cm baue mit je 120 x 12pixel und zwei Datenleitungen (je 720 pixel) werde ich vielleicht diese zusammenfassen und doch in Jinx patchen, mal sehen.


    Die Kabelverbindungen mit den CAT6 Kabeln sind wie erhofft sehr komfortabel und flexibel. Am Ende splitte ich die 4 Datenleitungen pro Kabel auf 2 auf mit einem steckbaren Splitter. Dann laufen die zwei Leitungen jeweils parallel in dem anderen Kabel. Auch bei 10m kein Problem. 30m Gesamtlänge waren im Test auch kein Problem. Ich benötige nur 10+2m. Vielleicht würden die letzten 2m auch ungeschirmt gehen, aber so ist es auch nochmal etwas robuster beim Verlegen.


    Den Code kann ich gerne zur Verfügung stellen.

    Vielen Dank für die ausführliche Antwort!


    Physikalisch sind es 12x1200 Pixel auf der Matrix. In der Jinx-Software muss ich das in den Grenzen der 480 Pixel anders abbilden.


    Den Teensy kann ich per Arduino-IDE programmieren in C/C++ und nutze im Moment eine Artnet library, die das nötige für mich macht.


    Das wäre natürlich eine sehr komfortable Lösung mit TPM2.NET und dem super einfachen Patchen und nur ein device anlegen in Jinx!. Den Angaben zu Startbyte usw. kann ich soweit folgen. Mit Ethernet habe ich ansonsten noch nicht gearbeitet und da keine Erfahrung. Ich habe jetzt mal getestet, UDP Pakete zu empfangen. Da kommt auch was an. Allerdings kann ich nach den ersten 6 bytes nur 6x3 bytes Daten sehen, obwohl mir eine größere und korrekte packet size von z.B. 108 angegeben wird. Der packetbuffer ist aber kleiner. Wenn ich Channel/Block auf 3 setze und 35 Blöcke erwartet werden, werden mir nur 1-4 angezeigt. Ich weiß nicht, ob ich das nur nicht richtig anzeigen lasse oder im Serial Monitor nicht korrekt erscheint oder auf was die packet size begrenzt ist ... muss ich mir weiter anschauen und ist vermutlich eine Software-Sache auf Empfänger-Seite im Teensy.


    Ich nutze diesen Code bzw. mit der NativeEthernet library den gleichen und schreibe mir die einzelnen Elemente aus dem packetbuffer auf den seriellen Monitor.


    Nachtrag: Port setze ich natürlich auf 65506 für tpm2.net.

    Nachtrag2: Es scheint, dass aus dem packetbuffer nur maximal 24 bytes angezeigt werden, auch wenn ich von woanders was sende.


    Mit

    Code
    #define UDP_TX_PACKET_MAX_SIZE 50000

    kann ich die Grenze für den Puffer (warum TX und nicht RX?) einfach hoch setzen. Der Teensy 4.1 hat reichlich RAM. Alles als ein Block übertragen mit den 43200 Kanälen scheint aber nicht zu klappen. Da wird mir gar nichts angezeigt. Mit kleineren Blöcken habe ich wieder das Problem, dass nur die ersten 4 durch kommen. Werde ich mir weiter ansehen, warum das begrenzt ist und nochmal genauer testen. Erstmal ganz viel versprechend.


    Im Code war noch ein Delay ... entfernt ... jetzt kann ich 86 Blöcke mit 505 channels empfangen (packet size = 512). Das wäre ja so schon nutzbar und ist ein riesiger Erfolg für mich. Ich hoffe, dass ich diese Datenmenge dann auch schnell genug auf die LEDs sortieren kann und der ganze Rest noch läuft.

    Hallo in die Runde,


    ich arbeite an einer Installation mit 14400 LED Pixeln (Matrix mit 12 x 1200 RGB LEDs). Ich baue dafür einen eigenen Controller mit einem Teensy 4.1, der die 14400 Pixel = 43200 Kanäle ansteuern kann (20 Kanäle Datenleitungen mit je 720 Pixeln). Mit Artnet läuft das erstmal auf dieser Seite.


    Über Artnet sind das ja nun 85 Universen und ich müsste dementsprechend 85 devices anlegen und alles patchen. Auch mit dem Fast-Patch dann noch sehr viel Arbeit. Oder ist das irgendwie einfacher möglich und übersehe ich da etwas?


    Oder ist da gleich der bessere Weg, ein anderes Protokoll zu nehmen? tpm2.net ? Oder was anderes?

    Für tmp2.net kann ich keine library für Teensy/Ethernet finden. Ich weiß nicht, ob ich das hin bekomme.