Lost and Found

This page contains content from a previous website which was not properly migrated to its new place. Please excuse the mess...

10/13/2009

Multiplex Royal Pro (EVO) with Telemetry Display
EVO Display
After decoding the servo pulses from the EVO (see previous post), I started working on the telemetry data.
The TX module sends packages of 5 bytes. If no sensors are found, 00 FF 00 00 00 is sent. The use of the first and last byte is not fully known. The second byte is split into two nibbles. The higher one contains the sensor number, the lower one the unit. Unit symbols are:
01: V
02: A
03: m/s
04: km/h
05: rpm
06: °C
07: °F
08: m
09: % Fuel
10: % LQI
11: mAh
12: mL
13: <none>
The next two bytes contain the actual data, 15-bit signed, LSB first and the alarm bit. When set, the display highlights the value and an alarm sounds.
The above sample was created by sending:
00 01 B9 00 00
00 13 EC FF 00
00 22 BC 01 00
When climb rate is shown (line two), one can activate an acoustic feedback (switch I). Two beeps high-high or high-low indicate climb or descent, and the pause between the signals gives an indication of the amount.
And here's a description of the full protocol:
How did I find this? I wrote a small C# application for my PC and instead of mounting a Rf-module, I hooked the connector over a USB-TTL converter (FTDI TTL-232-3V3) to the PC... Using this setup, the PC is emulating the Rf-module. Since this is independent of Multiplex M-Link, my EVO (or should I call it ROYALpro?) is now named S-Link ;-) (Thanks, Michael!)
EVO Display
Posted at 23:50 by Markus Stoeckli

9/25/2009

Communication protocol between Multiplex ROYALpro and M-LINK module HFM4
After publishing the communication between the transmitter and the MHz modules, I decoded the protocol with the M-LINK module HFM4. Here are the changes.
The module has a new identifier:
Then, the data is exchanged using the same protocol as previously described, but with a different scaling on the stick values.
The module itself sends 5 status bytes: 0,255,0,0,0
And here's the summary:
And below is a summary of the channel data (thanks to the comments by Yannick).
And these are the recorded files to be analyzed with the software from Saleae:
Switching on with a module bound: here
Switching on waiting to bind: here
Waiting and then binding: here
Posted at 16:15 by Markus Stoeckli

2/2/2009

Communication Multiplex EVO to Rf

With the availability of the new 2.4 GHz transmitter modules from various vendors, I was wondering if it would be possible to directly get the channel data from the transmitter instead of reading out the PPM signal. I love my EVO, and so I chose to find more information about it. First thing on the list was a patent search... and I found DE 198 18 919 C 1. This German patent explains how the EVO and its RF module work together. Traditionally, the transmitter would directly send the PPM signal to the rf module, which would then takes this signal to directly modulate the rf. The EVO setup goes a different route. The transmitter send information to the rf module, which generates the modulation signal itself. The patent does not describe the protocol, but that was fairly easy:

 

This image shows the overview of the signals (pin-out rf connector, from top: D Tx->Rf, Rf EN, Vcc, GND, D Rf->Tx, Rf)

 

Overview

Now we zoom into the different regions. The transmitter sets Rf EN to low, and queries the rf module by a 'v', (19200 baud, 1 start bit, no parity, 1 stop bit).
v
The module responds in clear text:
r
r
Next comes a query for the scanner with a '?'. The scanner reports the channel and the frequency...
... followed by the measured intensity.
Now, the Tx requests rf by sending an 'a':
Which is promptly done:
The transmitter switches to 116 kBaud and sends the channel info package every 24.2 ms. The first byte contains the number of channels (e.g. 0x09), then the channel information is encoded in two bytes each, containing 12 bit signed values:
Simple as that...
If you want to analyze the data yourself, you may download this startup sequence recorded from a RoyalPro with Firmware 3.30 set to 9 channels, with ch1 set to -100, ch2 to +100 and the rest to 0. The software for the analysis you'll find here. And here you'll find the same data recorede with firmware 2.62.
Posted at 22:12 by Markus Stoeckli

9/28/2008

Zeptrion IR Fernbedienung

OK, diese Projekt geht schon eine Weile zurück. Da es auch nur in der Schweiz wohnende betrifft, erfolgt die Beschreibung auch in Deutsch. Die Idee kam zustande, als ich einen Teil der Hauses auf Feller® Zeptrion umrüstete. Diese System erlaubt das einfache Einrichten von sogenannten "Szenen" für Beleuchtung und Storen. Mehr zum Hintergrund: Ich habe einen Beamer um TV zu schauen. Dieser leuchtet quer über den Raum, mit einer Lampe dazwischen. All meine A/V Geräte werden von einen Logitech® Harmony Fernbedienung angesteuert, ausser eben die Lampen. Laut Herstellerangaben unterstützt die Harmony auch Zeptrion und Zeptrion unterstützt Szenen - also ideale Kombination. Ein Zeptrion Dimmer für jede Lampe ist schnell eingebaut, ein Zeptrion Storenschalter für den Motor der die eine Lampe nach oben bewegen soll und eine Zentralstelle mit IR Empfänger ergänzen das System. So weit so gut, ich kann die Hauptstelle so programmieren, dass ich eine Fernseh-Szene per Knopfdruck aktivieren kann (Hängelampe geht nach oben und schaltet aus, Stehlampe geht auf 10% Helligkeit). Aber dann kam die Ernüchterung: Der Zeptrion IR Empfänger unterstützt keine Szenen! Das System sieht viel mehr vor, einen IR-Empfänger auf jede Hauptstelle zu setzen und dann die Szenen auf dem IR-Sender zu programmieren. Aber dies kann die Harmony nicht...

 

Nach dem grossen Frust kam dann die Idee, die Frontplatte der Zentralstelle mit einem eigenen IF-Empfänger zu versehen. Von der Idee bis zur Lösung lagen dann zwei Tage und nun läuft mein Zeptrion problemlos mit der Harmony. Interessiert? Schreibt einen Comment und ich publiziere die Details... bin bis jetzt einfach noch nicht dazu gekommen... Also hier schon mal ein paar Bilder vom Prototypen und dem neuen PCB:

 

 

New PCB

Posted at 19:43 by Markus Stoeckli