“Little G1000” - My quest for mouse-less VR (The "It's not pretty but it works" Edition)

I have the Honeycomb Alpha and Bravo which do a fair bit towards reducing the need to use the mouse to interact with the cockpit while in VR.

I have a pretty complex setup using SPAD.Next with all sorts of conditional bindings that will alter the function of a button if some condition is met. I use this idea heavily with the AP controls on the Bravo and my most common “conditon” is if the PTT button on the Alpha is depressed (I call this my SHIFT button). So an example would be:

ALT - short press = enable ALT mode
ALT - long press = set PFD altitude to current altitude
SHIFT (PTT button) + ALT = “heading bug select”… this would be akin to selecting ALT on the selector switch on the Bravo… but its a pain to keep switching the selector back and forth (and remembering which is where) so I created little shortucts for myself.

That is just one of many examples of things I’ve done with my bindings.

Anyway, to the point of this post. The one thing that the Bravo does not (even attempt to) address is actually programming the GPS. Sure, you can set up your route in the sim or navigraph and load it in, but its more fun to program the GPS in the cockpit… but it is very cumbersome to do so with the mouse (even when not in VR). So, I decided to make myself a “Little G1000” using off the shelf components. The important bits for the G1000 are the dual axis rotary encoder and 6 buttons in the lower right corner, right?


So, “it shouldn’t be that hard”, I told myself, to build a custom controller to emulate those functions. Turns out it really wasn’t. I figured most of y’all would get a kick out of this and maybe it will spark an idea for someone else.

I was starting from zero knowledge of the “custom sim controller” market, so it took a fair amount of research to find the right parts and available USB control modules, but this is what I came up with.

I present the “Little G1000” (don’t laugh! I know what it looks like)

The Guts!

In addition to the dual rotary encoder and 6 buttons, I decided to add two additional single encoders to permanently control the HDG and ALT functions. Since these are single axis encoders, they are set to the “SMALL” inrements (1deg 100ft) but I am able to go in 10deg 1000ft by holding down my SHIFT (PTT) button on the Alpha yoke. I will probably end up replacing them with dual axis encoders so that you can control 1/10 and 100/1000 like the actual G1000.

And, here it is in action:

For now, I’m going to enjoy using it… maybe some day I will buy a 3d Printer and make a proper enclosure for it.


You can use Spad.neXt to make those single encoders advance in large steps when turning them fast. Look for the acceleration option when setting up events. There are loads of other similar minded people with help and ideas on the Spad.neXt discord server.

Thanks for the tip. I did not know SPAD had that function. It appears however that it is limited to the Saitek panels which SPAD understands clockwise and counterclockwise rotations of the knobs.

For my encoders (and the rotary encoder on the Bravo for that matter), SPAD only sees a knob as two discrete buttons with no relationship to each other. It doesn’t understand it is a knob, so there is no option to set acceleration.

I did see in the discord chat that the developer is working on a special treatment of the Bravo encoder. Maybe that will evolve into being able to tell SPAD that two buttons are actually a rotary encoder which can be turned CW or CCW. That would be cool.

You can still do it with a little bit of basic scripting in an event. Have a look at my example at the link below.

Is the board Arduino or Leo Bodnar?

Its the Leo Bodnar BBI-32. If I had to do it again, or if I make another, I will probably look at the DSD micro 32 as it has a “remote” USB connection and is significantly smaller. But, its also twice the price of the BBI-32.

Not trying to thread ■■■■, because I love your project.

Lol, yeah. There’s clearly other options out there. But flying in VR, I certainly don’t need the screen on a realsim gear or other (like the iPad frame) controller.

Plus, I like to tinker. It was fun to put together

Now that I see the Saitek radio panel though, I’m thinking that with a couple more buttons and swapping out the single encoders for duals, I could probably make it switchable to incorporate the important functions for radio management too.


So how much did this cost you total? I have been looking for a great VR solution to the GPS for so long, but I have never worked with my own electronics before.

The actual hardware that went into the build comes out to about $80US. The bulk of that being the USB controller.
Dual Encoder
Single Encoder
Jumper Wires
Momentary Pushbuttons

