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

This forum is dedicated to software development related to MultiWii.
It is not the right place to submit a setup problem.
Software download
Post Reply
serveurperso
Posts: 7
Joined: Fri May 10, 2013 9:02 am

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

Post 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

User avatar
EOSBandi
Posts: 802
Joined: Sun Jun 19, 2011 11:32 am
Location: Budapest, Hungary
Contact:

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

Post 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

serveurperso
Posts: 7
Joined: Fri May 10, 2013 9:02 am

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

Post 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

serveurperso
Posts: 7
Joined: Fri May 10, 2013 9:02 am

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

Post 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)

serveurperso
Posts: 7
Joined: Fri May 10, 2013 9:02 am

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

Post by serveurperso »

https://www.youtube.com/watch?v=w3RbhVvTGFI (french with english bubble)

Now it's ready for FHSS:D

Post Reply