Jump to content
The simFlight Network Forums

G1000 Hardware, Prepar3D 3.1, Mindstar G1000 & FSUIPC


Recommended Posts

Hi everyone,

I have a simulator with three monitors i5 CPU high end game machine with 16 GB RAM, two NVIDA 950 GPU, G1000 Hardware from Noble Simulations. The G1000 hardware interfaces the computer with two Leo Bodnar USB interfaces for the encoder knobs and one open cockpits USBKeys board for the buttons. The keys are all working and showing up in the encoderkeys.exe, and the encoder knobs have be programmed and are showing up in the IOCKEYS software. The problem is neither the key presses or encoders actually talk to the Mindstar g1000 aircraft. I tried to use FSUIPC. It picks up on the encoder knobs but not the button presses, and when the encoder knobs are programmed in FSUIPC it also is not transmitted to the simulator or Mindstar. Simply stated:

1. my issues are unable to get the key presses or encoders to communicate with the sim or g1000 software.

2. Tried it with encoderkeys and iockeys running and without them running. Does not make a difference.

3. I can get P3D 3.1 in setting controls to recognize the G1000 hardware encoder knobs and it works in a G1000 P3D aircraft but not in the Mindstar equipped G1000 aircraft.

4. The key presses of the G1000 hardware are not recognized in P3D or FSUIPC... I think it's an issue with IOCKEYS ini file but not sure.

A. My device on the encoder display says Device:2, and not sure what to put in the device = " " line or the WINDOW = " " line.

Can any one guide me? Please realize I am very new to fly simulation. Thank

Wil

Link to comment
Share on other sites

The G1000 hardware interfaces the computer with two Leo Bodnar USB interfaces for the encoder knobs and one open cockpits USBKeys board for the buttons. The keys are all working and showing up in the encoderkeys.exe, and the encoder knobs have be programmed and are showing up in the IOCKEYS software. The problem is neither the key presses or encoders actually talk to the Mindstar g1000 aircraft. I tried to use FSUIPC. It picks up on the encoder knobs but not the button presses, and when the encoder knobs are programmed in FSUIPC it also is not transmitted to the simulator or Mindstar.

 

 

Leo Bodnar boards emulate standard joystick devices and are seen by FS and FSUIPC alike as standard sets of buttons and axes. If you use other software to intervene, as you have, I'm afraid I've no idea whiat would be going on. I think you need to go to support forums for "encoderkeys" and IOCKEYS" programs, whatever they are.

 

Does Mindstar have any support?

 

Pete

Link to comment
Share on other sites

Hi Pete !

Thanks for your reply. This is what the Mindstar people sent me. I try choice one but did not seem to work.

Method 1: Triggering G1000 Events using Keyboard Shortcuts

Using keyboard shortcuts to control the G1000 is the most simplistic of the control methods, and it should not be used unless both of the other options below are not practical for you.

This section is sometimes easier to configure by using the SetupG1K utility program because it allows you to press the desired key combination, and SetupG1K will detect the key combination and save it into the G1000.INI. But there is no technical reason why you cannot edit this file manually with Notepad if you prefer.

When defining keystrokes into the INI file, use only the lower-case version of a key, with modifier keywords. Valid modifiers for keyboard shortcuts are the words SHIFT, CTRL, and ALT. The modifier must be separated from the key definition by a "+" sign. To further understand modifiers, consider this - you must not use the "@" as a keyboard shortcut, but instead, you must type SHIFT+2 on the INI file line. Letters can be coded as upper or lower case, but there is no distinction. for example, between an upper-case G and a lower-case g. They are both recgonized as the same key. If you want to code a G and a SHIFT+G, then those two are distinguished as separate keys.

Any keyboard shortcuts assigned to G1000 functions will not be acted upon by flight simulator, even if you code a function that flight simulator would otherwise recognize. For example, if you assing the letter "G" to a G1000 function, the simulator will no operate the aircraft landing gear as it usually would with the "G" key because the G1000 retains the keystroke and does not forward it to flight simulator.

