Page 1 of 1

Success: LRS replaced with cheap HM-TRP and MSP_SET_RAW_RC!

Posted: Sat Sep 06, 2014 8:53 pm
by serveurperso
Bye bye to my EzUHF with 1.2GHz 3rd harmonic and expensive RX.

Removed: 'ACK' only for MSP_SET_RAW_RC (useless byte and not in TDD sync)
Extended MSP_SET_RAW_RC timeout to 2 or 3sec. with a uint16_t counter (all ch to 1500 is GPS hold failsafe !)
I added a more *TDD efficient* telemetry streaming task (TDD sync)
I can use original MSP with any software and over modems (it temporaly and automaticly disable the simple telemetry streaming.)

code : https://github.com/Serveurperso/multiwi ... eam_shared
from last MultiWii 2.3 master

Short test flight with telemetry streaming enabled, almost no latency : https://www.youtube.com/watch?v=U8N6o8dga6w
I use a SBUS to MSP_SET_RAW_RC relay embedded inside my RF relay for long range flight (house roof/car roof...)

SiK last unmodded firmware 1.9 master @ 33ms TDM window

Because I use a modded 2W shireen amp on 878-888 (900MHz saw removed, and external 888MHz murata bandpass) I get more range vs. EzUHF and no harmonic to 1.2GHz and less noise floor on all quad.

Pascal

Re: Success: LRS replaced with cheap HM-TRP and MSP_SET_RAW_

Posted: Thu Sep 11, 2014 7:37 pm
by EOSBandi
Hi Pascal,
It looks great. Perhaps you can try my MW modded SiK firmware, which tries to align radio packets with MSP_ packets, and injects radio status packets into the stream. (https://code.google.com/p/sik-multiwii/)
BTW, could you share some info about your octo diversity ?
Regards,
EOS

Re: Success: LRS replaced with cheap HM-TRP and MSP_SET_RAW_

Posted: Thu Oct 23, 2014 9:49 am
by serveurperso
Hi EOSBandi,

Sorry for my bad english. I just read your message here and cloned your repo to check your work.

The 8 diversity is basically a "solid state" drone tracker with high speed analog switch between 8 tuners(+LNA, filters and now with 8 circular wireless CPATCH12 to get advantage of two world, long range tracker / urban or three non LOS flight).
I make a sort of "adaptive diversity" with "servos calibration" for RSSI level and video level -> the high speed switching is not noticeable on video (not opensource at this time)

I already make my own version of the SiK firmware because I don't like the embedded TDM (TDD).
With embedded TDD we loss a lot of RF duty cycle -> a lot of bandwitch and add a lot of latency because it's not smooth and not in-sync.
TDM+golay get counterproductive on a 8051, it need a real RTC for efficient timing and all calculation during TX/RX.

I returned to a simple and more reliable low level transparent serial link, external TDD, for maximum performance, I get near 2 * 50% TX/RX duty cycle.
In pratical I get 2* more framerate (30Hz) and/or air-rate/3 !!! and I get >2* the range and less packet lost.

Now there is no difference with any commercial radiocontrol (ImmersionRC EzUHF...) + I get telemetry (my own frame reply to msp raw serial) with ALL interesting data from copter.

I added 2*2 tail bytes to monitor remote/local noisefloor+rssi.
I can draw the 3D UAV attitude on ground : all is very smooth at 30Hz :) I don't need OSD anymore.
Working : I can use few HM-TRP to use multiples frequency in same time (reliability better than FHSS because it's a 3 frequency diversity, but it need 3 UART on a mega)

Work/test in progress :
I make a bi-directionnal amp for my LRS with the 7W module and RF switch (cheaper and better than Shireen amp for this usage)
I must add 1 header byte to control the EzRADIOPRO hopping channel, if I want remake a real FHSS with external timing control with a real RTC (and GPS time for very long random jump pattern)

Pascal

Edit https://github.com/Serveurperso
modded SiK and Multiwii inside my branch

Re: Success: LRS replaced with cheap HM-TRP and MSP_SET_RAW_

Posted: Thu Oct 23, 2014 2:09 pm
by serveurperso
tdm.c

Code: Select all

                if (!received_packet &&
                    radio_preamble_detected() ||
                    radio_receive_in_progress()) {
                        // a preamble has been detected. Don't
                        // transmit for a while
                        transmit_wait = packet_latency;
                        continue;
                }


There is a 2uS hole between radio_preamble_detected() and radio_receive_in_progress() this can make false negative.
I had to take this into account in my implementation. (TX during RX issue, this make rare random freeze)

Re: Success: LRS replaced with cheap HM-TRP and MSP_SET_RAW_

Posted: Mon Oct 27, 2014 9:48 am
by serveurperso
https://www.youtube.com/watch?v=w3RbhVvTGFI (french with english bubble)

Now it's ready for FHSS:D