737 MCP Conversion Project

Upload and share cool photos and videos of Air Manager in action

Moderators: Ralph, russ

Message
Author
Tetrachromat
Posts: 178
Joined: Sun Feb 14, 2021 6:55 pm

737 MCP Conversion Project

#1 Post by Tetrachromat »

Some pictures of that 737 MCP that I converted recently (a second time) for use with Air Manager.
MCP_frontm.jpg
Front view

Originally it was prduced by OpenCockpit some years ago as version1. It never worked very well. Especially those encoders. Also their SIOC stuff is weird to use, and support was just crap. So I completely stopped using it.

But always thinking about converting it myself using proper hardware.

Then came MobiFlight, and I started that conversion project. I designed a new main PCB with MAX7219 display controllers and reliable BOURNS PEC11R series encoders. I also designed a shield PCB that provides the "wiring" from Arduino MEGA to the encoders, buttons, LED's and display controllers on the main PCB. The PCB's were produced by EuroCircuits very professionally.
MCP_backm.jpg
Back view

After fixing two design faults, I got it running with MobiFlight and FSUIPC as interface to MSFS2020. But I still was not happy with the MobiFlight user interface. Also support was again not really great.

After evaluating Air Manager I converted a second time. This time just the software side, the hardware is the same. Flashed the Arduino from Air Manager and developed an instrument with some LUA code interfacing via SimConnect. Now I completely got rid of FSUIPC/WideFS.

Next project is to replace AxisAndOhs for interfacing to game controllers. Then I will have Air Manager as "central hub" for all my external hardware.

Paul

User avatar
jph
Posts: 2086
Joined: Fri Apr 10, 2020 12:50 pm
Location: Somewhere over the rainbow..

Re: 737 MCP Conversion Project

#2 Post by jph »

Hi Paul, your choice, but I would use custom 'joystick' / 'axis input' controllers. The Arduino JS HID library is amazing.
AM is building this feature, but I cannot see any need, or benefit for it (yet) as opposed to a dedicated HID unit. - again, which can be made from an appropriate Arduino for very little money.
The simple massive speed increase and independence of the individual dedicated HID units - and - the resolution available is a reason why, for most 'input devices with an axis', then the AM option just doesn't seem to make any sense (to me :shock: ). Maybe there are some hidden benefits ? I don't know and certainly cannot see any when you can make a really nice HID input JS/GC for a couple of dollars.
I would love for someone to offer suggestions as to why the AM way may be better in certain instances ?
Joe
“Everything in moderation, including moderation.”
“Experience is merely the name men gave to their mistakes.”
Joe (CISSP) -IT security consultant

Tetrachromat
Posts: 178
Joined: Sun Feb 14, 2021 6:55 pm

Re: 737 MCP Conversion Project

#3 Post by Tetrachromat »

Performance certainly is a criteria for evaluation.

Could you provide a link to that library docs? I searched for the one name you gave, but the saerch spit out so many different libs I could not be sure to pick the right one.

What environment do I need to use this library?

User avatar
jph
Posts: 2086
Joined: Fri Apr 10, 2020 12:50 pm
Location: Somewhere over the rainbow..

Re: 737 MCP Conversion Project

#4 Post by jph »

Hi Paul,
Sure, here goes.
https://github.com/MHeironimus/ArduinoJoystickLibrary Scroll down for the Joystick Library API .
You need the Arduino IDE and an Arduino device that runs a HID capable processor (32U4 for example) such as the 'Pro Micro' https://www.aliexpress.com/item/3284956 ... 6c3a6cd5-4
Note, you cannot use an uno or a mega etc. The Arduino Leonardo is another option but the Pro Micro is great and a few dollars cheaper, and a lot smaller.
Once you have finalised your program and programmed the device it will be seen by windows as a normal HID Joystick / Game controller. Nothing else needed. Full standalone and USB powered - plug and play.
You have 10 bit resolution on your axis inputs. It can be calibrated in windows as normal and also in X-Plane etc. It is a fully functional hid Joystick / multi axis analogue input device.

In the interest of fairness and for information it is appropriate to point out that you can also buy a ready prepared device that does the same job, but for a lot more money - and, you cannot decide to change the program if you require. https://www.leobodnar.com/shop/index.ph ... x&cPath=94. This is not a route I would consider as, although it certainly does the job, it is - imho - expensive and limited. The Arduino version you have full control over and can change at any time. But of course, for someone who didnt want to go the 'diy' route then it is a great option.

