Git Product home page Git Product logo

flash-multi's Introduction

Flash Multi

Github all releases GitHub release (latest by SemVer) Coverity Scan Build Status

About Flash Multi

Flash Multi is an application for managing the firmware on a Jumper, iRangeX, Vantac, 'Banggood', or DIY MULTI-Module. A GUI application is available for Windows and a shell script for Linux and macOS.

Flash Multi can read the existing firmware, save a backup, and write new firmware.

For STM32 modules, firmware read/write operations can be performed using the built-in USB connection or via an external USB-to-serial adapter. For ATmega328p modules a USBasp programmer is required.

Just three steps are required to update your Jumper, iRangeX, or DIY MULTI-Module (full instructions are below):

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

Documentation Index

  1. Supported Modules
  2. Unsupported Modules
  3. Flash Multi Requirements
  4. Installing Flash Multi
    1. Windows
      1. Additional Drivers
        1. MULTI-Module Drivers
        2. Jumper JP4IN1-SE Drivers
    2. Linux and Mac
  5. Using Flash Multi
    1. Writing (Updating) Firmware
      1. Writing the Bootloader
      2. Upload Output
    2. Reading the Module
      1. Read Output
    3. Saving Backups
    4. Erasing the Module
    5. Advanced
      1. Actions
        1. Install USB Drivers
        2. Reset Module to DFU Mode
        3. Upgrade Module Bootloader
      2. Settings
        1. Serial Baud Rate
        2. Run Fimrware After Write
  6. Cloning a MULTI-Module
    1. How to Clone a Module
      1. EEPROM Backup and Restore
      2. Compile Firmware with a Fixed Global ID
  7. MULTI-Module Firmware
  8. Troubleshooting
  9. More Information
  10. Warranty

Supported MULTI-Modules

All MULTI-Module based on the STM32 or ATmega328p microcontrollers are supported. OrangeRX modules are not supported (yet).

Supported modules include:

  • Jumper JP4IN1 and JP4IN1-SE
  • Jumper T16 Pro internal modules - only with a USB-to-serial adapter
  • iRangeX IRX4, IRX4 Plus, and IRX4 Lite
  • Vantac MPM Lite
  • 'Banggood' STM32 and ATmega328p MULTI-Modules
  • DIY STM32 and ATmega328p MULTI-Modules

Unsupported Modules

Flash Multi cannot be used to update the internal module in any radio (e.g. T12, T16, TX16, T18, T-Lite, Zorro, etc.).

Internal modules are not connected to the radio's USB port so cannot be updated via the radio's port.

If your internal module has MULTI-Module firmware v1.2.1.85 or newer, and the radio is running OpenTX v2.3.2 or newer, or any version of EdgeTX, you can update the internal module from the radio using this process.

If your MULTI-Module has MULTI-Module firmware v1.2.1.51 you must use Flash Multi and a USB-to-serial adapter to update it one time, as explained here. Subsequent updates can then be installed from the radio.

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.

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

Installing Flash Multi

Windows

  1. Download flash-multi-[version].zip from the latest release
  2. Unzip the zip file to a convenient location
  3. Launch the application by running flash-multi.exe

Additional Drivers

Depending on your MULTI-Module and version of Windows you may need to install additional drivers manually.

MULTI-Module Drivers

The MULTI-Module USB drivers, which are used by many MULTI-Modules, including original Jumper JP4IN1 modules, iRangeX IRX4 and IRX4+ modules, and all Banggood STM32 modules, can be installed directly from Flash Multi.

Note: For the best results, plug the MULTI-Module in before installing the drivers.

  1. Start Flash Multi
  2. Click Advanced -> Actions -> Install USB Drivers
  3. Follow the prompts to install the drivers

Once the driver installation is complete, disconnect and reconnect the MULTI-Module.

Jumper JP4IN1-SE

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.

Linux and Mac

Please refer to the Linux and macOS instructions.

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.

