Latest Update: 07/04/2021

The below log shows all updates for this product since release:


- New: Template Editor: add or remove individual items from a template

- Change(!): option to change the update method of axis: continuously (like before) or

               "on change" = only when you actually move the lever.

- Change: Desktop/Web FIPs: %% can be used to create a percent sign in gauge text

- Change: Desktop/Web FIPs: <HorizontalAlign> CENTER, RIGHT, LEFT for gauge text

- Change: Performance: update button GUI control only when there is a change

- Change: option to overwrite all duplicate scripts in the Script Importer

- Change: added (a lot of) undocumented events to the default lists (especially for MSFS and P3D V5)

- Change: added an option to import csv lists of variables or events

- Bugfix: Direct assignment of LVars to buttons was broken

- Bugfix: MIDI axis not processing scripts

- Bugfix: "rng" RPN command working backwards

- Bugfix: WASM module not processing SIMPROC scripts correctly in some cases

v2.04 - 24/03/2021

- IMPORTANT for users of the WebAPI and/or the Elgato Stream Deck plugin: the pure "Button" event (device, channel, buttonid) has changed and will show up in AAO with a different ID string. This change was necessary to accomodate the long/short press feature. Please make sure to download the latest version of the plugin too (2.3).

- Change: Virtual key presses now working with MSFS, can be assigned to buttons or axis

- Change: Buttons can be assigned to have a different action when held down for a bit (long press) or just clicked (short press)

- Change: Rotary encoder can be assigned to have a different action when turned fast or slow (fast turn)

- Change: Joystick axis can be used to trigger one-shot events or key presses

- Change: Saitek Panels can be set to MIDI mode. In that mode the controls on the panel will send MIDI events that can be assigned in AAO like any other button

- Change: "SLEEP:" command to pause the execution of an RPN script by a fixed or random amount of time

- Change: "SIMPROC:" command to pass the execution of an RPN script on to the simulator, instead of processing it in AAO

- Change: "EXEC:" command to call an executable on your computer from within an RPN script

- Change: "SOUND:" command to play a wave file on your computer from within an RPN script

- Change: Devices that send unwanted DirectInput signals can be configured to be ignored by AAO (device blacklist)

- Change: added handling of C: variables

- Change: The position value of an axis can be assigned to scripts (required to operate the thrust levers in the Aerosoft CRJ)

- Change: automated restart of the script handler if SimConnect breaks down (the little LED on the main page turns yellow/red)

- Change: main window can be stretched by spinning the mouse wheel between the Axis and Button panels

- Change: Improved handling of the RPN script editor (copy & paste from other sources, double-click formats the contents)

- Change: Filter textbox is immediately active on the variable and event tree selection dialogs, "Enter" applies the filter

- Change: Added an extra "AXIS_TILLER_SET" event for ground steering with aircraft that use "AXIS_RUDDER_SET" for rudder control

v2.03 - 09/02/2021

- Change: Additional features in the WebAPI to support a new version of the StreamDeck Plugin

- Change: "Fast turn" option for rotary encoders: the down event will only trigger when you turn the encoder fast enough

- Change: special LVAR for the RPN scripts containing the down value of the button assignment. So instead of two scripts for 100/1000 changes you only need one

- Change: Template export/import will try to match controllers to the local hardware automatically (for example the device ID of a MIDI controller)

- Change: MSFS: When assigning the default "CAPTURE_SCREENSHOT" event, AAO will create a screenshot of the simulator windows and save it do "Documents"

- Change: The app will read from the PMDG SDK datastructures now, so you can use those values for visual feedback, for example on a MIDI controller

- Bugfix: MIDI buttons getting stuck when assigned multiple times

- Bugfix: Saitek buttons couldn't call RPN scripts

- Bugfix: Clear on right click not working for up/down events on the Button assignment dialogs

v2.02 - 19/01/2021

- Additional features in the WebAPI to support a new version of the StreamDeck Plugin

- Bugfixes in the ScriptHandler process

- Mouse buttons and wheel can be assigned to Events now.

v2.01 - 11/01/2021

- The "endless“ setting for MIDI encoders has been fixed. When it is activated, it will make the app repeat the command that has been assigned to a control when it is at the stops (rotary with stops or a slider). For example, when you adjust the AP altitude, you could use a slider. This will work normally in the range that it can travel, and at the stops it will just continue counting up/down until you move it the other way again

- SimConnect Errors will be caught in most cases now, reducing the probability of a hard crash

- The “Test” button on the script editor has been fixed

- The “Read HVARs from sim” feature now finds all kinds of things – like for example undocumented K: - Events and A: Variables.

