RunRyder RC
WATCH
 5 pages [ <<    <     1      2     ( 3 )     4      5     NEXT    >> ] 39619 views POST REPLY
HomeRC & Power✈️Aircraft🚁HelicopterRadio - Servo - Gyro - Gov - Batt › Decoding Futaba PCM 1024Z
11-09-2003 07:31 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
Frederic,
a change of 100 absolute units would for example result in a 50 units change from the differential correction. but 110 absolute units would still have 50 units differential correction. so you need to find what is the smallest absolute change before you determine the differential value. but then... how are you going to create precise absolute changes?
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-09-2003 07:35 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Hi Frederic

"Suppose we have 3 successive frames, 1, 2 and 3. A (small) step was applied between the generation of frame 1 and 2 for a given channel. For that channel frame 1 and 3 contain the absolute values A1 and A3 and frame 2 contains the differential value D2. Then should A3 = A1 + diff_array[D2]"

Yes that sounds nice! You assume using the transmitter AND receiver to measure this. One problem with this is that I have some problems generating small steps because of the RF noise coming from the transmitter.

I also thought about using ONLY the transmitter and unplug the radio module. This saves me a lot of headaches with RF noise getting into the scope. I was thinking about sending the signal to TWO channels instead of one, that way you can always see both the differential and the absolute code coming out. I then can find the 'switching point' where the delta code changes, and then check the absolute jump associated with it.
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-09-2003 07:41 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
The other [third] option would be using [ONLY] the receiver, and plugging in digital codes to see what happens with the outputs. For instance we could send pos=10, delta=0, pos=0, delta=2 in this order to channel 1 and see if the outputs keep stable. If so, delta=2 means a jump of 10. This solution needs us to inject digital pulses into the receiver, and I'm not sure that's possible. I haven't even opened the receiver yet, this is just investigation of the possibilities.
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-09-2003 08:39 PM  15 years ago
FredericG

rrNovice

Belgium

MyPosts All Forum Topic
Since my last post I have been thinking about it and also wrote this (I only have a dialup connection and so prepare a little text before I connect)

Aside from how we do the measurements, I would think that the equation will only work for small differences; a one to one relationship between step and coded differential value. For bigger steps I would think that multiple step values would map to the same coded differential value so that A3 > A1 + diff_array[D2]

So Angelos, I think we agree, we need to find out where the transitions are. No?

Wouter, I was thinking of only using the TX; connecting a function generator to the radio and look at the frames it generates. I did not think about the possibility to generate small steps might be difficult. In the past I have made a device that reads the PPM and behaves as a joystick. I used to remove the crystal from the TX because too much noise was picked up. So, yes I think this might improve things a lot.

But perhaps there is another idea to generate the steps. We can setup a mixer on the TX with a slider and connect a switch to activate the mixer (this is standard functionality on a computer radio). Toggling the switch will generate a clean step I think.

Your last idea, Wouter, is also very nice I think and I think it goes in the direction of Angelos proposal. (If so, it will definitely work )

We could also walk different paths and compare...

Frederic
SHARE  PM  EMAIL  HOMEPAGE  Attn:RR  Quote
11-09-2003 09:41 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
I though about generating PPM myself and feeding it in the 9Z, but you will find out that PPM is a bit jittery and I don't think it is sampled at 10bit resolution by the 9Z anyway. So you won't get the precise setting that you need in the absolute values.
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-10-2003 09:40 AM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Hi

" Aside from how we do the measurements, I would think that the equation will only work for small differences; a one to one relationship between step and coded differential value. For bigger steps I would think that multiple step values would map to the same coded differential value so that A3 > A1 + diff_array[D2]"

No the diff_array works for every value. There are no "multiple step" values. The diff is used only once, after that comes an absolute position update for that same channel.
I expect for the array something like this

-512,-256,-64,-8,4,2,0, 2,4,8,16,64,256,512

The delta to be taken aways has to be lower than the actual jump to avoid servo overshoot. So real jumps between 64 and 255 all map to 64.

