Simchair VR MAX collective head

Which secondary controls do we use a lot when flying? When flying online of offline? Let’s think of it. When we start our “realistic” flight (the one where we don’t just fool around but fly somewhere, e.g. in VATSIM), at first, we always dial ATIS frequency. Then we hear our altimeter setting and dial it in. We set our transponder and dial some frequency on our COM radio, either UNICOM or some of larger airport ATC frequencies. We set NAV radios to VOR frequencies and set some desired radial with an OBS knob, maybe turn ADF and align our compass.

In other words, we use KNOBS! Surprisingly, so far Simchair relied on mouse or VR controls to turn them, but I decided to do it in a better way. With this thing, we will finally have enough knobs for everything! A separate panel mode switch will allow us to map several functions per one knob, and a few most essential functions will have separate knobs. Note how everything is of different shape and placed in a way so we can easily distinguish where is what without looking at the device.

It will likely be released in a couple of weeks.

Bell 412 collective head “hardware related” bug found

Guys, there’s a slight change needed to the 412 assembling process. Legs of the bottom-left switch of the head must be cut short (see pic below) – otherwise, it shorts pins of the KY-083 board under it. I have updated assembly manual accordingly.

If you have problems with multiple button presses and/or hat switch only working in 2 directions, this is most likely the case, please update.

Critical master controller firmware update – force trim

I am happy to present a completely rewritten force trim system!

Thanks to Sean Daniels, who pointed out a simpler and much better way of implementing it, the cyclic is now closer to being perfect than ever. After implementing his idea for the spring-loaded stick, I thought that nothing stopped me from doing it in a similar way for the springless cyclic, thus allowing me to finally unify the trim system between different stick types!

So, with a previous version, we had to either search for an initial trim position when releasing the trim for a springless stick, or to return controls to the same exact position for them to unlock with a spring-loaded one, which was sometimes problematic due to a possible drift of the mechanical center position with a long and heavy stick.

Sean offered to use a force trim button to determine the physical controls position, that is mapped to the current position of the axes cross indicator. So, there are 2 modes available:


The “HOLD” mode assumes the use with a spring-loaded cyclic (though you can use any mode with any stick now!). When you press the force trim button, controls freeze, and remain frozen until the button is released. The position of the physical stick and pedals, in which those were released is then mapped to the current (trimmed) position of the controls on the screen, after that, controls are unlocked and move relative to their new center.

“ATT_TRIM” hat switch mode is recommended for use with this trim mode. You can precisely adjust cyclic trim position with the hat switch when the button is not pressed.

The “MOMENTARY” mode is meant for a non-centering cyclic. It works the same, except for the button has to be pressed and released to lock the controls, and pressed again to unlock them. The position of the physical stick and pedals, in which those were unlocked, is then mapped to the current (trimmed) position of the controls on the screen, just like with the “HOLD” mode. This allows you to let go of the stick and let it drop, and regain controls without any changes in attitude of the helicopter.

“BOTH” hat switch mode is the best one to use with this trim mode: it will work as a regular joystick hat switch when not trimmed and will move the cyclic trim position when in trim mode. Quite useful!

All this leads us to a few cool things:

  • no more searching for unlock position in either mode!
  • springs, rubber bands, whatever you have, is now suitable for use with force trim
  • absolutely smooth trimming, without the slightest changes in attitude of the helicopter, at any time
  • you can now trim without fearing of things going wrong because the center position has moved slightly after a 2-hour flight
  • pedals and cyclic can be trimmed independently- just move whatever you want to move while holding the button and leave whatever is fine in place =)
  • emergency trim reset is no longer needed, so hat switch click now only has one function left – that is – switching sensitivity setting
  • FTCR button now serves as a trim reset
  • unified trim operation for all stick variants – a lot of old options are no longer needed and have been removed.

Please update, as this one is really essential for the best user experience. The tutorial will be updated shortly!

Thanks again to Sean (Telemole) who made it better for everyone with a bright idea =)

Major master controller firmware update!

I have finally managed to rewrite some parts of firmware code I wasn’t particularly happy with, namely the collective head switch parser! It was a mess, used huge amounts of memory, yet only allowed using around 17 physical buttons.

I understood that with 2 more collective heads that will soon be added to Simchair collection, a major cleanup was needed, along with some changes related to use of flash memory to store configurations more efficiently. This allowed me to design a cleaner configuration structure that could be parsed more efficiently, and thus, I was able to add more buttons!