Writing (Updating) Firmware

  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, an external USB-to-serial adapter, or a USBasp device (ATmega328p modules only), as appropriate

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

  4. Click the Browse button and select a compiled firmware file
    1. Details of the selected firmware file will be shown. Carefully check that the file matches your requirements.
  5. If it wasn't automatically selected, select the appropriate COM port or device
  6. Click the Write Module button
    1. If the selected file was a backup made with EEPROM data, you will be asked to confirm that you want to write it

Writing the Bootloader

The bootloader enables flashing the MULTI-Module firmware from a radio which supports this (see here). It also enables the native USB port on MULTI-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 MULTI-Module update
[1/3] Erasing flash memory... done
[2/3] Writing bootloader... done
[3/3] Writing MULTI-Module firmware... done

MULTI-Module 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 MULTI-Module update
Switching MULTI-Module into DFU mode ... done
Waiting for DFU device ... got it
Writing firmware to MULTI-Module ... done

MULTI-Module 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.

Reading the Module

Flash Multi can read the existing firmware from the module and, if it is recent (newer than v1.2.1.79), display information about it, as well as the EEPROM Global ID of the module.

  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, an external USB-to-serial adapter, or a USBasp device (ATmega328p modules only), as appropriate

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

  4. If it wasn't automatically selected, select the appropriate COM port or device
  5. Click the Read Module button

Read Output

For a recent firmware version, the output will look similar to this:

Reading from MULTI-Module via native USB
Switching MULTI-Module into DFU mode ... done
Reading flash memory ... done

Multi Firmware Version:   1.3.1.9 (STM32)
Expected Channel Order:   AETR
Multi Telemetry Type:     OpenTX
Invert Telemetry Enabled: True
Flash from Radio Enabled: True
Bootloader Enabled:       True
Serial Debug Enabled:     False

EEPROM Global ID:         0x665DEF2A

MULTI-Module read successfully

Note: A Fixed Global ID (one which was set by modifying and compiling the firmware) cannot be read from the module. The value displayed will always be the unique ID which is stored in the module's EEPROM the first time it is used, not the customized one.

Saving Backups

Once the module has been read, the existing firmware can be saved. The backup can optionally include the EEPROM data. Saving the EEPROM data allows a module to be cloned.

  1. Read the Module
  2. Click the Save Backup button
  3. Select whether or not to include the EEPROM data (default is no)
  4. Specify a location for the backup file and click Save

NOTE: When saving a backup from an Atmega328p module, two files will be created - one containing the firmware and a second containing the EEPROM. For an STM32 module the firmware and EEPROM data are in the same file.

Erasing the Module

Erasing the module will remove the firmware, and optionally erase the EEPROM data. Once erased, new firmware will need to be written to the module.

THIS OPERATION CANNOT BE UNDONE

Erasing the EEPROM data is necessary to restore a module which has had a backup which included EEPROM data restored to it (making it a clone) back to having its own unique ID.

  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, an external USB-to-serial adapter, or a USBasp device (ATmega328p modules only), as appropriate

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

  4. If it wasn't automatically selected, select the appropriate COM port or device
  5. Click the Erase Module button
    1. Confirm that you want to erase the module
    2. Tell Flash Multi if you also want to erase the EEPROM data
    3. Confirm that you really want to erase the module

Once again, THIS OPERATION CANNOT BE UNDONE.

Advanced

The Advanced menu contains extra features and settings.

Advanced Actions

The Advanced -> Actions menu can be used to access several extra actions.

Install USB Drivers

Clicking Advanced -> Actions -> Install USB Drivers will install or upgrade the MULTI-Module USB drivers.

Drivers can be installed with or without a MULTI-Module plugged into the computer.

Note: For best results, do the driver installation with the MULTI-Module plugged in. If the module is plugged in, it will be reset to DFU mode during the driver installation. This is to ensure that the DFU-mode drivers are installed or upgraded properly - if an older driver is present it cannot be updated if the module is not connected. Once the driver installation is complete, you can unplug the module and plug it back in to reset it, but this is not necessary.

Reset Module to DFU Mode

Clicking Advanced -> Actions -> Reset Module to DFU Mode will reset the attached MULTI-Module into DFU mode.

This is not normally necessary to do manually, but it may be needed for troubleshooting driver problems. This menu item is only enabled when a MULTI-Module in USB Serial mode is attached, and the COM port corresponding to the module is selected.