FedEx shipping of the BBI-32 controller from Europe to the US was a pretty penny, but it was far quicker than waiting for international mail!

I used the encoders available from propwash simulations. Leo Bodnar (BBI-32 manufacturer) carries some pretty nice looking encoders but they are $$.

A little soldering and some ingenuity are the only other requirements!

Man, I wish I could just buy a completed setup ready to mount and play. No chance you would be willing to build and ship (US) would you?

1 Like

Hang on, I thought the dual rotary dials of the G1000 could not be bound in MSFS (I’m talking about the main ones with which you enter the ICAO codes when doing a direct to for example)? Did I miss something? I’ve already got a custom made control box (with 10 rotary encoders!) and I’d love to be able to control the G1000 fully (it’s such a pain to enter anything using the mouse while in VR)

There’s no bindings for them in the sim control menu. If you use an external SimConnect interface however, they are available. All of the G1000 events start with ‘AS1000’. The rotary knob on the G1000 events are (self explanatory which are which)



I use SPAD.Next. Other tools like Axis-and-Ohs or FSUIPC would work as well.

I wish I was proud enough of what I built to try to sell it to someone. It is rough… Put together with duct tape and bubble gum.

1 Like

Well done! Be proud and thanks for sharing.

Thanks a lot! I didn’t know that but I’m definitely going to use this now as this is something that had been bothering me for a long time

This is what i made. It works best with GNS530 but also works with G1000, plus radio tuning, adjusting course etc. on Steam gauges, autopilot control, fuel, magnetos etc.

Very cool… looks like you are several prototypes ahead of me! How are the “cheap” dual encoders? The ones I got are nice, but the “Action” on them is pretty tight compared to the single encoders I got from the same source.

I just designed and ordered a custom circuit board to hold the 6 pack of buttons (they are all super glued together in my current design!).

I also found some push buttons with 10mm square push caps… still bigger than the actual GPS buttons, but a better aproximation of reality than the current switches I am using.

Now I am trying to learn FreeCAD well enough to design a enclosure for the whole thing and then decide if I should buy a 3d printer or not.

The 3D-printed dual encoders are less then ideal, a bit lose maybe - they don’t have that very precise, expensive quality feel to them, but who cares! They work pretty well and cost pennies. Lose is better then tight, I feel clicking and rotation clicks too, so it’s all good. One of them has a tight friction at specific spot, so it’s difficult to “push-click” the middle knob on that one when at specific angle. I should’ve checked better before super-gluing them all to the body :slight_smile: But it’s a rarely used click, so not worth redoing. Overall I’m happy. in VR things have to be close together so you can feel them. Having all the buttons in a long row, like the real G1000 is not feasible, I couldn’t reach them easily in VR, not knowing which one I’m pressing. My box is for VR, so once I feel it, I I instantly know which encoder I rotate, by feeling the knob shapes (the are distinctly different, modeled after G1000) and the button next to it is always connected.

Soon VR controllers will be supported (November), so hopefully those buttones etc. will be easier to operate.

I’m with you on the mouse-less vr. I’ve started (beginning to transition from XP) what I call Project Braille. I’m using AirManager, multiple Arduinos and a boat load of encoders, buttons and switches to place inputs where they would be in real life. No actual visuals or labels on the panel itself. I’m going to paint it all white when I’m done.

I have a fixed seat and I use a plumb bob hanging from the ceiling to position my head to reset my view, so my sight picture is repeatable.

I placed encoder caps on the panel with double sided tape, reached for each one in VR a few times, tweaked their positions to where they felt most natural, marked their positions, drilled the panel and set the real encoders. It’s really intuitive. I can glance briefly at the Heading bug in VR, reach for it, and it’s there. Having a functional 6-pack is really rewarding. The throttle, prop, flaps and switch panel feel very natural as well. My next (and most ambitious) addition will be a g1000 (sans screen). Then on to the autopilot, transponder, etc….

Regarding all the buttons on the g1000, my hope is that once I have my hands on the closest respective knob, the buttons are easy to hit. I do plan on adding protruding nubs to a few key buttons such as FPL and DIR, to use as “home” buttons.

We’ll see.