Entwicklung eines Universal-USB-/DMX-/Ambilight-Controllerboard Mega16

  • Wenn's nicht zu unverschämt ist, hätte ich noch "Änderungswünsche": ;)


    - die ganzen Einstellungen Baudrate usw. braucht man ja nicht, das ist ja fest - da würde also ein Connect-Button ohne die weiteren Einstellungen reichen - die sind für Anfänger evtl. nur verwirrend ("was muss ich da denn wieder einstellen?"...)


    - die feste Farbe fehlt ja noch - k.a. wie das da geht, aber geht das evtl. so, dass man einfach ne vorgefertigte Grafik von nem Farbkreis in die GUI einbindet, und dann per Mausklick an der betreffenden Stelle einfach die RGB-Werte da (aus dem Bild/Screen-RAM) ausliest....?


    - das ist doch so objektorientierte Programmierung..? - also ginge das auch, dass einfach jedes Mal, wenn irgendwo geklickt/geschoben wird ("Event Handler", oder wie das heisst), dann einfach sofort die geänderte Konfiguration gesendet wird...? - dann würde man direkt sehen was passiert, ohne jedes Mal den "Set"-Button drücken zu müssen. z.B. wenn man den Speed-Slider hin- und her schiebt, ändert sich direkt die Geschwindigkeit des Effekts...


    das riesen Fenster mit den Kommunikationsmeldungen könnte dafür auch wegfallen, die interessieren den Normalanwender ja auch nicht...


    Da ich mich eh' mit dem Visual C++ befassen wollte, würde ich gerne auf Dein Angebot wegen dem Sourcecode zurückkommen - evtl. kann ich dann ja auch in absehbarer Zeit das selbst mal so machen wie beschrieben... ;)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • - die feste Farbe fehlt ja noch - k.a. wie das da geht, aber geht das evtl. so, dass man einfach ne vorgefertigte Grafik von nem Farbkreis in die GUI einbindet, und dann per Mausklick an der betreffenden Stelle einfach die RGB-Werte da (aus dem Bild/Screen-RAM) ausliest....?

    Nö. Das ist schon drin. Wenn man das Programm auf "feste Farbe" einstellt, kann man rechts daneben auch den eingefärbten Button "C" drücken und die Farbe auswählen.


    Dass man Änderungen direkt sieht, wäre nicht schlecht. Und den Kommunikationslog könnte man wirklich verschwinden lassen und nur bei Bedarf aufrufen. Un dann gibt es ja noch die schöne Funktion, die Zufallswerte per miniDMX ausgibt. Wäre gut, wenn die das kontinuierlich senden würde, wenn der Button drin ist, denn so kommt immer wieder das standalone-Programm rein...


    Ja, wenn man erst einmal was hat, kommen die Zusatzwünsche schon fast von selbst. Also keinen Stress - das Programm ist so schon sehr gut. Ich hätte da auch noch ein paar Ideen, z.B. ein einfaches Matrix-Programm oder diverse Fading-Effekte direkt vom PC-Programm :rolleyes: . Aber das machen wir mal später ...

  • Hey :)


    **********************************
    Also zum Source:
    Bevor ihr es kompilieren könnt, braucht ihr das Qt for Open Source C++ development on Windows (VS2008) - der Download startet automatisch.
    Dann braucht ihr noch das Visual Studio Add-in - der Download startet automatisch.


    1) Installiert zuerst Qt ins vorgeschlagene Verzeichnis, wie z.b.: C:\Qt\4.7.3
    2) Dann fügt zu den Umgebungsvariablen in der Systemsteuerung folgende Variable hinzu
    Variable: QTDIR
    Wert: C:\Qt\4.7.3


    und ergänzt die Variable PATH um den Wert C:\Qt\4.7.3\bin


    3) Danach installiert das Visual Studio Add-In.
    4) Zieht den Sedu-Tool Source und startet die *.sln-Datei.


    **********************************


    Zum Tool:


    Das mit den fixen Com-Port-Einstellungen wäre mir auch lieber. Habe aber hier im Board gelesen, dass sich jemand eine 20MHz Quarz ins Sedu verbauen will, drum war ich mir nicht sicher.


    Das mit der sofortigen Übernahme der Einstellungen hatte ich bereits drinne. Beim bewegen des Sliders schoss das Tool aber so viele Konfigurationen ins Sedu-Board, dass es sich manchmal verschluckt hat. Sozusagen waren die Einstellungen im Tool nicht immer zu 100% vom Sedu-Board übernommen worden.


    Die Log-Liste habe ich wirklich nur zu Analysezwecken gemacht, weil das Sedu für mich noch eine Blackbox war und ich zusätzliche Informationen brauchte. Musste oft die HEX-Strings aus der Log-Liste rauskopieren und sie während der Entwicklung aufs neue zum Sedu schicken. :)


    **********************************


    Falls keine Ports angezeigt werden, könnte es daran liegen, dass keine Ports im Gerätemanger installiert wurden. Unter XP ist es notwendig die Treiber manuell zu installieren.
    Dabei werden zwei Treiber installiert. Eins für USB und eins für den virtuellen COM-Port. Treiber mit virtuellen COM-Port befinden sich hier. Zumindest lief bei mir alles unter winXP-32 und Win7-64.


    **********************************


    Ja gut, falls ihr die Wünsche trotz des Quellkodes umgesetzt haben möchtet, gebt mir lieber nochmal Bescheid - sonst machen wir alles doppelt :)


    Schöne Grüße

  • hallo,


    sehr schönes programm!
    hatte bis jetzt 2 oder 3 abstürze die aber immer bei unterschiedlichen aktionen vorkamen und sich auch nicht wiederholen ließen.


    für die verbindungseinstellung: das könnte man doch so lösen mit einer schaltfläche "erweitertete einstellung" wo nach bedarf dann baudrate etc eingestellt werden können.
    falls mal jemand was anderes benötigt, ist dies dann möglich.


    daumen hoch.

  • Nö. Das ist schon drin. Wenn man das Programm auf "feste Farbe" einstellt, kann man rechts daneben auch den eingefärbten Button "C" drücken und die Farbe auswählen.

    Ah, danke! Das hatte ich tatsächlich übersehen... 8o - den könnte man evtl. größer machen und mit "auswählen" beschriften o.ä.

    Das mit den fixen Com-Port-Einstellungen wäre mir auch lieber. Habe aber hier im Board gelesen, dass sich jemand eine 20MHz Quarz ins Sedu verbauen will, drum war ich mir nicht sicher.

    Ja, aber auch damit kann man ja dann 250 kBit/s einstellen, und sollte man auch - Atmowin kann z.B. gar nicht mehr...


    Mehr würde auch nicht unbedingt was bringen - mit 250 kBit/s kann man ne Framerate von 96 fps erreichen, mehr braucht man wohl wirklich nicht :D - in meiner SW wird die Status-LED des SEDU auch angesteuert, die wechselt ihren Zustand einmal pro empfangenem Frame... bei AtmoWin flimmert sie ca. mit 12 Hz, also sendet AtmoWin sowieso "nur" 25 fps, halt einen Frame pro Videobild...


    da das Auge ja 25 Einzelbilder/sek schon nicht mehr unterscheiden kann, ist auch die Frage, ob mehr fps wirklich was bringt...? - Der User hier (Name vergessen), der die SW für diese Dingsbums-Box (Name vergessen) macht, berechnet da zwar Zwischenwerte für mehr fps, aber ich habe das noch nicht in echt gesehen, also k.A. ob das wirklich besser ist...?

    Beim bewegen des Sliders schoss das Tool aber so viele Konfigurationen ins Sedu-Board, dass es sich manchmal verschluckt hat. Sozusagen waren die Einstellungen im Tool nicht immer zu 100% vom Sedu-Board übernommen worden.

    Das ist seltsam - selbst bei max. Sendegeschwindigkeit vom PC aus kommt max. alle 640 µC-Takte (!) ein neues Byte rein, das sollte *deutlich mehr als genug* sein, um das empfangene Byte zu verarbeiten... da sollte sich eigentlich nix "verschlucken"... ?(


    da muss ich noch mal gucken, was das sein könnte - hast Du da eigentlich immer die komplette Konfiguration geschickt....?


    Weil wenn Du nur ne "Sparversion" schickst, also z.B. nur bis zum Parameter "Speed" und den Rest weg lässt (was ja auch funktioniert), dann müsstest Du zwischen zwei Sendungen natürlich immer ca. ne Sekunde Pause lassen, damit die Empfangsroutine wieder auf Empfangsbereitschaft geht...


    sendest Du aber immer *alle* Konfig-Bytes, dann sollte das eigentlich auch bei ununterbrochenem Senden gehen...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Wird das nicht irgendwo gepuffert...?


    was mir noch aufgefallen ist: die Schieber sind etwas fummelig einzustellen - wollte bei einem Programm auf Speed "1" stellen, nicht geschafft - ganz inks ist ja 0, ein winziger Ruckler an der Maus und man ist schon bei 3 oder 7... das ginge bestimmt auch besser, wenn der Slider einfach länger wäre... ;)


    naja, egal, muss jetzt in's Bett - erholsame Nacht wird's wohl eh' nicht, gerade zieht ein Gewitter auf, mein Hund fürchtet sich da immer und muss arg zittern, da wird dann das ganze Bett zu ner Rüttelplatte.. :D

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Wieder was gelernt! :D - ich muss mir jetzt echt mal irgendwo nen Überblick verschaffen, was man denn nun bei Windoof alles wie mit der Tastatur steuern kann...


    habe das mit dem Direkt ausgeben mal ausprobiert, funktioniert bei mir ohne "Verschlucker" - evtl. liegt's auch daran, dass ich nen relativ langsamen Rechner (Pentium M 1,7 GHz) habe, also die Slider etc. wohl nur langsam abgefragt werden...? - zumindest sieht man das im Log, wenn ich z.B. den Helligkeits-Fader gleichmäßig rauf und runter schiebe, dann werden da viele Werte ausgelassen, so wie wenn nur 20x in der Sekunde o.ä. der Slider abgefragt würde...


    wenn ich den (oder auch den Speed-Fader) dann ganz schnell hin- und her schiebe, dann hängt sich das Programm auf (zuverlässig, reproduzierbar) - evtl. liegt das dann an dem Overlapped-Modus, dass da irgendein Buffer überläuft oder sowas...?


    und beim Colorpicker sieht man die Farbe natürlich nicht gleich auf den LEDs - schade, aber das wäre wohl bestimmt zu aufwändig zu programmieren, nehme ich an (also da müsste man den wohl auch selbst machen...)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Uff :) Aber nichts ist unmöglich.


    Anbei hoffentlich die letzte und bereits instabilisierte Version eines ehemaligen Gelegenheitstools und mitlerweile zur Lichtmaschine entartete Anwendung :D
    Schalt wie gehabt im Menü auf "sofort konfiguration" und wähle die Farbe deiner wahl.


    http://netload.in/dateiWumNBaJfYu/Sedu_PesiEdition.7z.htm


    Schöne Grüße


    Ah, dass mit den Abstürzen lasse ich lieber sein. Werde mir sonst über die Tage noch einen Wolf debuggen. :P

  • PesiEdition.7z.htm

    Hey, wow, ne extra Edition, ich fühle mich geehrt! (ernsthaft!) - ganz vielen lieben Dank! :love:


    Funktioniert einwandfrei! :thumbup: - das ist so schon viel cooler/intuitiver/keine Ahnung wie man das nennen soll, auf jeden Fall viel besser, wenn man gleich sieht, das was passiert....


    Ah, dass mit den Abstürzen lasse ich lieber sein. Werde mir sonst über die Tage noch einen Wolf debuggen. :P

    Ja, lass' mal, ist nicht so wichtig - muss man halt langsam rumschieben, wer hektisch mit der Maus rumzuppelt ist selbst schuld.... :D

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Um das mit dem Senden an die serielle Schnittstelle etwas zu entschärfen könnte man immer nur eine Variable (wohl am Besten ein Array aus Bytes) füllen und kontrolliert über einen Timer in festen Abständen diese Variable ans SEDU schicken. Kann man ja relativ kurze Abstände machen, aber das stellt halt sicher, dass nicht mehrere Sachen gleichzeitig rausgeshiftet werden oder irgendwelche Buffer überlaufen.

  • Ja, ohne jetzt die Tücken der C++-Programmierung am PC zu kennen, hatte ich mir das ursprünglich ja auch so gedacht gehabt (da, als wir wegen Deinem Editor gemailt hatten)...


    Dass einfach alle Parameter in einem Array drin sind, und das regelmäßig rausgeschickt wird - kann ja recht flott gehen, bei den paar Bytes ohne Probleme 1.000x pro Sekunde...


    und an der Stelle war das ja ursprünglich mal gedacht, regelmäßig zu prüfen, ob das "AC" zurückkommt, um zu sehen, ob der SEDU noch "da" ist - das wäre aber nur ein nettes Zusatzfeature, nicht wirklich nötig...


    das mit der Abfrage/Event Handler, ob nun irgendwo was geändert wurde, hätte man sich damit auch sparen können, einfach wenn man was einstellt, wird's ja in's Array geschrieben, und dann beim nächsten Sende-Aufruf "automatisch" die neue Konfiguration geschickt...


    Wie gesagt, nur so als Anmerkungen, ich weiß ja nicht, wie man sowas am PC in C++ üblicherweise programmiert - so würde ich das halt auf nem µC machen, in ner Timer-(oder Tx-complete)-ISR regelmäßig die Daten rausschicken, und in der Hauptschleife die Bedienelemente abfragen und je nach dem dies oder das in den Sende-Puffer schreiben...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hallo!


    Ich habe eine SEDU 1.9-Platine geschenkt bekommen und wollte sie jetzt gerne für ein Ambilight-Projekt aufbauen.
    Halten würde ich mich an der Bauteilliste aus der Lobby:
    Bauteilliste
    mit Ausnahme des µC (atmega644p) und des Quarzes (20MHz), damit ich die vielen Pixel (ca. 210) überhaupt nutzen kann.
    Muss ich für diesen µC noch andere Bauteile aus der Liste wechseln?


    Als Software würde ich gerne Atmowin benutzen, weil die HTPC-Software Mediaportal über ein eigenes Plugin dafür verfügt, um die CPU-Auslastung zu minimieren.
    Da ich als Hardware allerdings digitale Stripes mit WS2811 habe, frage ich mich, welche Firmware ich dafür verwenden kann oder ob es überhaupt eine dafür gibt?!
    Im Software-Thread vom 28.12.11 gibt es eine Ambilight-Firmware für "alte" Sedus mit atmega16, eine für atmega644p war angekündigt, habe sie aber nicht gefunden. Außerdem kann diese kein WS2811, sondern nur WS2801, oder?
    Das tpm2-Protokoll funktioniert unter Atmowin nicht, stimmts?
    Mit anderen Worten: gibt es eine Firmware für ein 1.9er Sedu mit atmega644p, die miniDMX für WS2811 aufbereitet?


    Sind die Jumper für das Projekt so korrekt?
    Jumpereinstellungen
    Versorgung USB, reines "unterhalten" per USB. Die "LED-Brücke" soll eine SMD-LED darstellen, oder?


    Sorry für die ganzen Fragen, ich habe mich bemüht, die Antworten zu suchen, aber ich habe nicht alles gefunden ;(


    Viele Grüße
    Eggert

  • Hallo und ein gesundes neues Jahr!


    Ich habe mittlerweile das Board mit dem m644p zusammengelötet und es nach einigen Versuchen auch geschafft, den Bootloader aufzuspielen.
    Die Fuses habe ich so gesetzt:
    (low: F7 high:9C)
    http://www.frank-zhao.com/fuse…9C&EXTENDED=FF&LOCKBIT=FF


    Die Lötbrücken sind so wie im oberen Post beschrieben.
    Wenn es funktioniert, funktioniert es auch, wie es soll, sowohl die TPM2-Firmware (getestet mit Glediator) als auch die miniDMX (getestet mit AtmoWin).
    Wenn nicht, habe ich folgendes Problem:
    Das Board bootet nicht immer zuverlässig, wenn ich es einstecke (USB-Stromversorgung eingestellt). Ich habe eine ca. 50/50 Chance, dass die kleine LED nach der Bootloader-Gedenksekunde sofort anfängt zu leuchten und die Firmware sauber arbeitet. Wenn das Lichtlein mal nicht brennt, reicht ein Druck auf den Reset-Schalter.


    Ich kann mir das nicht erklären, hat vielleicht jemand einen Hinweis? Habe ich vielleicht eine falsche Oszillator-Fuse gesetzt?


    Und: gibt es mittlerweile eine m644p & miniDMX & WS2811-Firmware? Das wäre das größte nachträgliche Weihnachtsgeschenk! :)


    Viele Grüße
    Eggert