MobiFlight Community Support

Welcome to the forum for MobiFlight! Feel free to reach out to the community in case you have questions, issues or just want to share great ideas or details about your latest home cockpit project.

You like MobiFlight? Donate via PayPal and support the MobiFlight development. Thanks! 

icon
Avatar
SteveBurney
Posts: 7
Greetings,
I've hooked a propwash dual rotary encoder up to Mobiflight, and every action is done twice. If I turn one of the knobs one way the window at the bottom of the MF Connector shows "...Executing OnRight..." twice. Both knobs, both directions, and when I push the switch it also shows "...Executing OnPress..." twice. My other buttons all work correctly, but for some reason the rotaries send each command twice. I have the switch set as a button, and the rotaries set as Encoder. In the settings there are 2 pins for each rotary and the type is set as 2 detents per cycle (00,11).

Can you help me sort this out? I've spent all afternoon troubleshooting and I can't find the answer.
2019-10-20 00:59
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3095
Supporter
I not know this "propwash" encoder itself.....
Can you confirm the problem is also on "standard" encoders ??

Basicly i remember to old problems some users reported in the past (rare) .
There the issue was a missing restart. Sebastian basicly said this is not needed..... And i personaly could not "reproduce" this issue directly..... But i also got it one time in the past.
With Double "Keys" Problematic we found out the Admin Mode was the nature of Problem also.

So i recommend .....

1. Make a restart after Flashing Firmware (Whatever First time or Update of former boards) and/or make a restart after upload a new Device to a board.
( You not must restart 10 times if you set 10 new buttons..... But you should restart at the end before you try to work with the new devices)
Restart means.... Stop Mobiflight Software..... Disconnect Mega Board from Power/USB ( so it completly OFF) wait some seconds and reconnect it...... Start Mobiflight Software.

2. Get sure your Simulator AND Mobiflight run in SAME Mode ( Admin or Non Admin) ...... I Personaly recommend Admin Mode.... But official Mobiflight Statement is just to use SAME Mode ( whatever Admin or Non Admin for both ) .

Please Report if this solve the problem and tell us your experience WHAT eactly was the solution.

Thanks for your help !
Good Luck !
2019-10-20 01:27
Avatar
SteveBurney
Posts: 7
Propwash is just the company that makes the dual rotary encoder with a push button on the inner knob. I think in all respects it is a 'standard' encoder with 2 pins and a ground for each encoder and a single pin with a ground for the button.\

I did the procedure you recommended and still get the same result. I shut down Mobiflight and the sim, unplugged the Arduino, reconnected it after about 20-30 seconds, restarted Mobiflight and restarted FSX (both in admin mode).

I'm not sure if it's of any value or not, but here is the Mobiflight log. Does anything about it look off that might be causing the commands to execute twice?