One drawback of using keyboard shortcuts for G1000 functions is that the main simualtor window (the one with the menubar) must be the window "in focus" in order for keys to reach the simulator. If you have a popup window open, G1000 shortcut keys will not reach the software, even if the popup window is a G1000 element.

Formatting Example for Keyboard Shortcuts:

NAV_ID_TOGGLE=CTRL+ALT+SHIFT+G

Method 2: Triggering G1000 Events with SImConnect

SimConnect was introduced by Microsoft in FSX, and continues to be in use by Lockheed-Martin in Prepar3D. It is the preferred method of controlling the G1000 from hardware. SimConnect events are generated by your hardware driver software that is programmed to connect to Flight Sim using the SimConnect interface. This means either you, or your hardware vendor, must have written a program that interfaces your hardware to flight simulator.

SimConnect events for the G1000 use any hex number between and inclusive of 0x11000 to 0x11FFF. The number must be coded in the INI file with the 0x prefix in order to be recognized as a SimConnect event. The G1000 will monitor the SimConnect event stream for the specified event, and if that event appears, the G1000 will execute the action to which the event number was assigned.

Formatting Example for SimConnect Events:

NAV_ID_TOGGLE=0x11000

Method 3: Triggering G1000 Events with FSUIPC Offsets

FSUIPC must be installed and operating on your computer in order to use this control method. The G1000 installer does not install FSUIPC because no internal functions of Mindstar Aviation software rely on FSUIPC. If you want to use the FSUIPC control method, then it is your responsibility to install the latest version of FSUIPC.

To use this method, Enter values on the event lines in the format FSUIPC:0x1234567 where 1234567 is any avaialble FSUIPC offset based on the FSUIPC documentation. The G1000 expects the offset to be an integer in the range of 0 to 255. Each time the value at the specified FSUIPC offset increments, the G1000 will execute the specified function. If the value at the offset increments more than once, then the G1000 will interpret that as a request to repeat the specified function for the number of times the value changed. Once the value reaches 255, your hardware driver software should return the value to 0 and start incrementing again from there.

Formatting Example for FSUIPC:

NAV_ID_TOGGLE=FSUIPC:0x123456

I think options two and three are a little over my head at this point. I'm reading up on offsets and programming SIOC. Maybe I can figure it out at some point. I don't think this will be a quick fix. I may be on my way to being a programmer before I actually resolve the issue. I appreciate your response.

Sincerely,

Wil

Hi Pete !

Thanks for your reply. This is what the Mindstar people went me. I try choice one but did not seem to work.

Method 1: Triggering G1000 Events using Keyboard Shortcuts

Using keyboard shortcuts to control the G1000 is the most simplistic of the control methods, and it should not be used unless both of the other options below are not practical for you.

This section is sometimes easier to configure by using the SetupG1K utility program because it allows you to press the desired key combination, and SetupG1K will detect the key combination and save it into the G1000.INI. But there is no technical reason why you cannot edit this file manually with Notepad if you prefer.

When defining keystrokes into the INI file, use only the lower-case version of a key, with modifier keywords. Valid modifiers for keyboard shortcuts are the words SHIFT, CTRL, and ALT. The modifier must be separated from the key definition by a "+" sign. To further understand modifiers, consider this - you must not use the "@" as a keyboard shortcut, but instead, you must type SHIFT+2 on the INI file line. Letters can be coded as upper or lower case, but there is no distinction. for example, between an upper-case G and a lower-case g. They are both recgonized as the same key. If you want to code a G and a SHIFT+G, then those two are distinguished as separate keys.

Any keyboard shortcuts assigned to G1000 functions will not be acted upon by flight simulator, even if you code a function that flight simulator would otherwise recognize. For example, if you assing the letter "G" to a G1000 function, the simulator will no operate the aircraft landing gear as it usually would with the "G" key because the G1000 retains the keystroke and does not forward it to flight simulator.