Upgrade Module Bootloader

Clicking Advanced -> Actions -> Upgrade Module Bootloader will update the MULTI-Module's bootloader.

Updating the bootloader is required before upgrading to firmware v1.3.1.77 or newer, and also for some MULTI-Modules which are known to ship with broken or out-of-date bootloaders installed. See here for detailed instructions.

Clicking Upgrade Module Bootloader will replace the MULTI firmware with an application which will update the bootloader. Once the process completes the module must be unplugged, plugged back in, and new firmware written to it.

Important: Read the on-screen instructions and pay attention to the module's red LED during the bootloader upgrade process. It is important not to unplug the module until the red LED has been off for more than 5 seconds.

This menu item is only enabled when a MULTI-Module in USB Serial mode or DFU Bootloader mode is attached, and the COM port (or DFU Device) corresponding to the module is selected.

Advanced Settings

Serial Baud Rate

Sets the baud rate which is used to read and write MULTI-Modules using an internal or external USB-to-Serial adapter. Value can be 57,600 or 115,200 (default).

Try the lower rate if you have problems reading or writing a device.

Run Firmware After Write

Enable or disable running the MULTI firmware after it has been written to the module. Default is enabled (run the firmware after write).

Cloning a MULTI-Module

Cloning a MULTI-Module means using the Global ID of one module on another. This may be useful if you have multiple radios or multiple MULTI-Modules and you want all your modules to control all your models without re-binding them.

NOTE: The EEPROM Global ID is not used by protocols which use the CYRF6936 RF component. You must compile your own firmware with a fixed CYRF ID to acheive the same result for those protocols (Devo, DSM, J6Pro, Traxxas, WFly, WK2x01).

How to Clone a Module

There are two ways to clone a module:

EEPROM Backup and Restore

EEPROM backup and restore can only be performed with modules with the same MCU - e.g. you cannot backup and Atmega328p module and restore it to an STM32 module.

  1. Make a backup of the module to be cloned, making sure you include EEPROM data
  2. Restore the backup to the target module

After restoring the EEPROM you can treat the clone target module like any other - firmware can be read, written, updated etc. The EEPROM data will not be changed.

Note:

Compile Firmware with a Fixed Global ID

Global IDs can be copied between modules of any type.

  1. Use Flash Multi to read the module to be cloned, make a note of the EEPROM Global ID
  2. Use the Arduino IDE to compile your own firmware from source, defining the ID from step one in the FORCE_GLOBAL_ID section

Note: If you use Flash Multi to read a module which is running firmware which was compiled with a fixed Global ID, the EEPROM Global ID which is read will not be the ID the module is actually using.

MULTI-Module Firmware

Pre-compiled MULTI-Module firmware can be downloaded from https://downloads.multi-module.org/.

The MULTI-Module firmware can also be compiled from source relatively easily.

Troubleshooting

See the dedicated Troubleshooting page.

More Information

Much more information about flashing a MULTI-Module, including how to connect a USB-to-serial adapter and connect the BOOT0 pin, can be found in the documentation for the MULTI-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 harking avatar joelejb avatar rotorman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flash-multi's Issues

Flashing New Bootloader on Mac

Hi There,

I have a new IRangeX from Banggood. I am attempting to flash it with the latest firmware on a Taranis X9D+ 2019 from a Mac M1 running Monterey. It looks like the IRangeX does not have the latest bootloader, so the flash fails with the following warning:

Attempting USB upload using dfu-util

WARNING: Specified firmware file was not compiled with USB support.
You MUST update the MULTI-module bootloader to the latest version BEFORE writing this firmware.

     See https://github.com/benlye/flash-multi/blob/master/doc/New_Bootloader.md for more information.

Unfortunately, I do not see instructions for flashing the new bootloader on a Mac (or Linux) on the New_Bootloader page. Can you please advise on the procedure for updating the bootloader from a Mac?

Thanks!

USB Device Driver Failure

Running Win10 2004. Fresh install of Flash Multi v0.4.3. Tried to install USB device drivers and get verbose error -

