Jump to content
The simFlight Network Forums

PFC Cat III Compatibility with FSUPIC


Recommended Posts

I own the PFC Cat III USB system and purchased a registered version of FSUIPC recently.

My goal is to get my Cat III system's knobs and switches to work with PMDG 747X.

Please let me know whether this is possible and how to go about doing it.

I don't know that PFC system. Is that a Cirrus console, or some version of their cockpit?

Have you checked that you can see all the buttons and switches in FSUIPC? I think the USB driver tends to have all of them pre-programmed for their labelled function, and the translation of those functions into FS will be aimed only at the standard FS functions.

If it is a console using my "PFCHID.DLL" driver, then that is not only compatible with FSUIPC, but it needs FSUIPC to run. In that case the switches and knobs are reprogrammable via named FSUIPC macros, as described in the document I supplied with the PFCHID.DLL driver.

The PMDG aircraft are well-known for inventing all their own subsystems and not using all that much of what is controlled through standard FS options at all. So it doesn't sound terribly hopeful. Don't you think you should have researched this a little before making such investments? However, that said, there are solutions to some of the areas - see the User Contributions subforum.

I use a PFC cockpit with a PMDG-originated aircraft, but I discard all of the PMDG panels and subsystems and substitute Project Magenta instead. Whether that is possible with your PFC device I don't know. The 737NG cockpit I have pre-dates all of PFC's USB stuff by years. And the drivers I wrote for non-USB equipment allow complete assignment flexibility.

So, in summary, without knowing more, I really don't know. I doubt that any PMDG aircraft is fully controllable from any hardware, though there are some solutions for the FS9 versions -- as can be seen in the User Contributions subforum.

Regards

Pete

Link to comment
Share on other sites

I don't know that PFC system. Is that a Cirrus console, or some version of their cockpit?

Have you checked that you can see all the buttons and switches in FSUIPC? I think the USB driver tends to have all of them pre-programmed for their labelled function, and the translation of those functions into FS will be aimed only at the standard FS functions.

If it is a console using my "PFCHID.DLL" driver, then that is not only compatible with FSUIPC, but it needs FSUIPC to run. In that case the switches and knobs are reprogrammable via named FSUIPC macros, as described in the document I supplied with the PFCHID.DLL driver.

The PMDG aircraft are well-known for inventing all their own subsystems and not using all that much of what is controlled through standard FS options at all. So it doesn't sound terribly hopeful. Don't you think you should have researched this a little before making such investments? However, that said, there are solutions to some of the areas - see the User Contributions subforum.

I use a PFC cockpit with a PMDG-originated aircraft, but I discard all of the PMDG panels and subsystems and substitute Project Magenta instead. Whether that is possible with your PFC device I don't know. The 737NG cockpit I have pre-dates all of PFC's USB stuff by years. And the drivers I wrote for non-USB equipment allow complete assignment flexibility.

So, in summary, without knowing more, I really don't know. I doubt that any PMDG aircraft is fully controllable from any hardware, though there are some solutions for the FS9 versions -- as can be seen in the User Contributions subforum.

Regards

Pete

Hi Pete,

Thanks for your speedy reply.

Here is the console I purchased:

http://www.flypfc.com/index.php?i_id=8

FYI, I purchased this console to practice instrument approaches and maintain instrument recency (I hold a PPL/IFR license).

And for the above purpose, the console works flawlessly.

The Cat III system does use the PFCHID.DLL driver and came with a version of FSUIPC.

In this case, would the console switches and knobs be reprogrammable for PMDG aircraft using a registered version of FSUIPC?

Let me know what additional info you need from me in order to help me troubleshoot this.

Appreciate your time and wisdom.

Fabian

Link to comment
Share on other sites

The Cat III system does use the PFCHID.DLL driver and came with a version of FSUIPC.

In this case, would the console switches and knobs be reprogrammable for PMDG aircraft using a registered version of FSUIPC?

Well, as you'll see from the PFCHID documentation, you can build an FSUIPC Macro file, using the pre-defined macro names listed in the CSV file supplied with the driver. If you don't have this stuff, check the DownLoad Links subforum here for the full PFCHID package.