One drawback of using keyboard shortcuts for G1000 functions is that the main simualtor window (the one with the menubar) must be the window "in focus" in order for keys to reach the simulator. If you have a popup window open, G1000 shortcut keys will not reach the software, even if the popup window is a G1000 element.

Formatting Example for Keyboard Shortcuts:

NAV_ID_TOGGLE=CTRL+ALT+SHIFT+G

Method 2: Triggering G1000 Events with SImConnect

SimConnect was introduced by Microsoft in FSX, and continues to be in use by Lockheed-Martin in Prepar3D. It is the preferred method of controlling the G1000 from hardware. SimConnect events are generated by your hardware driver software that is programmed to connect to Flight Sim using the SimConnect interface. This means either you, or your hardware vendor, must have written a program that interfaces your hardware to flight simulator.

SimConnect events for the G1000 use any hex number between and inclusive of 0x11000 to 0x11FFF. The number must be coded in the INI file with the 0x prefix in order to be recognized as a SimConnect event. The G1000 will monitor the SimConnect event stream for the specified event, and if that event appears, the G1000 will execute the action to which the event number was assigned.

Formatting Example for SimConnect Events:

NAV_ID_TOGGLE=0x11000

Method 3: Triggering G1000 Events with FSUIPC Offsets

FSUIPC must be installed and operating on your computer in order to use this control method. The G1000 installer does not install FSUIPC because no internal functions of Mindstar Aviation software rely on FSUIPC. If you want to use the FSUIPC control method, then it is your responsibility to install the latest version of FSUIPC.

To use this method, Enter values on the event lines in the format FSUIPC:0x1234567 where 1234567 is any avaialble FSUIPC offset based on the FSUIPC documentation. The G1000 expects the offset to be an integer in the range of 0 to 255. Each time the value at the specified FSUIPC offset increments, the G1000 will execute the specified function. If the value at the offset increments more than once, then the G1000 will interpret that as a request to repeat the specified function for the number of times the value changed. Once the value reaches 255, your hardware driver software should return the value to 0 and start incrementing again from there.

Formatting Example for FSUIPC:

NAV_ID_TOGGLE=FSUIPC:0x123456

I think options two and three are a little over my head at this point. I'm reading up on offsets and programming SIOC. Maybe I can figure it out at some point. I don't think this will be a quick fix. I may be on my way to being a programmer before I actually resolve the issue. I appreciate your response.

Sincerely,

Wil

Edited by wdelorme
Link to comment
Share on other sites

Well, I believe since FSUIPC seems to make everything else work on my system that did not previously work. I have the most confidence in it. I'm learning about offsets and it talks about FSUIPC offsets that you program into SIOC forces the IOPC module to use FSUIPC to control everything. I already have some encoder knob functions working (Leo Bodnar joystick boards) with FSUIPC, but not all of them however that may be because I don't know what function to assign them too.. So I'm thinking so far with this G1000 FSUIPC may be my best option. So far it's the only thing I have faith it will work. I just have to figure out how. By the way hope your trip was wonderful and your daughters wedding was awesome! I hope I got that right :). Also thank you for FSUIPC!

Link to comment
Share on other sites

Pete,

I have been studying up on this problem and using FSUIPC to combat it.  I was reading the FSUIPC Users Guide on page 28 under the heading of "Buttons Connected via Aerosoft's 747 MCP."   I know I'm not flying a 747, but I think the idea is still the same.  So if I find the correct FSUIPC offsets and program SIOC IOCP software module to use these offsets for each buttons function and then follow the instructions you have in this manual with your offsets, it sure work right?  Is there specific G1000 function offsets in FSUIPC?  When I found that FSUIPC seemed to make some of the Leo Bodnar controlled encoder knobs work, I could NOT find the correct labeled function for most everything related to the G1000 specifically.  (That may be because I do not know what to look for)  For example the autopilot preset altitude, there is a dual knob that you press the center portion to active a function and an outer and inner knob, (in the real G1000 system) the outer knob controls the 1000's place and the inner knob controls 100's place etc.

 

