Skip to content

JorgHendriks/simhid-g1000-joy

Repository files navigation

SimHID G1000 - HID Joystick Firmware

This project extends the work of opiopan on the SimHID G1000, a hardware replica of the Garmin G1000 for flight simulators.

G1000 Joy is an alternative firmware that allows the device to function as a standard HID joystick, enabling compatibility with multiple flight simulators and 3rd-party applications across different operating systems.

Pre-built firmware

A pre-built firmware binary is available and recommended for ease of use:
Download Latest Release

Compiling firmware

Requirements

  • CMake ≥ 3.22
  • ARM GCC toolchain (arm-none-eabi)

Build

# Start from the project root
mkdir build && cd build

# Configure the project
cmake ..

# Build the firmware
cmake --build . -- -j$(nproc)

Generate binary

# From inside the build directory
arm-none-eabi-objcopy -O binary g1000_joy.elf g1000_joy.bin

Once compiling is finished, the following firmware binary files are available.

  • build/g1000_joy.elf : ELF format binary
  • build/g1000_joy.bin : raw binary

Flashing firmware via USB DFU

You can flash the SimHID G1000 via the debug port or USB. Flashing via STM32CubeProg is recommended. Alternatively, dfu-util can be used.

Requirements

  • dfu-util

Entering DFU Mode

  1. Hold the AUX button on the right side of the device.
  2. (Re)connect the device via USB while holding the button.
  3. Release the button once the device enumerates as a DFU device.

Flashing firmware

dfu-util -d 0483:df11 -a 0 -s 0x8000000 -D build/g1000_joy.bin

Reboot

Power cycle the device by disconnecting the USB cable to run the new firmware.

Compatible software

Example configs and scripts are available in the examples folder

Button mapping

Button # SimHID Name Description
1 SW1.down NAV_SWITCH
2 SW2.down AP_MASTER
3 SW3.down AP_FD
4 SW4.down AP_HDG
5 SW5.down AP_ALT
6 SW6.down AP_NAV
7 SW7.down AP_VNV
8 SW8.down AP_APR
9 SW9.down AP_BC
10 SW10.down AP_VS
11 SW11.down AP_NOSE_UP
12 SW12.down AP_FLC
13 SW13.down AP_NOSE_DN
14 SW14.down SOFTKEY_1
15 SW15.down SOFTKEY_2
16 SW16.down SOFTKEY_3
17 SW17.down SOFTKEY_4
18 SW18.down SOFTKEY_5
19 SW19.down SOFTKEY_6
20 SW20.down SOFTKEY_7
21 SW21.down SOFTKEY_8
22 SW22.down SOFTKEY_9
23 SW23.down SOFTKEY_10
24 SW24.down SOFTKEY_11
25 SW25.down SOFTKEY_12
26 SW26.down COM_SWITCH
27 SW27.down DCT
28 SW28.down MENU
29 SW29.down FPL
30 SW30.down PROC
31 SW31.down CLR
32 SW32.down ENT
33 EC1.increment VOL_1_INC
34 EC1.decrement VOL_1_DEC
35 EC1P.down VOL_1_PUSH
36 EC2X.increment NAV_SMALL_INC
37 EC2X.decrement NAV_SMALL_DEC
38 EC2Y.increment NAV_LARGE_INC
39 EC2Y.decrement NAV_LARGE_DEC
40 EC2P.down NAV_PUSH
41 EC3.increment HDG_BUG_INC
42 EC3.decrement HDG_BUG_DEC
43 EC3P.down HDG_BUG_PUSH
44 EC4X.increment ALT_SMALL_INC
45 EC4X.decrement ALT_SMALL_DEC
46 EC4Y.increment ALT_LARGE_INC
47 EC4Y.decrement ALT_LARGE_DEC
49 EC5.increment VOL_2_INC
50 EC5.decrement VOL_2_DEC
51 EC5.down VOL_2_PUSH
52 EC6X.increment COM_SMALL_INC
53 EC6X.decrement COM_SMALL_DEC
54 EC6Y.increment COM_LARGE_INC
55 EC6Y.decrement COM_LARGE_DEC
56 EC6P.down COM_PUSH
57 EC7X.increment CRS_INC
58 EC7X.decrement CRS_DEC
59 EC7Y.increment BARO_INC
60 EC7Y.decrement BARO_DEC
61 EC7P.down CRS_PUSH
62 EC8.increment RANGE_INC
63 EC8.decrement RANGE_DEC
64 EC8P.down JOYSTICK_PUSH
65 EC8U.down JOYSTICK_UP
66 EC8D.down JOYSTICK_DOWN
67 EC8R.down JOYSTICK_RIGHT
68 EC8L.down JOYSTICK_LEFT
69 EC9X.increment FMS_UPPER_INC
70 EC9X.decrement FMS_UPPER_DEC
71 EC9Y.increment FMS_LOWER_INC
72 EC9Y.decrement FMS_LOWER_DEC
73 EC9P.down FMS_UPPER_PUSH
74 AUX1U.down AUX1_UP
75 AUX1P.down AUX1_PUSH
76 AUX1D.down AUX1_DOWN
77 AUX2U.down AUX2_UP
78 AUX2P.down AUX2_PUSH
79 AUX2D.down AUX2_DOWN

About

Alternative firmware for SimHID G1000 that allows the device to function as a standard HID Joystick

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages