diff --git a/docs/Compiling.md b/docs/Compiling.md
index 31e3c32..48af976 100644
--- a/docs/Compiling.md
+++ b/docs/Compiling.md
@@ -122,14 +122,12 @@ There are two bootloader options:
### Upload the firmware
You are now ready to upload the firmware to the multiprotocol module. There are two methods for uploading the firmware:
-* **Flash from TX** uses the maintenance mode in radios running ersky9x to upload the firmware
+* **Flash from TX** - uses the bootloader mode of radios running ersky9x or OpenTX to upload the firmware. The radio needs to run the latest bootloader with the Multi Flash app.
* **Upload using Arduino IDE** uses the Arduino IDE and the USBasp programmer to upload the firmware
-**Note:** 'Flash from TX' is only available with radios running ersky9x r221e2 or newer.
-
#### Flash from TX
1. In the Arduino IDE click **Sketch -> Export compiled Binary**, or press **Ctrl+Alt+S**
-1. Locate the file named **multifw.hex** in the **Multiprotocol** folder
+1. Locate the file named **multi-avr-x.x.x.x.hex** in the **Multiprotocol source folder** (x.x.x.x is the multi version)
1. Follow the instructions [here](/docs/Flash_from_Tx.md) to upload the firmware using your radio
You can disconnect the programmer now as it is not needed any more.
diff --git a/docs/Compiling_STM32.md b/docs/Compiling_STM32.md
index f87045e..d8f3931 100644
--- a/docs/Compiling_STM32.md
+++ b/docs/Compiling_STM32.md
@@ -87,14 +87,14 @@ STM modules, until now, do not come with a preloaded bootloader which makes the
The latest Jumper 4-in-1 modules come with a USB port but it's in fact a built in FTDI appearing on the computer as a CP2102 serial device. You should use the method **Upload via Serial inc. Bootloader** instead of Upload via USB. 'Flash from TX' is supported once the bootloader is installed.
### Select an Upload Method
-There are three methods to upload firmware to an STM32 module:
-* **Flash from TX** - highly recommended, uses maintenance mode in radios running ersky9x or OpenTX to upload the firmware
-* **Upload via USB** - uses the USB port on the module
-* **Upload via Serial inc. Bootloader (FTDI)** - uses the serial interface on the module via a USB-to-TTL adapter
+There are a total of five firmware upload methods to an STM32 module:
+* **Flash from TX** - uses the bootloader mode of radios running ersky9x or OpenTX to upload the firmware. The radio needs to run the latest bootloader with the Multi Flash app.
+* **Auto Detect (USB or Serial)** - Detects automatically if the upload method is USB or Serial. You need to configure the correct COM port in the IDE which is created when plugging the module.
+* **Upload via USB** - uses the USB upload method through the USB plug of the module. It requires the presence of a bootloader in the module.
+* **Upload via Serial inc. Bootloader (FTDI)** - uses the serial interface of the module via a USB-to-TTL adapter to install the bootloader and firmware.
+* **Upload via Serial (FTDI)** - uses the serial interface of the module via a USB-to-TTL adapter to install the firmware.
-**Note:** 'Flash from TX' is available with radios supporting ersky9x or OpenTX and running the latest bootloader with the Multi Flash app.
-
-**Flash from TX** is highly recommended if your transmitter supports it, **Upload via USB** is recommended for all others. **Upload via Serial inc. Bootloader** can be used if your module does not have a USB port and your transmitter does not run ersky9x or OpenTX.
+You will most likely use only once on a brand new module the **Upload via Serial inc. Bootloader (FTDI)** method to load the bootloader+firmware. Any successive updates will be done using either **Auto Detect (USB or Serial)** or **Flash from TX** depending on your preference.
1. Under **Tools -> Upload Method** select an upload method
@@ -169,14 +169,16 @@ Assuming the process is successful:
1. Power off the transmitter
1. Remove the **BOOT0** jumper
1. Disconnect the USB-to-TTL adapter
+1. Your module is ready to use, enjoy!!!
## Flash from TX
+1. Click **Tools -> Upload method -> Flash from TX**
1. Click **Sketch -> Export compiled Binary**, or press **Ctrl+Alt+S**
-1. Locate the file named **multifw.bin** in the **Multiprotocol** folder
+1. Locate the file named **multi-stm-x.x.x.x.bin** in the **Multiprotocol source folder** folder (x.x.x.x is the multi version)
1. Follow the instructions [here](/docs/Flash_from_Tx.md) to upload the firmware using your radio
## Upload via USB
-In order for the module to be correctly identified in Windows it is necessary to install drivers. This only needs to be done once.
+In order for the module to be correctly identified it is necessary and only once to do some operations based on your operating system.
### Install the Maple USB drivers
##### Windows 7 or newer:
@@ -230,14 +232,12 @@ After adding yourself to the groups as above and installing and running the udev
**Note:** Some modules require external power in order for the USB port to work. If your module does not power on with USB power alone, install it in the transmitter and switch the transmitter on. It is generally safe for the module to recieve power from both USB and the transmitter.
1. Connect the USB cable to the Multiprotocol module
-1. Verify that a Maple device appears (**Maple DFU** for a module with only a bootloader, **Maple Serial** for a module with a bootloader and firmware)
- 1. On Windows look for the USB device in the Windows Device Manager
- 1. On Mac OSX look in the System Information which is accessed by holding option and selecting the first item under the Apple Menu. Select the USB list on the left and look for the USB device.
- 1. On Linux execute the command ```lsusb``` and examine the output.
-1. select the correct COM port, which should be labelled **COMx (Multi 4-in-1 (STM32F103CB))**. If the device is in "DFU" mode, the module COM port will not appear, select any available COM port to continue the upload procedure.
-

