Temporary Fix for Honeycomb Bravo Trim Issue

For those of you experiencing the issue where the trim wheel on the Honeycomb Bravo takes a thousand spins to get even the slightest movement, I’ve written an AutoHotkey script that should dramatically improve the situation for the time being. I thought I’d share it here.

The idea behind this script is that if the trim wheel is moved a small amount, it registers a small movement and just moves the way it does “out of the box”, for more pinpoint precision. If the trim wheel registers a harder turn, it will repeat the “key press” the number of times you specify in the script. This creates somewhat of an illusion of sensitivity.

If you’re not familiar with AutoHotkey, this is probably a 5 minute process, tops. And worth it in my opinion. Here are the steps:

  1. Download AutoHotkey here: https://www.autohotkey.com.
    Click download current version. Should be 1.1.33. I can’t vouch for it working with any other versions.

  2. Copy this code to a new text file and save as a .ahk extension.

    #NoEnv
    #SingleInstance Force ; prevents multiple instances of script from running
    #Persistent
    ;MsgBox, The script is running ;you can uncomment this to verify the script is running, also you can look in the tray for the green autohotkey icon.
    
    ; set these values to the name of your key mapping configured in MSFS using this as a reference: https://www.autohotkey.com/docs/KeyList.htm
    ; a key must be mapped on your keyboard for trim nose up and trim nose down.
    TrimKeyNoseDown = PgDn
    TrimKeyNoseUp = PgUp
    
    ; set the number of key repeats. I've found this to be fairly realistic and usable. tweak as desired.
    ; KeyDelay = 0 works best for me, but if it seems like key presses are getting missed you could bump this up to 1 or 2.
    KeyDelay = 0
    Repeats = 100
    
    cnt = 0
    
    3Joy22::	
    
    KeyWait,3Joy22
    KeyWait,3Joy22,D T0.095
    cnt++
    
    If(ErrorLevel) {
    	Send {%TrimKeyNoseDown% down}
    	sleep %KeyDelay%
    	Send {%TrimKeyNoseDown% up}
    	cnt = 0
    }
    else {
    	if(cnt > 3) {
    		Loop %Repeats% {
    			Send {%TrimKeyNoseDown% down}
    			sleep %KeyDelay%
    			Send {%TrimKeyNoseDown% up}
    			cnt = 0
    		}
    	}
    
    }
    return
    
    3Joy23::	
    	KeyWait,3Joy23
    	KeyWait,3Joy23,D T0.095
    	cnt++ 
    
    If(ErrorLevel) {
    	Send {%TrimKeyNoseUp% down}
    	sleep %KeyDelay%
    	Send {%TrimKeyNoseUp% up}
    	cnt = 0
    }
    else {
    	if(cnt > 3) {
    
    		Loop %Repeats% {
    			Send {%TrimKeyNoseUp% down}
    			sleep %KeyDelay%
    			Send {%TrimKeyNoseUp% up}
    			cnt = 0
    		}
    	}
    }
    return
    
  3. Look for where I’ve referenced “3Joy22” or “3Joy23” in the script. The number prefix could be different depending on how many joysticks you have plugged in. I think rudder pedals count, so mine ended up being 3 (rudder, alpha yoke, bravo throttle). Yours could be 2. Check that if the script doesn’t seem to be working.

  4. Customize your keyboard mapping. I have my trim nose down set to the Page Down key, and trim nose up set to Page Up key. Those keys are already used for other things, so you can set your own in the script if you want. See this site for the names of the keys so you can see what you need to change the variables to: List of Keys (Keyboard, Mouse and Joystick) | AutoHotkey. You need to map the keys on your keyboard. The script will essentially simulate the key press when you turn the trim wheel.

  5. On your new .ahk file, you can right click and select compile script, which will create a .exe from your .ahk file. You can also just double click the .ahk file to run it if you have autohotkey installed. Once the script is running, you’re good to go. You should see a green AutoHotkey icon in the tray.

Hope this helps!

3 Likes

Your fix works on my Honeycomb Bravo with the Cessna 172.
The hardest part was finding which input my throttle was attached to (#1 in my case) and missing the second group of joystick references in your script under “Keywait” which was entirely my fault.
Thanks for your time doing this and for a simple, brilliant solution to a very aggravating problem!

1 Like

Thanks to the author for this attempt at a temporary fix. Unfortunately, however, this does not work for me. It allows only 2 trim actions, precise trim if wheel is rotated a little, and a fixed big step in trim if the wheel is rotated fast, This is not how the real trim wheel operates, where the adjustment in trim is proportional to the angle by which the trim wheel is rotated. Unless I’m doing something wrong…

Glad it worked for you!

Yeah admittedly it’s not a perfect fix, although you can modify how much the input is repeated for a larger trim wheel movement, not sure if you saw that.

I just made this to help out in the near term as the existing trim wheel functionality is basically unusable from my standpoint. I thought I’d share it in case anyone else was interested, but it’s certainly no replacement for Asobo fixing the actual issue.

2 Likes

Thanks for providing the file, made a big different and for me everything works fine now!

2 Likes