".\drivers\wdi-simple.exe --vid 0x1EAF --pid 0x0004 --type 3 --name "MULTI-Module USB Serial" --dest "C:\Users\Robert\AppData\Local\Temp\1k03e3yi.tpm\MULTI-USB-Serial" --progressbar=5966042
The system cannot find the file specified
.\drivers\wdi-simple.exe --vid 0x1EAF --pid 0x0003 --type 2 --name "MULTI-Module DFU Bootloader" --dest "C:\Users\Robert\AppData\Local\Temp\1k03e3yi.tpm\MULTI-DFU-Bootloader" --progressbar=5966042
The system cannot find the file specified"

If I try to write the firmware to my Jumper T16 Pro internal card I get the following error which is probably related to the driver issue, but may provide some information -

".\tools\stm32flash.exe -o -S 0x8000000:129024 -b 115200 COM3

.\tools\stm32flash.exe does not exist"

Any assistance on getting the drivers installed would be appreciated. The USB-to-Serial board is being recognized by Win10 as COM3.

RadioMaster TX16S compatible?

I'm almost certain it is, but I want to make sure: This software is what I should use for the RadioMaster TX16S as well, right? Could the README reflect whether it's compatible or not?

Flash-Multi 05.1 can't use Windows USB ports

Tried to use Flash-Multi 05.1 app to update IR4X plus (at least a couple of years old) firmware. The USB drivers will not load. Windows says there is a device descriptor failure. Tried this on two different Windows 10 PCs with the same result. I also tried to update the IR4X plus through a new Horus X10s and it failed with a no sync error. I can use the IR4X plus in my Taranis 9d+, but just can't get it updated. Any suggestions?

You MUST update the MULTI-module bootloader to the latest version BEFORE writing this firmware

can you help me i am working on Linux and want to flash the newest firmware to an IRangeX Modul
but i get the following errors and i don't now how to flash the bootloader.

helmut64@helmut64-Lubuntu:/home/daten/text/Modellbau/Taranis/Multiprotokoll_Module/Firmware/flash-multi-0.6.0$ sudo ./flash-multi -l -f multi-stm-serial-aetr-v1.3.2.77.bin -p /dev/ttyACM0
flash-multi 0.6.0

This program is Free Software and has NO WARRANTY.
https://github.com/benlye/flash-multi/

Firmware File Name: multi-stm-serial-aetr-v1.3.2.77.bin
Multi Firmware Version: 1.3.2.77 (STM32F1)
Firmware Target: STM32F103CB (128KB)
Expected Channel Order: AETR
Multi Telemetry Type: OpenTX or erSkyTx (MULTI_TELEMETRY)
Invert Telemetry Enabled: True
Flash From Radio Enabled: True
Bootloader Enabled: True
USB Serial Support: False
Serial Debug Enabled: False

Proceed with firmware update? [Y]es or [N]o: y

Attempting USB upload using dfu-util

WARNING: Specified firmware file was not compiled with USB support.
You MUST update the MULTI-module bootloader to the latest version BEFORE writing this firmware.

     See https://github.com/benlye/flash-multi/blob/master/doc/New_Bootloader.md for more information.

Proceed with firmware update? [Y]es or [N]o: n

Firmware update aborted.

Irangex nano pl18 edgetx

Flasht edgetx to pl18 ( no hardware mod ) installd new nano module and tryed to bind. no luck.
Edgetx show ( no multi telemetry detected ) in model page and radio information.
Flash module wiht 1.3.3.33 managede after some trubble dfu mode/ usb i can read firmware of module trou flashmulti 6,1
still no luck binding, sam text in edgetx. Now i am not able to read module wiht flashmulti, module led are solid green and red slow blink. Elrs module works fine.
Can i erase module in flashmulti when its not responding/ able to read module. Other suggestions?
Bangood Note:
"The STM32 MCU have change to ARM, fireware is ARM CORTEX-M
The new stock will be ARM, Existing inventory is not affected"
Mikael

URUAV TMX5 Lite - cannot flash.

Windows 10, URUAV TMX5 Lite module, usb connection recognized as COM6.

The log looks like this:

