Short range data downlink
The objective is to control a remote vehicle with DSM2 and receive feedback from it using a remote transceiver and local receiver
It is designed for interfacing with customer remote and local microprocessors
13 bytes of customer data + RSSI information is available once every 22ms
CUSTOMER FLIGHT CONTROL SYSTEM (REMOTE):
Waits for stick position data from Remote Receiver (one package every 22ms)
Waits 1ms (not critical)
Then within another 3ms starts reply with 13 bytes of customer data (16 byte packet)
Controls remote vehicle
CUSTOMER TELEMETRY SYSTEM (LOCAL):
Waits for downlink data from Local Receiver (one package every 22ms)
Stores or displays downlink data
The Remote Receiver receives standard DSM2 signals from a standard DSM2 transmitter and transmits downlink data to a Local Receiver
The Remote and Local Reeceivers must both be bound to the same DSM2 Transmitter
The DSM2 Local Transmitter transmits twice every 22ms (timing is accurate)
The Remote Receiver locks onto these while signals are being received correctly
The Remote Receiver does not have a 22ms clock so timing can 'slip' when transmissions are not received (it will resync when transmissions are received again)
The Remote Receiver does not have hardware UART so the 115200 baud timing may not be accurate
The DSM2 protocol is Spektrum-compatible but the telemetry and RS-232 protocols are not
Durations are approximate
Flight Control system
(same data as in Transmit1)
|3||7.5-9.0ms||1.5ms||Output Serial1||Input Serial1||Stick postions
|RS-232, 115200 baud, LSB first, no parity, 2 stop bits (details)
1byte checksum, 1byte remote_rx RSSI, 14bytes 7ch 10bit
|4||9ms+||1.5ms||Input Serial2||Output Serial2*||Customer data||* initiate transfer within 4ms
RS-232, 115200 baud, LSB first, no parity, 2 stop bits
1byte checksum, 2bytes not used, 13bytes customer data
|5||2ms||Receive3||Transmit3||Radio downlink||Modified DSM2 on Ch82
2bytes guid, 1byte remote_rx RSSI, 13bytes customer data
|6||1.5ms||Output Serial3||Input Serial3||Transfer data to customer local control system||RS-232, 115200 baud, LSB first, no parity, 2 stop bits
1byte checksum, 1byte local_rx RSSI, 1byte remote_rx RSSI, 13bytes customer data
Pad21 is serial out.
Pad22 is serial in.
Pad24 is high while:
- sampling serial bits (x8 bits x16bytes) 1.5ms
- serial in has been validated correctly 3ms
Pad32 is high while:
- waiting for serial in (eg: 1ms if that's the gap between out and in; times out after 4ms)
- during serial stop and start bits (1.5ms)
- transmitting downlink (2ms)
- waitng for an RF signal (7.4ms when serial in starts ~1ms after serial out completes)
Pad30 is 12mhz xout
Receiving serial IN from customer system:
Not receiving serial IN from customer system:
Rx100 is used as the local receiver.
Pin1 is used for Binding on startup.
Pin7 is the Serial output.
Led's used with Pins 2-6 can show the Remote Receiver's signal strength (RSSI - 3rd byte in downlink):
- Pin2 0b00001 (LSB).
- Pin3 0b00010.
- Pin4 0b00100.
- Pin5 0b01000.
- Pin6 0b10000 (MSB).