If we dont use the transmitter module we can't use both transmitter and receiver so your first proposal to use my latency setup would not work then... But if we can decode the pcm digital signal that's no problem at all.
The idea to use the mixer and a switch is a neat idea! Only problem might be that I dont know how switches are connected, maybe we can not straightly inject volts into a switch input...
It was not clear to me, it seemed that Angelos was using analog input, and not direct injection of digital signals somewhere into the receiver. So I'm not so convinced that that will work.

Angelos, yoru idea of using PPM (via the trainer port) idea is also neat, didn't think of that one yet. But I agree, if they dont sample at 10 bits it will be troublesome to try that.
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 10:11 AM  15 years ago
FredericG

rrNovice

Belgium

MyPosts All Forum Topic
Hi Wouter,
No the diff_array works for every value. There are no "multiple step" values. The diff is used only once, after that comes an absolute position update for that same channel.
from your explanation I think you agree with me but that I didn’t make myself clear… What I meant is that the TX will generate the same “pcm_delta” for multiple differences. The receiver on the other hand will generate only one difference for a specific “pcm_delta”; in fact the lowest value, because it does not want to steer the servo over the target.

Anyhow, I did what I described yesterday:

I programmed a mixer to combine a stick with a slider. A switch controls de mixer. By toggling the switch I get a sudden step.

I modified the SmartPropo code to display, for one channel, the absolute value and the coded difference value. This is how an output looks like:
D1 8 A1 514
D1 8 A1 492 => transition without diff value
D1 8 A1 492
D1 8 A1 492
D1 8 A1 492
D1 11 A1 514 => transition where first the diff value is shown
D1 8 A1 514
D1 8 A1 514
D1 5 A1 492 => transition where first the diff value is shown
D1 8 A1 492
D1 8 A1 492
D1 8 A1 492
D1 11 A1 514
D1 8 A1 514
D1 8 A1 514
D1 5 A1 492
D1 8 A1 492
D1 8 A1 492

With this method I do not seem to be able to generate steps with odd values…

I think my setup provides workable results. I will check this further but these are my preliminary conclusions:
Diff between => coded diff (TX generated)
0->3 => 0
4->7 => 1
10->15 => 2
16->35 => 3
36->43 => 4
44->63 => 5
64->87 => 6
88-> => 7


So, as I see it now, the array looks like:
-88, -64, -44, -36, -16, -10, -4, 0, 4, 10, 16, 36, 44, 64, 88

Frederic
SHARE  PM  EMAIL  HOMEPAGE  Attn:RR  Quote
11-10-2003 10:38 AM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
it seemed that Angelos was using analog input, and not direct injection of digital signals somewhere into the receiver
I was not injecting anything in the TX. You can generate the diff values you want by assigning the channel to a switch and using servo delay. Although this will give you the diff value you want (when you figure the correct % for the delay), it does not guarantee precise steps of the absolute values too. Then you can measure the servo pulse generated by the absolute value and the following pulse to see how much the pulse width has changed.

I must emphasise again that you need to develop some microcontroller program to assist you with this. First of all you need to write some code that selectively locks to the frame of your choice. Then you can capture the absolute and differential pulses that follow.
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-10-2003 12:08 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Hi Frederic!

Yes that's much clearer as you describe it now.

Wow that is a fast result for the delta array!
Note you have 15 values in your array, there should be 16 values. (I know, my example is flawed )
Furthermore I find it odd that there is a jump of 20 between the number 16 and 36, but only a jump of 8 between 36 and 44. My guess would be that the 36 point is somewhat too high, it would more likely be around 28.
About being unable to generate even jumps, maybe you have the subtrim step on 2 instead of 1 ?
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 12:12 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Angelos,

Can you explain why you use 'servo delay'? I thought that all still depends on when you throw the switch?
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 12:58 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
If you manually move the sticks you will never get a constant rate of position change. If you use a switch with no delay the servo output will just go to the other side on a single step. If you however use a servo delay together with a switch you will constantly receive the same diff data until the servo reaches the other side. This is just a trick to make the TX generate the diff value you want so that you can measure the difference in pulse width between absolute and diff adjusted pulse.
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-10-2003 01:12 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
Frederic,
So, as I see it now, the array looks like:
-88, -64, -44, -36, -16, -10, -4, 0, 4, 10, 16, 36, 44, 64, 88
I must say that you are doing quite well! Please double cleck your values. Particularly I don't like 10 and 36.

