GithubHelp home page GithubHelp logo

csu-xiao-an / flash-multi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from benlye/flash-multi

0.0 2.0 0.0 7.15 MB

A tool for updating the firmware on a Multiprotocol TX module

License: GNU General Public License v3.0

C# 85.80% Batchfile 1.99% Inno Setup 1.57% Shell 7.67% C 2.97%

flash-multi's Introduction

Flash-Multi

Coverity Scan Build Status

Tool for flashing pre-compiled firmware to a Jumper, iRangeX, Vantac, 'Banggood', or DIY STM32-based Multiprotocol TX module. A GUI application is available for Windows and a shell script for Linux and macOS.

Firmware upload can be performed using the built-in USB connection or via an external USB-to-serial adapter.

Just three steps are required to update your Jumper, iRangeX, or DIY Multiprotocol TX module (full instructions are below):

  1. Download and install Flash Multi and any required device drivers
  2. Download the appropriate Multiprotocol firmware file
  3. Flash the new firmware to your module

Documentation Index

  1. Supported Modules
  2. Flash Multi Requirements
  3. Installing Flash Multi
    1. Linux and Mac
    2. Using the Installer
    3. Manual Installation
    4. Additional Drivers
  4. Using Flash Multi
    1. Writing the Bootloader
    2. Upload Output
  5. Multiprotocol Firmware
  6. Troubleshooting
  7. More Information
  8. Warranty

Supported Modules

All Multiprotocol modules based on the STM32 microcontroller are supported. Modules based on the ATmega328 microcontoller are not supported.

Supported modules include:

  • Jumper JP4IN1
  • iRangeX IRX4, IRX4 Plus, and IRX4 Lite
  • Vantac MPM Lite
  • 'Banggood' STM32 Multiprotocol TX Modules
  • DIY STM32 Multiprotocol TX Modules

Flash Multi Requirements

Flash Multi requires .Net Framework 4.5 or newer. You probably already have a compatible version installed, but if not, the latest version can be downloaded from (Microsoft)[https://dotnet.microsoft.com/download/dotnet-framework].

Tip: When you launch Flash Multi it will tell you if you need to install or upgrade your .Net Framework.

Installing Flash Multi

Linux and Mac

Please refer to the Linux and macOS instructions.

Using the Installer

Note: Make sure your Multiprotocol module is not plugged in when you run the Flash Multi installer, or when you run the manual Maple USB driver installer. This is to avoid potential problems with the driver installation.

  1. Download the latest installer (flash-multi-[version].exe) from the Releases page
  2. Run the installer to install the application and the Maple USB device drivers - the Maple USB device drivers must be selected for installation at least once. They do not need to be installed on subsequent reinstalls or upgrades (but reinstalling them won't do any harm).
  3. Launch 'Flash Multi' from the Start menu

Manual Installation

  1. Download the latest .zip archive (flash-multi-[version].zip) from the Releases page
  2. Unzip the archive to a convenient location
  3. Run \drivers\install_drivers.bat to manually install the Maple USB device drivers (only needed once)
  4. Launch the application by running flash-multi.exe

Additional Drivers

Depending on your Multiprotocol module and version of Windows you may need to install additional drivers manually.

The driver for the Jumper JP4IN1 module, the Silicon Labs CP210x driver, is not included with Flash Multi and can be downloaded from here: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

Other drivers may be needed if you are using an external USB-to-serial adapter. Consult the documentation for your adapter.

Windows 10 includes drivers for many common serial devices, including many USB-to-serial adapters, so check Device Manager to see if your device is recognised.

Using Flash Multi

Note: The first time you flash your module you may need to connect it with an external USB-to-serial adapter in order to flash the bootloader. The bootloader is required in order for the native USB port work, and it can only be written with a USB-to-serial adapter. This does not apply to newer Jumper 4IN1 modules, which have an internal USB-to-serial adapter.

Note for external USB-to-serial connections: When using an external USB-to-serial adapter, the BOOT0 pin on the board must be connected to 3.3V, usually by installing a jumper on the BOOT0 header pins.

  1. If the module is installed in the radio and you are connecting to the module's USB port, ensure the radio is powered off
  2. Launch Flash Multi
  3. Connect your module to the computer using the module's USB port or via an external USB-to-serial adapter, as appropriate

    Tip: Flash Multi will automatically select the new COM port, if it's running when the module is plugged in.

  4. Click the Browse button and select a compiled firmware file
  5. If it wasn't automatically selected, select the appropriate COM port
  6. Click the Upload button

Writing the Bootloader

The bootloader enables flashing the Multiprotocol module firmware from a radio which supports this (see here). It also enables the native USB port on Multiprotocol modules which have one, facilitating firmware updates via native USB rather than an external USB-to-serial adapter.

When flashing with a USB-to-serial adapter the bootloader will be written automatically if the selected firmware file was compiled with support for it.

When flashing via the native USB port the firmware being flashed must be compiled with support for the bootloader otherwise, to avoid rendering the module inoperable, Flash Multi will display an error and stop the flash attempt.

Upload Output

The output will vary depending on the type of module being flashed.

Modules connected via an external USB-to-serial adapter, and the Jumper JP4IN1 module (which has an internal USB-to-serial adapter behind the USB port) will see output like this:

Starting Multimodule update
[1/3] Erasing flash memory... done
[2/3] Writing bootloader... done
[3/3] Writing Multimodule firmware... done

Multimodule updated sucessfully

Note: Step 2, writing the bootloader, is not performed when writing firmware which was not compiled with support for the native USB / Flash from TX bootloader.

Modules connected via USB (except the Jumper JP4IN1) will see output like this:

Maple device found in USB mode
Starting Multimodule update
Switching Multimodule into DFU mode ... done
Waiting for DFU device ... got it
Writing firmware to Multimodule ... done

Multimodule updated sucessfully

For both methods, if the 'Show Verbose Output' box is checked the actual output from each of the flash proceses will be shown. If the flash fails for any reason the verbose messages are a good place to look for more details.

Multiprotocol Firmware

Pre-compiled Multiprotocol firmware can be downloaded from the Multiprotocol TX Module Releases.

The Multiprotocol firmware can also be compiled from source relatively easily.

Troubleshooting

See the dedicated Troubleshooting page.

More Information

Much more information about flashing a Multiprotocol module, including how to connect a USB-to-serial adapter and connect the BOOT0 pin, can be found in the documentation for the DIY Multiprotocol Module at https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/README.md.

Warranty

Flash Multi is free software and comes with ABSOLUTELY NO WARRANTY.

flash-multi's People

Contributors

benlye avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.