Ben®
10.11.2011, 13:24

Fragen zum PF-Protokoll: kann man für 8 weitere Kanäle modifizieren?

Moin Moin!

Eigentlich habe ich schon alles versucht in die Überschrift zu quetschen. Also nochmal im Detail:

Mit meinen originalen LEGO-PF-Sendern und originalen PF-Empfängern stehen mir 8 Sendekanäle für bis zu 8 unabhängige "Verbraucher" (Motoren, Licht etc) zur Verfügung.

Bei 3×Loks mit 3×Beleuchtung sind schon 6 Kanäle verballert. Jetzt noch eine Drehscheibe (drehen lassen + Strom auf Schienen geben) - da sind dann alle 8 Kanäle "weg". Weitere Autos, Schranken, mehr Loks etc. gehen nicht.

Gibt es Wege, die Sender (und ggf dazu passend die Empfänger) so umzubauen, daß ich wenigstens 16 Kanäle frei habe?

Ich hörte, die Empfänger wären per Protokoll wohl sogar schon auf 16 Kanäle vorbereitet. Kennt wer einen Weg um den Sender entsprechend "umzubauen" (gibt es innen womöglich gar einen kleinen Schalter der nur umzulegen ist und fertig?

Wäre super, wenn man dann auf einmal doppelt soviele Kanäle frei hätte.
Aus meiner Sicht wäre vor allem begrüßenswert, wenn auch die Empfänger modifiziert sind und nur noch auf modifizierte Sender reagieren. Dann sind "Störsender" bei z.B. Ausstellungen etc. chancenlos.

Kann jemand das hier einfach beantworten?
Oder kennt wer eine Expertenseite, wo solche Erweiterungen beschrieben sind?

Leg Godt!


14 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

asper
11.11.2011, 20:44

Re: Im Prinzip geht's, ABER...

Hallo Jörg,

» das ist doch mal eine klare Ansage. Danke!

Gerne geschehen :-) Ich werde am Wochenende wahrscheinlich mehr Zeit dafür finden und kann dann hoffentlich meine Ergebnisse mit mehr als zwei Motoren reproduzieren...
»
» Um es kurz zu sagen: die PF-Empfänger sind in der Tat in der Lage, den
» zusätzlichen Adressraum zu nutzen, lediglich die Sender nicht.
»
» Mein nächster Gedanke ist (im Sinne von Ben), dass man die zusätzlichen
» Signale, die man bräuchte, sicherlich auf eine TV-Fernbedienung mit
» Lernfunktion aufbringen könnte, oder? In diesem Fall wäre eine
» Lego-Ausstellung um ein paar Kanäle bereichert.
»

Sollte funktionieren - damit habe ich aber keine Erfahrung. Was ich noch nicht verstanden habe: Dieses zusätzliche Adressbit ist ja "neu" - ab Firmware 1.1. Wie kann man "alte" Empfänger erkennen?

Gruß
Steffen


gockelhahn
12.11.2011, 21:23

Re: Im Prinzip geht's, ABER...

das wäre schon sehr cool, wenn man dann 2x 8 hätte...die statischen
controller über den pc steuern, die züge wie gehabt. IDEAL!
Denn es ist einfacher sowas wie weichen oder signale über den pc zu steuern, als noch zusätzliche fernbedienungen in der hand zu haben (wobei für weichen die fb des rc-autos ideal ist)

mit den IR-Lernfernbedienungen ist das so eine sache!
ich habe 2-3 solche, billige wie teure, aber zB bekomme ich damit die ir-fb meiner klimaanlage nicht ersetzt...und genau das war mir wichtig, weil wenn die fb schrott ist kann ich die klima wegschmeissen.
ich hab es mit den lego ir auch schon mal probiert, das ging auch nicht...

also ich glaube lern-fb gehen echt nur für av-geräte...


Ben®
13.11.2011, 13:48

Danke für die interessanten Denkanstöße. Schade, daß es so kompliziert wird... (ohne Text)


legoeisenbahn
14.11.2011, 00:03

Re: Fragen zum PF-Protokoll: kann man für 8 weitere Kanäle modifizieren?

Hallo Ben

Vielleicht kommst Du damit auf 16 Kanäle Scheint mir nicht so kompliziert zu sein. Pfeifen und Du bist in den höheren 8 Kanälen.

Ev. lässt sich das Erweitern mit 2x pfeifen, einem kurz, einmal lang etc.

