From 81f408ee77e9e3d65ecf5161c1151e1b34201bb7 Mon Sep 17 00:00:00 2001 From: slagdang Date: Mon, 19 Feb 2018 01:16:04 -0800 Subject: [PATCH] Added instructions for Ubuntu linux. Added jumper image for IRX4Plus. (#149) --- docs/Compiling_STM32.md | 52 +++++++++++++++++++++++++++------ docs/images/irx4plus-boot0.jpg | Bin 0 -> 21551 bytes 2 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 docs/images/irx4plus-boot0.jpg diff --git a/docs/Compiling_STM32.md b/docs/Compiling_STM32.md index 78d4b01..5b11214 100644 --- a/docs/Compiling_STM32.md +++ b/docs/Compiling_STM32.md @@ -45,7 +45,7 @@ The 4-pin header needs to be soldered onto the board as indicated by the red rec ## Preparation ### Install the Arduino IDE -1. Download and install the Arduino IDE. The currently supported Arduino version is 1.8.5, available for [Windows]( https://www.arduino.cc/download_handler.php?f=/arduino-1.8.5-windows.exe) and [Mac OSX](https://www.arduino.cc/download_handler.php?f=/arduino-1.8.5-macosx.zip) +1. Download and install the Arduino IDE. The currently supported Arduino version is 1.8.5, available for [Windows]( https://www.arduino.cc/download_handler.php?f=/arduino-1.8.5-windows.exe), [Mac OSX](https://www.arduino.cc/download_handler.php?f=/arduino-1.8.5-macosx.zip) and [Linux (64-bit)](https://www.arduino.cc/download_handler.php?f=/arduino-1.8.5-linux64.tar.xz) 1. It is recommended to upgrade Java to the [latest version](https://www.java.com/en/download/) ### Download the Multiprotocol source and open the project @@ -121,13 +121,14 @@ If you have selected either **Flash from TX** or **Upload via USB** the module w The bootloader only needs to be installed once unless you decide to switch from one upload method to the other. -In order to flash the bootloader the **BOOT0** jumper must be installed. The location of **BOOT0** varies by hardware module. +In order to flash the bootloader the **BOOT0** jumper must be installed connecting **BOOT0** to 3.3V. The location of **BOOT0** varies by hardware module. -| **DIY Multiprotocol Module** | **Banggood 4-in-1 Module** | **iRangeX IRX4 Module** | -|:---:|:---:|:---:| -| Bridge pins 1 and 2 as shown by the yellow jumper wire. | Bridge the left-most pins of the 6-pin header as shown by the yellow jumper. | Bridge pins 1 and 2 as shown by the blue jumper. | -| | | | +| **DIY Multiprotocol Module** | **Banggood 4-in-1 Module** | **iRangeX IRX4 Module** | **iRangeX IRX4 Plus Module** +|:---:|:---:|:---:|:---:| +| Bridge pins 1 and 2 as shown by the yellow jumper wire. | Bridge the left-most pins of the 6-pin header as shown by the yellow jumper. | Bridge pins 1 and 2 as shown by the blue jumper. | Bridge the BOOT0 pin to the adjacent 3.3V pin as shown by the yellow jumper. | +| | | | | +1. If on Linux, ensure you have permissions to access serial interfaces as described in [Install the Maple USB drivers](#install-the-maple-usb-drivers) 1. Install the **BOOT0** jumper as described above 1. Switch on the transmitter 1. Verify that you have selected the desired upload method under **Tools -> Upload Method** @@ -198,11 +199,43 @@ In order for these devices to be correctly identified in Windows it is necessary **NOTE:** If you have installed the drivers and your module is not detected as a Maple device it most likely does not have a USB bootloader installed. Ready-made modules from Banggood **do not** come with a USB bootloader installed. You will need to follow the procedure to [Burn a USB bootloader](#burn-the-bootloader) before you can upload firmware. +##### Linux (64-bit) +If you are using Ubuntu 16.04 LTS it is not necessary to download Maple USB drivers but your account must have permissions to communicate to the Maple USB system devices. To do this you must be in the group which can access USB devices and/or serial interfaces. This configuration must be done once after account creation/system install. You can do that by entering the following commands: + + sudo usermod -a -G plugdev $USER + sudo usermod -a -G dialout $USER + +Any sudo operation requires administrator privileges and will ask for an administrator's password. + +After entering these commands you must log out of Ubuntu completely and log back in. Simply closing the Terminal window and opening another will not work. + +The first command adds your user account to the group which can access connected USB devices. The second adds your account to the group which can access serial interfaces. + +The next steps will change your system's permissions rules so that users in the plugdev group can access attached USB devices. + +To do this you must clone the libmaple project with git. If you have not installed git then you must first install it using the following commands: + + sudo apt-get install git + +After git is installed clone the Maple USB project by navigating to the directory you want to clone it to and using the following commands: + + git clone git://github.com/leaflabs/libmaple.git libmaple + +This will create a directory called libmaple in the current directory. Install the script which alters the permissions rules and force udev to run the script immediately: + + sudo cp libmaple/support/scripts/45-maple.rules /etc/udev/rules.d/ + sudo /etc/init.d/udev restart + +After adding yourself to the groups as above and installing and running the udev rules above your system will be configured so that your user account will always have access to serial and USB devices without requiring you run these steps again. + ### Upload the firmware via USB **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 in Device Manager (**Maple DFU** for a module with only a bootloader, **Maple Serial** for a module with a bootloader and firmware) +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. In the Arduino IDE click **Sketch -> Upload**, or press **Ctrl+U** You should see output similar to this: @@ -243,7 +276,8 @@ For subsequent firmware uploads you need only repeat steps 1-3 above, ensuring t ## Upload via Serial Upload via Serial follows the same process as burning the bootloader and uses the same USB-to-TTL adapter. -1. Ensure you USB-to-TTL adapter is connected as described in [Connect the programmer](#connect-the-programmer) +1. Ensure your USB-to-TTL adapter is connected as described in [Connect the programmer](#connect-the-programmer) +1. If on Linux, ensure you have permissions to access serial interfaces as described in [Install the Maple USB drivers](#install-the-maple-usb-drivers) 1. Install the **BOOT0** jumper 1. Turn on the transmitter 1. Click **Sketch -> Upload** @@ -284,7 +318,7 @@ Starting execution at address 0x08000000... done. Once the firmware has uploaded, remove the **BOOT0** jumper and disconnect the USB-to-TTL adapter. ## Flashing pre-compiled binaries -Pre-compiled binaries are availale [here](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases). +Pre-compiled binaries are available [here](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases). - **Multiprotocol_V1.X.X_STM32.bin** files are for transmitters with support for hardware telemetry inversion, such as Turnigy 9X, 9XR, 9X+. - **Multiprotocol_V1.X.X_STM32_INV.bin** files are for tranismitters which require telemetry inverted in the module firmware, such as Taranis. diff --git a/docs/images/irx4plus-boot0.jpg b/docs/images/irx4plus-boot0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..668a1cf83dc59940f87a02bb698de528446511dd GIT binary patch literal 21551 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 Lo+*N!C