To make the macros work on the PMDG 747X you'd need to refer to the methods that aircraft needs. There's quite a full implementation contributed by Guenseli in the User Contributions subforum. One way to implement things would be to simply make each of the PFCHID macro entries call the Guenseli Lua package with the required parameter. That wouldn't be the most efficient way (melding the two would be better), but it certainly wouldn't take so long.

Note that there's really not much in common between the console you are using and a fully implemented 747 like that from PMDG. I'm not sure how much you hope to achieve. Folks using hardware to interface to such aircraft have to have masses of switches and knobs they can assign and label. I think you would have to be prepared to use the mouse and on-screen panels for many of the functions, especially most of the overhead, and a good part of the MCP and EFIS controls. The radios should work okay as is. The GPS is not used in the 747. The main flight controls, throttles etc should all be okay. 747's are flown with autopilot and FMS's. Of that I suspect you can only really hope to operate some of the A/P and A/T functions on the console switches and knobs.

At least you don't have the problem of displaying A/P read-outs on your console's "MCP" -- that's the usual problem with PMDG aircraft, extracting data for hardware MCPs.

Regards

Pete

Link to comment
Share on other sites

Well, as you'll see from the PFCHID documentation, you can build an FSUIPC Macro file, using the pre-defined macro names listed in the CSV file supplied with the driver. If you don't have this stuff, check the DownLoad Links subforum here for the full PFCHID package.

To make the macros work on the PMDG 747X you'd need to refer to the methods that aircraft needs. There's quite a full implementation contributed by Guenseli in the User Contributions subforum. One way to implement things would be to simply make each of the PFCHID macro entries call the Guenseli Lua package with the required parameter. That wouldn't be the most efficient way (melding the two would be better), but it certainly wouldn't take so long.

Regards

Pete

Hi Pete,

I played around recording macros today and was successful in creating a couple of them.

For example, I was able to create a mouse macro to increase and decrease the heading bug

in the PMDG 747. I was further able to link this macro to two switches on my yoke which

FSUIPC was able to detect.

However, I was not successful in linking the macro to my heading knob on my console

as FSUIPC did not recongize the heading knob.

Here's what I have done to date.....

Created a macro file called 'pmdg747.mcro with the following content':

[ Macros]

Module="PMDG_747400_Main.DLL"

1=Speed-=RX35d0*X57cc

2=Hdg-=RX3750*X53cc

3=Hdg+=RX3750*X53cc,31

4=Speed+=RX35d0*X57cc,31

5=Alt+=RX3880*X5300,31

6=Alt-=RX3880*X5300

7=VertSpeed+=RX3990*X5700,31

8=Vert-=RX3990*X5700

9=FDCapt=RX3540*X8b00

10=A/T-Capt=RX3580*X8bcc

I understand I need to add a config line to the PFCHID configuration file to point to the macro file.

How do I do that?

Lastly, what do I do with the PFCmacroindex info, for example...

Class,Type,Macro Basename,Supported?,In file "PFC.mcro"?,Variations

03,4,Hdg,Y,N

I would be greatful if you could provide me with one example on how to link my heading knob on my console to increase and decrease the heading on the PMDG 747x aircraft

based on the above info...

BTW, I'm running FSX.

Thanks

Fabian

Link to comment
Share on other sites

Here's what I have done to date.....

Created a macro file called 'pmdg747.mcro with the following content':

Okay. But the names you are choosing for the actions don't all correspond with the ones which the PFCHID driver will be using. You haven't looked them up in the PFCmacroIndex.csv file provided! Therefore they cannot be invoked!