Guys, don't tell me you haven't seen the mathematical model behind this yet!

Hint... here is the table the TX would use to generate the diff values...

01, 01, 01, 01, 01, 01, 01,
02, 02, 02, 02, 02, 02,
03, 03, 03, 03, 03,
04, 04, 04, 04,
05, 05, 05,
06, 06,
07,
08,
08,
09,
0A, 0A,
0B, 0B, 0B,
0C, 0C, 0C, 0C,
0D, 0D, 0D, 0D, 0D,
0E, 0E, 0E, 0E, 0E, 0E,
0F, 0F, 0F, 0F, 0F, 0F, 0F

-Angelos
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-10-2003 02:49 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Hi Angelos

Aaaah thanks for the explanation, I see what you mean with the delay, nice trick. I completely forgot about those airplane features and how they function. You must fly fixed wings at times or have very special gadgets on your heli!
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 02:56 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Mmmm Angelos, I know this 'mathematical model' but it fits very badly to the points that Frederic found.
Also are you sure you have TWO points represented by 8? That would mean either 0 and +1 or 0 and -1 to be represented there which is both not symmetric.
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 02:58 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
You must fly fixed wings at times or have very special gadgets on your heli!
Well, I have one pylon racer only and that needs just 3 channels. However, since I am making my own TX software I have carefully studied all functions of the 9Z for all model types.
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-10-2003 02:59 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Frederic

I indeed do remember quite large jumps from the latency measurements, therefore I mentioned values up to 512 in my example. Thus I think Angelos' maximum jump of around 30 is too low, and your 88 is better. Sure that's the maximum? Might there be more bits involved in this delta code?
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 03:03 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
w.pasman,
Angelos, I know this 'mathematical model' but it fits very badly to the points that Frederic found. Also are you sure you have TWO points represented by 8?
No, it fits perfectly with what Frederic found apart from the values that he measured wrong. Have a look at it again. It is easy.

The two points in the centre represent a small range where no differential correction takes place. Frederic already figure this out, so you can already work out what this range is.

-Angelos
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
11-10-2003 05:22 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Okay, so you suggest 0,4,8,16,28,44,64,88,116. I thought you were hinting at something else with your table So I hit it on the head saying that 36 more likely was 28

Can you check that Frederic?
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 05:32 PM  15 years ago
w.pasman

rrElite Veteran

Netherlands

MyPosts All Forum Topic
Oh and also we need to check what happens in the middle. Is there a double 0 in the middle as Angelos suggests? That would be a painful waste with only 16 values available...
SHARE  PM  EMAIL  HOMEPAGE  GALLERY  Attn:RR  Quote
11-10-2003 05:44 PM  15 years ago
Angelos

rrKey Veteran

nr Oxford, OX11, UK

MyPosts All Forum Topic
w.pasman,
no, the double is only on the transmitter side to create a small gap where no differential correction is sent. If you make small changes on the position you will notice that the diff value remains 0x08. Basically on the TX side you divide the difference by 4 and then look up on the table to see which 4-bit number you send out. Possible values are only 0x01 to 0x0F so the receiver has a 15 element lookup table.
SHARE  PM  EMAIL  GALLERY  Attn:RR  Quote
WATCH
 5 pages [ <<    <     1      2     ( 3 )     4      5     NEXT    >> ] 39619 views POST REPLY
HomeRC & Power✈️Aircraft🚁HelicopterRadio - Servo - Gyro - Gov - Batt › Decoding Futaba PCM 1024Z
 Print TOPIC  Make Suggestion 

 7  Topic Subscribe

Wednesday, August 21 - 8:19 am - Copyright © 2000-2019 RunRyder   EMAILEnable Cookies

Login Here
 New Subscriptions 
 Buddies Online