openX9D

openTx has introduced a range of new features, ideas and bling. It is fast becoming the firmware of choice for many users. openTx will run on ALL current hardware platforms, including the gruvin9x and sky9x boards. Work has already started to support the new FrSky X9D radio!
hpihl
Posts: 59
Joined: Sun Jan 15, 2012 12:03 pm
Country: -

Re: openX9D

Post by hpihl »

Rob Thomson wrote: To put in a set of predefined mixes that do a specific glider function.. well that would require servos to be mapped to specific channels, and hard rules to be followed.
Nope, because the function itself is virtual, the inputs and outputs can be mapped anywhere.
Rob Thomson wrote: The result.. less flexibility.
Exactly opposite, virtualization of the functions allows for example mode change without any hassle; just choose the inputs and outputs while the function itself stays unchanged.

User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: openX9D

Post by Rob Thomson »

Could you please put down an example of what you are actually trying to explain?

From beginning application/requirement all the way to an end solution, and how you would suggest solving the issue within the firmware?

Rob
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
User avatar
Flaps 30
Posts: 1490
Joined: Tue Dec 27, 2011 6:04 pm
Country: -
Location: Wokingham Berkshire

Re: openX9D

Post by Flaps 30 »

This is all very interesting. I don't see an easy way of simplifying the way that the existing firmware can be displayed on the 9x transmitter that would enable people to program what is available. Maybe with the latest Frsky TX this could be done.

What may work would be a new version of Companion/Eepe that lets you program things by changing connections between boxes (mixes etc) in a flow chart/block diagram form. I have found this to work very well with some kit that I used to use on a daily basis with regard to colour processing. I could reorganise where the clips/limits worked, in fact I could add as many clippers/limiters that I wanted. Then there was the colour processing. Again I could mix channels together in any way I wished (colour masking) and many other things that is much like what we do with our boxes.

All of the above is done initially by calling up the various boxes (clippers, mixers etc) and wiring them together as you would draw a flow chart. You could have a number of flow charts (templates) that you could call upon. All of this was in graphical form and it did help in planning things out as to what you wanted to do as you could follow it all by just looking at the whole flow chart, rather than only being able to see very small parts of it, which is very much where we are with what we have with Companion and Eepe.
hpihl
Posts: 59
Joined: Sun Jan 15, 2012 12:03 pm
Country: -

Re: openX9D

Post by hpihl »

As example a camber function for a 4 servo wing would be a function which allows mixing of any freely selectable 4 outputs with any freely selectable inputs. In addition this funtion could allow elevator compensation on same screen, input and output curves with adjusting possibility, delays. Of course this function could be mixed with other functions, inputs and outputs etc. Note that similar module could be used for other purposes.

Basicly it would be all camber related stuff in a single function and the advantage is that this greatly simplifies adjusting and mixing. As example snap flaps would be a single function to function mix, regardless how many servos are involved.
User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: openX9D

Post by jhsa »

I have something similar in linux to work with music..
It's a little tool which is a server. It's called JACK.. Or JACK CONTROL
So, you got a window with inputs on one side and outputs on the other and you just connect them by dragging a line with the mouse.. Very easy to work with as you can visualize all the connections...

João
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW

User avatar
Flaps 30
Posts: 1490
Joined: Tue Dec 27, 2011 6:04 pm
Country: -
Location: Wokingham Berkshire

Re: openX9D

Post by Flaps 30 »

Something like this João?
Attachments
electronic-music-flowchart.jpg
User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: openX9D

Post by jhsa »

Well, more like this :) ;)
You get the idea, right? imagine inputs on the right and outputs on the left..

João
Attachments
qjackctlPatchbayForm1.png
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW
User avatar
Flaps 30
Posts: 1490
Joined: Tue Dec 27, 2011 6:04 pm
Country: -
Location: Wokingham Berkshire

Re: openX9D

Post by Flaps 30 »

Yup... Combination of the two would be great.. :)

But what has all of this to do with the openX9D? .... Are we talking about how mixes and the like are represented on the new transmitter?
User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: openX9D

Post by Rob Thomson »

hpihl wrote:As example a camber function for a 4 servo wing would be a function which allows mixing of any freely selectable 4 outputs with any freely selectable inputs. In addition this funtion could allow elevator compensation on same screen, input and output curves with adjusting possibility, delays. Of course this function could be mixed with other functions, inputs and outputs etc. Note that similar module could be used for other purposes.