+1. Click **Tools -> Upload method -> Auto Detect (USB or Serial)**
+1. Select the correct COM port **Tools -> Port**, which should be labelled **COMx (Multi 4-in-1 (STM32F103CB))**.
1. In the Arduino IDE click **Sketch -> Upload**, or press **Ctrl+U**
+**Note:** If the module appears as a **Maple DFU** for a module with only a bootloader, **Maple Serial** for a module with a bootloader and firmware then follow the same process by selecting any available COM port (you must select one, if you don't have one appearing plug any device that will create a com port (an Arduino board for example)).
+
You should see output similar to this:
```
Sketch uses 68564 bytes (52%) of program storage space. Maximum is 131072 bytes.
@@ -267,7 +267,7 @@ Resetting USB to switch back to runtime mode
error resetting after download: usb_reset: could not reset device, win error: The system cannot find the file specified.
```
-**Note:** The line `Reset via USB Serial Failed! Did you select the right serial port?` is expected because the uploader initially looks for a Maple Serial device, which isn't yet available, before failing back to Maple DFU. That error only appears the first time and won't appear when re-flashing firmware. The final line warning, stating that the device could not be reset, is also expected.
+**Note:** The line `Reset via USB Serial Failed! Did you select the right serial port?` or a warning line stating that the device could not be reset is **not a problem**.
## Flashing pre-compiled binaries
Pre-compiled binaries are available [here](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases).
diff --git a/docs/Flash_from_Tx.md b/docs/Flash_from_Tx.md
index 8cf2e45..6669cbe 100644
--- a/docs/Flash_from_Tx.md
+++ b/docs/Flash_from_Tx.md
@@ -1,33 +1,61 @@
# Flashing from the Transmitter
-For radios running ersky9x r221e2 or newer, there is an option to flash a precompiled firmware file to the multiprotocol module using the transmitter's Maintenance Mode.
+For radios running ersky9x and OpenTX, there is an option to flash a precompiled firmware file to the multiprotocol module using the transmitter's Bootloader mode.
## Tools required
-* A compatible transmitter running ersky9x r221e2, or newer
+* A compatible transmitter running an ersky9x bootloader v2.9 or newer. This is true for both OpenTX and ersky9x.
* A precompiled multiprotocol firmware file (.hex for Atmega328p or .bin for STM32)
-* A **Flash from TX** bootloader installed on the multiprotocol module
+* A **Flash from TX** bootloader installed on an Atmega328p or STM32 multiprotocol module
* A means to get the firmware file onto the transmitter's SD card
-Consult the [ersky9x site](http://www.er9x.com/) to see if your transmitter is compatible.
+## Radio bootloader and apps
-The transmitter firmware can be downloaded from the [ersky9x test firmware page](http://openrcforums.com/forum/viewtopic.php?f=7&t=4676).
+### How to check the bootloader version
+1. Push both horizontals trims inwards (close to each others) while powering on the radio
+1. The screen title should indicate `Boot Loader V2.9Ready` or newer
+1. Launch the `FlashMulti_xxx.app` app from the `Run App` menu
+1. The App version at the bottom right of the screen should be `28.Aug.18` or newer
+1. If everything is correct you are ready to upgrade the Multimodule firmware
-## Procedure
+### Upgrade the bootloader and install app(s)
+1. Download the latest zip file of the [ersky9x firmware](https://openrcforums.com/forum/viewtopic.php?f=7&t=4676)
+1. Extract the .bin file corresponding to your radio in your SD card `\FIRMWARE` directory
+1. Download the latest [Flash Multiprotocol Module app](http://www.er9x.com/Ersky9xapps.html) for your radio
+1. Copy the .app file in a folder called `APPS` at the root of the SD card (if the directory does not exist create it)
+1. For ersky9x
+ 1. Power on the radio in `MAINTENANCE` mode while pushing both horizontals trims outwards (away from each others)
+ 1. Select `Update Bootloader`
+ 1. Select the ersky9x firmware matching your radio
+ 1. Long press it and select `Flash bootloader`
+1. For OpenTX
+ 1. Boot the radio normaly
+ 1. Go in the `RADIO SETUP` menu page 2 called `SD-HC CARD`
+ 1. Open the `FIRMWARE` directory
+ 1. Select the ersky9x firmware matching your radio
+ 1. Long press it and select `Flash bootloader`
+1. Check by rebooting the radio in bootloader mode that everything is [ok](###-How-to-check-the-bootloader-version)
+
+**Note**: For OpenTX radio, this bootloader is an upgraded version of the existing bootloader shipped with OpenTX. It's providing you the exact same level of default features while adding more through apps. You can go back and forth between the 2 bootloaders without an issue.
+
+## Multimodule upgrade procedure
1. Either:
1. Connect the transmitter using a USB cable and power it on, or
1. Remove the SD card from the transmitter and mount it using a suitable reader
-1. Copy the pre-compiled firmware file into the **\firmware** folder of the SD card (create the folder if it does not exist)
+1. Copy the pre-compiled firmware file into the `\FIRMWARE` folder of the SD card (create the folder if it does not exist)
1. Power the transmitter off and remove the USB cable or put the SD card back in the transmitter
-1. Enter the transmitter's Maintenance Menu by powering it on with the outer buttons of the two horizontal trims held down
-1. Select **Update Multi**,
+1. Push both horizontals trims inwards (close to each others) while powering on the radio
+1. The screen title should indicate `Boot Loader V2.9Ready` or newer
+1. Launch the `FlashMulti_xxx.app` app from the `Run App` menu
1. Choose the appropriate file type
- 1. **HEX** to update an Atmega328p module
- 1. **BIN** to update an STM32 module
-1. Select **Update**
+ 1. `HEX` to update an Atmega328p module
+ 1. `BIN` to update an STM32 module
+1. Select `Update`
1. Choose the firmware file to flash, long press to select it
1. Long press again to flash the selected file to the module
+1. When flashing has finished, long press EXIT to reboot in normal mode
-When flashing has finished, long press EXIT to reboot in normal mode.
-
-## Troubleshooting
-TBD
+### Troubleshooting
+1. If the flashing procedure fails try to redo the process with `Invert Com Port` enabled
+1. Make sure to have the latest bootloader on the MPM module before attempting to Flash from the TX:
+ 1. For an Atmega328p module use the bootloader bundled with the `Multi 4-in1 AVR board 1.0.3` or later
+ 1. For a STM32 module use the bootloader bundled with the `Multi 4-in1 STM32 board 1.0.9` or later
diff --git a/docs/images/Bootloader.jpg b/docs/images/Bootloader.jpg
new file mode 100644
index 0000000..81424bd
Binary files /dev/null and b/docs/images/Bootloader.jpg differ
diff --git a/docs/images/FlashMulti.jpg b/docs/images/FlashMulti.jpg
new file mode 100644
index 0000000..451860f
Binary files /dev/null and b/docs/images/FlashMulti.jpg differ