Conrad MS-35

Hallo zusammen,

ich hab mir zu basteln bei Conrad den MS-35 LED stripe controler gekauft.
Das Ding hat eine serielle Schnittstelle. Ich habe es geschafft das Ding ohne das USB Kabel sondern direkt über RS232 an den PC anzuschließen und mit der beigefügten Software zu steuern.
Leider ist das Protokoll der Steuerung nicht offen gelegt. Mit einem RS232 Monitor kenne ich mich absolut nicht aus und habe keine Ahnung wie ich sehen kann was da übertragen wird.

Könnte man einen Disassembler nehmen und die in .NET geschriebene Software zerlegen?

Hat jemand von euch die Steuerung im Einsatz bzw. selbst Software dafür geschrieben?

Viele Grüße
Christian

So’n Teil habe ich mal geschenkt bekommen, allerdings ohne Schnittstelle, FB und Software.

Du mußt dir einen serielle Sniffer besorgen oder mit einen Logicanalyser mit Protokoll-Software lauschen.

Gibt es eine DLL zu der Soft? Ev kann man dort was erlesen…

Gruß Helmut

Die Schnittstelle ist direkt RS232. Im Handbuch zum USB Adapter lässt dich RX, TX und GND ablesen. Ich hab nen Pegelwandler dran gepappt und direkt mit der RS232 Schnittstelle verbunden und es läuft.

Software ist leider keine DLL sondern ne EXE.
Die Schnittstelle läuft mit 9600 Baud.

Der USB Programmier Adapter: http://www.produktinfo.conrad.com/datenblaetter/175000-199999/197339-an-01-ml-USB_Programmieradapter_de_en_fr_nl.pdf

Die Software: http://www.produktinfo.conrad.com/datenblaetter/175000-199999/181818-up-01-en-RGB_CONTROLLER_MS35.zip

MS-35 PDF: http://www.produktinfo.conrad.com/datenblaetter/175000-199999/181818-an-01-ml-RGB_LED_Steuergeraet_de_en_fr_nl.pdf

Viele Grüße
Chris

Das ist ja mal wieder ein Service!

Danke sehr. Komme aber erst Ende der Woche dazu es zu probieren…

Gruß Helmut

Hallo Helmut,

keine Hektik! Ich freue mich ja, wenn mir jemand helfen kann.
Ich werde mich auch mal weiter damit beschäftigen, mal sehen ob ich was rausfinden kann.

Falls noch jemand anderes Infos dazu hat… immer her damit! :slight_smile:

Vielen Dank und viele Grüße
Christian

So, habe ein wenig Zeit „investigiert“.
Damit kannst Du schonmal üben.

Mein ser. Port muß 38400 8N1 haben.

Was nicht geht, obwohl ich es so notiert hatte, habe ich vermerkt.
Da übe ich noch mit, iM aber no time for that…

Gruß Helmut

Für 20,00 Teuronen, und 'nen Pollin Comport-Adapter oder 'nen XPort, speziell für Ingo :wink: …kannst nicht meckern, und noch vergessen:

Das RGB-Modul sendet Hex 61 als „Gut“-Quittung zurück, wenn Du Hex 65 zurück bekommst, hast du verloren.

// Um den Port aufzumachen
//10 mal FD senden, dann 6 mal 00, danach CF und 2C senden
//COMPort_SendText(45611 /*[Serial Port Conrad]*/,  chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0xFD).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xCF).chr(0x2C));

// Turn off Programm
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x08).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x48).chr(0xAB));

// Pause Programm
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x06).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x66).chr(0xAA));

//Continio Programm
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x07).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xB7).chr(0xAB));

// User Programm 1
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x04). chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0x44));

// User Programm 2
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x05). chr(0x00).chr(0xFE).chr(0xFE).chr(0xFE).chr(0x22).chr(0x21).chr(0x74).chr(0xF4));

// Color change no hold time
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x03).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xD1).chr(0xEF));

// Color change slow fading
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x02).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0xD2));

// Color change Standart
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0x96));

// Fireplace
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x05).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0x96));

// Tempest
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x04).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0x5A));

// Sunrise and sunset
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x06).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xD1).chr(0x23));

// Reduce Speed  1/2
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x02).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x22).chr(0xBB));

// Reduce Speed 1/1
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0xBB));

// Reduce Speed 1/8
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x08).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x88).chr(0xBB));

// Reduce Speed 1/4
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x04).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x44).chr(0xBB));

// Reduce Speed 1/16 
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x10).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x50).chr(0xB8));

// Reduce Speed 1/32
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x20).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xA0).chr(0xBD));

// Reduce Speed 1/64
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x40).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xB4));

// Reduce Speed 1/128
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0B). chr(0x80).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xA5));

// Reduce Brightniss 1
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0C). chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xD1).chr(0xCD));

// Reduce Brightniss 1/2
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0C). chr(0x02).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xE2).chr(0xCD));

// Reduce Brightniss 1/3
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0C). chr(0x03).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x33).chr(0xCC));

// Flash Colors
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x07).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x11).chr(0x1E));





// User Programm // geht nicht
//COMPort_SendText(45611 /*[Serial Port Conrad]*/, chr(0x0A). chr(0x01).chr(0x09).chr(0xFE).chr(0xFE).chr(0x22).chr(0x21).chr(0xD0).chr(0x77));


Helmut, du bist der Hammer!
Vielen Dank dafür… Das werde ich sofort testen wenn ich wieder zuhause bin. Bin bis Mittwoch noch beruflich unterwegs.
Vielen Dank dafür!

Hallo zusammen,

danke an die Vorredner.

Beim näheren Betrachten des Protokolls (z.B. mit dem kostenlosen Tool SerialMon), sieht mann dass es 7 Bytes Daten und 2 Byte Checksumme verschickt werden. Es handelt sich hierbei um die CRC16 Berechnung. (kann man hier z.B. prüfen http://www.lammertbies.nl/comm/info/crc-calculation.html).

Somit steht ein günstiger 3 kanäliger Dimmer, auch z.B. für 3 weiße LED-Lichtketten, zur Verfügung.

Hi, das ist derzeit eine Sache die ich recht kurzfristig bauen möchte (Dimmer oder Schalter Kaltweiß - Warmweiß) - könnte mir jemand kurz den Ansatz geben wie mit dem Controller gedimmt wird? Läuft das über Spannungshöhe oder ist bei LED Dimmen anderes zu beachten?

Danke & Grüße
Liam

Hi Liam,

über Spannung kann man keine LED Dimmen.

Wenn der Strip es zulässt nur über eine Konstantstromquelle dimmbar.
Goggel mal oder Conrad

@Liam
Hier wird es mit einer seriellen Verbindung und einem Programm, dass Werte an das Modul schickt, „gedimmert“.

Das Programm könnte von großem C kommen, hier sind wir aber bei IPSymcon, deshalb verwenden wir gerne eine andere, eigene Methode.

Gruß Helmut

/me muss erstmal Staub hier wischen :smiley:

Auch wenn schon etwas her; ich habe auch eniger dieser Geräte im Einsatz.
Passend dafür gibt es hier jetzt ein Modul für die Einbindung in IPS:
[Modul] MS-35 RGB Controller

Sogar das Thema ist vom Tisch:

Und es lassen sich sogar die Programme 8 & 9 per IPS (über ein PHP-Script) beschreiben.

Michael