For example "Speed" should be "Airspeed", and probably "VertSpeed" should be "AltPreSetVs" (There's also an "AltPreSetVsC" which I don't remember. Try both, see which one matches your VS preselect knob -- else get back to me and I'll try to dig out the specifications if I can. not seen them for a couple of years!).

Not sure what you mean by "Vert". "FDCapt" is "ApFD", and "A/T-Capt" is "ApAutothrottle".

Please don't ignore the stuff I provided. A lot of work went into that to make them all automatically assignable, once you made the matching Macro file.

I understand I need to add a config line to the PFCHID configuration file to point to the macro file.

How do I do that?

Er, exactly as it says in the document. did you miss the bit that says:

MacroFilename=PFC

The filename part of the macro file to be used to replace/override built-in switch and dial operations. The default is “PFC.mcro”, but aircraft-specific macro files would normally be used. The use of macros to change the way the driver operates is described later.

So, obviously I thought (?), you can name it PFC.mcro, or keep it named pmdg747.mcro and put

MacroFilename=pmdg747

in the INI file.

Lastly, what do I do with the PFCmacroindex info

Didn't you read the User documentation at all? That file is where you find the macro names you need to use.

With this system you don't do ANY assignments in FSUIPC. Instead the PFCHID.DLL invokes the macros for you (via FSUIPC) by using the names it knows, the ones listed for you, and the macro file it also knows the name of!

Please tell me why none of this is obvious from the documentation supplied. I'd really like to know how it failed so miserably to tell you any of this. :-(

Regards

Pete

Link to comment
Share on other sites

Okay. But the names you are choosing for the actions don't all correspond with the ones which the PFCHID driver will be using. You haven't looked them up in the PFCmacroIndex.csv file provided! Therefore they cannot be invoked!

For example "Speed" should be "Airspeed", and probably "VertSpeed" should be "AltPreSetVs" (There's also an "AltPreSetVsC" which I don't remember. Try both, see which one matches your VS preselect knob -- else get back to me and I'll try to dig out the specifications if I can. not seen them for a couple of years!).

Not sure what you mean by "Vert". "FDCapt" is "ApFD", and "A/T-Capt" is "ApAutothrottle".

I've relabelled the names as follows:

[Macros]

Module="PMDG_747400_Main.DLL"

1=Airspeed-=RX35d0*X57cc

2=Hdg-=RX3750*X53cc

3=Hdg+=RX3750*X53cc,31

4=Airpeed+=RX35d0*X57cc,31

5=Alt+=RX3880*X5300,31

6=Alt-=RX3880*X5300

7=VertSpeed+=RX3990*X5700,31

8=VertSpeed-=RX3990*X5700

9=ApFd=RX3540*X8b00

10=ApAutothrottle=RX3580*X8bcc

So, obviously I thought (?), you can name it PFC.mcro, or keep it named pmdg747.mcro and put

MacroFilename=pmdg747

in the INI file.

I DID put the macrofilename in the .INI file.

Here's what my PFCHID.ini file looks like BEFORE I run FSX (I've changed my mcro filename to 'PFC'):

[Options]

FlashAPcapts=Yes

FlashMarkers=Yes

FlashTransponder=Yes

FlashADFindicator=Yes

DMEuseRMIselect=Yes

[Debug]

Console=No

LogComms=No

LogData=No

LogDecode=No

LogDevices=Yes

LogDeviceChanges=Yes

LogToDebugger=No

LogIPCwrites=No

LogMacroNames=No

LogTxData=No

LogReadCounts=No

[Config]

MacroFilename=PFC

However, after running and closing FSX, I double clicked on PFCHID.ini and found the entire [Config] section missing.

The PFCHID.ini file contents show:

[Options]

FlashAPcapts=Yes

FlashMarkers=Yes

FlashTransponder=Yes

FlashADFindicator=Yes

DMEuseRMIselect=Yes

[Debug]

Console=No

LogComms=No

LogData=No

LogDecode=No

LogDevices=Yes

LogDeviceChanges=Yes

LogToDebugger=No

LogIPCwrites=No

LogMacroNames=No

LogTxData=No

LogReadCounts=No

I'm running FSX via this path. but I've also ensured I grant full read/write permission to User/Adminstrator:

C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X

Please advice what I should do moving forward.

Thanks.

Fabian

Link to comment
Share on other sites

I've relabelled the names as follows:

...

7=VertSpeed+=RX3990*X5700,31

8=VertSpeed-=RX3990*X5700

Where did you get "VertSpeed" from? It isn't listed in the CSV file.

However, after running and closing FSX, I double clicked on PFCHID.ini and found the entire [Config] section missing.

Sounds like you edited the file whilst FS was running? I know no way any software of mine would find and delete entire sections of an INI file.

You are using the correct version of PFCHID.DLL, aren't you? 1.20 dated 15th June 2010?

Regards

Pete

Link to comment
Share on other sites

You are using the correct version of PFCHID.DLL, aren't you? 1.20 dated 15th June 2010?

Regards

Pete

I downloaded PFDCHID.DLL v 1.2 dated 16 June2010 from this forum.

However, when I check FSX Add-ons > PFCHID, it says:

Version 1.00, 4th December 2008

And I tried to add the config line again (before starting FSX, but was not successful).

Please advice.

Thanks.

Fabian

P.S. I'm just trying to get the heading knob on my console to work with PMDG 747X.

If I can get this working, I should have no problems assigning the rest of the switches.

Link to comment
Share on other sites

I downloaded PFDCHID.DLL v 1.2 dated 16 June2010 from this forum.

However, when I check FSX Add-ons > PFCHID, it says:

Version 1.00, 4th December 2008

Ah. So it does. That's a mistake on my part, not updating the dialogue. Sorry.

And I tried to add the config line again (before starting FSX, but was not successful).

Hmmm. Strange. Yes, I can reproduce that now. That should actually be impossible. Whilst my code can remove bad parameters (by setting their values to null) I don't know how to remove sections (i.e. the [xxxx] lines). I'll investigate that, as it is a puzzle.

However, if you are merely trying to set the filename to "PFC" then there's no need in any case as that is the default.

Oh, one other thing. Look in the FSX Modules folder. There will be a PFCHID.log there, and also a generated version of the PFCmacroindex.csv file. That will show you if PFCHID recognised your macros, as the last entry for those found will change from 'N' to 'Y',

P.S. I'm just trying to get the heading knob on my console to work with PMDG 747X.

If I can get this working, I should have no problems assigning the rest of the switches.

Are you sure it's the one labelled "Hdg"? Try using logging. Probably "LogDecode=Yes" and "LogMacroNames=Yes", to start with. At least one of the logging options will show you the results of using each switch and button. You could set "Console=Yes" too, to see it on screen in real time (but run FSX in Windowed mode for that).

I have USB version of the Cirrus Pro here, which looks similar in part to yours. It isn't currently setup or anywhere near a working PC, but if you are still stuck tomorrow (Friday) let me know and i'll see about connecting things up and investigating over the weekend.

Regards

Pete

Link to comment
Share on other sites

Oh, one other thing. Look in the FSX Modules folder. There will be a PFCHID.log there, and also a generated version of the PFCmacroindex.csv file. That will show you if PFCHID recognised your macros, as the last entry for those found will change from 'N' to 'Y',

Are you sure it's the one labelled "Hdg"? Try using logging. Probably "LogDecode=Yes" and "LogMacroNames=Yes", to start with. At least one of the logging options will show you the results of using each switch and button. You could set "Console=Yes" too, to see it on screen in real time (but run FSX in Windowed mode for that).

Regards

Pete

Hi Pete,

I switched on LogDecode, LogMacroName and Console to "=Yes".

Turning the heading knob right and then left, the PDChid Console Log read:

363982: Device #1 received: Hdg[0]=1

367819: Device #1 received: Hdg[0]=255

Turning any knob or switch displays the corresponding device name, which is helpful when assigning macro names.

As for the PFChid log, here's what it says in the beginning:

********* PFChid, Version 1.20 by Pete Dowson *********

31: Error 6 [00000006] returned on HidD_GetAttributes: (\\?\hid#vid_04d9&pid_2519&mi_00#8&2ae96ad4&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030})

31: Error 6 [00000006] returned on HidD_GetAttributes: (\\?\hid#vid_04d9&pid_2519&mi_01&col01#8&1325de8f&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030})

Manufacturer= Precision Flight Controls, Inc.

Product= PFC Cirrus II Pro

31: ... Ok, added as device #1

Manufacturer= Precision Flight Controls, Inc.

Product= PFC Avionics Adaptor

31: ... Ok, added as device #2

The last few entries on the PFCmacroIndex reads:

03,32,CoarseSel,N,N

03,33,FineSel,N,N

03,34,ComVolume,N,N

03,35,VlocVolume,N,N

Hope the above info will help you help me :P

Thanks again.

Fabian

Link to comment
Share on other sites

Hope the above info will help you help me

Not really. What do you expect me to deduce from that? Why the "edited highlights"? Why the last few lines of the CSV file -- what relevance do those particular lines have, especially as they refer to functions you aren't even trying ot program.

The point of the logging was for you to operate your heading knob and to see what the log said about that. The point of looking in the CSV file wasn't to show totally irrelevant lines but to see if the macros you programmed were recognised as being programmed. I told you what to look for!

Pete

Link to comment
Share on other sites

The point of the logging was for you to operate your heading knob and to see what the log said about that. The point of looking in the CSV file wasn't to show totally irrelevant lines but to see if the macros you programmed were recognised as being programmed. I told you what to look for!

Pete

NOW I understand what you wanted from the CSV:

03,4,Hdg,Y,N

Turning the heading knob right and then left, the PDChid Console Log read:

363982: Device #1 received: Hdg[0]=1

367819: Device #1 received: Hdg[0]=255

Hope this helps.

Fabian

Link to comment
Share on other sites

03,4,Hdg,Y,N

Turning the heading knob right and then left, the PDChid Console Log read:

363982: Device #1 received: Hdg[0]=1

367819: Device #1 received: Hdg[0]=255

Okay. So the name you used was correct, but for some reason the macro you provided was not recognised.

I'm going to have to try some things here. It might be a couple of days. I'm not familiar with this stuff at all at present. It was done at PFC's behest late2009 with only a few minor changes before user release last June. For the most part I was dependent upon them for testing and feedback. Yours is the very first support request (and substantial feedback for that matter) I've had. I have the Cirrus Pro but it isn't something I ever use -- for flying I use a full 737NG cockpit and an Aerosoft Piper Arrow III cockpit.

Chase me on Monday if you've seen nothing before then. I'll try and fit things in -- actually tomorrow, Friday, is my best bet as my daughter is here over the weekend and I expect my wife and I with be doing something which will take me away from my PCs for long periods!

[LATER]

I just checked. It was late 2008, not 2009 when I did PFCHID.DLL. It was user-released as 1.10 in 2009. The only chasnge in 2010 was to bring the codesigning up to date so it wouldn't be rejected. my original codesign had expired. So there's been about 2 years availability to users before yours, the first feedback/query! ;-)

Regards

Pete

Link to comment
Share on other sites

Okay. So the name you used was correct, but for some reason the macro you provided was not recognised.

I'm going to have to try some things here. It might be a couple of days. I'm not familiar with this stuff at all at present. It was done at PFC's behest late2009 with only a few minor changes before user release last June. For the most part I was dependent upon them for testing and feedback. Yours is the very first support request (and substantial feedback for that matter) I've had. I have the Cirrus Pro but it isn't something I ever use -- for flying I use a full 737NG cockpit and an Aerosoft Piper Arrow III cockpit.

Chase me on Monday if you've seen nothing before then. I'll try and fit things in -- actually tomorrow, Friday, is my best bet as my daughter is here over the weekend and I expect my wife and I with be doing something which will take me away from my PCs for long periods!

Regards

Pete

No problem, Pete.

Appreciate your efforts...

Have a great weekend!

Fabian

Link to comment
Share on other sites

Well, I found one of the problems already!

It seems that last June I must have re-compiled PFCHID against a new set of definitions supplied by PFC. This added a new analog function ("backlight") which I don't handle, but which affected the length of a list in my code, involved in generating default values for parameters missing in the [Config] section of the INI file.

This in turn caused that routine to call the Windows API "WritePrivateProfileString" in order to remove said parameter if it happened to be present. Unfortunately the name of the parameter was left as null (0), because the list wasn't long enough, and this seems to erase the entire [Config] section!

I checked, and the function is actually documented as doing that! Wow! I didn't even know that! One learns something new every day.

Okay, that's the easy bit (and in your case the inconsequential bit. One down two to go ...

Regards

Pete

Link to comment
Share on other sites

Well, I found one of the problems already!

It seems that last June I must have re-compiled PFCHID against a new set of definitions supplied by PFC. This added a new analog function ("backlight") which I don't handle, but which affected the length of a list in my code, involved in generating default values for parameters missing in the [Config] section of the INI file.

This in turn caused that routine to call the Windows API "WritePrivateProfileString" in order to remove said parameter if it happened to be present. Unfortunately the name of the parameter was left as null (0), because the list wasn't long enough, and this seems to erase the entire [Config] section!

I checked, and the function is actually documented as doing that! Wow! I didn't even know that! One learns something new every day.

Okay, that's the easy bit (and in your case the inconsequential bit. One down two to go ...

Regards

Pete

Thanks for the update, Pete!

Looks like we're getting closer to the solution!

Fabian

Link to comment
Share on other sites

Looks like we're getting closer to the solution!

I think it's all fixed now. I needed to try to get it done today so I had the weekend clear.

It seems that when I added support for multiple controls (pilot and copilot) I messed up the macro override part completely.

I am pretty sure it is all sorted in version 1.21 which you can now download from the Download Links subforum.

Regards

Pete

Link to comment
Share on other sites

I think it's all fixed now. I needed to try to get it done today so I had the weekend clear.

It seems that when I added support for multiple controls (pilot and copilot) I messed up the macro override part completely.

I am pretty sure it is all sorted in version 1.21 which you can now download from the Download Links subforum.

Regards

Pete

Hi Pete,

YOU SOLVED THE PROBLEM!

I almost couldn't believe my eyes when I turned the Hdg knob and the PMDG Hdg changed accordingly!

YOU ARE A FREAKING GENIUS!

Thank you from the bottom of my heart...

Dinner and drinks on me if you ever visit Singapore!

With gratitude,

Fabian Lim

P.S. Let me know if you require any assistance on internet marketing related stuff. I'm pretty good at what I do (just Google my name :P)

Link to comment
Share on other sites

YOU SOLVED THE PROBLEM!

Good! Thanks for confirming!

You can rename the pfc.mcro to, say, pmdg.mcro and name it in a PFDHID.INI section called [Config.<name of aircraft>] where the <name of aircraft> part is the name from FS -- check this in FSUIPC's "aircraft specific" option or look in the aircraft.cfg file. Then you'd have normal control use for other aircraft and just the PMDG overrides for that specific aircraft.

Regards

Pete

Link to comment
Share on other sites

Good! Thanks for confirming!

You can rename the pfc.mcro to, say, pmdg.mcro and name it in a PFDHID.INI section called [Config.<name of aircraft>] where the <name of aircraft> part is the name from FS -- check this in FSUIPC's "aircraft specific" option or look in the aircraft.cfg file. Then you'd have normal control use for other aircraft and just the PMDG overrides for that specific aircraft.

Regards

Pete

Will sure do!

Many thanks, Pete!

Fabian

Link to comment
Share on other sites

Good! Thanks for confirming!

You can rename the pfc.mcro to, say, pmdg.mcro and name it in a PFDHID.INI section called [Config.<name of aircraft>] where the <name of aircraft> part is the name from FS -- check this in FSUIPC's "aircraft specific" option or look in the aircraft.cfg file. Then you'd have normal control use for other aircraft and just the PMDG overrides for that specific aircraft.

Regards

Pete

Yes, have just done as you suggested.

Thanks again!

Fabian

Link to comment
Share on other sites

  • 2 weeks later...

Downloaded and install FSUIPC 4.70.

Now when I twist the knobs on my console, notthing happens on the PMDG side.

It was working perfectly on the previous version of FSUIPC.

What was your particular previous version?

Did you perhaps delete anything before running the new Installer? There's been no changes in FSUIPC which would affect this.

Pete

Link to comment
Share on other sites

What was your particular previous version?

Did you perhaps delete anything before running the new Installer? There's been no changes in FSUIPC which would affect this.

Pete

I was running FSUIPC 4.638 previously.

OK. I found the problem.

I think FSUIPC4.7 wrote a new Config section in the PFCHID file, and it added the line MacroFileName=PFC for some strange reason.

Deleted the new Config lines and my macros are now working as normal.

Fabian

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.