Basicly it would be all camber related stuff in a single function and the advantage is that this greatly simplifies adjusting and mixing. As example snap flaps would be a single function to function mix, regardless how many servos are involved.
Just bumping this reply back up the list as this is relevant.

The issue I see here is how you present this to the user, and how this is reflected in the mix screen.

In reality you can achieve exactly what you describe easily with a slave / ghost channel. Or even gvars. All done in one place, one screen easy.

Guess I can't visualise quite how you would do this.

:-)


Sent from my GT-I9300 using Tapatalk 2
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: openX9D

Post by jhsa »

Flaps 30 wrote: All of the above is done initially by calling up the various boxes (clippers, mixers etc) and wiring them together as you would draw a flow chart. You could have a number of flow charts (templates) that you could call upon. All of this was in graphical form and it did help in planning things out as to what you wanted to do as you could follow it all by just looking at the whole flow chart, rather than only being able to see very small parts of it, which is very much where we are with what we have with Companion and Eepe.

Flaps 30 wrote: But what has all of this to do with the openX9D? .... Are we talking about how mixes and the like are represented on the new transmitter?
I think you answered your question before you asked it ;)
Graphic interface.. I do like the idea..
But probably not on the radio.. more for companion I guess
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: openX9D

Post by Kilrah »

How it is currently:

- Use an unused channel as virtual function. Name it.
- Add a mixer line on that channel for each of the inputs. Name them for convenience
- On each of the affected servo outputs, add the mixer line with that channel as source and the appropriate ratio. Name it too so you easily see on each servo output what the different lines are. If channel-specific corrections are needed in addition to the curves, differential, offset settings at your disposal, you add more mixer lines of course (and name them).
- When parameters need to have the same value in each place and must be easy to adjust, use GVARs. You can name the GVARs too, and adjust them in flight with a control with a lock switch.

This IMO already allows for a lot (it is a multiple input and multiple output mix), and is rather clear. You can chain them too of course.

I have a few ideas for something different, but a bit more thinking is needed.
EDIT: Thinking done, I think I have it.
User avatar
mhotar
Posts: 198
Joined: Wed May 16, 2012 9:57 pm
Country: -
Location: Jemnice, Vysocina

Re: openX9D

Post by mhotar »

Interesting idea.
It can be done like a new page with predefined mixes, with its inputs and outputs defined there. In the mixer we do have now it can be simply displayed as a new line with function and its output name assigned to CHannel. Every function output will be one single line in mixer channels. Anyone can choose to use predefined or free mixer or to use both worlds together.
It is idea only, I am not asking for It. I am very happy with mixer we have at present.
User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: openX9D

Post by jhsa »

Kilrah wrote: I have a few ideas for something different, but a bit more thinking is needed.
EDIT: Thinking done, I think I have it.
Oh-oh, I start to get worried now :mrgreen: :mrgreen:
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW
hpihl
Posts: 59
Joined: Sun Jan 15, 2012 12:03 pm
Country: -

Re: openX9D

Post by hpihl »

Rob Thomson wrote: The issue I see here is how you present this to the user, and how this is reflected in the mix screen.

In reality you can achieve exactly what you describe easily with a slave / ghost channel. Or even gvars. All done in one place, one screen easy.

Guess I can't visualise quite how you would do this.
Yes, it's basicly same thing as grouping the mixes with the phantom channels. However, I would rather see functions clearly separated from the channels (and inputs to be freely portable), grouped based on each function preferably on their own page. Currently you might find yourself going up and down mixer screen trying to find the the right mix, naming helps but you can have several camber related mixes there same time (adjustable camber, snap flaps, butterfly etc.).

I have no clear idea how to visualize this but one possibility is to have three separate screens for each elements:

1. Output channels, where the outputs are defined (as example Left vtail, Right vtail, Left aileron etc.)
2. Function screen where the functions are built, named and linked to the inputs, outputs, other functions etc.
3. Input devices, naming

Programming would go something like this, as example v-tail function:

1. Name the v-tail surfcaces: Ch1 Left V-tail, Ch2 Right V-tail
2. Define inputs: Right stick up and down elevator, Left stick left and right rudder, trims for both
3. Create the functions: Two separate functions, rudder and elevator, each with it's own screen, linking the inputs and outputs, rates, curves, fine tuning, differential etc.
hpihl
Posts: 59
Joined: Sun Jan 15, 2012 12:03 pm
Country: -

Re: openX9D

Post by hpihl »

Well, ball seems to be rolling so perhaps I go back to shadows...
User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: openX9D

Post by Rob Thomson »

Guess you mea n a former of function/template.