As of now, we can use up to 32 buttons of types 1 and 2, and up to 9 buttons of types 3 and 4 – buttons from 33 to 42 are reserved for to be assigned as middle buttons. With a mode switch support, this is 96 virtual buttons plus 33 available for middle switch positions. The latter are now defined explicitly, allowing for a wider range of configurations. These changes should allow for pretty much any collective configuration, with twice the buttons compared to what we had before.

Another good thing – all heads now have common data structures, that are populated in setup subroutines from corresponding configuration structures. This reduces chances of breaking something when adding features and makes things cleaner =)

Please sync with the repo and reflash, report bugs if you find any!

Here’s how new head switches configuration looks:

// 1: button
// 2: momentary press button
// 3: selector button (button + middle button press when switch is centered)
// 4: selector momentary press button (momentary press button + middle button momentary press when switch is centered)

//0 – disabled, 1 – button, 2 – 3 – selector_button, 4 – selector, 5 – slave
const sw_matrix ab412_switch_matrix[] PROGMEM =
// i t m is i – id, t – type, m – middle button for types 3 and 4
{1, 1, 0},
{2, 1, 0},
{3, 2, 0},
{4, 2, 0},
{5, 2, 0},
{6, 2, 0},
{7, 2, 0},
{8, 2, 0},
{9, 3, 33},
{10,5, 33},
{11,3, 34},
{12,5, 34},
{13,3, 35},
{14,5, 35},
{15,4, 36},
{16,5, 36},


New “scale” Bell-412 collective head cover

I continued experimenting with white paint marker and acetone and made a “scale” version of a top panel for a 412-style head requested by a friend. In my humble opinion, it looks great, white paint adds some “aging”, and it looks more like it was taken off from a real helicopter. It differs from the original slightly, but has a disctinctly recognizable look overall!

Throttle latch button design improvement

A really small update for the latest physical throttle latch mod. A fellow 206 pilot pointed out that the shape (and the color!) of the button was not realistic!

So who am I to argue with a pilot, here’s the new one 😀

I have filled letters with white paint marker ink, then wiped the surface of the button with a cotton pad wetted in acetone. The button was then glued to the shameful “unrealistic” one with cyanoacrylate =)

The cap is already in the repo if you like it (I do, it really looks much better) 😉

Realistic throttle latch operation for all collective levers

When I added support of sending a button press at zero throttle position for new throttle latch, I thought that nothing actually prevents me from doing the same thing for levers with tactile idle stop mark!

So, I have added a similar mode for Huey-style lever (which still looks better with a tactile mark design, as in the real Huey the idle stop latch is driven by a solenoid). So, to press the cutoff button (throttle latch button in Dreamfoil 407 for Xplane11) with a turn of the throttle grip, in case of the tactile mark lever, one has to press the assigned idle release button on the head before moving throttle grip past the idle stop detent. This pretty much makes all levers very similar in the sense of realism, the only thing absent in tactile mark levers being the actual detent of the idle stop. Not a big deal tbh!

For levers with physical latch, the button will always be pressed when the throttle grip reaches its zero position.

Here’s how it looks in the configuration:

#define BUTTON_PRESS_ON_THROTTLE_CUTOFF 1// this feature will send a joystick button press when the throttle is fully closed
#define THROTTLE_LATCH_MODE “TACTILE” // PHYSICAL for physical latch mod or TACTILE for levers with tactile marks
#define PHYSICAL_LATCH_MOD_JOY_BUTTON 32 // joystick button number as seen in joy.cpl for the 1st Leonardo in the list
#define THROTTLE_MIN_AXIS_VALUE 0 // check this if the default doesn’t work, print raw_throttle value in e_single_collective.ino and set this line to its value, corresponding to a fully closed throttle

Physical throttle latch mod for a single collective is released!

I am happy to say that the test sample of the mod works perfectly!

All related files and models are pushed to the repo. Here’s a short video of it in action:

The cool thing about the mod is, except for printed parts, it only uses a spring from a PBS-16 button which is used in the Huey head as well as an idle latch release button. So no unicorn horn powder involved =)

I will be adding software support for it today. It will send a joystick button press when the throttle is set to zero, so DF 407 in xplane and some other helicopters that have it implemented in an equally anal way will work properly =)

I have also added a version of a collective housing with a revision hatch for a rubber band based tensioner version.