Starting Multimodule update via native USB
Switching Multimodule into DFU mode ... done
Waiting for DFU device ... got it
Writing firmware to Multimodule ... failed!
Attempting DFU Recovery Mode.
Waiting for DFU device to disappear ...Waiting for DFU device to appear ... got it.
Writing firmware to Multimodule ... failed!

Verbose output:

.\tools\maple-reset.exe COM6

maple-reset 0.3
This program is Free Sofware and has NO WARRANTY

https://github.com/benlye/maple-reset

Reset sequence sent to COM6.

.\tools\dfu-util.exe -R -a 2 -d 1EAF:0003 -D "D:\Dron\OpenTx\flash-multi-0.2.0\multi-stm-opentx-inv-v1.2.1.81.bin"

Lost Device after reset, assuming prod_id was incremented by oneNo DFU capable USB device found
dfu-util - (C) 2007-2008 by OpenMoko Inc.

This program is Free Software and has ABSOLUTELY NO WARRANTY

.\tools\dfu-util.exe -R -a 2 -d 1EAF:0003 -D "D:\Dron\OpenTx\flash-multi-0.2.0\multi-stm-opentx-inv-v1.2.1.81.bin"

Lost Device after reset, assuming prod_id was incremented by oneNo DFU capable USB device found
dfu-util - (C) 2007-2008 by OpenMoko Inc.

This program is Free Software and has ABSOLUTELY NO WARRANTY

Display CYRF ID

Would it be possible to display the CYRF ID as well as the Global ID when reading a module?

Maple com port error

Just tried to flash a brand new Irangex4 plus.

Maple serial port is found correctly and installed in Windows 7.

When I try to flash i get this output:

Maple device found in USB mode
Starting Multimodule update
Switching Multimodule into DFU mode ... failed!

and verbose output:

.\bin\maple-reset.exe COM32

maple-reset 0.1
ERROR: Failed to open COM32

Any suggestion?

Problem with flashing if 'CHECK_FOR_BOOTLOADER' is not enabled

There's an issue in the way Flash Multi writes firmware to the module for firmware images built without CHECK_FOR_BOOTLOADE' enabled.

This only affects updates via an internal or external FTDI apdpter, which includes the Jumper JP4IN1 that comes with the Jumper T16.

If you flash firmware without CHECK_FOR_BOOTLOADER the module will not function and the radio will report 'NO MULTI TELEMETRY'.

The module can be fixed by re-flashing firmware with CHECK_FOR_BOOTLOADER enabled.

In the list of pre-compiled firmware, the one with TXFLASH in the name is the right one to use.

TMX5 module cannot be flashed because flash size.

Hello,

I just received a TMX5 module from banggod made by URUAV. I am using 'flash-multi' to try to install a new firmware on it. People on banggood and on the github page of the software developer suggesting to use this file:

multi-stm-opentx-aetr-inv-v1.3.1.65.bin

So I put my usb mode into 'Sticky DFU mode', updated the bootloader which worked fine. But once I am trying to flash that module I get an error:

Module flash verification failed. This MCU on this module does not support 128KB of flash.

I just opened up the module and it has a STM32 processor which should have at least that amount of flash.

When I erase the flash, it seems to work and I get this output:

.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -D ".\tools\erase120.bin" -v