http://www.brickshelf.com...n/gallery.cgi?f=161393

Gruss LEB


Rat
14.11.2011, 16:27

Re: Im Prinzip geht's, ABER...

Hallo Jörg,
die meisten Fernbedienungen beherrschen dieses PF-timing nicht.

IR-Fernbedienung setzt sich ja aus mehreren Bausteinen zusammen.
1: IR Wellenlänge - bestimmt durch Sende und Empfangsdiode
2: Pulsfrequenz in der Regel 30-60kHz
3: Kodierung - RZ-Code, Manchester-Code, NRZ oder PWM
4: Protokoll - z.B. RC5, NEC, JVC, Motorola uvm.

2. 3. 4. läßt sich alles mit einfach mit einem Mikroprozessor nachbilden,
aber die Universalfernbedienungen sind eben nur für einen bestimmten
Anwendungsbereich abgestimmt.

Gruß,
Stefan



» Hallo Steffen,
»
» das ist doch mal eine klare Ansage. Danke!
»
» Um es kurz zu sagen: die PF-Empfänger sind in der Tat in der Lage, den
» zusätzlichen Adressraum zu nutzen, lediglich die Sender nicht.
»
» Mein nächster Gedanke ist (im Sinne von Ben), dass man die zusätzlichen
» Signale, die man bräuchte, sicherlich auf eine TV-Fernbedienung mit
» Lernfunktion aufbringen könnte, oder? In diesem Fall wäre eine
» Lego-Ausstellung um ein paar Kanäle bereichert.
»
» Gruß
» Jörg


freakwave
14.11.2011, 21:41

Re: Im Prinzip geht's, ABER...

Hallo Steffen,


Deine Antworten haben mich sehr neugierig gemacht. Und natürlich war ich dann auch nicht untätig
Ich habe mich bei HiTechnic gemeldet wie ich denn diesen Befehl schicken könnte. Da ich der C-Sprachen nicht mächtig bin hat mir Gus vom HiTechnic Support einen modifizierten Block geschickt. Der Block sollte in der Lage sein in den Extra-Adressraum zu toggeln und Entsprechende Befehle für die Kanäle im Extra-Adressraum zu schicken.

Nun hat Gus mir auch geschrieben das es bei ihm nicht funktionierte. Nun Probierte ich es auch und es ging auch nicht. Toggle geschickt, aber der Empfänger reagierte noch immer auf die PF Remote (was er ja dann nicht mehr sollte)

Zwei Möglichkeiten:
1.) Der Block ist nicht so modifiziert dass das Schalten in den Extra-Adressraum funktioniert.
2.) Die Empfänger haben die V1.0 FW drin.

Da ich Deinem Posting entnehme dass es bei Dir funktioniert hat:
» Damit habe ich u.a. einen Befehl implementiert,
» der den oben erwähnten "Toggle Address Bit" Befehl schickt. Danach ist der
» IR Empfänger über die Standard LEGO Fernbedienung nicht mehr erreichbar,
» sondern nur noch über den PC. (Ich habe damit aber noch nicht besonders
» viele Tests gemacht...)

Darum fangen wir mal mit 2. an:

Die IR-Empfänger haben unten einen Stempel der vermutlich das Produktionsdatum zeigt, meine haben: 16K7, 12K8, 40K8. Das sagt mir leider nichts, ich kann nur mutmaßen dass 1 und 2 die KW ist und 3 und 4 das Jahr?!?

Welchen Produktionscode/Stempel haben Deine mit denen es funktioniert hat?

Ich hab einen auch mal aufgeschraubt, leider kann man drin auch nichts weiter erkennen ausser einem Stempel auf der Platine der (etwas unleserlich) mit dem Stempel aussen übereinstimmt (?!). Der einzige Chip mit einer Beschriftung ist der Motortreiber, der Chip liegt unter Kaugummi.

Gehen wir zu 1.)
Unterpunkt a) Umschaltung:
Das PF-Protokoll wiederholt das Telegram pro "Sendeeinheit" 5 x.
Hast Du das auch für das Toggle-Kommando gemacht?
Oder sendest Du das Toggle-Telegramm nur 1x (ohne die Wiederholungen die am Ende der PF-Protokollbeschreibung aufgelistet sind.

Unterpunkt b) Adressbit Set:
Das konnte ich leider nicht testen da die Empfänger nicht auf das Toggeln reagiert haben. Somit glaube ich dass ich alte FW habe :-(
Wüßte nicht was ich senden sollte um das auszuprobieren....

» ABER:
» 1) nach dem Aus- und Einschalten ist alles wieder vergessen. Im konkreten
» Fall könnte man sich vorstellen, alle fest installierten Empfänger
» (Schranke, Drehscheibe, ...) einzuschalten, den Adressraum zu ändern und
» danach erst die Züge in Betrieb zu nehmen. Dann kann man mit den Zügen
» ganz normal fahren

