- Posts: 2631
Adding channels to the Bayang protocol?
- goebish
- Offline
- I Void Warranties
Please Log in or Create an account to join the conversation.
- SirDomsen
- Offline
Please Log in or Create an account to join the conversation.
- xxx
- Offline
- Posts: 43
So far we have 4 analog main channels + 5 (minimum 3) pid channels (8bit) + digital switches - whatever is left
Channel hopping - I guess we should include it
telemetry should be same packet format, just different header, that should be easy to figure out
So, we need to come up with the rest of it. I have seen posted the H8 protocol is nothing special, is there any cool stuff that we could add to this one?
Is there really a need for more then 4 channels?
silverxxx
Please Log in or Create an account to join the conversation.
- goebish
- Offline
- I Void Warranties
- Posts: 2631
- 250 kbps bitrate (for better sensitivity / range)
- channel hopping, but something in the range 00 - 0x42 (I found that the xn297 lose sensitivity with anything higher ...)
- short packets (because 250kbps)
AA DD DD DD DD DD DD DD DD DD CC
AA: packet type (bind, sticks, pid, ....)
DD: data (can hold 4x 16 bit values + 1x 8 bit)
CC: checksum or crc8
edit: oops, I forgot only the XN297L can do 250kbps so we've to stick to 1Mbps
Please Log in or Create an account to join the conversation.
- FDR
- Offline
Furthermore it can determine the hopping sequence too.
Please Log in or Create an account to join the conversation.
- victzh
- Offline
- Posts: 1386
For quadcopter there is probably no need for more than 4 channels, but usually it pays to design a bit ahead - you never know where this design is going to be used in 10 years
So, 3(tx id) + 1(packet type) + 24 = 28 packet length. I don't know, for some reason nobody uses packets this long. May be error free transmission probability for such a long packet is not very high.
I like what S-FHSS is doing - they have packet subtypes - even packets transmit first 4 channels, odd - next 4; and there is space for extension - you can always add packets 3 and 4 - there is space for it.
They also pack the values peculiarly, we can avoid this. With minimal packing (12-bit values) and 4:4:4 channels schema packet length would be 3+1+6 = 10 bytes. With 6:6 - 3+1+9=13.
I also like how HiSky handles FH sequence - it passes it along the TX id explicitly, no formula in RX to use, just write it down.
Please Log in or Create an account to join the conversation.
- xxx
- Offline
- Posts: 43
Also , the pids are not very dynamic, and there is no point sending them full rate. maybe send them 1 in 10 or so. Would have to be a number not a multiple of the rf channels, so it does not end up on a dead channel all the time. Also , i'd like throttle duplicated between packets for failsafe purposes if its convenient. Or maybe a bit could be set if throttle is under 10%.
Well, you guys write the tx, and i'll see if I can make an rx that works for it... Or you could do both if you feel like it.
Also, I found some xn297 registers that work for the higher channels on the radio side.
silverxxx
Please Log in or Create an account to join the conversation.
- mwm
- Offline
We've talked about custom NRF-based protocols before. I think the end result was using the channel area to control channel size. Say half the channels are full size, 1/4th of whats left are 4 bits, 1/4th are 2 bits, and 1/2 is one bits (most common option).
FWIW, the CFLIE and YD717 protocols have telemetry in the source, but it's not enabled in the nightly build for some reason.
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- Richard96816
- Topic Author
- Offline
- Posts: 208
And is it possible to make the unused channels configurable (enable/disable) at the model file?
Please Log in or Create an account to join the conversation.
- xxx
- Offline
- Posts: 43
I actually was thinking 4 rf channels, sorry, I was ambiguous.
silverxxx
Please Log in or Create an account to join the conversation.
- victzh
- Offline
- Posts: 1386
Please Log in or Create an account to join the conversation.
- Richard96816
- Topic Author
- Offline
- Posts: 208
(Orange R111xn satellite, with Devo 7e.)
Please Log in or Create an account to join the conversation.
- victzh
- Offline
- Posts: 1386
Please Log in or Create an account to join the conversation.
- mwm
- Offline
In most (all to date?) rc protocols, all channels values are sent every frame, in "channel number" order. So you get channel 1, followed by channel 2, etc. Robotics and wired protocols use a "command" structure. Instead of sending a specific set of values, you either send a device selector and a value for it, or you have a command structure where the command implies the device(s) to control. Since some of these protocols use words on a unicode line as the protocol, the number of devices you can control is essentially unlimited.
I've been thinking that for a modern RC system, some kind of hybrid approach would be nice. Since flight controls and the like might be changing nearly continuously, send those channels in the traditional RC format in every frame. Maybe negotiate the number at bind time. Then follow them with 0 or more commands in that frame. That would allow you to have hundreds or even thousands of devices - or "channels" - without having to worry about the frame length.
The downside is that RC protocols aren't 100% reliable. That needs to be dealt with. The protocol needs to include some form of ACK and a behavior to make sure commands get through in spite of dropped frames, and that either missed or repeated commands don't cause problems.
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- Richard96816
- Topic Author
- Offline
- Posts: 208
Sending only data that has changed might be helpful. Could add to reliability.
Error correction might be possible. Though, that would add complexity.
Could take the simpler route to get something flying and add accoutrements later. Perhaps stub out for enhancements in the key areas. Get the basic structure tested, then go from there. Add better error correction, etc., later.
Love the extensibility idea. Especially if you could control it from the model file. That would really take advantage of Deviation's abilities.
Please Log in or Create an account to join the conversation.
- hexfet
- Offline
- Posts: 1891
The byte stream is nice for telemetry because of the number of sensors and values to be communicated. As victzh pointed out there are plenty of individual bits available for just turning things on and off (without the delay of byte stream decoding). As mwm noted communication errors in the rf link will affect the byte stream data more severely than the channels sent every frame.
IMHO the protocol needs to fit the application. Plenty of room for plain old "channels" to support PID tuning and gimbal control and on/off bits. Will the H8 be sending back such a variety of telemetry that a streaming protocol is needed?
Please Log in or Create an account to join the conversation.
- xxx
- Offline
- Posts: 43
It's hard to believe so little protocols use telemetry, with the 2.4 transceiver chips in use now it's only a matter of implementing the software. Even the cheap toy tx's that have a buzzer would only need a software change to make it beep on battery low.
silverxxx
Please Log in or Create an account to join the conversation.
- Richard96816
- Topic Author
- Offline
- Posts: 208
Some of the potential of re-flashed toy quads fades without it.
Please Log in or Create an account to join the conversation.
- Richard96816
- Topic Author
- Offline
- Posts: 208
bindconfig=PID,8,8,8
bindconfig=save
Please Log in or Create an account to join the conversation.
- Ian444
- Offline
- Posts: 8
Please Log in or Create an account to join the conversation.
- Home
- Forum
- Development
- Protocol Development
- Adding channels to the Bayang protocol?