View Single Post
Old Nov 07, 2012, 01:54 PM
Iron Savior is offline
Find More Posts by Iron Savior
ROFLCOPTER
Iron Savior's Avatar
United States, KY, Louisville
Joined Mar 2011
232 Posts
DX7 testing

I took apart my favorite radio (pre-dsmx DX7) this past weekend and used my new logic analyzer to watch pin 6 on the radio module. I observed some interesting things. I apologize, I don't have my notes with me right now, so I'm going from memory (which is known to be faulty and the mfr offered no warranty).

The overall serial packet structure was the same: 1 byte command, 1 byte model match, 2 bytes per servo channel. Hence, there were 16 bytes per transfer.

The channel numbers were NOT encoded in the high-order bits of the channel data as observed with the MLP4DSM and the full range of a single channel seemed to be expressed as a 12-bit number. Each channel (except one, noted below) was observed as being between 0x00 0x00 - 0xFF 0xF0. I was sick and medicated and tired, but I distinctly remember the max value being expressed as 0xFF 0xF0 and I that strikes me a strange as if the whole thing is shifted left by 4 bits. I never saw anything but zero in the least-significant 4 bits of each pair regardless of the value of the channel.

The 7th channel was most peculiar. I did notice that no matter what I did, the 7th channel was only ever expressed by the first byte of the last 2-byte channel data--as if the value were left-shifted 8 bits). Normally, I might assume this was just little-endian ordering, but the shifting of the first 6 channels can't be explained by byte ordering. The second byte was always the value of the first byte at the time the power was turned on. (I did some other tests that seemed to confirm the 7th channel had very much reduced resolution compared to the other channels. I would like to more thoroughly experiment before going into those details more.)

Also, I observed some unknown flags being set during binding. The command byte was 0xF1 until the bind button was released and then it became 0xD1. When powered off and then back on normally (no bind button), the command packet was 0x51. In each of these modes, it indicates that the DX7 radio is setting previously undocumented bits 1 and 7 (MSB being bit 0) in the command byte. I don't have any insights to offer on this, only that I observed it and I wonder what these flags might mean.

I need to do some more observation later tonight. I got tired and went to bed before I could finish.
Iron Savior is offline Find More Posts by Iron Savior
Last edited by Iron Savior; Nov 07, 2012 at 05:21 PM.
Reply With Quote