10/19/2019 9:29:44 PM(262): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:44 PM(250): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:44 PM(247): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:42 PM(962): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:42 PM(957): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:42 PM(950): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:42 PM(95): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:42 PM(86): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:42 PM(83): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:41 PM(424): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:41 PM(412): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:41 PM(409): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:40 PM(605): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:40 PM(598): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:40 PM(595): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:39 PM(796): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:39 PM(788): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:39 PM(784): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:39 PM(118): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:39 PM(112): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:39 PM(110): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:38 PM(154): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:38 PM(142): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:38 PM(139): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:37 PM(211): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:37 PM(202): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:37 PM(200): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:36 PM(98): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:36 PM(81): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:36 PM(78): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:27 PM(888): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:27 PM(881): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:27 PM(878): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:27 PM(282): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:27 PM(276): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:27 PM(274): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:26 PM(565): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:26 PM(553): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:26 PM(551): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:25 PM(753): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:25 PM(742): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:25 PM(740): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:25 PM(14): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:24 PM(990): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:24 PM(988): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:24 PM(210): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:24 PM(202): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:24 PM(200): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:23 PM(213): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:23 PM(207): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:23 PM(205): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:22 PM(210): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:22 PM(199): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:22 PM(197): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:21 PM(68): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:21 PM(62): Executing OnLeft: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:21 PM(60): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:19 PM(981): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:19 PM(973): Executing OnRight: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:19 PM(970): Config found for Encoder: Left Outer Knob@SN-0f5-0ef
10/19/2019 9:29:18 PM(730): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:18 PM(727): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:18 PM(725): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:17 PM(17): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:17 PM(12): Executing OnLeft: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:17 PM(10): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:16 PM(190): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:16 PM(182): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:16 PM(180): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:15 PM(159): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:15 PM(152): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:15 PM(150): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:13 PM(267): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:13 PM(264): Executing OnRight: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:29:13 PM(262): Config found for Encoder: Left Inner Knob@SN-0f5-0ef
10/19/2019 9:28:59 PM(561): ExecutionManager.autoConnectTimer_Tick(): AutoConnect Sim
10/19/2019 9:28:55 PM(459): Error on config execution. FSUIPC Error #12: FSUIPC_ERR_SENDMSG. Error sending message to FSUIPC.
10/19/2019 9:27:31 PM(841): ExecutionManager.AutoConnectStart:Started auto connect timer
10/19/2019 9:27:31 PM(835): ExecutionManager.AutoConnectStart:Started auto connect timer
10/19/2019 9:27:31 PM(682): ExecutionManager.autoConnectTimer_Tick(): AutoConnect Sim
10/19/2019 9:27:31 PM(659): ExecutionManager.TestModeStop:Stopped test timer
10/19/2019 9:27:31 PM(657): MobiFlightModule.GetInfo: MobiFlight Mega, MobiFlight Mega,1.9.1, SN-0f5-0ef
10/19/2019 9:27:29 PM(587): MobiflightModule.connect: Connected to Default at COM3 of Type MobiFlight Mega (DTR=>True)
10/19/2019 9:27:29 PM(583): MobiFlightCache.RegisterModule(Default:COM3)
10/19/2019 9:27:29 PM(581): MobiFlightCache.connect: Clearing modules
10/19/2019 9:27:29 PM(559): ExecutionManager.autoConnectTimer_Tick(): AutoConnect Modules
10/19/2019 9:27:29 PM(557): No updates necessary. Your version: 7.7.0.0, Latest version: 7.7.0
10/19/2019 9:27:28 PM(772): Checking for updates
10/19/2019 9:27:28 PM(737): MobiflightModule.disconnect: Disconnected MobiFlight Mega at COM3
10/19/2019 9:27:28 PM(679): MobiFlightModule.GetInfo: MobiFlight Mega, MobiFlight Mega,1.9.1, SN-0f5-0ef
10/19/2019 9:27:26 PM(610): MobiflightModule.connect: Connected to Default at COM3 of Type Arduino Mega 2560 (DTR=>True)
10/19/2019 9:27:26 PM(598): Checking for compatible module: VID_CD12&PID_EF18
10/19/2019 9:27:26 PM(598): Checking for compatible module: VID_413C&PID_2005
10/19/2019 9:27:26 PM(598): Found potentially compatible module: VID_2341&PID_0042@COM3
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_2341&PID_0042
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_1E71&PID_1712
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_154B&PID_00D4
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_14CD&PID_1212
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_13FE&PID_1D00
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_125F&PID_A15A
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_1058&PID_0730
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_0E8D&PID_1887
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_0BDA&PID_0158
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_093A&PID_2510
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_090C&PID_1000
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_08EC&PID_0020
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_068E&PID_00FF
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_068E&PID_00F2
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_062A&PID_127A&MI_01
10/19/2019 9:27:26 PM(597): Checking for compatible module: VID_062A&PID_127A&MI_00
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_062A&PID_127A
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_0557&PID_8021
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_0557&PID_2213&MI_01
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_0557&PID_2213&MI_00
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_0557&PID_2213
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_04CA&PID_004F&MI_01
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_04CA&PID_004F&MI_00
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_04CA&PID_004F
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_046D&PID_C52B&MI_02
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_046D&PID_C52B&MI_01
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_046D&PID_C52B&MI_00
10/19/2019 9:27:26 PM(596): Checking for compatible module: VID_046D&PID_C52B
10/19/2019 9:27:26 PM(595): Checking for compatible module: VID_046D&PID_C50E
10/19/2019 9:27:26 PM(595): Checking for compatible module: VID_045E&PID_0040
10/19/2019 9:27:26 PM(595): Checking for compatible module: VID_03F0&PID_3D17
10/19/2019 9:27:26 PM(595): Checking for compatible module: VID_0000&PID_0002
10/19/2019 9:27:26 PM(595): Checking for compatible module: ROOT_HUB30
10/19/2019 9:27:26 PM(595): Checking for compatible module: ROOT_HUB20
10/19/2019 9:27:26 PM(595): Checking for compatible module: ROOT_HUB
10/19/2019 9:27:26 PM(595): ^(VID_1B4F&PID_9206|VID_2341&PID_8036|VID_2341&PID_0042|VID_2341&PID_0010|VID_8087&PID_0024|VID_1A86&PID_7523|VID_2A03&PID_0042|VID_0403&PID_6001|VID_2341&PID_0043|VID_2A03&PID_0043)
10/19/2019 9:27:26 PM(497): MainForm() : Logger initialized Debug
2019-10-20 03:37
Avatar
SteveBurney
Posts: 7
Aargh! I found the problem, and it was me. At some point I inadvertently added 2 different functions that both used the encoder input so each time I turned it both functions were passed (even though they were duplicates of the same function). I can't believe I spent half a day and didn't spot that.
2019-10-20 04:15
Avatar
StephanHo
From: EDDG, Germany
Posts: 1447
Supporter
Hi Steve,

the mistakes that you find and eliminate yourself have the greatest learning effect.
Grüße,
Stephan
2019-10-20 12:46
Avatar
pizman82
Moderator
From: ETSI, Germany
Posts: 3095
Supporter
Nice you found the problem.

For next time i recommend a simple workaround......
If i got a problem with a device, config or so on i always make a "clear testing ground"

For example i save the current config ( that project i work on) and create for testing a new file (empty) .
Then you can simply make ONE Config ( input in your example) and test this specific element.

Same on hardware side..... If i like to test here i save the mfmc settings to a file ( where all elements are set) and then i "delete" the whole arduino.... Flash new Firmware and create only the ONE Device i like to test. ....

Or software side..... If something get wrong when you try to controll a AddOn aircraft ( Like PMDG) try at first to controll a standard Function (with same device) Like Parkingbrake on a FSX/P3D Standard Cessna.
Then you know after 2 Minutes if Problem is everywere or only in the AddOn.

In simple words..... Reduce as many factors as possible to test specific one situation .... Thats more proftable to find a problem finaly.
Good Luck !
2019-10-20 15:20
Avatar
StephanHo
From: EDDG, Germany
Posts: 1447
Supporter
Hi together,
In order to explain: with the Propwash Encoder he means the ones from Propwash-Simulation. I have these ones too. It's are 2:1 Encoder, 2 detents per cycle (00,11).
Grüße,
Stephan
2019-10-20 17:41
Avatar
SteveBurney
Posts: 7
Thank you for the 'clear testing ground' suggestion. I'll have to remember that one.

Steve
2019-10-21 00:03
icon