mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 19:48:11 +00:00
commit
5a30a96c0c
@ -1,4 +1,4 @@
|
||||
#ATmega Serial Uploader
|
||||
# ATmega Serial Uploader
|
||||
|
||||
Mike Blandford adapted the optiboot bootloader for the 4-in-1 module to allow flashing of the module using a standard Arduino USB to serial adapter or FTDI adapter. No need to open the module case. Once set up is very easy to use:
|
||||
|
||||
@ -22,7 +22,7 @@ While the bootloader is running, if it detects a communication problem, it confi
|
||||
|
||||
This bootloader is for reading and writing the flash only, the EEPROM is not supported, neither is reading/writing the fuses, but it only uses 512 bytes of flash.
|
||||
|
||||
##Install the bootloader
|
||||
## Install the bootloader
|
||||
To get the bootloader onto the ATmega you need to connect an flashing tool (like USBasp) to the 6-pin ISP connector on the board.
|
||||
Simply flash the .hex file to get the bootloader on the chip, and change the high fuse at the same time.
|
||||
|
||||
|
@ -5,15 +5,13 @@
|
||||
|
||||
There are many different options to upload a .hex firmware file to the MULTI-Module and to set the correct fuses. This document outlines an approach that uses a USBASP programmer and which is equally compatible with OSX, Windows and Linux operating systems.
|
||||
|
||||
1. Follow this section: [Material you need to upload the firmware](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#material-you-need-to-upload-the-firmware)
|
||||
1. Follow this section: [Install the Arduino IDE](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#install-the-arduino-ide-and-the-multiprotocol-project-firmware)
|
||||
1. Follow this section: [Material you need to upload the firmware](Compiling.md#material-you-need-to-upload-the-firmware)
|
||||
1. Follow this section: [Install the Arduino IDE](Compiling.md#install-the-arduino-ide-and-the-multiprotocol-project-firmware)
|
||||
1. Make sure to write down the location of your installation since you need to know where avrdude is installed to configure the AVR8 Burn-O-Mat. For example on a default windows installation, avrdude.exe is located in "C:\Program Files (x86)\Arduino\hardware\tools\avr\bin" where "C:\Program Files (x86)\Arduino" is the installation path.
|
||||
1. Install [AVR8 Burn-O-Mat](http://avr8-burn-o-mat.brischalle.de/avr8_burn_o_mat_avrdude_gui_en.php) which is available for all platforms. Installation instructions are on the software page (Don't forget to install [Java](http://java.sun.com/javase/downloads) as explained).
|
||||
1. Launch AVR8 Burn-O-Mat.
|
||||
1. You should now have a window which looks like this:
|
||||
<img src="images/AVR8BurnOMat-main.png" />
|
||||
1. Click on **Settings->AVRDUDE** and fill in the details about avrdude location using the installation path written previously as well as selecting USBASP for the programmer:
|
||||
<img src="images/AVR8BurnOMat-settings.png" />
|
||||
1. You should now have a window which looks like this: <br> <img src="images/AVR8BurnOMat-main.png" />
|
||||
1. Click on **Settings->AVRDUDE** and fill in the details about avrdude location using the installation path written previously as well as selecting USBASP for the programmer: <br> <img src="images/AVR8BurnOMat-settings.png" />
|
||||
1. Once done click on OK.
|
||||
1. You are now done with all the installations/configuration and ready to program your Multi-module.
|
||||
|
||||
@ -33,14 +31,13 @@ Banggood 4-in-1 module with [custom mikeb bootloader](Advanced_ATmega_Serial_Upl
|
||||
If you don't know which one to take the 1st line is the one you want.
|
||||
|
||||
### Burn the fuses
|
||||
1. Follow this section: [Connect the programmer](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#connect-the-programmer)
|
||||
1. Follow this section: [Connect the programmer](Compiling.md#connect-the-programmer)
|
||||
1. Launch AVR8 Burn-O-Mat.
|
||||
1. In the **AVR type** drop down select **ATmega328P** and click on **Fuses**
|
||||
1. In the **ATmega328P Fuses** window which just open click on read fuses.
|
||||
1. Ignore the error "warning : Can not Set sck period . usbasp please check for firmware update .".
|
||||
1. If you get an error there is something wrong with your connections, your programmer, or your board. Verify everything and go back to the 1st bullet point.
|
||||
1. Set the 3 Fuse values
|
||||
<img src="images/AVR8BurnOMat-fuses.png" />
|
||||
1. Set the 3 Fuse values <br> <img src="images/AVR8BurnOMat-fuses.png" />
|
||||
1. Click on **apply**
|
||||
1. Click on **write fuses**
|
||||
1. Ignore the error "warning : Can not Set sck period . usbasp please check for firmware update .".
|
||||
@ -48,7 +45,7 @@ If you don't know which one to take the 1st line is the one you want.
|
||||
1. You are done with setting the Fuses and can close the **ATmega328P Fuses** window
|
||||
|
||||
## Upload the firmware
|
||||
1. Follow this section: [Connect the programmer](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling.md#connect-the-programmer)
|
||||
1. Follow this section: [Connect the programmer](Compiling.md#connect-the-programmer)
|
||||
1. Download the [latest release firmware](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases) you want to burn and store it in a knwon location
|
||||
1. Launch AVR8 Burn-O-Mat.
|
||||
1. In the **AVR type** drop down select **ATmega328P**
|
||||
|
@ -1,8 +1,8 @@
|
||||
#Bill of Materials DIY ATmega Module
|
||||
# Bill of Materials DIY ATmega Module
|
||||
|
||||
Here is the bill of materials for the ATmega328 version of the DIY MPTM.
|
||||
|
||||
If you are looking for the BOM for the DIY STM32 version click [here](BOM_DIY_STM32.md).
|
||||
If you are looking for the BOM for the DIY STM32 version click [here](BOM_DIY_STM32%20&%20Schematic.md).
|
||||
|
||||
Digikey may not be your preferred supplier, but you should find enough information on their page to cross reference parts.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#Bill of Materials DIY STM32 Module
|
||||
# Bill of Materials DIY STM32 Module
|
||||
|
||||
Here is the bill of materials for the STM32 version of the DIY MPTM. There are three versions. Carefully compare your board with the pictures below to determine which version you have.
|
||||
|
||||
|
@ -15,13 +15,13 @@ The procedure below will guide you through all the steps to upload successfully
|
||||
|
||||
### Material you need to upload the firmware
|
||||
|
||||
1. USBASP programmer supporting 3.3V: <br> <img src="images/USBasp_Programmer.jpeg" width="200" height="200"/> <br> [(example aliexpress link)](https://www.aliexpress.com/item/USBasp-USB-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-10PIN-Wire-Support/2036402518.html?spm=2114.30010308.8.10.jIbHzs) <br> There are reports that some of the cheap programmers are not safe to use with 3.3V units, usually the black PCB versions are ok. <br> <br>
|
||||
1. 10pin to 6pin adapter: <br> <img src="images/10pin_2_6pin.JPG" width="150" height="150"/> <br> [(example ebay link)](http://www.ebay.fr/itm/10-Pin-a-6-Pin-Carte-Adaptateur-M-F-pour-AVRISP-USBASP-STK500-Noir-Bleu-WT-/291862396761?hash=item43f45abf59:g:gXsAAOSwMgdXyGnh) <br> <br>
|
||||
1. 6 pin header like this one: <br> <img src="images/6pin_header.jpg" width="100" height="100"/> <br> [(example Digi-Key link)](http://www.digikey.com/products/en?keywords=3M%20961206-6404-AR) <br> <br>
|
||||
1. USBASP programmer supporting 3.3V: <br> <img src="images/USBasp_Programmer.jpeg" width="200" height="200"/> <br> [(example aliexpress link)](https://www.aliexpress.com/item/USBasp-USB-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-10PIN-Wire-Support/2036402518.html?spm=2114.30010308.8.10.jIbHzs) <br> There are reports that some of the cheap programmers are not safe to use with 3.3V units, usually the black PCB versions are ok. <br>
|
||||
1. 10pin to 6pin adapter: <br> <img src="images/10pin_2_6pin.JPG" width="150" height="150"/> <br> [(example ebay link)](http://www.ebay.fr/itm/10-Pin-a-6-Pin-Carte-Adaptateur-M-F-pour-AVRISP-USBASP-STK500-Noir-Bleu-WT-/291862396761?hash=item43f45abf59:g:gXsAAOSwMgdXyGnh) <br>
|
||||
1. 6 pin header like this one: <br> <img src="images/6pin_header.jpg" width="100" height="100"/> <br> [(example Digi-Key link)](http://www.digikey.com/products/en?keywords=3M%20961206-6404-AR) <br>
|
||||
1. The 6 Pin header needs to be solder on the board like indicated by the red rectangle:
|
||||
* Banggood readymade 4-in-1 module: <br><img src="images/V2b_ISP.jpeg" width="189" height="200"/> <br> <br>
|
||||
* DIY Mulitprotocol modules (like the 2.3d board): <br><img src="images/MPTM_PCB_2.3d_ISP.png" width="486" height="201"/> <br> <br>
|
||||
* Arduino Pro Mini module: <br><img src="images/ProMini_ISP.png" width="195" height="200"/> <br> <br>
|
||||
* Banggood readymade 4-in-1 module: <br><img src="images/V2b_ISP.jpeg" width="189" height="200"/> <br>
|
||||
* DIY Mulitprotocol modules (like the 2.3d board): <br><img src="images/MPTM_PCB_2.3d_ISP.png" width="486" height="201"/> <br>
|
||||
* Arduino Pro Mini module: <br><img src="images/ProMini_ISP.png" width="195" height="200"/> <br>
|
||||
|
||||
### Connect the programmer
|
||||
|
||||
@ -108,10 +108,7 @@ First, we need to append some text to the Arduino file boards.txt.
|
||||
|
||||
#### On Windows
|
||||
1. Close the Arduino IDE
|
||||
1. Search Windows for the application WordPad (DO NOT USE Notepad). Right click on WordPad and select "Run as Administrator":
|
||||
|
||||
<img src="images/WordPad_Admin.jpg" height="200" />
|
||||
|
||||
1. Search Windows for the application WordPad (DO NOT USE Notepad). <br> Right click on WordPad and select "Run as Administrator": <br> <img src="images/WordPad_Admin.jpg" height="200" /> <br>
|
||||
1. Open the file ```boards.txt``` located in this folder ```C:\Program Files(x86)\Arduino\hardware\arduino\avr ``` or the equivalent if you have installed Aduino in a different directory.
|
||||
1. Append the following text into the end of the file and save it:
|
||||
|
||||
|
@ -28,22 +28,16 @@ Flashing precompiled **binaries** is done very simple with the cable setup prese
|
||||
|
||||
### Prepare the Arduino IDE:
|
||||
|
||||
1. In order to compile successfully you need also to modify a maple library file. In ```....\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\usart_f1.c``` comment out the 2 functions as shown below. This is required to have low-level access to the USART interrupt.
|
||||
|
||||
**/***
|
||||
**void __irq_usart2(void){**
|
||||
|
||||
**usart_irq(&usart2_rb, USART2_BASE);**
|
||||
|
||||
**}**
|
||||
|
||||
**void __irq_usart3(void) {**
|
||||
|
||||
**usart_irq(&usart3_rb, USART3_BASE);**
|
||||
|
||||
**}**
|
||||
***/**
|
||||
|
||||
1. In order to compile successfully you need also to modify a maple library file. In ```....\hardware\Arduino_STM32\STM32F1\cores\maple\libmaple\usart_f1.c``` comment out the 2 functions as shown below. This is required to have low-level access to the USART interrupt. <br>
|
||||
```C
|
||||
/* void __irq_usart2(void){
|
||||
usart_irq(&usart2_rb, USART2_BASE);
|
||||
}
|
||||
|
||||
void __irq_usart3(void) {
|
||||
usart_irq(&usart3_rb, USART3_BASE);
|
||||
} */
|
||||
```
|
||||
1. Run the IDE, and on the **Tools** menu, select **Board** and then **Boards manager**. <br> Click on the Arduino DUE (32 Bits ARM-Cortex M3) from the list of available boards. You must do this step, it installs the arm-none-eabi-g++ toolchain!
|
||||
1. Close and reopen the Arduino IDE and load the Multiprotocol project.
|
||||
1. In arduino IDE under the **Tools** -> **Board:** select the **Generic STM32F103C series** board
|
||||
|
@ -33,12 +33,7 @@ The schematic for the board is [here](#V23D_Schematic). Please note that is is
|
||||
1. The schematic and BOM for this board V1.0t and older boards are available [here](BOM_DIY_STM32 & Schematic.md).
|
||||
|
||||
### Common parts
|
||||
1. A module case that fits your module like the one [here](https://www.xtremepowersystems.net/proddetail.php?prod=XPS-J1CASE)
|
||||
<img src="https://www.xtremepowersystems.net/prodimages/j1case.jpg" width="200" height="180" />
|
||||
or you can 3D print your own from a selection on Thingiverse ([Example 1](http://www.thingiverse.com/thing:1852868) [Example 2](http://www.thingiverse.com/thing:1661833)).
|
||||
[<img src="http://thingiverse-production-new.s3.amazonaws.com/renders/55/1c/cb/0a/e4/5d2c2b06be7f3f6f8f0ab4638dd7c6fc_preview_featured.jpg" width="250" height="200" /> ](http://www.thingiverse.com/thing:1852868)
|
||||
For 9XR/9XR Pro, a new 3D printed module is available which makes use of the built in antenna in the handle. This means nothing is getting out of the radio back! You can find all details of this module case on [Thingiverse](http://www.thingiverse.com/thing:2050717).
|
||||
<img src="images/9XR_module.jpg" width="113" height="200" /> <img src="images/9XR_module_connector.jpg" width="274" height="200" />
|
||||
1. A module case that fits your module like the one [here](https://www.xtremepowersystems.net/proddetail.php?prod=XPS-J1CASE) <br> <img src="https://www.xtremepowersystems.net/prodimages/j1case.jpg" width="200" height="180" /> <br> or you can 3D print your own from a selection on Thingiverse ([Example 1](http://www.thingiverse.com/thing:1852868) [Example 2](http://www.thingiverse.com/thing:1661833)). <br> [<img src="http://thingiverse-production-new.s3.amazonaws.com/renders/55/1c/cb/0a/e4/5d2c2b06be7f3f6f8f0ab4638dd7c6fc_preview_featured.jpg" width="250" height="200" /> ](http://www.thingiverse.com/thing:1852868) <br> For 9XR/9XR Pro, a new 3D printed module is available which makes use of the built in antenna in the handle. This means nothing is getting out of the radio back! You can find all details of this module case on [Thingiverse](http://www.thingiverse.com/thing:2050717). <br> <img src="images/9XR_module.jpg" width="113" height="200" /> <img src="images/9XR_module_connector.jpg" width="274" height="200" />
|
||||
1. A 2.4GHz antenna and pigtail
|
||||
|
||||
## Build instructions
|
||||
@ -59,14 +54,12 @@ If you have a transmitter that can support serial communication with the board t
|
||||
#### **ATmega V2.3d board**
|
||||
|
||||
There are four solder type jumpers on the bottom side of the board near the lower left corner when the bottom of the board is facing towards you. The silkscreen shows which jumper is which. These four jumpers enable the board to be configured in several ways as explaned below.
|
||||
|
||||
(J-1) Use (PPM V/V) if the incoming PPM signal is at a higher voltage level, leave open if ~~5V.
|
||||
|
||||
```
|
||||
(J-1) Use (PPM V/V) if the incoming PPM signal is at a higher voltage level, leave open if ~~5V.
|
||||
(J-2) Use (Jumper 2) to connect the incomming PPM signal to the RX pin on the processor
|
||||
|
||||
(J-3) Short (TELEM) only if you have done a telemetry mod to your radio, leave open if not needed. When connected, pin 2 of the two pin header (P3) is also connected.
|
||||
|
||||
(J-4) Use (MOD) only to connect the transmitter pin 2 to pin 1 of the two pin header (P3).
|
||||
(J-4) Use (MOD) only to connect the transmitter pin 2 to pin 1 of the two pin header (P3).
|
||||
```
|
||||
|
||||
**It is most likely J-2 will be the only one needing to be shorted for the serial method of sending model protocols. If you plan to use telemetry you will also need to solder J-3**
|
||||
|
||||
@ -82,7 +75,7 @@ Here is the schematic you can use to troubleshoot the module
|
||||
General module schematic (reference)
|
||||
<img src="images/DIY_Mulitprotocol_Module_Schematic.jpeg" width="1000" height="500" />
|
||||
V2.3d Board Schematic
|
||||
<img src="https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/PCB%20v2.3d/Schematic_v2.3d.jpg" width="1000" height="500" />
|
||||
<img src="../PCB%20v2.3d/Schematic_v2.3d.jpg" width="1000" height="500" />
|
||||
|
||||
## <a name="STM32_Schematic"></a> PCB STM32 V1.0t Schematic
|
||||
<img src="https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/STM32%20PCB/Schematic_Multiprotocol_STM32_MB_v1.0_t.jpg" width="1000" height="500" />
|
||||
<img src="../STM32%20PCB/Schematic_Multiprotocol_STM32_MB_v1.0_t.jpg" width="1000" height="500" />
|
||||
|
@ -10,7 +10,7 @@ The source code is partly based on the Deviation TX project, thanks to all the d
|
||||
|
||||
**To download the latest compiled version (hex file), click on [Release](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases) on the top menu.**
|
||||
|
||||
##Contents
|
||||
## Contents
|
||||
|
||||
[Compatible TX](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#compatible-tx)
|
||||
|
||||
@ -22,9 +22,9 @@ The source code is partly based on the Deviation TX project, thanks to all the d
|
||||
|
||||
[Troubleshooting](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#troubleshooting)
|
||||
|
||||
##Compatible TX
|
||||
## Compatible TX
|
||||
|
||||
###Using standard PPM output (trainer port)
|
||||
### Using standard PPM output (trainer port)
|
||||
The multiprotocol TX module can be used on any TX with a trainer port.
|
||||
|
||||
Channels order is AETR by default but can be changed in the _Config.h.
|
||||
@ -44,7 +44,7 @@ Settings per selection are located in _Config.h:
|
||||
- Option: -127..+127 allowing to set specific protocol options. Like for Hubsan to set the video frequency.
|
||||
- Autobind: Yes or No. At the model selection (or power applied to the TX) a bind sequence will be initiated
|
||||
|
||||
###Using a serial output
|
||||
### Using a serial output
|
||||
The multiprotocol TX module takes full advantage of being used on a Turnigy 9X, 9XR, 9XR Pro, Taranis, 9Xtreme, AR9X, ... running [er9x](http://openrcforums.com/forum/viewtopic.php?f=5&t=4598) or [ersky9X](http://openrcforums.com/forum/viewtopic.php?f=7&t=4676). An OpenTX version for Taranis is available [here](http://plaisthos.de/opentx/).
|
||||
|
||||
This enables full integration using the radio GUI to setup models with all the available protocols options.
|
||||
@ -65,7 +65,7 @@ Notes:
|
||||
- There are 2 versions of serial protocol either 8 or 16 channels. 16 channels is the latest and only available version going forward. Make sure to use the right version based on your version of er9x/ersky9x.
|
||||
- Channels order is AETR by default but can be changed in _Config.h.
|
||||
|
||||
###Telemetry
|
||||
### Telemetry
|
||||
|
||||
There are 4 protocols supporting telemetry: Hubsan, DSM, FrSkyD and FrSkyX.
|
||||
|
||||
@ -94,9 +94,9 @@ Enabling telemetry on a 9XR PRO and may be other TXs does not require any hardwa
|
||||
|
||||
Once the TX is telemetry enabled, it just needs to be configured on the model (see er9x/ersky9x documentation).
|
||||
|
||||
##Protocols
|
||||
## Protocols
|
||||
|
||||
###TX ID
|
||||
### TX ID
|
||||
The multiprotocol TX module is using a 32bits ID generated randomly at first power up. This global ID is used by nearly all protocols.
|
||||
There are little chances to get a duplicated ID.
|
||||
|
||||
@ -104,7 +104,7 @@ For DSM2/X and Devo the CYRF6936 unique manufacturer ID is used.
|
||||
|
||||
It's possible to generate a new ID using bind button on the Hubsan protocol during power up.
|
||||
|
||||
###Bind
|
||||
### Bind
|
||||
To bind a model in PPM Mode press the physical bind button, apply power and then release.
|
||||
|
||||
In Serial Mode you have 2 options:
|
||||
@ -115,9 +115,9 @@ Notes:
|
||||
- the physical bind button is only effective at power up. Pressing the button later has no effects.
|
||||
- a bind in progress is indicated by the LED fast blinking. Make sure to bind during this period.
|
||||
|
||||
###Protocol selection
|
||||
### Protocol selection
|
||||
|
||||
####Using the dial for PPM input
|
||||
#### Using the dial for PPM input
|
||||
PPM is only allowing access to a subset of existing protocols.
|
||||
The protocols, subprotocols and all other settings can be personalized by modifying the **_Config.h** file.
|
||||
|
||||
@ -145,10 +145,10 @@ Dial|Protocol|Sub_protocol|RX Num|Power|Auto Bind|Option|RF Module
|
||||
Note:
|
||||
- The dial selection must be done before the power is applied.
|
||||
|
||||
####Using serial input with er9x/ersky9x
|
||||
#### Using serial input with er9x/ersky9x
|
||||
Serial is allowing access to all existing protocols & sub_protocols listed below.
|
||||
|
||||
#####A7105 RF module
|
||||
##### A7105 RF module
|
||||
Protocol|Sub_protocol
|
||||
--------|------------
|
||||
Flysky|
|
||||
@ -158,7 +158,7 @@ Flysky|
|
||||
|V912
|
||||
Hubsan|
|
||||
|
||||
#####CC2500 RF module
|
||||
##### CC2500 RF module
|
||||
Protocol|Sub_protocol
|
||||
--------|------------
|
||||
FrSkyV|
|
||||
@ -168,7 +168,7 @@ FrSkyX|
|
||||
|CH_8
|
||||
SFHSS|
|
||||
|
||||
#####CYRF6936 RF module
|
||||
##### CYRF6936 RF module
|
||||
Protocol|Sub_protocol
|
||||
--------|------------
|
||||
DSM|
|
||||
@ -177,7 +177,7 @@ DSM|
|
||||
Devo|
|
||||
J6Pro|
|
||||
|
||||
#####NRF24L01 RF module
|
||||
##### NRF24L01 RF module
|
||||
Protocol|Sub_protocol
|
||||
--------|------------
|
||||
Hisky|
|
||||
@ -235,12 +235,12 @@ HONTAI|
|
||||
Note:
|
||||
- The dial should be set to 0 for serial. Which means all protocol selection pins should be left unconnected.
|
||||
|
||||
###Protocols details
|
||||
### Protocols details
|
||||
**Check the [Protocols_Details.md](./Protocols_Details.md) file for a detailed description of every protocols with channels assignements.**
|
||||
|
||||
##Hardware
|
||||
## Hardware
|
||||
|
||||
###RF modules
|
||||
### RF modules
|
||||
Up to 4 RF modules can be installed:
|
||||
- [A7105](http://www.banggood.com/XL7105-D03-A7105-Modification-Module-Support-Deviation-Galee-Flysky-p-922603.html) for Flysky, Hubsan
|
||||
- [CC2500](http://www.banggood.com/CC2500-PA-LNA-Romote-Wireless-Module-CC2500-SI4432-NRF24L01-p-922595.html) for FrSkyV, FrSkyD, FrSkyX and SFHSS
|
||||
@ -251,21 +251,21 @@ RF modules can be installed for protocols need only. Example: if you only need t
|
||||
|
||||
You also need some [antennas](http://www.banggood.com/2_4GHz-3dBi-RP-SMA-Connector-Booster-Wireless-Antenna-Modem-Router-p-979407.html) and [cables](http://www.banggood.com/10cm-PCI-UFL-IPX-to-RPSMA-Female-Jack-Pigtail-Cable-p-924933.html).
|
||||
|
||||
###Board
|
||||
### Board
|
||||
The main program is running on an ATMEGA328p running @16MHz and 3.3V.
|
||||
An [Arduino pro mini 16Mhz/5V](http://www.banggood.com/Wholesale-New-Ver-Pro-Mini-ATMEGA328-328p-5V-16MHz-Arduino-Compatible-Nano-Size-p-68534.html) powered at 3.3V (yes it works) can be used to build your own Multimodule. An Arduino Mini based on Atmega328p can also be used.
|
||||
|
||||
####Using stripboard:
|
||||
#### Using stripboard:
|
||||
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t8214655-87-thumb-uploadfromtaptalk1405598143749.jpg?d=1441459923)
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t8214656-102-thumb-uploadfromtaptalk1405598152484.jpg?d=1441459924)
|
||||
|
||||
####Using a [home made PCB](http://www.rcgroups.com/forums/showpost.php?p=32645328&postcount=1621):
|
||||
#### Using a [home made PCB](http://www.rcgroups.com/forums/showpost.php?p=32645328&postcount=1621):
|
||||
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8226720-197-thumb-IMG_20150715_230603155.jpg?d=1441816457)
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8226719-72-thumb-IMG_20150715_230024065.jpg?d=1441816456)
|
||||
|
||||
####Build your own board using [SMD components](http://www.rcgroups.com/forums/showpost.php?p=31064232&postcount=1020) and an [associated PCB v2.3c](https://oshpark.com/shared_projects/MaGYDg0y):
|
||||
#### Build your own board using [SMD components](http://www.rcgroups.com/forums/showpost.php?p=31064232&postcount=1020) and an [associated PCB v2.3c](https://oshpark.com/shared_projects/MaGYDg0y):
|
||||
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7566755-3-thumb-i.png?d=1423810885)
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952726-108-thumb-image-62c29cf2.jpg?d=1433909893)
|
||||
@ -284,7 +284,7 @@ lines through them.
|
||||
|
||||
[OSH Park link](https://oshpark.com/shared_projects/Ztus1ah8) if you want to order.
|
||||
|
||||
####Buy a ready to use and complete Multi module
|
||||
#### Buy a ready to use and complete Multi module
|
||||
![Screenshot](http://img.banggood.com/thumb/view/oaupload/banggood/images/1D/EB/19bb6434-4616-411e-b8fa-a4c21d9dca24.jpg)
|
||||
|
||||
This module can be purchased [here](http://www.banggood.com/2_4G-CC2500-A7105-Flysky-Frsky-Devo-DSM2-Multiprotocol-TX-Module-With-Antenna-p-1048377.html). All the 4 RF modules are already implemented A7105, NRF24L01, CC2500 and CYRF6936. The board is also equiped with an antenna switcher which means only one antenna for all.
|
||||
@ -299,14 +299,14 @@ If you want to enable serial mode for er9x/ersky9x/Taranis/... and depending on
|
||||
|
||||
Note: if you have the 1st board revision (check pictures above), sometime bind occures at power up even without pressing the bind button or not having an autobind protocol. To solve this issue, replacing the BIND led resistor (on the board back) of 1.2K by a 4.7K.
|
||||
|
||||
###Schematic
|
||||
### Schematic
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/a8443844-119-multiprotocol_diagram_rotary_serial_2.jpg)
|
||||
|
||||
Notes:
|
||||
- Attention: All modules are 3.3V only, never power them with 5V.
|
||||
- For serial, the dial switch is not needed and the bind button optionnal
|
||||
|
||||
###Radio integration
|
||||
### Radio integration
|
||||
If you build your own version of the board you can 3D print this case (details [here](http://www.rcgroups.com/forums/showpost.php?p=33294140&postcount=2034)):
|
||||
|
||||
![Screenshot](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8462144-54-thumb-Multi_case_9XR.jpg?d=1448575289)
|
||||
@ -318,9 +318,9 @@ If you have the Banggood ready to use board you can 3D print this case (details
|
||||
<img src="http://static.rcgroups.net/forums/attachments/4/8/3/5/8/4/a9206411-90-IMG_5793.jpeg" width="200">
|
||||
<img src="http://static.rcgroups.net/forums/attachments/4/8/3/5/8/4/a9206445-131-IMG_5796.jpeg" width="200">
|
||||
|
||||
##Compilation and programmation
|
||||
## Compilation and programmation
|
||||
|
||||
###Toolchain
|
||||
### Toolchain
|
||||
Multiprotocol source can be compiled using the Arduino IDE.
|
||||
|
||||
The currently supported Arduino version is [1.6.10](https://www.arduino.cc/download_handler.php?f=/arduino-1.6.10-windows.exe).
|
||||
@ -335,7 +335,7 @@ Notes:
|
||||
- Compilation of the code posted here works. So if it doesn't for you this is a problem with your setup, please double check everything before asking.
|
||||
- If you want to reduce the code size even further, you can modify the file platform.txt located in "C:\Program Files (x86)\Arduino\hardware\arduino\avr". Set the line "compiler.c.elf.extra_flags=" to "compiler.c.elf.extra_flags=-Wl,--relax".
|
||||
|
||||
###Upload the code using ISP (In System Programming)
|
||||
### Upload the code using ISP (In System Programming)
|
||||
It is recommended to use an external programmer like [USBASP](http://www.banggood.com/USBASP-USBISP-3_3-5V-AVR-Downloader-Programmer-With-ATMEGA8-ATMEGA128-p-934425.html) to upload the code in the Atmega328. The programmer should be set to 3.3V or nothing to not supply any over voltage to the multimodule and avoid any damages.
|
||||
|
||||
The dial must be set to 0 before flashing!
|
||||
@ -344,7 +344,7 @@ From the Arduino environment, you can use this shortcut to compile and upload to
|
||||
|
||||
To flash the latest provided hex file under [Release](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases), you can use a tool like [AVR Burn-O-Mat](http://avr8-burn-o-mat.aaabbb.de/), set the microcontroller to m328p and flash it.
|
||||
|
||||
###Upload the code using FTDI (USB serial to TTL)
|
||||
### Upload the code using FTDI (USB serial to TTL)
|
||||
Use this method only for Arduino Pro Mini boards with bootloader.
|
||||
|
||||
Use an external FTDI adapter like [this one](http://www.banggood.com/FT232RL-FTDI-USB-To-TTL-Serial-Converter-Adapter-Module-For-Arduino-p-917226.html).
|
||||
@ -355,7 +355,7 @@ From the Arduino environment, you can use Upload button which will compile and u
|
||||
|
||||
To upload the latest provided hex file under [Release](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases), you can use a tool like [XLoader](http://russemotto.com/xloader/), set the microcontroller to Atmega328 and upload it.
|
||||
|
||||
###Set fuses
|
||||
### Set fuses
|
||||
Use a tool like [AVR Burn-O-Mat](http://avr8-burn-o-mat.aaabbb.de/) to set the fuses of the Atmega328 to:
|
||||
- Extended Fuse 0x05 (or 0xFD which is the same)
|
||||
- High Fuse 0xD2
|
||||
@ -363,25 +363,25 @@ Use a tool like [AVR Burn-O-Mat](http://avr8-burn-o-mat.aaabbb.de/) to set the f
|
||||
|
||||
This will make sure your ATMEGA328 is well configured and the global TX ID is not erased at each updates.
|
||||
|
||||
##Troubleshooting
|
||||
## Troubleshooting
|
||||
|
||||
###LED status
|
||||
### LED status
|
||||
- off: program not running or a protocol selected with the associated module not installed.
|
||||
- flash(on=0.1s,off=1s): invalid protocol selected (excluded from compilation or invalid protocol number)
|
||||
- slow blink(on=0.5s,off=0.5s): serial has been selected but no valid signal has been seen on the RX pin.
|
||||
- fast blink(on=0.1s,off=0.1s): bind in progress.
|
||||
- on: normal operation.
|
||||
|
||||
###Protocol selection
|
||||
####Input Mode - PPM
|
||||
### Protocol selection
|
||||
#### Input Mode - PPM
|
||||
- The protocol/mode selection must be done before the power is applied.
|
||||
- Connect 1 to 4 of the selection protocol pins to GND.
|
||||
|
||||
####Input Mode - Serial
|
||||
#### Input Mode - Serial
|
||||
- Make sure you have done the mods to the v2.3c PCB by adding the 2.2k and 470 ohm resistors as indicated in the [Board section] (https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#board).
|
||||
- Leave all 4 selection pins unconnected.
|
||||
|
||||
###Bind
|
||||
### Bind
|
||||
Make sure to follow this procedure: press the bind button, apply power and then release it after 1sec. The LED should be blinking fast indicating a bind status and then fixed on when the bind period is over. It's normal that the LED turns off when you press the bind button, this behavior is not controlled by the Atmega328.
|
||||
For serial, the preffered method is to bind via the GUI protocol page.
|
||||
|
||||
@ -389,7 +389,7 @@ If your module is always/sometime binding at power up without pressing the butto
|
||||
- Arduino Pro Mini with an external status LED: to work around this issue connect a 10K resistor between D13 and 3.3V.
|
||||
- 4in1 module V1 (check 4in1 pictures): to solve this issue, replacing the BIND led resistor (on the board back) of 1.2K by a 4.7K.
|
||||
|
||||
###Report issues
|
||||
### Report issues
|
||||
You can report your problem using the [GitHub issue](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/issues) system or go to the [Main thread on RCGROUPS](http://www.rcgroups.com/forums/showthread.php?t=2165676) to ask your question.
|
||||
Please provide the following information:
|
||||
- Multiprotocol code version
|
||||
|
Loading…
x
Reference in New Issue
Block a user