Something in between.

Sent from my GT-I9300 using Tapatalk 2
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: openX9D

Post by Kilrah »

OK, what I'd see:
To keep flexibility the functionality should in no way change the current behavior or layout of the firmware. If you don't use it, no change. A compile option to leave it out would be good.
To maintain the openness, make it easier for users and avoid taking too much time form the devlopers, they should be user-definable and shareable.

So:
- A new page, e.g. Custom Functions (name would be more appropriate for that than what it's used for now, let's rename the current one back to Function Switches ;) ).
- Page has a list of a number of custom function slots, with for each a selection dropdown and a name field.
- The dropdown lists a few custom function templates off the flash memory and SD card. Right side of the screen shows an image or text description associated with it to show its purpose while scrolling the list.
- Long press enter opens a screen with the settings. 3 columns, the first with the list of the function's inputs and for each a field to select the source (including none if unused). 2nd column lists the variables or actions with their names (descriptive, e.g. "Throttle->elevator compensation) and an edit field. 3rd column lists the outputs with fields to choose the output channels (including none if that output is not required). Pressing and holding the PAGE key shows the image, highlighting the control surface linked to the actual setting the cursor is on if it's an output.
- In the mixer, channels that receive function outputs have added greyed lines with the CF number as source, and the name. The line can't be deleted, but can be moved (only within the same channel of course). Weight/offset/curve etc can be adjusted like another mix.

Now to the function templates themselves: IMO they should be user-definable with a simple script language, don't know if there are appropriate script languages out there, but something like:

Code: Select all

Delta;  // Name
Aileron:input;
Elevator:input;
Aileron Ratio:variable=-100,100,0;   // min, max, default value
Elevator Ratio:variable=-100,100,0; 
Elevon 1:output1:source=Aileron,ratio=Aileron Ratio/2;source=Elevator,ratio=Elevator Ratio/2;   // output[b]x[/b] Number used to highlight control surfaces in the bitmap, can use the grayscales in the bitmap as designators (14 possibilities)
Elevon 2:output2:source=Aileron,ratio=-Aileron Ratio/2;source=Elevator,ratio=Elevator Ratio/2;
This would describe a delta mixer, in a delta.txt file with the matching delta.bmp for visualisation. These could be shared and simply copied to a folder of the SD card.
The strings for the outputs would describe mixers lines with all their attributes (source, ratio, slow, switch,...) that will be entered on the chosen channels.
So basically it changes nothing on the back end, but we have templates that can create a group of mixers while presenting the functions and values with a descriptive parameter name. For example a template could have an "aileron differential" parameter, that will be automatically put where needed in the aileron mixers.

A big advantage is that anybody can make such "interactive templates" without requiring the developers to implement them. However, if one is good it could be added to the firmware itself easily by just adding the description string to an array of such strings, along with the bitmap. Done in minutes, and it uses the same decoder as the SD ones. Internal templates simply appear in the dropdown before the SD templates.
Another advantage is that one can make a "6-channel airplane" template that is interactive i.e. you can visualise the control surfaces and channels you need to connect servos to, retain the choice of source/destination of each control, but simply entering "function-based" parameters in a conveniently labelled parameter box instead of where they actually need to go in the mixer lines.

Of course several CFs can be added to the same outputs. So you might use one CF slot for "3-axis airplane with flaps", then a 2nd for "sequential gear retract".

2 important things that lack on most radios are fulfilled:
- The custom functions page shows in one glimpse what functions are being used.
- The mixer always shows everything that affects every channel.

Hah, took too long to post. Yep, just a more detailed version of Martin's post ;)
G550Ted
Posts: 389
Joined: Tue Dec 27, 2011 6:15 pm
Country: -
Location: Savannah, GA, USA

Re: openX9D

Post by G550Ted »

I don't know if I'll ever need or want what you just described but you, sir, are amazing!

Ted
User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: openX9D

Post by Rob Thomson »

I like this approach. Kinda an enhanced templates system.

Maybe the script language should be xml?

Sent from my GT-I9300 using Tapatalk 2
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
User avatar
jhsa
Posts: 19480
Joined: Tue Dec 27, 2011 5:13 pm
Country: Germany

Re: openX9D

Post by jhsa »

Veery nice Kilrah.. Now that you explained your idea in chinese can you please TRANSLATE THE DAMN THING TO ENGLISH? :o
Thank you..

João
My er9x/Ersky9x/eepskye Video Tutorials
https://www.youtube.com/playlist?list=PL5uJhoD7sAKidZmkhMpYpp_qcuIqJXhb9