dfu-util-multi 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="STM32duino bootloader v1.0 Upload to Flash 0x8002000"
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=2457
Copying data from PC to DFU device
Starting download: [##################################################]
finished!

Sent a total of 122880 bytes
Done!

To me it looks like 128 KB of flash have been erased. So I am not really sure where to go from here.
Your help is much appreciated.

Kind regards

geniack

Orange RX module not supported.

Hi Ben.
Thanks for providing flash-multi.
I know the OrangeRx module with a ATxmega32d4 and cyrf6936 is not currently supported by flash-multi.
I was using a serial bootloader of the arduino variety to update the module. However i have now cobbled together a serial bootloader compatible with the stm32 bootloader used by flash-multi. It works but should be considered at alpha stage.
The xmega32d4 has 32KB of application flash, plus 4KB of boot flash and runs at 32MHz. The stm32 serial bootloader fits in quite well.
ATXmegas use a PDI (program and debug interface) instead of ICSP as used by ATmegas. This means that flashing a bootloader to the xmega is beyond the capability of most people unless they have a suitable programming tool.

If you are interested, i will put the code up on github .... just need to tidy it up !.

Best wishes. Sloped-soarer.

not working for me despite trying

ive got the taranis x7.
all firmware updated. followed the instructions to the letter and no joy.
at one point updated usb drivers for maple via zadig.
com port seems to drop out at the point of read/write.

have updated usb drivers successfully, have been able to boot into DFU mode, and have been able to read the flash.

but when it all seems good, i attempt to write and get a 'non usb compiled flash- update usb drivers' warning.
so rinse and repeat.

my other option is updating via SD card, but i dont have an SD card on me right now.

But curious as to why this isnt working for me.

Issue with FrSKY Xlite Pro and IRangeX Multiprotocol Module

Hi,

I upgraded my FrSKY Xlite Pro and now my multiprotocol module is no longer accessible from the radio. The radio no longer sees it. These are the firmware version I am using:

FrSKY Xlite Pro is now running 2.3.12
The ISRM-Pro is now on 1.1.0 / 2.1.6 FCC
The multiprotocol module (IrangeX IRX4 Lite) is showing Serial Port DFU Device in Flash Multi v0.6.1. The Firmware shows 1.3.2.61 in Flash Multi. I also tried 1.3.2.58, 1.3.2.30, 1.3.2.12 and that didn't work either.

I am not sure what to try next. The multiprotocol module worked great before it was flashed.

Thank you for the help.

Failed to read the multi module!

If i try to do anything with multiflash (reading, writing) it always ends with
"Reading Flash Memory...failed!" "Failed to read the MULTI module!"
is it broken or am i doing something wrong?
Thanks <3
Screenshot 2022-04-13 173758

If you can get the shop to replace it, that might be a good idea as it would probably be easiest.

    If you can get the shop to replace it, that might be a good idea as it would probably be easiest.

If not, there are still ways you can program it:

  1. From a radio
    Any radio which runs OpenTX/EdgeTX or erSky9x/erSkyTX and supports the MULTI-Module can update the firmware on a the module. If you have one or know someone who does then you can go this route pretty easily.

  2. Using an external USB to Serial adapter
    You would need to solder some header pins onto the module's PCB and attach at to your computer via a USB-to-serial adapter such as a CP2102 like this. This method is a bit more hassle but completely bypasses the on-board USB interface. It's fiddly to get set up, but as long as you get the soldering and connections right it will work.

Originally posted by @benlye in #50 (comment)

USB Supporting Warning Message

I've updated my irangx 4in1 to the new bootloader, then I want to update the firmware, and always get this message, but where is the OK button? I can‘t even close this MsgBox. Thanks!
msg

Windows 64 Bit ARM compatibility

Good morning,

Is an update of the application or drivers planned for Windows 64 bit ARM?

The two drivers are not installed. I have an error message.

Thanks

Flashing fails if there are certain special characters in the path

Certain non-ASCII characters (e.g. č) in the path to the firmware file will cause flashing to fail.

C:\Temp\Flash-Multi>.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -D "C:\Temp\MPM priča\multi-stm-serial-aetr-v1.3.1.77.bin" -v
dfu-util-multi 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="STM32duino bootloader v1.0  Upload to Flash 0x8002000"
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
C:\Temp\MPM prica\multi-stm-serial-aetr-v1.3.1.77.bin: No such file or directory

Flashing Bootloader fails on macOS

Hi, i went through the described procedure and I ended up with the latest firmware on my multimodule. So far so good but when flashing via OpenTX I still get the NoSync message.

Upon closer inspection I realized that erasing the flash and programming the bootloader failed but programming the firmware went fine.

Using the latest macOS Mojave on a macbook pro retina mid 2012 and libusb 1.0.23 (latest as of writing)

Terminal Output:

✘ C0br4@C0br4sMBP  ~/Downloads/flash-multi-0.4-1.3  sudo ./flash-multi -f ~/Downloads/multi-stm-opentx-aetr-inv-v1.3.1.49.bin -p /dev/cu.usbmodem14101 
flash-multi 0.4.3

This program is Free Software and has NO WARRANTY.
https://github.com/benlye/flash-multi/

2020-08-23 21:49:00.482 system_profiler[6608:368630] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
2020-08-23 21:49:01.049 system_profiler[6616:368656] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
Multi Firmware Version:    1.3.1.49 (STM32)
Expected Channel Order:    AETR
Multi Telemetry Type:      OpenTX
Invert Telemetry Enabled:  True
Flash From Radio Enabled:  True
Bootloader Enabled:        True
Serial Debug Enabled:      False

Proceed with firmware update? [Y]es or [N]o: Y

Attempting USB upload using dfu-util

[1/2] Resetting to DFU mode...
./tools/macos/maple-reset /dev/cu.usbmodem14101
maple-reset 0.1

This program is Free Sofware and has NO WARRANTY

Reset sequence sent to /dev/cu.usbmodem14101

[2/2] Writing firmware...
./tools/macos/dfu-util -d 1eaf:0003 -a 2 -D "/Users/C0br4/Downloads/multi-stm-opentx-aetr-inv-v1.3.1.49.bin" -R
dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 1eaf:0003
Run-time device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
Copying data from PC to DFU device
Download	[=========================] 100%       118812 bytes
Download done.
state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present
Done!
Resetting USB to switch back to runtime mode

MULTI-Module firmware flashed successfully.

windows 11 driver question

Hi I have the radio master multi 4 in1 external I am running Windows 11 and when I look in the device manager you can see how the device is showing up what do I need to install to make this work I am trying to update the boot loader on my multi-module I have tried installing the drivers this is the software that they did not seem to do anything

image

flash multi c'an't read module

I hope that somebody is still reading this and I will be very grateful for your help.
The module is Jumper 4IN1 SE external.*
Version 1.2.1.25.
I read a lot on the manuals on github and rcgroups .
I have installed the flash multi and the drivers.
I checked the com port . I connected the USB cable green led it' on. I tried to write and I got a failed message.
I tried also with the module in to the radio and powered on with the same result
Multi 1
Multi 2
Thank you
Horjab

Unable to flash bootloader on iRangeX IRX4+

When trying flashing a new bootloader with Flash Multi 0.6.1 I get errors as follows.

Upgrading MULTI-Module Bootloader via native USB
Switching MULTI-Module into DFU mode ... done
Writing BootReloader to MULTI-Module ... failed!
Attempting DFU Recovery Mode.
Waiting for DFU device to disappear ... gone.
Waiting for DFU device to appear ... got it.
Writing BootReloader to MULTI-Module ... failed!!

.\tools\maple-reset.exe COM6 2000

maple-reset 0.5

This program is Free Sofware and has NO WARRANTY

https://github.com/benlye/maple-reset

Reset sequence sent to COM6
Waiting for DFU device .......... got it.

Device reset successful in 392ms.

.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -D ".\tools\bootreloader_stickydfu.bin" -v -R

dfu-util-multi 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="UNDEFINED"
Claiming USB DFU Interface...
Cannot claim interface
.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -D ".\tools\bootreloader_stickydfu.bin" -v -R

dfu-util-multi 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="UNDEFINED"
Claiming USB DFU Interface...
Cannot claim interface

thank you
Herbert

All operations failing

I just got a new iRangeX IRX4 Plus module from ebay. EdgeTX shows that is running "V1.2.0.22".

When plugged into the PC via the USB cable the device shows up as "MULTI-Module USB Serial (COM6)". Looks like the device never enters DFU mode. The red LED flashes about once a second and green LED is off. I tried reinstalling the drivers, both using the Flash Multi app as well as Zadig. Reseting the module to DFU doesn't do anything. None of the operations work. Here is the output of "Read Module" command along with the verbose log.

Reading MULTI-Module via native USB
Switching MULTI-Module into DFU mode ... done
Reading flash memory ... failed!

Verbose log:

.\tools\maple-reset.exe COM6 2000


maple-reset 0.5
This program is Free Sofware and has NO WARRANTY

https://github.com/benlye/maple-reset

Reset sequence sent to COM6
Waiting for DFU device ........... got it.

Device reset successful in 393ms.

.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -U "C:\Users\Santosh\AppData\Local\Temp\tmpA965.tmp" -v

dfu-util-multi 0.7


Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003

Trying to update the bootloader fails with error "No DFU capable USB device found" in the verbose log.

Looks like the module is missing proper USB support in the bootloader? Would I need to use a USB to serial adapter to get it going?

Unable to flash bootloader URUAV TMX5

I have several issues with my URUAV when trying to connect to my Frsky D8 whoop. Sometimes it needs a dozen power cycles to connect, sometimes (like today) it's didn't work at all.

I read there might be an issue with the bootloader, so I tried to update it with flash-multi (0.5.1).

The problem I see (and saw as well last time I tried) is, that the RED led NEVER goes out, not even after several minutes.

This is the log:

`.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -D ".\tools\bootreloader_legacy.bin" -v -R

dfu-util-multi 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="STM32duino bootloader v1.0  Upload to Flash 0x8002000"
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
No valid DFU suffix signature
Warning: File has no DFU suffix
bytes_per_hash=461
Copying data from PC to DFU device
Starting download: [##################################################] finished!

Sent a total of 23084 bytes
Done!
Resetting USB to switch back to runtime mode`

image

Before you ask: This is a TMX5 with 128kb STM32 chip. :) I swapped the 64k chip.

