Hello all
I am an undergrad aerospace engineering student working on a project at my school which involves converting the output from an frsky-X8R receiver (5 channels) from a square wave PWM signal to a 0-5V DC signal.
This is being done by an electrical engineer more talented than myself, based on information about the PWM waves I gathered using an oscilloscope we have in the lab. He now requires more information that I can't figure out how to work out for myself:
He wants to know if all the channels are synchronized, in terms of their rise time.
Is there a way for me to check this, or does anybody know about this receiver if the channels are synchronized or not?
Thanks in advance for any help, greatly appreciated.
Happy new year to all!
FRSky X8R receiver question
- MikeB
- 9x Developer
- Posts: 17993
- Joined: Tue Dec 27, 2011 1:24 pm
- Country: -
- Location: Poole, Dorset, UK
Re: FRSky X8R receiver question
Well, if the 'scope is dual trace, just put servo channel 1 on one trace, and see how the other channels are timed relative to that one.
If I was to try to answer the question, that is what I would have to do.
Mike.
If I was to try to answer the question, that is what I would have to do.
Mike.
erskyTx/er9x developer
The difficult we do immediately,
The impossible takes a little longer!
The difficult we do immediately,
The impossible takes a little longer!
Re: FRSky X8R receiver question
I'll try to do that, thanks!
Re: FRSky X8R receiver question
Note that the behavior may vary between different receiver firmwares (notably EU/rest of world) so be sure to check in all configurations you intend to support.
Re: FRSky X8R receiver question
hi Aeroampl, i go to give you a generic answer, yo have pulses from 1100 uSecs. to 1900 uSecs., on each channel every 20 mSecs., once the channel one receives the burst, starts the two, then the three and so on, no channels starts receiving his signal at same time, just one after other, convert the servo signal to pwm, it's too easy, easiest way, Arduino or any other Atmel uController, look:
//Lectura de la entrada de pulsos desde el receptor
EntradaPulsos1 = pulseIn(In_1_RC_Channel_5, HIGH, 50000); //Lectura del pulso de entrada 1 sin timeout o con 50 mS de timeout
EntradaPulsosReal1 = EntradaPulsos1; //Guardamos el valor real de la entrada 1 de impulsos antes de corregirlo
Sorry to have it in Spanish, in the variable EntradaPulsos1 you have a value between 1100 and 1900 or zero, if the emmiter is off, i always scale this signal, like here:
if (EntradaPulsos1 < servolimitLow)EntradaPulsos1 = servolimitLow; //Vigilamos los limites de la señal de entrada 1 y los ajustamos si están fuera de rango
if (EntradaPulsos1 > servolimitHigh)EntradaPulsos1 = servolimitHigh;
look at the alarm generation, using the lack of pulses on channel:
if (EntradaPulsosReal1 == 0 || AlarmaTemperatura == HIGH || AlarmaBateria == HIGH)ErrorSignal = HIGH;
else
{
ErrorSignal = LOW;
}
now i have a clear range of signal, 800 points i can scale to my PWM signal, and the zero pulse state to generate an alarm, i'm using this program in some devices.
I hope this will help you
//Lectura de la entrada de pulsos desde el receptor
EntradaPulsos1 = pulseIn(In_1_RC_Channel_5, HIGH, 50000); //Lectura del pulso de entrada 1 sin timeout o con 50 mS de timeout
EntradaPulsosReal1 = EntradaPulsos1; //Guardamos el valor real de la entrada 1 de impulsos antes de corregirlo
Sorry to have it in Spanish, in the variable EntradaPulsos1 you have a value between 1100 and 1900 or zero, if the emmiter is off, i always scale this signal, like here:
if (EntradaPulsos1 < servolimitLow)EntradaPulsos1 = servolimitLow; //Vigilamos los limites de la señal de entrada 1 y los ajustamos si están fuera de rango
if (EntradaPulsos1 > servolimitHigh)EntradaPulsos1 = servolimitHigh;
look at the alarm generation, using the lack of pulses on channel:
if (EntradaPulsosReal1 == 0 || AlarmaTemperatura == HIGH || AlarmaBateria == HIGH)ErrorSignal = HIGH;
else
{
ErrorSignal = LOW;
}
now i have a clear range of signal, 800 points i can scale to my PWM signal, and the zero pulse state to generate an alarm, i'm using this program in some devices.
I hope this will help you
Trying to learn something and help the others