Das wäre mal ok für den Anfang.

» 2) für alle umkonfigurierten IR Empfänger braucht man dann einen
» speziellen Sender. Mit dem Arduino kein Problem (damit sollte auch eine PC
» unabhängige Steuerung zu realisieren sein), aber mit den Standard LEGO
» Mitteln meines Wissens nicht möglich.

Mit dem modifizierten NXT Block wäre das kein Problem.

Danke

Gerald


asper
15.11.2011, 14:34

Re: Im Prinzip geht's, ABER...

Hallo Gerald,

ich bin gerade nicht zu Hause, daher kann ich Dir nichts zu den Versionen meiner Empfänger sagen.

Aber ich habe bei weiteren Tests das gleiche beobachtet. Mein Eindruck ist, dass der nächste Befehl nach dem Togglen das Adressbit gesetzt haben muss, sonst fällt er wieder zurück. D.h. wenn ich den Toggle Befehl schicke, dann die Lego Fernbedienung verwende, reagiert der Empfänger wieder darauf. (Ich wollte noch mehr Kombinationen probieren und dann hier wieder antworten)

Wenn ich nach dem Toggle bit einen Befehl mit gesetztem Adressbit sende, dann bleibt der Empfänger in diesem Zustand und reagiert nur noch auf die Befehle mit gesetztem Adressbit und ignoriert die LEGO Fernbedienung

Ich habe dann immer einen einfachen "Float" Befehl für einen der Kanäle geschickt - das hat ausgereicht.

Der Toggle-Befehl wird nicht anders behandelt als die anderen Befehle - also auch mehrmals gesendet.

Ich hoffe das hilft weiter,

Gruß
Steffen


freakwave
15.11.2011, 15:06

Re: Im Prinzip geht's, ABER...

» Aber ich habe bei weiteren Tests das gleiche beobachtet. Mein Eindruck
» ist, dass der nächste Befehl nach dem Togglen das Adressbit gesetzt haben
» muss, sonst fällt er wieder zurück. D.h. wenn ich den Toggle Befehl
» schicke, dann die Lego Fernbedienung verwende, reagiert der Empfänger
» wieder darauf. (Ich wollte noch mehr Kombinationen probieren und dann hier
» wieder antworten)
»
» Wenn ich nach dem Toggle bit einen Befehl mit gesetztem Adressbit sende,
» dann bleibt der Empfänger in diesem Zustand und reagiert nur noch auf die
» Befehle mit gesetztem Adressbit und ignoriert die LEGO Fernbedienung
»
» Ich habe dann immer einen einfachen "Float" Befehl für einen der Kanäle
» geschickt - das hat ausgereicht.

Danke für die schnelle Antwort!

OK, dann muss ich das mal ausprobieren vielleicht hilft das! Das wäre gut!

Ich habe auch noch eine Mail an LEGO losgelassen um etwas Licht in die Numerierung zu bringen. Mal sehen ob da was kommt!

Wär interessant die Nummer auf Deinem Receiver zu kennen bei dem es geht!

Gerald


freakwave
16.11.2011, 22:12

Jugend forscht, bzw. Was zu zeigen war: ES GEHT!!! 16 PF Kanäle!!!

Hier nochmals Ben's ursprüngliche Frage zu den PF-Teilen wie wir sie kennen:

