-
-
Notifications
You must be signed in to change notification settings - Fork 104
Module Not Recognized
If you are having problems getting Mobiflight to recognize your supported board for the first time, and the firmware upload fails, here is what you need to do.
Mobiflight Connector uses the Arduino board's USB vid/pid (Vendor ID/Product ID) to identify the type of board that is connected. These codes are supposed to be unique and each product manufacturer should ideally, request a new vid/pid for their USB connected product. Unfortunately, this not always happens. In particular, Chinese clones of Arduino boards, have become quite popular for Mobiflight use, due to their relative low prices and complete compatibility with their original counterparts. The problem is that these boards use a different chip for USB communications, called a CH340, which totally works for its intended purpose, but it reports the same vid/pid (vid 1A86/pid 7523) in the case of clone Mega, Uno, or Nano boards. This condition makes it impossible for Mobiflight to tell them apart, when first connected.
UPDATE JAN 13 2023 As of Mobiflight version 9.6.0, the board detection has been improved to recognize the ambiguous VID/PID codes of the CH340 chip used in Chinese clones of the Mega, Uno and Nano boards. If the CH340 VID/PID is detected, you now have the option of manually selecting which board firmware version to install.
We should also mention that some duplicate vid/pid codes have also been detected for FTDI chips.
When an ambiguous vid/pid code is detected, Mobiflight will assume the connected board is a type Mega 2560 board. In the past, this was not a problem because the support for other smaller boards like Uno and Pro Micro, was only experimental. Since late 2021, the support for Uno and Pro Micro boards was made official and the issue is now commonly encountered with Uno and Nano clone boards.
Once the Mobiflight firmware is successfully flashed to any board, Mobiflight will correctly identify that board by the firmware version and serial number stored inside each board, regardless of its vid/pid codes.
Windows should be able to recognize that your board is a serial USB device. If not, you may need to first, install the CH340 or other appropriate device driver to your Windows installation.
The solution is basically to temporarily allow the vid/pid code to be assigned to the clone board type. This is achieved by editing the configuration files that store this information. These files are located in the Mobiflight app folder, under the Boards subfolder. You will need a text editor program, preferably a code editor like Notepad++.
Steps to solve:
-
Go to the Mobiflight\Boards folder. It should contain several files with the json extension. One for each type of supported board.
-
Make a backup of the files for "arduino_mega.board.json" and "arduino_uno.board.json".
-
Open arduino_mega.board.json with your text or code editor app.
-
Locate the "HardwareIds" section.
Note the line containing the
"^VID_1A86&PID_7523",
-
Select this line and copy it to the clipboard with Ctrl-C. Delete it from the mega file.
-
Open arduino_uno.board.json in your text/code editor.
-
Locate the same "HardwareIds" section in this file.
-
Paste the copied information from the Clipboard to the json file
-
Save the file. You are done.
Restart Mobiflight Connector and now it should correctly identify your board as an Arduino Uno. You may want to restore the files from the backup copies you made at the beginning.
The procedure shown is specific for the 1A86/7523 vid/pid combination, which is known to be the source of the issue, most of the time. It is possible that other vid/pid codes could be mistaken by Mobiflight. It is a moving target. If you find other codes that give you problems, please report those issues in the support forum or our Discord server.
ENJOY.
- MobiFlight Connector Installation
- Mobiflight Connector BETA version installation
- Modules
- MobiFlight Connector Files Structure
- MobiFlight Connector Uninstall
- Modules Reset to factory default
- Verifying the WASM module installation and locating the MSFS2020 community folder
- Using a Winwing FCU with MobiFlight
- Providing logs from MobiFlight
- MobiFlight Connector How does it work
- Mobiflight Connector Main Window
- Flash module with MobiFlight firmware
- Input and Output devices
- Joysticks
- Midi Boards
- Sim Variables (for Output)
- Input Actions
- Merging configuration files
- Disabling specific COM ports
- Examples Output LEDs
- Examples Input Switch
- Example 7 segment display
- Example Servo motor
- Controlling LEDs with an output shift register
- Adding lots of buttons with an input shift register
- Beginner's guide to input multiplexers
- Key Matrix with standard MobiFlight and Multiplexers
- Tutorial Easy Driver and x.27 or x.40 Stepper Motor
- Tutorial for Airbus VS display via 7-Segment LED Module
- Example Analog Input Potentiometer
- Baron G58 Tutorial Gear, Flaps, Mags, ELT Input Output Programming
- Using Mobiflight to control arduino-based 3rd party panels (RealSimGear GNS530)
- How to use a VNH2SP30 DC motor shield with MobiFlight
- Using 3D printer mainboards
- Playing sounds by sending keystrokes to AutoHotKey
- Using the selector knob on a Honeycomb Bravo
- Using an adjustable 12 position switch as a GA starter
- Brightness of LCD displays with I2C
- Using three-position switches
- Transponder with one Rotary
- MSFS2020 RPN Tips and Tricks
- MSFS2020 Using the Custom Input Code Box
- MSFS2020 Install WASM module and Event List
- MSFS2020 How to Create and Use User Defined Lvars
- MSFS2020 How to Create a Blinking LED configuration
- MSFS2020 User Defined WASM Module Events Best Practices
- MSFS2020 Developer Mode, Model Behavior dialog and Console window
- MSFS2020 PMDG 737‐700 List of Events that require use of FSUIPC7
- MSFS2020 PMDG 737‐700 Calibrate throttle idle and reverse thrust using interpolation (Valkyrie)
- MSFS2020 PMDG 737-700 Chrono unit functions implemented in Mobiflight
- Configuring PMDG 737 Parking Brake Lever Auto-Release with a Servo in Mobiflight
- Using encoder to drive a value back and forth within a given range
- Adding a custom board to MobiFlight
- User guide - Community Board and Custom Devices
- Developing your own custom devices/boards