Another issue I found for example: the COM/NAV frequency knobs.  They work the same as above when you turn the outer knob to adjust the whole number of the frequency and the inner knob to adjust the decimal part of the frequency, then pressing in on the inner knob like a bottom press  toggles from COM/NAV 1 to COM/NAV 2.  Then there is another button that looks sort of like this "<->". This button toggles from the frequency that you are selecting and moves it from STBY to the Active Frequency.  So in explaining all of this, I was trying to finding in FSUIPC which of these listed functions I should select to do the above desire functions (if it is possible)?  Another issue is the FMS knob same kind of knob as described in these other examples, but it works sort of like a cursor knob.  You press the FPL button on the unit and it brings up a flight plan and you used the FMS knob (outer knob) to move up and down or across the list and the inner knob lets you scroll through the choices.  So if you were selecting an airport and you use the out knob to move over 1 digit at a time from right to left and the inner knob lets you scroll through the choices like example: "KCP_" so I would have scrolled laterally to select the first spot with the outer knob then when at that place use the inner knob to dial the "K" then out knob to move over to the next digit to the place where the "C" etc.  pressing the inner button makes the cursor highlight for control with the two knobs.  So all button presses including the rotary knobs buttons (center inner knob) all work from the Leo Bodnar, and the key press work on the OpenCockpits board through the SIOC/IOCP software module. 

 

So I do believe FSUIPC is my best chance at getting this working.  If you can provide any guidance, that would be terrific.  Like I said I am not a programmer, and have no programing experience. However, I am willing to dive deep into this and learn what ever I need to get this to work.  Any, help you could provide would be greatly appreciated.

 

Thanks,

 

Wil

Link to comment
Share on other sites

I have been studying up on this problem and using FSUIPC to combat it.  I was reading the FSUIPC Users Guide on page 28 under the heading of "Buttons Connected via Aerosoft's 747 MCP."   I know I'm not flying a 747, but I think the idea is still the same. 

 

No. That part is about making data arriving from that MCP, from the switches, look like normal joystick buttons. You already have normal buttons. your need is almost the exact opposite!

 

 So if I find the correct FSUIPC offsets and program SIOC IOCP software module to use these offsets for each buttons function and then follow the instructions you have in this manual with your offsets, it sure work right?  Is there specific G1000 function offsets in FSUIPC?

 

No. FSUIPC cannot possible provide such support for every add-on out there, most of which I've never heard of. Those add-ons which do have offsets assigned mostly only have them because their authors applied for them. But that happens less and less since SimConnect provides a direct interface into FS and saves using FSUIPC. In FS9 days and before it was very different.

 

  When I found that FSUIPC seemed to make some of the Leo Bodnar controlled encoder knobs work, I could NOT find the correct labeled function for most everything related to the G1000 specifically.

 

The only FS controls you'll find are those FS provides. Whether any specific add-on takes any notice of them is up to their authors. There will always be add-ons with functions not known to FS in any case.

 

I think you have the wrong end of the stick. From your post earlier:

 

"To use this method, Enter values on the event lines in the format FSUIPC:0x1234567 where 1234567 is any avaialble FSUIPC offset based on the FSUIPC documentation. The G1000 expects the offset to be an integer in the range of 0 to 255. Each time the value at the specified FSUIPC offset increments, the G1000 will execute the specified function. If the value at the offset increments more than once, then the G1000 will interpret that as a request to repeat the specified function for the number of times the value changed. Once the value reaches 255, your hardware driver software should return the value to 0 and start incrementing again from there"

 

Note the part I've highlit in red. I think that this option is really specifically designed to allow folks to write a driver -- i.e. a program. You could do that as a Lua plug-in. I think it is also only referring to the user of offsets you choose yourself from those freely available for users -- those in the range 66C0 to 66FF.

 