» Gibt es Wege, die Sender (und ggf dazu passend die Empfänger) so
» umzubauen, daß ich wenigstens 16 Kanäle frei habe?
»
» Ich hörte, die Empfänger wären per Protokoll wohl sogar schon auf 16
» Kanäle vorbereitet. Kennt wer einen Weg um den Sender entsprechend
» "umzubauen" (gibt es innen womöglich gar einen kleinen Schalter der nur
» umzulegen ist und fertig?

Wie ich schon hier, ein paar Antworten weiter hinten schrieb machte mich apser's Bericht sehr sehr neugierig!

Ich bekam ja von HiTechnic ein Unterstützung aber es wollte nicht mit dem Block funktionieren. Von HiTechic kam dann auch der Rat es mal mit der Rohdaten-Schnittstelle des IR-Sensors zu probieren. Gesagt getan, die NXC-Suite installiert und los ging es. Die Rückschläge erspare ich Euch...

Nun zu den IR-Empfängern:
LEGO hat mir hier noch nicht wirklich weitergeholfen (mit den Produktions-Daten der IR-Empfänger) Eine Mail mit Verweis ans Mindstorms-Team und eine Telefonat mit einer dem PF nicht mächtigen. Aber vielleicht kommt ja noch was.
Nach den letzten Experimenten wage ich jedoch die folgende Behauptung aufzustellen:
Stempelbeispiel:
- 16K1 : 16. Kalenderwoche im Jahre 2011 (mit dem ging es)
- 40K7 : 40. Kalenderwoche im Jahre 2007 (mit dem nicht)
Ds PF-Protokoll wurde 2009 ergänzt. Das Dokument ist datiert auf den 28.10.2011. D.h. wenn die FW da schon ein paar Wochen in der Produktion war (Mutmaßung, da ja LEGO's Antwort fehlt) geht dieser Extended Address Mode erst bei Empfängern mit Stempel größer als "30K9". Ich habe leider keinen mit einem "K9" Stempel.

Wie sag ich's dem Empfänger?

- Sehr wichtig: Um in NXC mit dem HiTechnic IR Sensor kommunizieren zu können muss man folgendes Kommando am Anfang ausführen: SetSensorLowspeed(S1);
- Der Empfänger braucht nur das Toggle-Kommando für den erweiterten Adressraum.
Dann geht er dorthin und bleibt dort. Auch wenn kein weiteres Kommando für den Kanal kommt.
Das war eine offene Frage an asper/Steffen, ist somit geklärt.
In Rohdaten schickt man an den Empfänger also entweder "0x07,0x00,0x06" oder "0x00,0x00,0x06". "07" oder "00" betrifft nur die Sendesequenz, das wird vom Sender im Wechsel gesetzt, also am besten beide Strings hintereinenander absenden, dann geht es sicher.
Das Umschaltekommando für Kanal 1 in NXC: HTPFRawOutput(S1,0x07,0x00,0x06);
- Alles weitere muss mit dem gesetzten Extra Addressraum Bit gesendet werden.
z.B. Volle Kraft voraus auf dem roten Port des Kanal 1 (der quasi jetzt zum Kanal 5 wurde) HTPFRawOutput(S1,0x00,0x0c,0x07); oder HTPFRawOutput(S1,0x07,0x0c,0x07); (siehe Sendesequenz)

Damit hat man jetzt 8 Kanäle die sich über die LEGO PF Remote kontrollieren lassen und man hat noch 8 zusätzliche die durch den NXT kontrolliert werden können!

Das Umschalten und Steuern hat am Ende auch mit dem modifizierten Block von HiTechnic funktioniert!

Und das ganze geht ohne irgendwelche Steine oder Firmware zu beschädigen!

Ein ganz froher
Gerald


Ben®
18.11.2011, 13:58

Re: Jugend forscht, bzw. Was zu zeigen war: ES GEHT!!! 16 PF Kanäle!!!

» Und das ganze geht ohne irgendwelche Steine oder Firmware zu
» beschädigen!

»
» Ein ganz froher
» Gerald

Hallo Gerald,

vielen Dank fürs Mitteilen: das hätte ich jetzt um ein Haar verpaßt!

Aber da muß ich jetzt erstmal nachschlagen. HiTechnic, NXC und die kryptischen Befehle. Das ist für mich mindestens so kompliziert, wie für den Eisbären ein Bild in der Pixelzahl runterzubrechen.

Aktuell überwiegt die Faulheit und ich kann mich vielleicht noch eine Weile mit nur 8 Kanälen abfinden. Aber wo es doch gestern den NXT 2.0 zum halben Preis gab und ich zugriff - da sehe ich mittelfristig auch dei Chance mich da tiefer reinzufuchsen.

Wenn Du Dein Tutorial irgendwann noch weiter im Niveau abspecken könntest, so daß selbst 10-jährige ohne Vorkenntnisse das nachvollziehen könnten, wäre ich überglücklich. Dann sollte ich das nämlich auch hinbekommen.

Lieben Dank nochmals!


Gesamter Thread: