Skip to content

Geos1980/MacroPadMSFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# MacroPad_MSFS

**MacroPad_MSFS** is a small Windows application that lets a physical macropad control Microsoft Flight Simulator using SimConnect.

I built it mainly for my own FlyByWire A32NX setup, using a cheap programmable macropad as a small cockpit control panel.

The app captures macropad key presses globally and sends the corresponding commands to Microsoft Flight Simulator.

## Features

- Global macropad key capture

- FlyByWire A32NX profile included for 12 buttons and 6 rotary knobs

- SimConnect event support

- Short press / long press actions

- Multiple events from one button

- Command/value mappings for deterministic switch states

- Editable JSON aircraft profiles

- Support for keyboard shortcut mappings

- Support for MobiFlight calculator-code mappings

## Current status

This is an early first release.

It works on my setup, but it is still a hobby project and may need adjustments for other systems, aircraft, or macropad layouts.

Feedback and suggestions are welcome.

## Requirements

- Windows 10 or Windows 11, x64

- Microsoft Flight Simulator

- SimConnect

- FlyByWire A32NX, if using the included A32NX profile

- MobiFlight WASM module, if using calculator-code mappings

## Installation

1. Go to the **Releases** page.

2. Download the latest portable ZIP file.

3. Extract the ZIP file.

4. Run MacroPad\_MSFS.exe.

Do not move the EXE out of the extracted folder. The app needs the included DLLs, Profiles folder, and Images folder.

## Basic usage

1. Start Microsoft Flight Simulator.

2. Load into a flight.

3. Run MacroPad\_MSFS.exe.

4. Connect the app to MSFS.

5. Use your macropad buttons.

The app can also open without MSFS running. In that case, it should simply remain disconnected until MSFS is available.

## Default FlyByWire A32NX macropad layout

The included profile is designed for a macropad with:

- 12 push buttons

- 6 rotary knobs

The macropad firmware sends keyboard inputs such as CTRL+F13, ALT+F13, or F13. MacroPad_MSFS listens for those inputs globally and translates them into simulator actions using keyboard shortcuts, SimConnect events, or short/long press mappings.

Cockpit camera views

| Macropad input | Action | Output |

| -------------- | ------------------- | -------------- |

| CTRL+F13 | Top Panel View | Sends CTRL+8 |

| CTRL+F14 | Pedestal / Pad View | Sends CTRL+0 |

| CTRL+F15 | Lower Panel View | Sends CTRL+5 |

| CTRL+F18 | Overhead View | Sends CTRL+6 |

Warnings, FCU, altimeter, and lights

| Macropad input | Action | Behavior |

| -------------- | --------------------------------- | ------------------------------------------------------------------------ |

| CTRL+F16 | Acknowledge Master Warning | Sends MASTER\_WARNING\_ACKNOWLEDGE |

| CTRL+F17 | Acknowledge Master Caution | Sends MASTER\_CAUTION\_ACKNOWLEDGE |

| CTRL+F19 | Approach Mode | Pushes A32NX approach mode |

| CTRL+F20 | ILS Toggle | Toggles the left EFIS LS/ILS display |

| CTRL+F21 | Expedite Descend | Pushes A32NX EXPED mode |

| CTRL+F22 | Altimeter Push/Pull Both | Short press pushes both captain and FO barometers; long press pulls both |

| CTRL+F23 | Ground / Taxi Lights | Sets beacon on, strobes off, landing lights off, taxi lights on |

| CTRL+F24 | Takeoff / Landing / Cruise Lights | Short press sets takeoff/landing lights; long press sets cruise lights |

Heading knob

| Macropad input | Action | Behavior |

| -------------- | ---------------- | ---------------------------------------------------------- |

| ALT+F13 | Heading Decrease | Decreases heading bug |

| ALT+F14 | Heading Increase | Increases heading bug |

| F13 | Heading Push | Short press: managed heading; long press: selected heading |

Altitude knob

| Macropad input | Action | Behavior |

| -------------- | ----------------- | ------------------------------------------------------------ |

| ALT+F15 | Altitude Decrease | Decreases selected altitude |

| ALT+F16 | Altitude Increase | Increases selected altitude |

| F14 | Altitude Push | Short press: managed altitude; long press: selected altitude |

Speed knob

| Macropad input | Action | Behavior |

| -------------- | -------------- | ------------------------------------------------------ |

| ALT+F17 | Speed Decrease | Decreases selected speed |

| ALT+F18 | Speed Increase | Increases selected speed |

| F15 | Speed Push | Short press: managed speed; long press: selected speed |

Vertical speed knob

| Macropad input | Action | Behavior |

| -------------- | ----------------------- | -------------------------------------------------------------------- |

| ALT+F19 | Vertical Speed Decrease | Decreases vertical speed |

| ALT+F20 | Vertical Speed Increase | Increases vertical speed |

| F16 | Vertical Speed Push | Short press: pushes vertical speed; long press: pulls vertical speed |

COM1 MHz knob

| Macropad input | Action | Behavior |

| -------------- | -------------------- | ------------------------------------------------------------- |

| ALT+F21 | COM1 MHz Decrease | Decreases the whole-number MHz part of COM1 standby frequency |

| ALT+F22 | COM1 MHz Increase | Increases the whole-number MHz part of COM1 standby frequency |

| F17 | COM1 MHz Push / Swap | Swaps COM1 standby and active frequencies |

COM1 kHz knob

| Macropad input | Action | Behavior |

| -------------- | -------------------- | ------------------------------------------------------------- |

| ALT+F21 | COM1 MHz Decrease | Decreases the whole-number MHz part of COM1 standby frequency |

| ALT+F22 | COM1 MHz Increase | Increases the whole-number MHz part of COM1 standby frequency |

| F17 | COM1 MHz Push / Swap | Swaps COM1 standby and active frequencies |

The default profile is:


Profiles\\Airbus\_A32N\_FlyByWire\_mappings.json



Mapping types



The app supports several mapping types.



Keyboard mappings



Used to send keyboard shortcuts instead of SimConnect events.



Example use: switching to custom cockpit camera views.



SimConnect event mappings



Used for normal SimConnect events.



Example use: master warning acknowledge, master caution acknowledge, heading increase, or COM frequency changes.



Press mappings



Used for controls with different short press and long press actions.



Example use: Airbus FCU push/pull behavior.



Multi-event or command mappings



Used when one macropad input should send more than one simulator command.



Example use: setting multiple aircraft lights at once, or pushing/pulling both captain and first officer barometer controls.



Calculator-code mappings



Used for commands that require calculator code through MobiFlight WASM.



This is useful for some aircraft-specific controls that are not exposed as simple SimConnect events.



Notes about FlyByWire A32NX



The included profile is focused on the FlyByWire A32NX.



Some A32NX controls use standard SimConnect events, while others require aircraft-specific events or MobiFlight calculator-code support.



Your aircraft version, MSFS version, or FlyByWire version may affect which mappings work.



Known limitations

Windows only

Tested mainly with the FlyByWire A32NX

No installer yet; portable ZIP only

Some aircraft-specific events may need adjustment

MobiFlight WASM is required for calculator-code mappings

Development



This project was built with:



C#

Windows Forms

.NET

Microsoft Flight Simulator SimConnect

Gma.System.MouseKeyHook

MobiFlight WASM, for calculator-code support

Disclaimer



This is an unofficial hobby project.



It is not affiliated with Microsoft, Asobo, FlyByWire, MobiFlight, or any macropad manufacturer.



Use at your own risk.



About

An easy tool to use a MacroPad as Autopilot and shortcuts device.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages