mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 20:38:14 +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,14 +273,10 @@ 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
|
||||
value=map(Servo_data[CH_TAER[idx]],servo_min_125,servo_max_125,0,max);
|
||||
/* 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);
|
||||
}
|
||||
packet[i*2+2] = (value >> 8) & 0xff;
|
||||
@ -582,4 +578,4 @@ uint16_t initDsm()
|
||||
return 10000;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@ -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,21 +37,20 @@ 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.
|
||||
* Bind will only happen if all these elements are happening at the same time:
|
||||
- Autobind = Y
|
||||
- Throttle = LOW (<-95%)
|
||||
- Bind channel is going from -100% to +100%
|
||||
|
||||
* 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.
|
||||
* Bind will only happen if all these elements are happening at the same time:
|
||||
- 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.
|
||||
- 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*
|
||||
|
51
README.md
51
README.md
@ -18,8 +18,8 @@ The source code is partly based on the [Deviation TX project](http://www.deviati
|
||||
1. [Transmitters and serial/telemetry options](docs/Transmitters.md)
|
||||
1. [Module Hardware options](docs/Hardware.md)
|
||||
1. Compiling and programming the module
|
||||
* [4in1/DIY Mutliprotocol module based on ATmega328](docs/Compiling.md)
|
||||
* [DIY Mutliprotocol module based on STM32](docs/Compiling_STM32.md)
|
||||
* [4in1/DIY Mutliprotocol module based on ATmega328](docs/Compiling.md)
|
||||
* [DIY Mutliprotocol module based on STM32](docs/Compiling_STM32.md)
|
||||
1. [Transmitter Setup](docs/Transmitters.md)
|
||||
1. [How to for popular models](docs/Models.md)
|
||||
1. [Troubleshooting](docs/Troubleshooting.md)
|
||||
@ -32,12 +32,9 @@ 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:
|
||||
* 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
|
||||
* In the case of some protocols (for example DSMX and FrSky) it receives and decodes the telemetry information and makes this available to the radio.
|
||||
@ -47,7 +44,7 @@ One of the most attractive features of the MULTI-module is the ability to send t
|
||||
|
||||
In constructing a functioning MULTI-Module there are important choices to be made and tradeoffs to be aware of. The most important are:
|
||||
|
||||
##**Choice 1:** Which MULTI-Module hardware option
|
||||
## **Choice 1:** Which MULTI-Module hardware option
|
||||
|
||||
There are currently four generic paths to get your hands on an MULTI-Module. These are outlined in detail on the [hardware](docs/Hardware.md) page. Here they are, in order of increasing difficulty:
|
||||
- **Ready-made MULTI-Module** - Available from Banggood which includes a 4-in-1 RF module and an antenna switcher
|
||||
@ -59,35 +56,35 @@ The last option is where it all started and how the pioneers in this project mad
|
||||
|
||||
For more information on these options see the [hardware](docs/Hardware.md) page
|
||||
|
||||
##**Choice 2:** Which RF modules to include in the MULTI-Module
|
||||
## **Choice 2:** Which RF modules to include in the MULTI-Module
|
||||
|
||||
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.
|
||||
|
||||
##**Choice 3:** Which protocols to upload to the MULTI-Module
|
||||
## **Choice 3:** Which protocols to upload to the MULTI-Module
|
||||
|
||||
Of course there is always a catch. In this case it is the 32KB memory limit on the ATmega328 processor. Due to the amazing work done by devs on this project, the memory required by all the possible protocols exceeds this limit considerably. This means that you will need to make a choice of which protocols you will compile into your firmware. Fortunately, the process of selecting and compiling is not too difficult and it is fully documented on the [Compiling and Programming](docs/Compiling.md) page.
|
||||
Also, the lead dev Pascal Langer (rcgroups:hpnuts) makes this process even easier for many users by making compiled binaries available for three popular combinations of RF modules. These are always “fresh” (based on the latest stable firmware) and available on the [Releases](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases) page.
|
||||
|
||||
An alternatice is to use a STM32 ARM microcontroller based module. If you go the route of building this version of the DIY MULTI-Module then the memory limits do not apply anymore.
|
||||
|
||||
##**Choice 4:** Choosing the type of interface between the MULTI-Module and your radio (PPM or Serial)
|
||||
## **Choice 4:** Choosing the type of interface between the MULTI-Module and your radio (PPM or Serial)
|
||||
|
||||
The MULTI-Module supports industry standard PPM interface that works with all transmitters with either:
|
||||
- a module bay or
|
||||
@ -100,7 +97,7 @@ If you are the owner of a transmitter that supports the er9X/erSky9X or OpenTX f
|
||||
- The model protocol selection and binding is done from the Model Settings menu on the Tx
|
||||
- For telemetry capable transmitters, the telemetry integration is done seamlessly with the Tx firmware. (Note that FrSky TH9X/Turnigy 9X/R transmitters require a telemetry mod to be done before telemetry can work). Click on the link corressponding to your Tx on the [Transmitters](docs/Transmitters.md) page for more details.
|
||||
|
||||
#How to get started?
|
||||
# How to get started?
|
||||
1. Browse the [Protocols](Protocols_Details.md) page to see which protocols you would like on your module
|
||||
1. Go to the [Hardware Options](docs/Hardware.md) page to decide which of the MULTI-Module hardware options appeals to you and which RF modules you plan to integrate
|
||||
1. Once you have your module, you should review what jumper settings or modifications are required to the module to support serial communication and possibly telemetry
|
||||
|
@ -1,5 +1,6 @@
|
||||
#Bluetooth Telemetry in PPM Mode
|
||||
###Telemetry
|
||||
# Bluetooth Telemetry in PPM Mode
|
||||
|
||||
## 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,4 +1,4 @@
|
||||
#Manually Uploading HEX files and setting Fuses on ATmega328
|
||||
# Manually Uploading HEX files and setting Fuses on ATmega328
|
||||
|
||||
|
||||
**The .hex files provided are only for tests purpose. The recommended method is to use [Compiling and Programming](Compiling.md).**
|
||||
@ -32,7 +32,7 @@ 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
|
||||
### 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. Launch AVR8 Burn-O-Mat.
|
||||
1. In the **AVR type** drop down select **ATmega328P** and click on **Fuses**
|
||||
|
@ -1,26 +1,28 @@
|
||||
#Advanced Topics {This page is currently a proof of concept}
|
||||
# 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
|
||||
|
||||
# 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
|
||||
|
||||
RCGroups page: http://www.rcgroups.com/forums/showpost.php?p=35584619&postcount=4867
|
||||
|
||||
#Telemetry in PPM mode
|
||||
# Telemetry in PPM mode
|
||||
It is possible to access the telemetry stream coming from the receiver through the MULTI-module. This document describes a simple bluetooth module to stream telemetry information to a mobile device like an Android smartphone or tablet. The method may be generalized to feed telemetry to the transmitter if the transmitter has the capabilities to process the information. This is very useful with modules used in the PPM mode with transmitters that do not support telemetry. See the [Advanced Bluetooth Telemetry](Advanced_Bluetooth_Telemetry.md) page for more details.
|
||||
Created and supported by: Midelic
|
||||
|
||||
RCGroups page: None
|
||||
|
||||
|
||||
#Manually setting fuses on ATmega328
|
||||
# Manually setting fuses on ATmega328
|
||||
This document describes a relatively simple process to set the fuses on ATmega328 using the flexibility of the command line. It does not require installation of AVRdude because it uses the AVRdude that is bundled with the Arduino IDE. See the [Advanced Manually Setting ATmega328 Fuses](Advanced_Manually_Setting_ATmega328_Fuses.md) page for more details.
|
||||
|
||||
Created and supported by: hpnuts
|
||||
|
||||
## Flashing Multi_STM32 module.
|
||||
|
||||
####Flashing without Tx power
|
||||
#### 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
|
||||
|
@ -4,7 +4,7 @@ Multiprotocol source are compiled using the well known Arduino IDE.
|
||||
|
||||
The procedure below will guide you through all the steps to upload successfully a customized firmware.
|
||||
|
||||
##Install the Arduino IDE and the Multiprotocol project firmware
|
||||
## Install the Arduino IDE and the Multiprotocol project firmware
|
||||
1. Download and install the Arduino IDE. The currently supported Arduino version is 1.6.12. available for [Windows]( https://www.arduino.cc/download_handler.php?f=/arduino-1.6.12-windows.exe) and [Mac OSX](https://www.arduino.cc/download_handler.php?f=/arduino-1.6.12-macosx.zip)
|
||||
1. It is recommended to upgrade Java to the [latest version](https://www.java.com/en/download/)
|
||||
1. Download the zip file with the Multiprotocol module source code from [here](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/archive/master.zip)
|
||||
@ -13,46 +13,50 @@ 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)
|
||||
### Material you need to upload the firmware
|
||||
|
||||
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
|
||||
### 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
|
||||
|
||||
If you are looking for a good working USBASP Windows driver, [use this one](http://www.protostack.com/download/USBasp-win-driver-x86-x64-v3.0.7.zip).
|
||||
|
||||
###Configure Arduino IDE for Multiprotocol
|
||||
### Configure Arduino IDE for Multiprotocol
|
||||
1. Under Tools -> Board select the Arduino Pro or Pro Mini
|
||||
1. Under Tools -> Processor select the ATmega328 (5V, 16MHz)
|
||||
1. Under Tools -> Programmer select your programmer type (probably USBASP from the shopping list above)
|
||||
|
||||
<a name="CustomizeFirmareToYourNeeds"></a>
|
||||
###Customize the firmware to match your hardware and your needs
|
||||
### Customize the firmware to match your hardware and your needs
|
||||
All customization is done by editing the ```_Config.h ``` file in the Multiprotocol Arduino project.
|
||||
|
||||
In the Arduino IDE, click on the down arrow on the far right of the tab bar to show a list of project files (see the red circle on the screenshot below). Scroll down and select the _Config.h file.
|
||||
@ -75,10 +79,9 @@ If you see something like the following, your firmware is still too big and you
|
||||
|
||||
If there is another error carefully read it, go to the line number indicated and correct your typo.
|
||||
|
||||
###Flash the firmware
|
||||
### 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,32 +7,26 @@ 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**
|
||||
- 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.
|
||||
|
||||
|
||||
##Compiling source and flashing in Arduino.
|
||||
|
||||
###Install the Arduino IDE and the Multiprotocol project
|
||||
### Install the Arduino IDE and the Multiprotocol project
|
||||
1. Download the Arduino IDE. The currently supported Arduino version is 1.6.11 available for [Windows]( https://www.arduino.cc/download_handler.php?f=/arduino-1.6.12-windows.exe) and [Mac OSX](http://arduino.cc/download_handler.php?f=/arduino-1.6.12-macosx.zip)
|
||||
1. It is recommended to upgrade Java to the [latest version](https://www.java.com/en/download/)
|
||||
1. Download the [STM32 Core](https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip) and copy the Arduino_STM32 folder to:
|
||||
- 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.
|
||||
|
||||
- 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.
|
||||
|
||||
###Prepare the Arduino IDE:
|
||||
### 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.
|
||||
|
||||
@ -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
|
||||
@ -63,15 +56,14 @@ There are three options for flashing the firmware. But We will present here only
|
||||
The first (and strongly recommended) is flashing it while it is plugged into and powered by the transmitter.The second is preparing the board for flashing with a USB cable.
|
||||
The second method is definitely the easiest in the long-term, but it does require the USB bord and setting up the bootloader on the STM32 MCU.
|
||||
|
||||
####Option 1: Flashing with Tx power(highly recommended)
|
||||
#### Option 1: Flashing with Tx power(highly recommended)
|
||||
|
||||
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:
|
||||
- Module RX pin to FTDI TX pin
|
||||
- Module TX pin to FTDI Rx pin
|
||||
- Module GND to FTDI GND
|
||||
|
||||
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.
|
||||
#### 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.
|
||||
@ -120,7 +111,7 @@ Run the ST Flash Loader program. There are many tutorials on the web on how to u
|
||||
#### OSX:
|
||||
To be checked.
|
||||
|
||||
###Report issues for the STM32 board
|
||||
### Report issues for the STM32 board
|
||||
You can report your problem using the [GitHub issue](https://github.com/midelic/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:
|
||||
|
||||
|
@ -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)
|
||||
|
@ -1,19 +1,23 @@
|
||||
#Model Setup
|
||||
# Model Setup
|
||||
This is the page to document model or receiver specific setup instructions.
|
||||
|
||||
The Deviation project (on which this project was based) have a useful list of models [here](http://www.deviationtx.com/wiki/supported_models).
|
||||
|
||||
#Syma X5C
|
||||
# Syma X5C
|
||||
<img src="http://img2.cheapdrone.co.uk/images/upload/2014/12/X5C%203/SKU115108-7.jpg" Width="200" Height="200" />
|
||||
##Channel Map
|
||||
|
||||
## Channel Map
|
||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
|
||||
---|---|---|---|---|---|---|---
|
||||
A|E|T|R|FLIP|RATES|PICTURE|VIDEO
|
||||
##Binding
|
||||
|
||||
## 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
|
||||
|
||||
## Tx Setup
|
||||
A basic 4-channel setup works perfectly, but some improvements are possible:
|
||||
###Setting up a switch to Flip
|
||||
|
||||
### Setting up a switch to Flip
|
||||
|
||||
1. Choose your "Rates" switch - typically the momentary TRN switch
|
||||
1. In the Mixer create an entry for CH5
|
||||
@ -21,7 +25,7 @@ A basic 4-channel setup works perfectly, but some improvements are possible:
|
||||
- er9X: Source: sTRN, Weight 100 (or whatever switch you selected)
|
||||
- OpenTx: Source: SH, Weight 200 (or whatever switch you selected)
|
||||
|
||||
###Setting up a swich for high rates
|
||||
### Setting up a swich for high rates
|
||||
|
||||
1. Choose your "Rates" switch
|
||||
1. In the Mixer create an entry for CH6
|
||||
@ -31,7 +35,7 @@ A basic 4-channel setup works perfectly, but some improvements are possible:
|
||||
|
||||
When the switch is in the rear position the rates will be standard, when the switch is forward rates will be high. There is no need to move the throttle stick to the full up and full down position as with the standard controller.
|
||||
|
||||
###Setting up Idle-up
|
||||
### Setting up Idle-up
|
||||
One of the most annoying functions on the Syma X5C is that the motors stop when the throttle is pulled back. This can be fixed by implmenting Idle-up on the transmitter (think of this as a very simple version of the Betaflight "Air Mode"). Idle up will ensure that even when the throttle is all the way down, a minimum command is passed to the motor to keep them spinning and to activate the stabilization.
|
||||
|
||||
**To do this**:
|
||||
@ -41,49 +45,57 @@ One of the most annoying functions on the Syma X5C is that the motors stop when
|
||||
1. When you want to fly in "idle-up" mode flick the switch and your stabilization will always be active.
|
||||
1. Remeber to switch off idle-up as soon as the quad lands (or crashes - to avoid damage to the motors)
|
||||
|
||||
#Inductrix (Horizon Hobby)
|
||||
# Inductrix (Horizon Hobby)
|
||||
|
||||
<img src="https://s7d5.scene7.com/is/image/horizonhobby/BLH8700_a0" Width="200" Height="200" />
|
||||
|
||||
##Binding
|
||||
## Binding
|
||||
For telemetry enabled modules, you should just let the remote autodetect the settings. Otherwise choose DSMX 22ms with 6ch or 7ch. To bind the model, keep the transmitter off, power on the Inductrix. Wait until it flashes fast and then power up the Tx and use Bind.
|
||||
|
||||
##Tx Setup
|
||||
## 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
|
||||
|
||||
### 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
|
||||
|
||||
### 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.
|
||||
|
||||
An addition consideration when flying in Acro mode is to reduce stick sensitivity and to add some expo. The screens below show one way of doing this. Customize to your needs.
|
||||
|
||||
####Inputs Screen
|
||||
#### 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
|
||||
#### 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
|
||||
#### 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
|
||||
|
||||
## Channel Map
|
||||
|
||||
CH1|CH2|CH3|CH4|CH5|CH6|CH7
|
||||
---|---|---|---|---|---|---
|
||||
A|E|T|R|MODE|AUX1|AUX2
|
||||
|
||||
##Binding
|
||||
## Binding
|
||||
The Rx powers up in binding mode so the transmitter should be set to autobind. If the Tx signal is lost due to power-off or going out of range the Rx will not re-bind, and requires power-cycling before it will bind again.
|
||||
|
||||
##Tx Setup
|
||||
## Tx Setup
|
||||
AETR are simple +100% mixes. Note that the model expects Elevator (CH2) to be reversed, which is handled in the module firmware, so no need to reverse it on the Tx.
|
||||
|
||||
###Flight modes
|
||||
### Flight modes
|
||||
CH5 is used to transmit the flight mode to the APM flight controller by setting the output to a value in a pre-defined range. The original Tx uses a 3-pos switch (SWA) and a 2-pos switch (SWB) to achieve six different combinations, but only five are used - with SWA at 0, 1500 is sent when SWB is at 0 and 1, leaving flight mode 3 unused. However, in the stock CX-20 flight controller settings, both flight mode 3 and 4 are set to the same flight mode, meaning we can configure our new Tx settings to send a value for mode 3 without changing the standard flight mode behaviour. Afterwards, you can optionally use Mission Planner to assign a new flight mode to mode 3 or mode 4, or reconfigure them altogether.
|
||||
|
||||
The values, modes, and switch positions for the stock Tx are:
|
||||
@ -113,7 +125,7 @@ One easy way to acheive this is to configure six logical switches mapped to two
|
||||
|
||||
To simply map the old Tx modes to the new Tx using the same switch positions, use the following configuration. The stock SWA switch is replaced with the ID0/1/2 switch, SWB is replaced with the AIL D/R switch.
|
||||
|
||||
####Logical switches:
|
||||
#### Logical switches:
|
||||
|
||||
Switch|Function|V1|V2
|
||||
---|---|---|---
|
||||
@ -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
|
||||
---|---|---
|
||||
@ -135,7 +147,7 @@ Mode|Name|Switch
|
||||
5|DirLock|L5
|
||||
6|Stable|L6
|
||||
|
||||
####Mixer setup:
|
||||
#### Mixer setup:
|
||||
|
||||
Channel|Weight|Source|Switch|Multiplex
|
||||
---|---|---|---|---
|
||||
@ -154,11 +166,11 @@ 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
|
||||
|
||||
##Full Mixer Setup
|
||||
## Full Mixer Setup
|
||||
|
||||
Channel|Source|Weight|Switch|Multiplex
|
||||
---|---|---|---|---
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
#4-in-1 module
|
||||
# 4-in-1 module
|
||||
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
|
||||
## What you need
|
||||
A fully assembled module + case available from Banggood.com [here](http://www.banggood.com/CC2500-NRF24L01-A7105-CYRF693-4-In-1-RF-Module-With-Case-For-Futaba-JR-Frsky-Transmitter-p-1116892.html)
|
||||
|
||||
<img src="images/4-in-1_Module_Case_BG.jpeg" width="221" height="200" />
|
||||
@ -21,9 +21,9 @@ For 9XR/9XR Pro, a new 3D printed module is available which makes use of the bui
|
||||
|
||||
<img src="images/9XR_module.jpg" width="113" height="200" /> <img src="images/9XR_module_connector.jpg" width="274" height="200" />
|
||||
|
||||
##Different working modes
|
||||
## Different working modes
|
||||
|
||||
###PPM mode
|
||||
### PPM mode
|
||||
If you are only planning on using the PPM interface with your transmitter, you need to connect it as described:
|
||||
|
||||
<img src="images/PPM.png" width="574" height="340" />
|
||||
@ -34,7 +34,7 @@ The same plug is available on all versions of the module with the same signal lo
|
||||
|
||||
If you wish to add an external device reading the telemetry, you need to enable serial mode as explained in the next topics otherwise you are now ready to go over to [Compiling and Programming](Compiling.md).
|
||||
|
||||
###Serial mode
|
||||
### Serial mode
|
||||
If you have a transmitter that can support serial communication with the board then you need to wire up the board appropriately. There are three versions of the module and the steps are slightly different.
|
||||
|
||||
Check which module you have and based on the pictures below. If you purchased the module after June 2016 then it is likely that you have a V1.1 type module. If you have purchased the version with case it is likely that you have a V1.2 type module.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#Build from stratch
|
||||
# Build from stratch
|
||||
|
||||
If you can help to fully document this page, or just add additional detail please let us know on the rcgroups [forum](http://www.rcgroups.com/forums/showthread.php?t=2165676).
|
||||
|
||||
@ -14,9 +14,9 @@ A module case that fits your receiver like the one [here](https://www.xtremepowe
|
||||
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" />
|
||||
|
||||
##Reference Schematic <a name="Schematic"></a>
|
||||
## Reference Schematic <a name="Schematic"></a>
|
||||
Here is the schematic you can use to troubleshoot the module
|
||||
<img src="images/DIY_Mulitprotocol_Module_Schematic.jpeg" width="1000" height="500" />
|
||||
|
||||
##Compiling and programming
|
||||
## Compiling and programming
|
||||
Follow the instruction on the [Compiling and programming page](Compiling.md)
|
||||
|
@ -1,10 +1,11 @@
|
||||
|
||||
#DIY MULTI-module by soldering components on a PCB
|
||||
# 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
|
||||
|
||||
## 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
|
||||
- STM32 (32-bit) powered PCB V1.0t supporting the 4-in-1 RF module
|
||||
- ATmega (8-bit) powered PCB V2.3d supporting individual RF modules
|
||||
- STM32 (32-bit) powered PCB V1.0t supporting the 4-in-1 RF module
|
||||
|
||||
The **ATmega-based board** has been designed to accept individual RF modules. This way you can select just the module or modules you want. The downside is that each module requires its own antenna. It can become cumbersome with 4 antennas protruding from the module. It is possible to soder the 4-in-1 module to the PCB using thin insulated wire. This 4-in-1 module requires only one antenna. Finally, the Atmega board has a 32KB flash memory. This is big enough to accommodate more than 15 protocols, but it cannot accommodate all the available protocols.
|
||||
|
||||
@ -14,7 +15,7 @@ The **STM32-based** board has been designed to accept the 4-in-1 RF module with
|
||||
|
||||
<img src="images/Board_PCB_STM32.jpeg" width="100" height="125" /> <img src="images/Multi_4-in-1_RF_module.jpg" width="65" height="82" />
|
||||
|
||||
###ATmega board V2.3d
|
||||
### ATmega board V2.3d
|
||||
1. ATmega (8-bit) powered PCB V2.3d available from OSHPark [here](https://oshpark.com/shared_projects/Ztus1ah8).
|
||||
2. Individual RF modules The modules are available here:
|
||||
- [CC2500](http://www.banggood.com/2_4G-500K-CC2500-Long-Range-Wireless-Transceiver-Module-p-1075492.html) for FrSkyV, FrSkyD, FrSkyX and SFHSS
|
||||
@ -26,34 +27,32 @@ The **STM32-based** board has been designed to accept the 4-in-1 RF module with
|
||||
|
||||
The schematic for the board is [here](#V23D_Schematic). Please note that is is the general schematic - there will be some minor differences (like solder jumpers) between this and the board.
|
||||
|
||||
###STM32 powered PCB
|
||||
### STM32 powered PCB
|
||||
1. The latest STM32 (32-bit) powered PCB V1.0t supporting the 4-in-1 RF module available from OSHPark [here](https://oshpark.com/shared_projects/GX51nEoH).
|
||||
2. The 4-in-1 RF module is available [here](http://www.banggood.com/DIY-2_4G-CC2500-NRF24L01-A7105-CYRF6936-Multi-RF-4-IN-1-Wireless-Module-p-1046308.html)
|
||||
1. The schematic and BOM for this board V1.0t and older boards are available [here](BOM_DIY_STM32 & Schematic.md).
|
||||
|
||||
###Common parts
|
||||
### 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 2.4GHz antenna and pigtail
|
||||
|
||||
##Build instructions
|
||||
## Build instructions
|
||||
If you got this far you already know what you are doing!!
|
||||
|
||||
###Common steps
|
||||
### Common steps
|
||||
|
||||
1. Solder all the parts according to the BOM part numbering and the images for your board (see OSHPARK for the images)
|
||||
1. Fit the module into the module case. This may require some careful filing or sanding of the module to ensure a nice fit.
|
||||
|
||||
###PPM interface
|
||||
### PPM interface
|
||||
If you are only planning on using the PPM interface with transmitter you are ready to program the module as described in [Compiling and Programming](Compiling.md) the module.
|
||||
|
||||
###Enabling Serial and Telemetry interface
|
||||
### Enabling Serial and Telemetry interface
|
||||
If you have a transmitter that can support serial communication with the board then you need to solder some jumpers.
|
||||
|
||||
|
||||
@ -77,7 +76,7 @@ You are now ready to go over to [Compiling and Programming](Compiling.md).
|
||||
|
||||
You are now ready to go over to [Compiling and Programming STM32](Compiling_STM32.md).
|
||||
|
||||
#Reference Schematic <a name="Schematic"></a>
|
||||
# Reference Schematic <a name="Schematic"></a>
|
||||
Here is the schematic you can use to troubleshoot the module
|
||||
## <a name="V23D_Schematic"></a> PCB 2.3d Schematic
|
||||
General module schematic (reference)
|
||||
|
@ -1,4 +1,4 @@
|
||||
#OrangeRx Transmitter module
|
||||
# OrangeRx Transmitter module
|
||||
|
||||
The OrangeRx transmitter module uses an Atmel XMega MCU. This requires a PDI programmer to flash firmware, the USBASP programmers do not work.
|
||||
|
||||
|
@ -1,11 +1,14 @@
|
||||
# Troubleshooting
|
||||
|
||||
##LED status
|
||||
###Green LED
|
||||
## LED status
|
||||
|
||||
### Green LED
|
||||
|
||||
- Off: no power to the module
|
||||
- On: module is powered up
|
||||
|
||||
###Red LED (bind LED)
|
||||
### 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
|
||||
@ -14,19 +17,23 @@
|
||||
- Slower blink(on=1s,off=1s): PPM has been selected but no valid signal is being seen on the PPM pin.
|
||||
- On: Module is in normal operation mode (transmitting control signals).
|
||||
|
||||
##Protocol selection
|
||||
###Input Mode - PPM
|
||||
## 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
|
||||
### 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
|
||||
## 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.
|
||||
|
||||
@ -39,7 +46,8 @@ FrSky & SFHSS bind issues are ususally due to Option=fine frequency tuning not s
|
||||
- find the values min/max where the RX loses connection. In serial mode you can change the value and see the effect live.
|
||||
- set the value to half way between min and max.
|
||||
|
||||
##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
|
||||
|
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