However, you could try doing it purely through button assignments. It needs a value cycling from 0 to 255 and back to 0, changing each time you press a button. You can do than in button assignments by assigning to "offset ubyte incr ", with a different offset (66C0, 66C1, 66C2 .... 66FF) for each of up to 64 functions. You tell the G1000 software the way it says, eg, NAV_ID_TOGGLE=FSUIPC:0x66C0. And so on.

 

Even the option 2 you mentioned looks okay too, and it really is even easier. The FS control numbers from 67000 or so upwards are free, providing you are not using PMDG 777X or 737NGX aircraft. This is from your earlier post:

 

"SimConnect events for the G1000 use any hex number between and inclusive of 0x11000 to 0x11FFF. The number must be coded in the INI file with the 0x prefix in order to be recognized as a SimConnect event. The G1000 will monitor the SimConnect event stream for the specified event, and if that event appears, the G1000 will execute the action to which the event number was assigned.

Formatting Example for SimConnect Events:

NAV_ID_TOGGLE=0x11000"

 

They refer to these as "SimConnect events" but in fact the FS event or control number system has been implemented for many FS versions before SimConnect was introduced in FSX -- I remember them in FS95. I call them FS "controls", but the official FS documentation calls them "key events".

 

0x11000 is decimal 69632, so well above those used by FS itself. You can then assign a button to that function in FSUIPC by assigning to "<Custom Control>" with value x11000 or 69632 (note, no 0 in front of the x in FSUIPC). You won't have a limit of 64 controls using this method.

 

Pete

Link to comment
Share on other sites

Pete,

 

Thanks for your response! 

 

Ok I think I may be under standing you now.  So if I use this option 2 above:

 

2. However, you could try doing it purely through button assignments. It needs a value cycling from 0 to 255 and back to 0, changing each time you press a button. You can do than in button assignments by assigning to "offset ubyte incr ", with a different offset (66C0, 66C1, 66C2 .... 66FF) for each of up to 64 functions. You tell the G1000 software the way it says, eg, NAV_ID_TOGGLE=FSUIPC:0x66C0. And so on.

 

So I  decide which button lets say is associated with eg,. 66C0 (I assign it in the SIOC to make the board understand the 66C0 is that particular button press) then use that offset to make it work through the g1000.ini file using eg, Nav_ID_TOGGLE=FSUIPC:0x66C0;    RIGHT  :) !!

 

In the last option:

 

3. 0x11000 is decimal 69632, so well above those used by FS itself. You can then assign a button to that function in FSUIPC by assigning to "<Custom Control>" with value x11000 or 69632 (note, no 0 in front of the x in FSUIPC). You won't have a limit of 64 controls using this method.

 

Is there a list of these values eg, 0x11000 which is decimal 69632, or is this again something I assign in SIOC understanding that x11000 is 69632, x110001 is 69633, x110002 is 69634 etc?  So in this option I create a <custom control> in FSUIPC that does the desired function using assigned values?

 

I'm trying very hard to wrap my brain around this (your patience is so appreciated) but I think I'm starting to understand...  Hopefully, my heading is true :)

 

Wil

Link to comment
Share on other sites

So I  decide which button lets say is associated with eg,. 66C0 (I assign it in the SIOC to make the board understand the 66C0 is that particular button press) then use that offset to make it work through the g1000.ini file using eg, Nav_ID_TOGGLE=FSUIPC:0x66C0;    RIGHT  :) !!

 

Er, sorry, I know nothing about the SIOC part. I was only trying to interpret the text you showed, which seems to indicate that you just edit the G1000.ini.

 

Do you mean that your buttons are not normal joystick buttons, recognised by FSUIPC as such? So my suggested assignments by offset manipulation was not relevant?

 

I don't know how you tell SIOC to increment a byte offset each time you press a button I'm afraid.

 

Is there a list of these values eg, 0x11000 which is decimal 69632,

 

 