-  Again several changes under the hood, like running heavy processing in even more separate threads and SimConnect clients

v2.00 - 21/12/2020

- Major change 1

  • AAO can now read and write to LVARs and use KEY events directly. 

- Major change 2 (MSFS only) 

  • AAO can now read and write to the internal HTML variables that MSFS glass cockpit instruments use to operate the buttons.

To achieve both of these, AAO will install a new additional module (dll on the legacy sims, WASM on MSFS).

- Change: The list of button assignments can be switched to different formats that may be more convenient if you have a lot of buttons to manage

- Change: AxisAndOhs can be configured to start automatically from within the app. No manual editing of any config files is necessary

- Change: Axis assignments can have detents now. Right click into the grey area of an axis to create a detent in the current location of the lever. As long as the lever value is inside this detent, it will send the same axis value. This is useful for example for thrust levers that are supposed to "click to" certain positions. 

- Change: Some of the default events on the Saitek Switchpanel have changed. Please follow this procedure:

          1. Disable the panels first by unchecking "Hardware -> Saitek Panels enabled"

          2. Go to "Hardware -> Saitek panel config", select "Events" on the "Switch Panel" tab, click on "Restore Defaults" and "Apply Globally". Close all dialogs

- Bugfix: Appcrash when assigning button on a "pure" Gamepad (= one that isn't handled as a joystick by Windows)

- Many changes and fixes "under the hood" that should improve performance and overall stability.

v1.77 - 04/12/2020

- Major change 1

  • This version changes the naming and sorting convention for assigned button items. This will happen automatically the first time that you run AAO. Before doing this, the app creates a special backup file with your previous database in C:\Users\...\AppData\Local\LORBY_SI\LorbyAxisAndOhs

- Major change 2

  • When using MIDI devices, the AAO app did not distinguish between Note and CC messages correctly. This lead to duplicate controller actions when in reality there were none on the hardware. This has been fixed, but it will be required to check and reassign especially rotary encoders again. 

- Change: option to duplicate button assignments.

- Change: Added MSFS events for managed/selected speed, altitude, heading and VS.

- Change: Saitek Switchpanel now only processes button events for those buttons that have actually changed

- Change: Option to run automates scripts on a global level (=for every aircraft). This will be more convenient when using Elgato StreamDeck or MIDI Out

- Change: Add and Change button dialog now have tool tipps on the textboxes that can contain long strings

- Change: When assigning a template you have the choice now if it should overwrite the current aircraft config or merge with it. With the latter you can now create partial templates, for example with your MIDI or StreamDeck assignments, that you can merge into any other config without overwriting what is already there.

- Bugfix: MIDI "Toggle" type button events fixed for Behringer X-Touch

- Bugfix: The MFD instrument did not calculate the waypoint positions correctly (magnetic heading instead of true)

v1.76 - 16/11/2020

- The app has a web based API that processes XMLHttpRequests and JSONP. It supports button events, triggering of simulator event IDs,  reading and writing of simulator variables


- Supports the Saitek Backlit Information Panel (BIP)


- Added the Event-IDs of the PMDG SDK (737 NGX, 777, 747 QOTS2)

- Expanded the RPN scripting logic to facilitate the use of the PMDG events, added new chapter at the end of the manual.

- Added logic to run RPN scripts automatically for each individual aircraft

- Fixed bug where the calling of scripts inside other scripts would fail

- The Event Group of scripts can now be changed by the user

- Template Export and Import logic to facilitate the exchange of complex setups between users. Import is guided.

- Added option to isolate a joystick device if axis are not picked up (Saitek Trim Wheel)

- Fixed bug where the "Change Button" dialog would show the wrong event in case of a duplicate ID

Please make sure to visit to get the new advanced gauges like the Airbus type PFD and MFD


- Redesigned the layout of the assignment dialogs to make it clearer which input field is currently active

- Fixed bug where the axis would move slightly in the opposite direction when using curve and deadzone together

- Fixed the bug where the flaps detents box was partially obscured

- Fixed the instances where a split axis must be handled as a slider when applying a curve (MSFS: toe brakes, throttle, propeller, mixture)

- Keyboard and MIDI combos can be used with axis too

- Expanded RPN scripting and gauge logic

Please make sure to visit to get the new advanced gauges like the Airbus type PFD and MFD


- With this version, scripts can be created to trigger more complex functionality with a single button press

The product download in your account is updated as and when updates are released, so if purchasing after any of the given dates your product will include all updates prior to that date.

To download updates you will need to re-download the product from the 'Your Orders' section of your account which you can log into by clicking here.

For guidance on downloading this update, please visit this FAQ.