If you ever wanted higher than 10 bit resolution (which you should need on 99.9% of circumstances) then for a couple of dollars more you can increase the ADC resolution on the Pro Micro or Leonardo up to 16 bits ADC resolution.
If you experiment with the Library examples (you don't to have any axis plugged in to test !) then you can see the device in windows and the sample axis movements.
The only 'type' you are interested in is JOYSTICK_TYPE_JOYSTICK (up to 8 axis, 32 buttons and 2 HAT switches)
I made a stripped down version of the Library / HID Class a year or so ago that removed all the other superfluous options. I can probably still find it if you would like ?. but if you simply stick with JOYSTICK_TYPE_JOYSTICK and you will be fine, you can do anything with that. Amazing library.

Have you much experience of Arduino IDE and programming ?
Joe
Last edited by jph on Fri Jul 02, 2021 7:44 am, edited 1 time in total.
“Everything in moderation, including moderation.”
“Experience is merely the name men gave to their mistakes.”
Joe (CISSP) -IT security consultant

User avatar
Corjan
Posts: 2643
Joined: Thu Nov 19, 2015 9:04 am

Re: 737 MCP Conversion Project

#5 Post by Corjan »

Hi,

If you only need to read axis, the HID prototcol might indeed be enough.
Note that the AM Arduino code offers way more, instead of just inputs and ADC channels like the HID does.

Corjan

User avatar
jph
Posts: 2086
Joined: Fri Apr 10, 2020 12:50 pm
Location: Somewhere over the rainbow..

Re: 737 MCP Conversion Project

#6 Post by jph »

Corjan wrote: Fri Jul 02, 2021 7:38 am Hi,

If you only need to read axis, the HID prototcol might indeed be enough.
Note that the AM Arduino code offers way more, instead of just inputs and ADC channels like the HID does.

Corjan
Hi Corjan. I can certainly see some interesting possibilities with interactions and conditional responses when linked to other surrounding data - and visa versa. That would offer some really nice possibilities on certain types of axis.
What I would be most concerned about - in a primary flight controller for example - is update speed. How have you found this compared to a dedicated HID ?.
I would also imagine that a primary flight control is not really the intended target? - especially high resolution units ?. For example, a T16000 with Hall 16bit sensors on X/Y is highly dependent on update speed as otherwise the res becomes a bit of a moot point. But, on the same unit, lower priority items such as rudder (Yaw) and Throttle are simply 8 bit (possibly 10 bits without checking - but no more) and hence not too critical in update speed. In fact I would say there is a direct correlation between resolution actually required / expected and update speed.
I look forward to experimenting.
Thanks,
Joe
“Everything in moderation, including moderation.”
“Experience is merely the name men gave to their mistakes.”
Joe (CISSP) -IT security consultant

User avatar
Corjan
Posts: 2643
Joined: Thu Nov 19, 2015 9:04 am

Re: 737 MCP Conversion Project

#7 Post by Corjan »

Hi,

Speed should be comparible, most Arduino's only have 10 bit ADC's though.

Corjan

User avatar
jph
Posts: 2086
Joined: Fri Apr 10, 2020 12:50 pm
Location: Somewhere over the rainbow..

Re: 737 MCP Conversion Project

#8 Post by jph »

Corjan wrote: Fri Jul 02, 2021 8:28 am Hi,

Speed should be comparible, most Arduino's only have 10 bit ADC's though.

Corjan
interesting, thanks,
As for the ADC res, it isn't an issue really as it is easy to add an ADS1115 (4 channel 16bit mux) or similar for a few dollars. This can easily be incorporated into the Arduino JS (MHeironimus) HID library.
It is also a really stable unit.
Joe
“Everything in moderation, including moderation.”
“Experience is merely the name men gave to their mistakes.”
Joe (CISSP) -IT security consultant

Tetrachromat
Posts: 178
Joined: Sun Feb 14, 2021 6:55 pm

Re: 737 MCP Conversion Project

#9 Post by Tetrachromat »

Thank you for the link. Did some reading but that is not what I intend to do. This library is very low level. Mainly for intefacing some hardware switches/buttons, potentionmeters to the operating system, representing them as a game controller.

But I have game controllers. An they work pretty well. I just look for some way to interface them to the simulator and have full control over the sensitivity, response function, deadzones and such. So to speak 'on higher level'.

So far I have used Lorby's 'AxisAndOhs'. Now I try to achieve the same with Air Manager.

Paul

User avatar
jph
Posts: 2086
Joined: Fri Apr 10, 2020 12:50 pm
Location: Somewhere over the rainbow..

Re: 737 MCP Conversion Project

#10 Post by jph »

Tetrachromat wrote: Fri Jul 02, 2021 11:46 am Thank you for the link. Did some reading but that is not what I intend to do. This library is very low level. Mainly for intefacing some hardware switches/buttons, potentionmeters to the operating system, representing them as a game controller.

But I have game controllers. An they work pretty well. I just look for some way to interface them to the simulator and have full control over the sensitivity, response function, deadzones and such. So to speak 'on higher level'.

So far I have used Lorby's 'AxisAndOhs'. Now I try to achieve the same with Air Manager.

Paul
ALL those features are directly available within X-Plane ! - which is why you absolutely do not need anything else apart from a standard HID input controller as the Simulator is intelligent enough to offer ALL these options to ANY HID input.

Is the FS2020 game really that dumb ?

Is it so lacking in sophistication as to not offer the most basic functionality of axis adjustment / response curves, dead-zone and anything else you may need ? .
I know it is more a game and not aimed at the hardcore SIM market, (more for XBOX), but I would have thought that those basic options were there ?. if not - totally unbelievable.
:shock: :roll:
“Everything in moderation, including moderation.”
“Experience is merely the name men gave to their mistakes.”
Joe (CISSP) -IT security consultant

Post Reply