Reading MULTI-Module via native USB
Reading flash memory ... done

Multi Firmware Version:   1.3.1.59 (STM32)
Expected Channel Order:   RETA
Multi Telemetry Type:     OpenTX
Invert Telemetry Enabled: True
Flash from Radio Enabled: True
Bootloader Enabled:       True
USB Serial Support:       True
Serial Debug Enabled:     False

EEPROM Global ID:         0x333BDD66

MULTI-Module read successfully
.\tools\dfu-util-multi.exe -a 2 -d 1EAF:0003 -U "C:\Users\Hannes\AppData\Local\Temp\tmp1E50.tmp" -v

dfu-util-multi 0.7

Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2012 Tormod Volden and Stefan Schmidt
Copyright 2020 Ben Lye
This program is Free Software and has ABSOLUTELY NO WARRANTY

This version of dfu-util has been modified for flashing an STM32 MULTI-Module. It is intended for use with Flash Multi.
Please report bugs to https://github.com/benlye/dfu-util-multi

Filter on vendor = 0x1eaf product = 0x0003
Opening DFU capable USB device... ID 1eaf:0003
Run-time device DFU version 0110
Found DFU: [1eaf:0003] devnum=0, cfg=1, intf=0, alt=2, name="STM32duino bootloader v1.0  Upload to Flash 0x8002000"
Claiming USB DFU Interface...
Setting Alternate Setting #2 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
bytes_per_hash=1024
Copying data from DFU device to PC
Starting upload: [########################################################################################################################] finished!
Received a total of 122880 bytes

Flash-multi crashes when attempting to "Flash Module Bootloader"

Steps to reproduce:

  • Connect IRangeX via USB
  • Open Flash Multi v0.5.1
  • Open Advanced -> Actions Menu
  • Select "Install USB Device drivers"
  • Wait for process to complete
  • Click Yes to popups and wait for process to complete:
Installing MULTI-Module USB Serial Driver ... done
Switching MULTI-Module into DFU mode ... done
Installing MULTI-Module DFU Bootloader Driver ... done
  • Unplug IRangeX
  • Connect IRangeX
  • Open Advanced -> Actions Menu
  • Select "Flash Module Bootloader"

Expected results:

  • Bootloader is flashed

Actual results

  • App crashes (see attached crashlog)
See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at Flash_Multi.FlashMulti.<UpgradeBootloader>d__70.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Flash_Multi.FlashMulti.<UpgradeBootloaderToolStripMenuItem_Click>d__50.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
flash-multi
    Assembly Version: 0.5.1.0
    Win32 Version: 0.5.1
    CodeBase: file:///C:/Users/oleole/Downloads/flash-multi-0.5.1/flash-multi-0.5.1/flash-multi.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4150.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4001.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3752.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3752.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4180.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3752.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Management
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3752.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


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.