No, conversion of Hexadecimal numbers to Decimal or vice versa is a conversion, a computation. There's no infinite list of numbers showing them all in both radices! You'll find many hex conversion utilities about, check the Internet. Anyway, you will only need one or the other.

 

So in this option I create a <custom control> in FSUIPC that does the desired function using assigned values?

 

Well, only if your buttons are visible in FSUIPC. You seem from the above to imply they aren't, and have to be programmed in SIOC. Whether SIOC can send controls or not I have no idea.

 

I'm trying very hard to wrap my brain around this 

 

For a beginner you seem to have rather jumped in the deep end. Why all this complication with G1000's, and especially with SIOC? Wasn't there a ready-made solution to whatever it is you wanted?

 

I suspect you really need to be in a cockpit builders forum where you'll find lots of folks doing this sort of thing. I know SIOC is used a lot by such folk. Try for instance http://www.mycockpit.org/forums.

 

Pete

Link to comment
Share on other sites

Thanks Pete.  I appreciate your insight and knowledge.  I think you are sending me in the right direction.  I just need to get it communicating with FSUIPC.  I believe that will be with SIOC.  I will let you know how it turns out if you are interested.  If I figure it out, I may do a you tube video explained the process.  There are a lot of youtube videos on doing opencockpit panels for Airline Transport aircraft on Opencockpits Youtube channel and website, but they are all in Spanish.  I'm guessing I am the only English speak person with this problem that has been asking these questions.  You, however, are the only person that seems to even know what I am asking or talking about (that has responded to me on all the forums that I have posted).  I have tried opencockpits forums and even their tech support, but I believe the language barrier is and issue.  Both Spanish and SIOC programming language for me:)  This makes me want to take some programming classes at 55 years old :oops:  

Link to comment
Share on other sites

As far as the jumping right in the deep part. I'm planning to be an independent flight instructor and I wanted to have a g1000 that I could teach my students ground instrument training without spinning a real prop. That way they can become familiar with the G1000 before burning real flight hours. It's not FAA approved but it is flight education. I wish I had something to practice on when I was training and become familiar before I burned $$$'s. I always do things the hard way. Then I try to make it easier for those behind me. I'll get through this and I will be smarter for it. Besides they guys that sold the hardware to me gave me a great deal on it. So I can't complain. I have a G1000 that can and will work for $700 plus my time.

Wil

post-98910-0-69764700-1455058483_thumb.j

Link to comment
Share on other sites

Pete,

I figured it out. It was a port assignment issue in the Encoderkey.ini file and P3D is called dVL in the window = line of the ini file. One app reported the USB port as two and SIOC reported it as 13 not two. The encoderkeys.exe, joytokey.exe, and P3D has to be run in Administator then the key presses and encoder knobs show in FSUIPC, P3d, and the Mindstar G1000 add on. All of these things must be done for Otto work. Everything is now functional under method 1. Thanks for your help and for your work for all of us simmers

Blessings,

Wil

Link to comment
Share on other sites

  • 8 months later...

Hey everyone,

 

I know this post is sort of old at this point in the game.  Things did not work out so well with the Leo Bondnar boards.  I just wanted to let everyone know that I worked through this problem with the mindstar folks and the designer of my G1000 system (Noble Flight Sims).  The problem was probably a permssions issue with the Leo Bodnar units software.  My resolution of this problem was a circuit board that was designed by Tyler Noble and additional software driver that makes this system work flawlessly with the Hardware P3D and Mindstar.  So I have it working fully functional now with the upgrade to my hardware.  If you have any questions about this please do not hesitate to contact Tyler Noble at Noble Flight Simulations.  He is a Great Guy and is super helpful with a low cost G1000 unit for your home simulator.  He worked through the whole process with me until we found what worked and fixed what did not.  It is fully functional now with his complete hardware and driver setup.  Thanks Tyler!!

 

Thanks,

 

Wil

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.