Donate to Er9x/Ersky9x:
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=YHX43JR3J7XGW
User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: openX9D

Post by Rob Thomson »

Think of it like this:

You can make store a library of templates on your sdcard (a bit like the templates menu - but user customisable)
The templates are written in a simple scripting language.

These templates define a custom mix/function system that you can load on your model.

That roughly make sense? (Kilrah - hopefully understood correctly and summarised suitably?)

Sent from my GT-I9300 using Tapatalk 2
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
skyboyken
Posts: 8
Joined: Sun Mar 17, 2013 11:57 am
Country: -

Re: openX9D

Post by skyboyken »

Kilrah,

That's perfect!

Ken
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: openX9D

Post by Kilrah »

OK, so if the OP is happy we might be onto something! :P

Esthetically I would have liked a page with both the graphic and settings, but IMO instead of having a graphic and just a value box where it might not be clear what it's about I prefer a text label that can be comprehensive (could even span 2 lines if needed).

We'll start thinking about an implementation then...
User avatar
SR71
Posts: 109
Joined: Tue Feb 28, 2012 10:21 pm
Country: Italy
Location: Rome

Re: openX9D

Post by SR71 »

Rob Thomson wrote: Maybe the script language should be xml?
Please, no xml, anything but not xml, please :cry:
User avatar
Rob Thomson
Site Admin
Posts: 4543
Joined: Tue Dec 27, 2011 11:34 am
Country: United Kingdom
Location: Albury, Guildford
Contact:

Re: openX9D

Post by Rob Thomson »

Why?

Super portable.

Easy to use?

:-)

Sent from my GT-I9300 using Tapatalk 2
Slope Soaring, FPV, and pretty much anything 'high tech'
...........if you think it should be in the wiki.. ask me for wiki access, then go add it!
User avatar
Kilrah
Posts: 11109
Joined: Sat Feb 18, 2012 6:56 pm
Country: Switzerland

Re: openX9D

Post by Kilrah »

PITA to read/write by hand which would be the idea here, huge overhead...
User avatar
SR71
Posts: 109
Joined: Tue Feb 28, 2012 10:21 pm
Country: Italy
Location: Rome

Re: openX9D

Post by SR71 »

Rob Thomson wrote: Easy to use?
:-)
ehm.... :shock:
I find it very difficult to read. MHO.
User avatar
mbanzi
Posts: 223
Joined: Thu May 24, 2012 5:53 am
Country: -
Location: San Diego, CA

Re: openX9D

Post by mbanzi »

XML is the old, JSON is the new!
wrenow
Posts: 27
Joined: Mon Dec 17, 2012 12:54 pm
Country: United States
Location: near Dallas, Texas

Re: openX9D

Post by wrenow »

I am a tad late to this discussion, but would like to chime in on the advantages of Open/ER/etc. over "high-end" transmitters. I do Radio control Model Warship Combat (yes, 1/144 scale WWI and WWII ships that actually fire co2 powered ball bearings at the penetrable portions of the hull, and when the water comes in faster than the bilge pumps pump it out, the ship sinks and a recovery float deploys. At the end of the battle, you grab the float, patch the hull, refill ammo and CO2, charge up batteries, and go again).

Some if not all, of the most of the aerobatic, V-tail, heli, and other mixes are useless. I tried to do some of the things I wanted on a Polk as the first reasonably priced computer radio I had available - no joy whatsoever, and found the only solution, at the time, was add-on systems in the ship or a Profi-4000 - IF you could find/afford one). Eagle and M*2k were almost programmable enough, but were still limiting. In the T 9XR, stock, it is not difficult. In ER, even easier. In Open, I have found multiple ways to do exactly what I want to for most functions, and am continuing to add functionality.

Haven't seen a Futaba or Hitec able to do most of this stuff yet - even the >$1,000 ones. If you want a great radio for a specific model that it supports, a Futaba is excellent (I have several). But for the stuff I am doing, give me something that runs a least ER or Open.

Interestingly, one of our local club members predicted open-source radios would be coming and would be a sea-change in our hobby 5-10 years ago. Tomorrow is now dawning. Great to watch the sun rising.

Cheers,

Wreno
bertrand35
9x Developer
Posts: 2764
Joined: Fri Dec 30, 2011 11:11 pm
Country: -

Re: openX9D

Post by bertrand35 »

I think that we will see more & more open souce equipment in the next years. They have often (always?) better quality than closed source equivalents.

Post Reply

Return to “openTx”