Stream Deck Button Box (My C172 Implementation)

Thanks for the hint. I’ve just updated from 0.24 to 0.25.

The other controls I’ve implemented still work OK, but nothing yet from AILERON_TRIM_LEFT or _RIGHT using the same toggle button logic that works for rudder.

Feedback value AILERON_TRIM_PCT working over range -100 to 100 in the Caravan model when cockpit control exercised.

I’ve tried using gauges, but neither axis responds.

I’ve just updated to 0.26. Aileron trim occasionally allows one increment, but otherwise no response. Rudder trim still working OK using same parameter matching to your fields.

I think I must be missing something. about updating your plugin. Even after uninstalling your plugin in Stream Deck I get a block message about it being already installed. I’m having to go through a convoluted process of disabling Streamdeck and two reboots to get it up and running. What is the quick way?

And how do I know after the event which version of your plugin is installed?

Further investigation shows that AILERON_TRIM signals are getting through, but 10 or 11 presses of a Toggle are required to change the Stream Deck readout of the Caravan trim. Can the gearing be adjusted to match that for the rudder trim where one press changes by 1%?
Same response using a gauge, but only get readout for a generic gauge, none for custom.

I was just going to ask that very question. It would be awesome to be able to apply a math function to a Sim Variable to get it to display correctly.

Here’s my use case:
Recip_ENG_Manifold_Pressure: returns pressure in PSI but most aircraft display it in inches of Hg. If we could create a formula such as (RECIP ENG MANIFOLD PRESSURE:1 * 2.036) The paren as the first character tell FlightTracker what comes inside is a Formula and to display the result of the Calculation not the raw Sim Var. There are other cases too around Temperatures that likewise send data in nonstandard scales and need to be converted to C or F.

I had a pr out there for conversion, but we were discussing if there were better ways to do it.

Anything come of that @NguyenQHy?

There is no formula support in the plugin, but SimConnect allows you to pass in any compatible unit, and it will give you the correct value.

@RMROC451 has a PR for that, but I want to add something more before releasing. Probably I should be less greedy and will get it out this weekend :stuck_out_tongue: .

1 Like

Are there a way to pass any simulation variable as a feedback value or should we stick with the enum value list?

For now stick with the enum list. However, in a future version it might be possible to feed any variable. But first we need the error reporting from SimConnect on a more sophisticated level.

1 Like

Ok great. I was giving a look at AxisAndOh which now offers a Streamdeck compatibility. This app offers the possibility to use any sim variables which is great for users. But the application is also web based (it makes use of a local web server) and lagging by design (…well refresh rate is very slow). There isn’t such a problem with Flight Tracker which seems to use direct connection between StreamDeck API and the sim API…
The best would a kind of “convergence” of these 2 apps : Best refresh rate (Flight Tracker) and all sim variables available (AxisAndOhs).
Again, thanks for your work.

Supporting all SimConnect variables should be possible, but as Pieter said we need a way to handle error properly. I really want to make sure the plugin is as accessible as possible.

To give you some more details, right now to optimize communication with the sim, all variables in all buttons are requested by the plugin in one go and returned from SimConnect in a single package. This allows us to request all data at around 10Hz without impacting the sim (as far as my tests go). However, if there is an invalid variable, SimConnect returns a smaller package without telling the plugin exactly which one is missing. This messes up the whole processing of the returned package.

I know that some plugins get around this by sending each variable in separate requests to SimConnect, so if the variable is incorrect, they can just ignore the whole response. But I heard that at high frequency it causes instability in sim due to the high number of requests to SimConnect. I might be wrong as there is no clear official recommendation on this, but I don’t want to risk affecting sim performance.

However, I do have some idea for a mix between the 2 approaches, so what you ask for will come sooner or later. :grinning_face_with_smiling_eyes:

3 Likes

To the best of my understanding, that method should work. However, there seems to be issues with SimConnect at the moment causing issues and CTDs and generally not playing well with external apps that use it. Hopefully tomorrow’s patch can rectify that.

Honestly, when it comes to efficiency, polling the entire list of vars in a single go at 10Hz would likely be the more efficient way of doing it. Given the 2 options, that’s the method I’d choose. Poll once every 100ms vs constantly hammering SimConnect. It’s unfortunate that it will ■■■■ the bed like it does if there’s a bad variable. It makes it hard to code in error correction when you don’t know what the error is.

One possible solution:
Poll them all one at a time at startup to verify each one then switch over to bulk polling when they are all known to be good.

Yep more or less my plan, but it’s tricky since you can change the variables anytime, not only at startup. And I want to support changing units too (which comes to the problem of invalid units and data types). But yah it’s possible, just tricky to make sure I cover everything.

1 Like

Hi @NguyenQHy: I am trying to assign to a Stream Deck button the FLC function of the WT CJ4. I read that the event is : WT_CJ4_AP_FLC_PRESSED and it is an accessible variable (H or K). I am trying to use a generic toggle button for that but it doesn’t work…Thanks for letting me know if this is feasible.

Use one of the preset toggle buttons instead of a generic. It already has all the AP functions built in. You just have to select the one you want. The hard work has already been done for you.

H events are generally not available via SimConnect (which is used by the plugin).
However, the plugin provides you with a preset button for FLC as Crunchmeister71 pointed out that use SimConnect events to activate FLC mode. However, I had to bake in some logics as the event itself is not equivalent to clicking in sim. This means the logics in the preset button might not exactly match all aircraft’s behavior, especially the very complicated aircraft.

Unfortunately FLC (as well as all other AP modes) in the WT CJ4 have to be triggered via HVARs, there’s no way around it. You’d have to use something like AAO or MobiFlight

Thanks for the quick response! I will try with Mobiflight.

Is there any command to set the HSI course? I can get the HSI course as a feedback value, but can’t find a way to set it (+/-). There’s a way to set the heading bug, but would like to manipulate the course.

Do you mean AP_Heading_Set ? Which Aircraft?