mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-10 01:18:15 +00:00
Merge pull request #1 from LapinFou/LapinFou/FixMarkdownTypo
Fix Markdown typo
This commit is contained in:
commit
060d93d68b
@ -260,6 +260,7 @@ uint16_t ReadAFHDS2A()
|
||||
while ((uint16_t)micros()-start < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
||||
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||
break;
|
||||
A7105_SetPower();
|
||||
A7105_SetTxRxMode(TXRX_OFF); // Turn LNA off since we are in near range and we want to prevent swamping
|
||||
A7105_Strobe(A7105_RX);
|
||||
phase &= ~AFHDS2A_WAIT_WRITE;
|
||||
@ -325,6 +326,7 @@ uint16_t ReadAFHDS2A()
|
||||
while ((uint16_t)micros()-start < 700) // Wait max 700µs, using serial+telemetry exit in about 120µs
|
||||
if(!(A7105_ReadReg(A7105_00_MODE) & 0x01))
|
||||
break;
|
||||
A7105_SetPower();
|
||||
A7105_SetTxRxMode(RX_EN);
|
||||
A7105_Strobe(A7105_RX);
|
||||
phase &= ~AFHDS2A_WAIT_WRITE;
|
||||
|
@ -273,13 +273,9 @@ static void __attribute__((unused)) DSM_build_data_packet(uint8_t upper)
|
||||
uint16_t value = 0xffff;;
|
||||
if (idx != 0xff)
|
||||
{
|
||||
if (!IS_BIND_DONE_on)
|
||||
{ // Failsafe position during binding
|
||||
value=max/2; //all channels to middle
|
||||
if(idx==0)
|
||||
value=1; //except throttle
|
||||
}
|
||||
else
|
||||
/* Spektrum own remotes transmit normal values during bind and actually
|
||||
* use this (e.g. Nano CP X) to select the transmitter mode (e.g. computer vs
|
||||
* non-computer radio, so always end normal output */
|
||||
value=map(Servo_data[CH_TAER[idx]],servo_min_125,servo_max_125,0,max);
|
||||
value |= (upper && i==0 ? 0x8000 : 0) | (idx << bits);
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
||||
#endif
|
||||
|
||||
//Personal config file
|
||||
#if defined USE_MY_CONFIG || __has_include("_MyConfig.h")
|
||||
#if defined USE_MY_CONFIG
|
||||
#include "_MyConfig.h"
|
||||
#endif
|
||||
|
||||
@ -207,6 +207,7 @@ void setup()
|
||||
TCC1.CTRLA = 0x0B ; // Event3 (prescale of 16)
|
||||
#elif defined STM32_BOARD
|
||||
//STM32
|
||||
afio_cfg_debug_ports(AFIO_DEBUG_NONE);
|
||||
pinMode(A7105_CSN_pin,OUTPUT);
|
||||
pinMode(CC25_CSN_pin,OUTPUT);
|
||||
pinMode(NRF_CSN_pin,OUTPUT);
|
||||
|
@ -37,7 +37,6 @@ Dial|Protocol|Sub_protocol|RX Num|Power|Auto Bind|Option|RF Module
|
||||
|
||||
1. The transmitter will automatically initiate a bind sequence on power up. This is for models where the receiver expects to rebind every time it is powered up. In these protocols you do not need to press the bind button at power up to bind, it will be done automatically.
|
||||
2. Enable Bind from channel feature:
|
||||
|
||||
* Bind from channel can be globally enabled/disabled in _config.h using ENABLE_BIND_CH.
|
||||
* Bind from channel can be locally enabled/disabled by setting Autobind to Y/N per model for serial or per dial switch number for ppm.
|
||||
* Bind channel can be choosen on any channel between 5 and 16 using BIND_CH in _config.h.
|
||||
@ -45,13 +44,13 @@ Dial|Protocol|Sub_protocol|RX Num|Power|Auto Bind|Option|RF Module
|
||||
- Autobind = Y
|
||||
- Throttle = LOW (<-95%)
|
||||
- Bind channel is going from -100% to +100%
|
||||
|
||||
* Additional notes:
|
||||
- It's recommended to combine Throttle cut with another button to drive the bind channel. This will prevent to launch a bind while flying...
|
||||
- Bind channel does not have to be assigned to a free channel. Since it only acts when Throttle is Low (and throttle cut active), it could be used on the same channel as Flip for example since you are not going to flip your model when Throttle is low... Same goes for RTH and such other features.
|
||||
- Using channel 16 for the bind channel seems the most relevant as only one protocol so far is using 16 channels which is FrSkyX. But even on FrSkyX this feature won't have any impact since there is NO valid reason to have Autobind set to Y for such a protocol.
|
||||
|
||||
|
||||
***
|
||||
# A7105 RF Module
|
||||
|
||||
## FLYSKY - *1*
|
||||
|
31
README.md
31
README.md
@ -32,11 +32,8 @@ A functioning MULTI-Module consists of (see image below):
|
||||
1. A host RC Tx
|
||||
|
||||
1. A Multiprotocol Transmitter Module (MULTI-Module) that connects to a host transmitter. This module is typically comprised of
|
||||
|
||||
* A microcontroller (currently ATMega328P or STM32) that interfaces with the Tx, controls the module functions and forwards the RC commands to the RF hardware
|
||||
|
||||
* One or more (but at least one) RF modules that provide the capability to communicate with RC receivers. To communicate with the receiver the RF module in the Tx must match with the RF module type in the receiver. The four most common 2.4GHz RF chips on the market are supported TI CC2500, Nordic NRF24L01, Cypress CYRF6936, and the Amiccom A7105
|
||||
|
||||
* MULTI-firmware loaded on to the microprocessor. At a high level, this firmware performs a few different functions:
|
||||
* It interfaces with signals from the host Tx and decodes these for transmission to the model, it manages the activation of the correct hardware RF module for each protocol
|
||||
* It implements the unique communication protocols for each receiver/model and manages the all-important binding process with a receiver/model
|
||||
@ -63,20 +60,20 @@ For more information on these options see the [hardware](docs/Hardware.md) page
|
||||
|
||||
This depends on your specific needs. However, recent the availability of the 4-in-1 RF modules from Banggood for less than $35 makes it easy to “have it all”. Most manufacturers of RC systems (Spektrum, FrSky, FlySky) and toys (Syma, Hubsan, etc.) use one of these four RF chips to manage the RF link between the transmitter and the reciever/model. Here is an incomplete list of the RF modules and some of the most popular toys that use them. For the complete list see the [Protocol Details](Protocols_Details.md) page.
|
||||
|
||||
Manufacturer|RF Chip|Example Protocols
|
||||
:-----------|-------|:-------
|
||||
Cyprus Semiconductor| CYRF6936|DSM/DSMX
|
||||
| |Walkera Devo
|
||||
| |J6Pro
|
||||
Texas Instruments|CC2500|FrSky
|
||||
| |Futaba SFHSS
|
||||
Amiccom|A7105|FlySky
|
||||
| |FlySky AFHDS2A
|
||||
| |Hubsan
|
||||
Nordic Semiconductor|NRF24L01|HiSky
|
||||
| |Syma
|
||||
| |ASSAN
|
||||
| |and most other Chinese models
|
||||
|Manufacturer|RF Chip|Example Protocols|
|
||||
|---|---|---|
|
||||
|Cyprus Semiconductor|CYRF6936|DSM/DSMX|
|
||||
|||Walkera Devo|
|
||||
|||J6Pro|
|
||||
|Texas Instruments|CC2500|FrSky|
|
||||
|||Futaba SFHSS|
|
||||
|Amiccom|A7105|FlySky|
|
||||
|||FlySky AFHDS2A|
|
||||
|||Hubsan|
|
||||
|Nordic Semiconductor|NRF24L01|HiSky|
|
||||
|||Syma|
|
||||
|||ASSAN|
|
||||
|||and most other Chinese models|
|
||||
|
||||
For example, if you have no interest in binding your Tx to an model with and FrSky or Futaba SFHSS receiver you do not need to include the CC2500 RF module in your system.
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Bluetooth Telemetry in PPM Mode
|
||||
###Telemetry
|
||||
|
||||
## Telemetry
|
||||
|
||||
There are 4 protocols supporting telemetry: Hubsan, DSM, FrSkyD and FrSkyX.
|
||||
|
||||
@ -11,7 +12,7 @@ FrSkyD displays full telemetry (A0, A1, RX RSSI, TX RSSI and Hub).
|
||||
|
||||
FrSkyX displays full telemetry (A1, A2, RX RSSI, TX RSSI and Hub).
|
||||
|
||||
### If used in PPM mode
|
||||
## If used in PPM mode
|
||||
|
||||
Telemetry is available as a serial output on the TX pin of the Atmega328p using the FrSky hub format for Hubsan, FrSkyD, FrSkyX and DSM format for DSM2/X. The serial paramets depends on the protocol:
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
# Advanced Topics {This page is currently a proof of concept}
|
||||
Warning: the topics on this page are not for the fainthearted. It is strongly recommended that you have some experience in getting up and runnning with your module before you dive in there. On the other hand what is described on this page are some very useful options that could greatly increase the value and the enjoyment of your Multiprotocol module.
|
||||
|
||||
# Serial uploader that works through the transmitter pins
|
||||
This document describes how you can set up your ATmega-based Mulitprotocol module to allow you to update the firmware by connecting a USB to TTL serial (like a FTDI) adapter to the module's transmitter interface pins. It is great if you exclusively use the Serial interface with your transmitter because the Bind button is used as "bootloader" button. It requires a small custom bootloader to be uploaded and a simple interface cable to be soldered up. See the [Advanced ATmega Serial Uploader](Advanced_ATmega_Serial_Uploader.md) page for more details.
|
||||
Created and supported by: Mike Blandford
|
||||
@ -21,6 +22,7 @@ Created and supported by: hpnuts
|
||||
## Flashing Multi_STM32 module.
|
||||
|
||||
#### Flashing without Tx power
|
||||
|
||||
This is another method of Flshing Multi_STM32 which is riskier.This method is for skilled users who understand the task.
|
||||
|
||||
The key difference of this method is that the 3.3V FTDI cable must also provide power to the 5V circuitry during the flashing process. To do this, a jumper must be enabled connecting the 3.3V VCC to the 5V line. The risk is to forget 3.3V jumper in, after flashing and when TX restarted.
|
||||
@ -32,18 +34,19 @@ The key difference of this method is that the 3.3V FTDI cable must also provide
|
||||
1. Remove the module from the transmitter bay
|
||||
1. Set BOOT0 jumper Skip this step if you made your own cable.
|
||||
1. Set the 3.3V jumper.
|
||||
1. Connect your 3.3V FTDI cable (USB - TTL serial) to Multiprotocol serial port (RX,TX,GND,5V). Connect the pins as follows:
|
||||
- Module RX pin to FTDI TX pin
|
||||
- Module TX pin to FTDI Rx pin
|
||||
- Module GND to FTDI GND
|
||||
- Module 5V to FTDI 3.3V FTDI power supply.
|
||||
1. Connect your 3.3V FTDI cable (USB - TTL serial) to Multiprotocol serial port (RX,TX,GND,5V).
|
||||
Connect the pins as follows:
|
||||
* Module RX pin to FTDI TX pin
|
||||
* Module TX pin to FTDI Rx pin
|
||||
* Module GND to FTDI GND
|
||||
* Module 5V to FTDI 3.3V FTDI power supply
|
||||
1. In arduino IDE under the **Tools** -> **Board:** check that you have selected the **Generic STM32F103C series** board
|
||||
1. Under **Tools** -> **Upload Method:** select **Serial**.
|
||||
1. Click "Upload" and the sketch will be uploaded normally.
|
||||
1. Once the firmware has uploaded:
|
||||
- Remove the 3.3V jumper!!!!
|
||||
- Remove the BOOT0 jumper
|
||||
- Check that you removed the 3.3V jumper
|
||||
* Remove the 3.3V jumper!!!!
|
||||
* Remove the BOOT0 jumper
|
||||
* Check that you removed the 3.3V jumper
|
||||
1. Insert the module into the transmitter bay
|
||||
|
||||
|
||||
|
@ -13,7 +13,13 @@ In the case of the Turnigy 9X/9XR/9XR Pro you don't need to invert the telemetry
|
||||
|
||||
The inverted telemetry signal is required by TARANIS TX and other boards so for telemetry to work properly the inverter chip must be installed.
|
||||
|
||||
## BOM DIY STM32 PCB V1.0t - the USB version
|
||||
## BOM DIY STM32 PCB V1.1t - USB version update
|
||||
The board is available at OSHpark [here](https://oshpark.com/shared_projects/eWtNW6jo)
|
||||
|
||||
<img src="images/Board_PCB_STM32_USB_V1.1-2.png" width="300" height="400"/> <img src="images/Board_PCB_STM32_USB_V1.1-1.png" width="300" height="400"/>
|
||||
|
||||
|
||||
## BOM DIY STM32 PCB V1.0t & V1.1 - the USB version
|
||||
This BOM is for the board with the USB port which allows firmware upload.
|
||||
|
||||
The board is available at OSHpark [here](https://oshpark.com/shared_projects/GX51nEoH)
|
||||
@ -33,7 +39,7 @@ Qty|Part|Description|Value|Package|Digikey Part Number
|
||||
1|C203|Cap Ceramic|4u7|0805|[311-1371-1-ND](https://www.digikey.com/product-detail/en/yageo/CC0805ZRY5V6BB475/311-1371-1-ND/2103155)
|
||||
1|C207|Cap Ceramic|1uF|0805|[311-1365-1-ND](https://www.digikey.com/product-detail/en/yageo/CC0805KKX7R7BB105/311-1365-1-ND/2103149)
|
||||
1|C208|Cap Ceramic|10nF|0805|[311-1136-1-ND](http://www.digikey.com/products/en?keywords=311-1136-1-ND)
|
||||
4|D201,301,302,303|Diode Shottky|BAT48|SOD123|[497-5712-1-ND](http://www.digikey.com/products/en?keywords=497-5712-1-ND)
|
||||
5|D101*,201,301,302,303|Diode Shottky|BAT48|SOD123|[497-5712-1-ND](http://www.digikey.com/products/en?keywords=497-5712-1-ND)
|
||||
1|IC101|Voltage reg 5V|AMS1117-50|SOT223|[LM1117MP-5.0/NOPBCT-ND](https://www.digikey.com/product-detail/en/texas-instruments/LM1117MP-5.0-NOPB/LM1117MP-5.0-NOPBCT-ND/363589)
|
||||
1|IC102|Voltage reg 3.3V|AMS1117-33|SOT223|[LM1117MPX-3.3/NOPBCT-ND](https://www.digikey.com/product-detail/en/texas-instruments/LM1117MPX-3.3-NOPB/LM1117MPX-3.3-NOPBCT-ND/1010516)
|
||||
1|L101|High Freq Inductor|10uH|1812|[CM453232-100KLCT-ND](https://www.digikey.com/product-detail/en/bourns-inc/CM453232-100KL/CM453232-100KLCT-ND/3437938)
|
||||
@ -55,6 +61,8 @@ Qty|Part|Description|Value|Package|Digikey Part Number
|
||||
1|U301|Dual INPUT-XOR|SN74LVC2G86DCTR|SSM8|[296-13274-1-ND](http://www.digikey.com/product-detail/en/texas-instruments/SN74LVC2G86DCTR/296-13274-1-ND/484501)
|
||||
1|CON401|ANT.conn SMD|||[WM5587CT-ND](https://www.digikey.com/product-detail/en/molex-llc/0734120110/WM5587CT-ND/1894612)
|
||||
|
||||
* Diode D101 is only required for the V1.1 board
|
||||
|
||||
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" />
|
||||
|
||||
@ -98,9 +106,8 @@ Qty|Part|Description|Value|Package|Digikey Part Number
|
||||
## BOM DIY STM32 PCB - the first Version
|
||||
This BOM is for the board that looks like this - check carefully:
|
||||
|
||||
<img src="https://camo.githubusercontent.com/9b8dc4eb5618583ebe8fc01f03f2da75766080b3/68747470733a2f2f36343464623464653335303563343061303434342d33323737323362636532393865336666353831336662343262616565666261612e73736c2e6366312e7261636b63646e2e636f6d2f66326435393865616364386539656562633338313861646634373737373139392e706e67" width="300" height="400"/>
|
||||
<img
|
||||
src="https://644db4de3505c40a0444-327723bce298e3ff5813fb42baeefbaa.ssl.cf1.rackcdn.com/2026cfd1d0187a770570052590168df1.png" width="300" height="400"/>
|
||||
src="https://644db4de3505c40a0444-327723bce298e3ff5813fb42baeefbaa.ssl.cf1.rackcdn.com/2026cfd1d0187a770570052590168df1.png" width="300" height="400"/> <img src="https://camo.githubusercontent.com/9b8dc4eb5618583ebe8fc01f03f2da75766080b3/68747470733a2f2f36343464623464653335303563343061303434342d33323737323362636532393865336666353831336662343262616565666261612e73736c2e6366312e7261636b63646e2e636f6d2f66326435393865616364386539656562633338313861646634373737373139392e706e67" width="300" height="400"/>
|
||||
|
||||
|
||||
Qty|Part|Description|Value|Package|Digikey Part Number
|
||||
|
@ -14,32 +14,36 @@ The procedure below will guide you through all the steps to upload successfully
|
||||
## Upload the firmware
|
||||
|
||||
### Material you need to upload the firmware
|
||||
1. USBASP programmer supporting 3.3V: <img src="images/USBasp_Programmer.jpeg" width="200" height="200" /> [(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). 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.
|
||||
1. 10pin to 6pin adapter: <img src="images/10pin_2_6pin.JPG" width="150" height="150" /> [(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)
|
||||
1. 6 pin header like this one: <img src="images/6pin_header.jpg" width="100" height="100" /> [(example Digi-Key link)](http://www.digikey.com/products/en?keywords=3M%20961206-6404-AR)
|
||||
|
||||
The 6 Pin header needs to be solder on the board like indicated by the red rectangle:
|
||||
* Banggood readymade 4-in-1 module:
|
||||
<img src="images/V2b_ISP.jpeg" width="189" height="200" />
|
||||
* DIY Mulitprotocol modules (like the 2.3d board):
|
||||
<img src="images/MPTM_PCB_2.3d_ISP.png" width="486" height="201" />
|
||||
* Arduino Pro Mini module:
|
||||
<img src="images/ProMini_ISP.png" width="195" height="200" />
|
||||
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. 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>
|
||||
|
||||
### Connect the programmer
|
||||
|
||||
1. Before you connect the programmer make sure that you have selected the 3.3V mode and not 5V. The RF Modules are not 5V tolerant and you will break them with 5V. On most programmers this is done by moving a jumper.
|
||||
|
||||
<img src="images/USBasp_Programmer_jumper.png" width="200" height="200" />
|
||||
|
||||
1. Please re-read item 1. above before going on.
|
||||
1. Turn the rotary switch on the DIY Multiprotocol module to the 0 position. If you do not have a switch for Serial mode only then it is the same as being in the 0 position. The upload will not work if the switch is in any other position.
|
||||
1. Connect the 6-pin programming connector to the 6-pin ASP IVR connector on the DIY Multiprotocol board. Be sure to match the ground pin of the programmer connector to the ground pin on the board.
|
||||
|
||||
The images below indicates the pin layout and the location of the ground pin on the board:
|
||||
* Banggood readymade 4-in-1 module:
|
||||
|
||||
<img src="images/V2b_ISP.jpeg" width="189" height="200" />
|
||||
|
||||
* DIY Mulitprotocol modules (like the 2.3d board):
|
||||
|
||||
<img src="images/MPTM_PCB_2.3d_ISP.png" width="486" height="201" />
|
||||
|
||||
* Arduino Pro Mini module:
|
||||
|
||||
<img src="images/ProMini_ISP.png" width="195" height="200" />
|
||||
|
||||
You are now ready to plug in the USB programmer to the computer
|
||||
@ -78,7 +82,6 @@ If there is another error carefully read it, go to the line number indicated and
|
||||
### Flash the firmware
|
||||
|
||||
1. If you have a 4in1 Multiprotocol module you can skip this step. If you've just finished to build your DIY Multiprotocol module (like v2.3d), the first step is to flash the fuses of the microcontroller. This needs to be done only once. For this purpose, click on **Tools -> Burn Bootloader**
|
||||
|
||||
1. You are now ready to flash the firmware. In the Arduino IDE click **Sketch -> Upload Using Programmer**.
|
||||
|
||||
If the output indicates that the firmware has been uploaded successfully - give yourself a pat on the back. Well done, you have successfully programmed your DIY Multiprotocol module. You can already go to the final step [Setting up your Transmitter](TransmitterSetup.md) and begin to fly!!!! But don't forget to visit the next topic [Advanced settings](#AdvancedSettings) which has some extra steps needed to use your module at his full potential.
|
||||
@ -106,7 +109,9 @@ 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. 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:
|
||||
|
||||
|
@ -7,17 +7,12 @@ Multiprotocol source can be compiled using the Arduino IDE using STM32 Core (Map
|
||||
On all modules with STM32F103 microcontroller, the program flash memory on the microcontroller is large enough to accommodate all the protocols. You do not have to make choices on which protocols to upload. Also, it is likely that you used the Banggood 4-in-1 RF module and you will therefore have access to all the RF modules.Now for programmng multimodule with STM32 chip you have 2 options presented below.
|
||||
|
||||
1. Compiling and flashing in Arduino IDE.
|
||||
|
||||
1. Flashing precompiled binaries from [here](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases)
|
||||
|
||||
- If using one of these TX with multimodule like Turnigy 9X,9XR,9X+ the binary file for flashing is **Multiprotocol_V1.X.X_STM32.bin**.
|
||||
|
||||
- If using TARANIS TX the binary file is **Multiprotocol_V1.X.X_STM32_INV.bin**
|
||||
|
||||
Flashing precompiled **binaries** is done very simple with the cable setup presented below and an utility(GUI) **ST Flash Loader Demonstrator.**
|
||||
|
||||
|
||||
|
||||
## Compiling source and flashing in Arduino.
|
||||
|
||||
### Install the Arduino IDE and the Multiprotocol project
|
||||
@ -27,7 +22,6 @@ Flashing precompiled **binaries** is done very simple with the cable setup prese
|
||||
- OSX: ```Arduino.app/Contents/Java/hardware``` (you can open Arduino.app by Ctl Clicking on Arduino.app and selecting "Show Package Contents")
|
||||
- Windows: ```C:\Program Files (x86)\Arduino\hardware```
|
||||
- Make sure the folder tree structure is like this .....\hardware\Arduino_STM32\.....and **NOT** ...... \hardware\Arduino_STM32-master\Arduino_STM32-master\......So move the folders /rename accordingly.
|
||||
|
||||
1. Download the zip file with the Multiprotocol module source code from [here](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module)
|
||||
1. Unzip and copy the source code folder ```Multiprotocol``` to a folder of your choosing
|
||||
1. Click on the ```Multiprotocol.ino file``` in the ```Multiprotocol``` folder and the Arduino environment should appear and the Multiprotocol project will be loaded.
|
||||
@ -50,11 +44,10 @@ Flashing precompiled **binaries** is done very simple with the cable setup prese
|
||||
**}**
|
||||
***/**
|
||||
|
||||
|
||||
1. Run the IDE, and on the **Tools** menu, select **Board** and then **Boards manager**. 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. 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
|
||||
1. Click on the **Verify** button to test compile the before you make any changes. If there are any errors check the process above and be sure to have the right version of the Arduino IDE.The binary file generated location is presented at the bottom of Arduino IDE compiling window.Now continue with flashing procedure.
|
||||
1. Click on the **Verify** button to test compile the before you make any changes. <br> If there are any errors check the process above and be sure to have the right version of the Arduino IDE.The binary file generated location is presented at the bottom of Arduino IDE compiling window.Now continue with flashing procedure.
|
||||
|
||||
|
||||
### Flashing the multimodule
|
||||
@ -67,11 +60,10 @@ The second method is definitely the easiest in the long-term, but it does requi
|
||||
|
||||
1. Put the module in the Tx
|
||||
1. Place a jumper over the BOOT0 pins.Skip this one if you made your own cable for flashing ,see below.
|
||||
1. Connect your 3.3V/5V FTDI cable (USB - TTL serial) to Multiprotocol serial port. Connect only RX, TX and GND. **Do not connect the 5V or 3.3V between the FTDI cable and the module - the power will be supplied by the transmitter**. Connect the pins as follows:
|
||||
1. Connect your 3.3V/5V FTDI cable (USB - TTL serial) to Multiprotocol serial port. <br> Connect only RX, TX and GND. **Do not connect the 5V or 3.3V between the FTDI cable and the module - the power will be supplied by the transmitter**. Connect the pins as follows:
|
||||
- Module RX pin to FTDI TX pin
|
||||
- Module TX pin to FTDI Rx pin
|
||||
- Module GND to FTDI GND
|
||||
|
||||
1. In arduino IDE under the **Tools** -> **Board:** check that you have selected the **Generic STM32F103C series** board
|
||||
1. Under **Tools** -> **Upload Method:** select **Serial**
|
||||
1. Click "Upload" and the sketch will be uploaded normally. This is valid for all arduino versions.
|
||||
@ -80,16 +72,15 @@ The second method is definitely the easiest in the long-term, but it does requi
|
||||
If you have the module inside a box and to be inserted in TX bay, you may build a flashing cable like in the picture below.
|
||||
You can attach and solder a 5 pin header female and top outside the box.**ALways insert first the USB serial device in USB port , and TX start after.**
|
||||
|
||||
[<img src="images/Multi_STM32_ flashing.jpg" />]
|
||||
<img src="images/Multi_STM32_ flashing.jpg" />
|
||||
|
||||
See below my module for reference
|
||||
|
||||
[<img src="images/Multi_STM32 module.JPG" width="600" height="400" />]
|
||||
<img src="images/Multi_STM32 module.JPG" width="600" height="400" />
|
||||
|
||||
#### Option 2: Flashing with USB cable.
|
||||
|
||||
This method use USB connector on the STM32 V1.0 board or on the maple clone board.
|
||||
|
||||
1. Install first maple USB driver by running the batch file found in Arduino STM32 package folder "..\hardware\Arduino_STM32\drivers\win\install_drivers.bat"
|
||||
1. Download the free STM32 flash loader demonstrator from [ST.com](http://www.st.com/en/development-tools/flasher-stm32.html) and using a USB-TTL device (like FTDI cable) flash the STM32duino bootloader available from Roger Clark's great STM32 site [here](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/STM32F1/binaries) .Use bootloader **generic_boot20_pa1.bin**
|
||||
1. Open Arduino IDE,browse to multiprotocol folder,load the sketch multiprotocol.ino.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
The choice of **Multiprotocol Transmitter Module (MULTI-Module)** hardware is the single biggest choice you will make. Due to the growing popularity of this project the number of hardware choices is growing almost monthly.
|
||||
|
||||
There are currently four common hardware options. They are (click on the pictures for more info):
|
||||
There are currently four common hardware options. They are (`click on the pictures for more info`):
|
||||
|
||||
1. A ready-made 4-in-1 MULTI-Module which integrates the microcontroller with all four supported RF modules and a hardware antenna switcher.
|
||||
[<img src="images/4-in-1_Module_BG.jpeg" width="200" height="200" />](Module_BG_4-in-1.md)
|
||||
|
@ -5,14 +5,18 @@ The Deviation project (on which this project was based) have a useful list of mo
|
||||
|
||||
# Syma X5C
|
||||
<img src="http://img2.cheapdrone.co.uk/images/upload/2014/12/X5C%203/SKU115108-7.jpg" Width="200" Height="200" />
|
||||
|
||||
## Channel Map
|
||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||
---|---|---|---|---|---|---|---
|
||||
A|E|T|R|FLIP|RATES|PICTURE|VIDEO
|
||||
|
||||
## Binding
|
||||
There are no special binding instructions. The model powers up in Autobind mode and expects the bind sequence from the transmitter within the first 4-5 seconds.
|
||||
|
||||
## Tx Setup
|
||||
A basic 4-channel setup works perfectly, but some improvements are possible:
|
||||
|
||||
### Setting up a switch to Flip
|
||||
|
||||
1. Choose your "Rates" switch - typically the momentary TRN switch
|
||||
@ -50,9 +54,12 @@ For telemetry enabled modules, you should just let the remote autodetect the set
|
||||
|
||||
## Tx Setup
|
||||
Remember that 100% on your transmitter using the MULTI-Module corresponds to 125% on the DSM receiver side. On some functions sending 100% will confuse the model. Conversely 80% on your Tx is interpreted to be 100% at the model. Consider this when implementing the suggestions below.
|
||||
|
||||
### Throttle
|
||||
For Inductrix FPV you might need to adjust the lower end of throttle to be a higher than default, otherwise motors will be spinning on minimal throttle. One way to do this is to set the throttle to 80% output (100% of DSM output) and then to enable the **Throttle Idle Trim Only** under the Model Setup menu. See image below:
|
||||
|
||||
<img src="images/Inductrix_Throttle_Setup.png" Width="600" Height="200" />
|
||||
|
||||
### Acro and Level Mode
|
||||
Setup channel 6 with a momemtary button or switch (e.g. SH on the Taranis) and use that switch to switch between modes. Set the output to somewhere between 40% to 60% for best results.
|
||||
|
||||
@ -60,19 +67,24 @@ An addition consideration when flying in Acro mode is to reduce stick sensitivit
|
||||
|
||||
#### Inputs Screen
|
||||
The follwing INPUTS screen shows one potential setup to introduce expo for Acro mode. The activation of the expo on Roll, Pitch and Yaw is when the SG switch is not in the back position. Add to taste.
|
||||
|
||||
<img src="images/Inductrix_Inputs.png" Width="600" Height="200" />
|
||||
|
||||
#### Aileron Rates attached to Switch !SG-up
|
||||
The next screen shows and example of how the expo (50%) was set up on the stick input and how it is activated by !SG-up:
|
||||
|
||||
<img src="images/Inductrix_Aileron_Expo.png" Width="600" Height="200" />
|
||||
|
||||
#### Mixer Menu
|
||||
The next screen shows the mixer menu with the mode change on momentary switch SH and High-Low rates on switch SC:
|
||||
|
||||
<img src="images/Inductrix_Mixer.png" Width="600" Height="200" />
|
||||
|
||||
# Cheerson CX-20 / Quanum Nova
|
||||
<img src="http://uaequadcopters.com/images/products/Large/932-cheersoncx20dronquad.jpg" Width="200" Height="155" />
|
||||
|
||||
## Channel Map
|
||||
|
||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7
|
||||
---|---|---|---|---|---|---
|
||||
A|E|T|R|MODE|AUX1|AUX2
|
||||
@ -124,7 +136,7 @@ L. Switch 4|AND|ID0|AIL
|
||||
L. Switch 5|AND|ID1|AIL
|
||||
L. Switch 6|AND|ID1|!AIL
|
||||
|
||||
####Flight modes (using CX-20 names):
|
||||
#### light modes (using CX-20 names):
|
||||
|
||||
Mode|Name|Switch
|
||||
---|---|---
|
||||
@ -154,7 +166,7 @@ CH6 and CH7 can be assigned to switches or pots to provide additionaly functiona
|
||||
Replicating the stock setup of two pots, you would assign:
|
||||
|
||||
Channel|Weight|Source|Multiplex
|
||||
---|---|---|---|---
|
||||
---|---|---|---
|
||||
CH6|+100%|P1|ADD
|
||||
CH7|+100%|P3|ADD
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
|
||||
# DIY MULTI-module by soldering components on a PCB
|
||||
Currently the form factor of this module is designed for the JR-style module bay. Many of the popular RC transmitters use the JR-style module bay: FrSky Taranis, FlySky Th9x, Turnigy 9X/R/Pro
|
||||
|
||||
## What you need
|
||||
First you must choose the PCB onto which to solder all the components. There are two PCB options:
|
||||
- ATmega (8-bit) powered PCB V2.3d supporting individual RF modules
|
||||
@ -38,8 +39,6 @@ The schematic for the board is [here](#V23D_Schematic). Please note that is is
|
||||
[<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 2.4GHz antenna and pigtail
|
||||
|
||||
## Build instructions
|
||||
|
@ -1,11 +1,14 @@
|
||||
# Troubleshooting
|
||||
|
||||
## LED status
|
||||
|
||||
### Green LED
|
||||
|
||||
- Off: no power to the module
|
||||
- On: module is powered up
|
||||
|
||||
### Red LED (bind LED)
|
||||
|
||||
- Off: program not running or a protocol selected with the associated module not installed
|
||||
- Flash(on=0.05s,off=1s): invalid protocol selected (excluded from compilation or invalid protocol number)
|
||||
- Inverted Flash(on=1s,off=0.1s): module is waiting for a bind event (Bind from channel or Bind in radio GUI) to launch the protocol in bind mode
|
||||
@ -15,18 +18,22 @@
|
||||
- On: Module is in normal operation mode (transmitting control signals).
|
||||
|
||||
## Protocol selection
|
||||
|
||||
### Input Mode - PPM
|
||||
|
||||
- The protocol/mode selection must be done before the power is applied to the module
|
||||
- Often the signal is not sent to the module until the transmitter has performed safety checks (like switch and throttle position settings)
|
||||
- Check that at least one of the protocol selection pins is connected to GND.
|
||||
- Some radios have an open collector output (Futaba, Graupner...), in this case add a 4.7K resistor between PPM and BATT.
|
||||
|
||||
### Input Mode - Serial
|
||||
|
||||
- Make sure you have done the serial mods as indicated in the [hardware page for your board] (Hardware.md).
|
||||
- Protocol selection dial must be in the 0 position or leave all 4 selection pins unconnected.
|
||||
- Often the signal is not sent to the module until the transmitter has performed safety checks (like switch and throttle position settings)
|
||||
|
||||
## Bind
|
||||
|
||||
Make sure to follow this procedure: press the bind button, apply power and then release after the red LED starts flashing. 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.
|
||||
|
||||
@ -40,6 +47,7 @@ FrSky & SFHSS bind issues are ususally due to Option=fine frequency tuning not s
|
||||
- set the value to half way between min and max.
|
||||
|
||||
## 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
|
||||
|
BIN
docs/images/Board_PCB_STM32_USB_V1.1-1.png
Normal file
BIN
docs/images/Board_PCB_STM32_USB_V1.1-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
BIN
docs/images/Board_PCB_STM32_USB_V1.1-2.png
Normal file
BIN
docs/images/Board_PCB_STM32_USB_V1.1-2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
Loading…
x
Reference in New Issue
Block a user