Adding a Vario mode on ePPG controller?

I think it’d be cool if the controller supported a vario mode: tones indicating ascent/descent.

I won’t have a throttle controller to play with until Batch 3. I don’t see spares available for sale anywhere?

It seems like all of the AceButton events are already used within handleButtonEvent: any thoughts on additional inputs for enabling/disabling this mode?

Aside from additional button input, it should be pretty easy to introduce a global variable for previous altitude and add logic to main loop (or add an additional thread) that will play a melody respective to the climb/ascent.

Any thoughts here? Is this something that has been considered previously? Obviously it might be hard to hear over the motor running but I would mostly be interested in it when the motor is off.

We use the BMP388 and it’s more than capable of the accuracy required for a vario!
I know there are some open source Arduino bases projects that might not take too much work to incorporate into the controller so probably worth looking into.
Do you have experience programming with Arduino?

1 Like

I have experience programming with Arduino.
If you would appreciate it, I could use a free time to produce a PR;
however, I will be unable to test / fine-tune it until I have batch 3 and I imagine the most time-intensive task will be getting the tones right.

I further consider the limitations of the utilized “AceButton” library: only ~3 inputs (double press, long press, press).

The throttle display could allow one to cycle through options via a single press and toggle an option via long press. One button as such + a screen could enable toggling of cruise, vario, etc.

It is important that arm/disarm always be immediately accessible via the double press so that input is reserved.

It doesn’t seem like there is any on-board storage so as to serialize settings which could be configured through a simple settings app? Configure vario tone, enable/disable throttle disengaging cruise, switch between metric/imperial, use digital settings to switch between sport and chill, modify startup and caution tones, etc. Not sure how this is done on the controller at the moment.

Once I have a unit to play with I could also experiment with other input libraries; however, any more advanced input (e.g. triple click) would probably be a worse UX (less straightforward) than a menu.

It is hard for me to gleam exact functionality from source code and videos without interacting with the system directly but, this is something that I am excited to play with.

If the throttles were available for sale I would consider purchasing an additional throttle for hardware tweaks as well. One modification I was interested in was replacing the double-click to arm functionality with a physical switch akin to a firearm’s “safety”. But, I probably wouldn’t play with this unless I had a secondary throttle as my initial testing may involve dismembering the enclosing print.

Regardless, looking forward to playing with the throttle controller: ranging from gimmicky tweaks such as more personal startup melodies to things that will positively impact my usage of the machine as a whole.

Good observation, currently those input methods are used as

  • click: nothing
  • double click: arm/disarm
  • long press: cruise (when armed and above throttle threshold)

There is actually, there’s a separate (64 kb I2C) EEPROM chip that we use to store user preferences as you were wondering. There’s a struct that is written and read that could be updated to add more options (we’ve done this on the X4 when enabling the barometer chip)

We actually discussed this a few months back but I havent had time to fully implement the vario feature :slight_smile:
To do it with no user interaction (ideal) I was thinking of auto enabling “vario mode” automatically when the user is off throttle for more than ~5 seconds, armed, and above the takeoff altitude. In this mode we could just replace the text that shows the current (amps) draw (which will be 0 when coasting). There wouldnt be any extra screens/pages to deal with and it could auto switch back to “powered flight mode” when you add throttle.

Option B would be to leverage the button hold when off throttle but armed to explicitly turn on the vario mode. Would be a simple if statement for whether or not using the throttle to switch to cruise or vario mode.
Of course there are some edge cases for both of these like - what if I want to be cruising along or even actively using the throttle but still hear the beeps and see climb rate or what if I run off a cliff and am actually lower than takeoff altitude and want to thermal?
We can tweak as needed and even add a couple settings to the config tool that allow lots of flexibility.

Yep! Like my original post said, its all doable with current hardware and these are the kinds of (updateable) features that can put an open source electric PPG even further ahead of anything else!


I for one would love to have a Vario that’s activated after off throttle for a few seconds. Definitely would make life a lot easier not having to remember to switch screens and activate it. I think most of my flying with the SP 140 is going to be thermal fly once I get comfortable flying the unit.



Wait, how are you guys switching screens?

1 Like

I am very much a paramotor noob and arduino novice, but I built a open-source multi-function instrument for ultralights. Maybe its coding and components can be of some use to you.


Any chance of revisiting the “vario when the user is off throttle for more than ~5 seconds, armed, and above the takeoff altitude” mode? This would be amazing. I will definitely be using this as a thermal machine to launch from near my house and fly to the mountains.

I havent had a chance to work on this unfortunately and probably wont for a bit.
We’re open to pull requests on Github if you or someone else wants to take a stab at it

I wish I had the coding skills to do so… or the time to accrue the coding skills lol.