2015-12-28 12:07:58 +01:00
# DIY-Multiprotocol-TX-Module
2016-01-12 15:52:51 +01:00
Multiprotocol is a 2.4GHz transmitter which enables any TX to control lot of different models available on the market.
2015-12-28 13:40:36 +01:00
2016-01-01 22:58:36 +01:00
The source code is partly based on the Deviation TX project, thanks to all the developpers for their great job on protocols.
2016-01-12 15:52:51 +01:00
[Forum link on RCGROUPS ](http://www.rcgroups.com/forums/showthread.php?t=2165676 ) for additional information or requesting a new protocol integration.
2015-12-28 13:40:36 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952733-114-thumb-P4100002.JPG?d=1433910155 ) ![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952734-189-thumb-P4100003.JPG?d=1433910159 )
2016-01-12 15:52:51 +01:00
**To download the latest compiled version (hex file), click on [Release ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases ) on the top menu.**
2016-01-01 22:54:43 +01:00
2015-12-30 21:14:24 +01:00
##Contents
[Compatible TX ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#compatible-tx )
[Protocols ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#protocols )
[Hardware ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#hardware )
2016-01-01 22:54:43 +01:00
[Compilation and programmation ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#compilation )
2015-12-30 21:14:24 +01:00
[Troubleshooting ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module#troubleshooting )
2015-12-28 13:40:36 +01:00
##Compatible TX
###Using standard PPM output (trainer port)
The multiprotocol TX module can be used on any TX with a trainer port.
2016-01-22 16:23:39 +01:00
Channels order is AETR by default but can be changed in the _Config.h.
2015-12-28 14:22:50 +01:00
2016-01-25 17:07:37 +01:00
The protocol selection is done via a dip switch, rotary dip switch or scsi ID selector.
2015-12-28 13:40:36 +01:00
2016-01-25 17:07:37 +01:00
![Screenshot ](http://media.digikey.com/photos/CTS%20Photos/206-4,%20206-4ST_sml.jpg )
2015-12-28 14:58:43 +01:00
![Screenshot ](http://media.digikey.com/photos/Grayhill%20Photos/94HBB16T_sml.jpg )
2016-01-25 17:07:37 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8637216-7-thumb-SCSI%20ID%20selector.jpg?d=1453737244 )
2015-12-28 14:58:43 +01:00
2016-01-22 16:23:39 +01:00
You can access to up to 15 different protocols and associated settings.
Settings per selection are located in _Config.h:
- Protocol and type: many main protocols have variants
- RX Num: number your different RXs and make sure only one model will react to the commands
- Power: High or low, enables to lower the power setting of your TX (indoor for example).
- Option: -127..+127 allowing to set specific protocol options. Like for Hubsan to set the video frequency.
- Autobind: Yes or No. At the model selection (or power applied to the TX) a bind sequence will be initiated
2015-12-28 13:40:36 +01:00
###Using a serial output
2015-12-31 10:19:21 +01:00
The multiprotocol TX module takes full advantage of being used on a Turnigy 9X, 9XR, 9XR Pro, Taranis, 9Xtreme, AR9X, ... running [er9x or ersky9X ](https://github.com/MikeBland/mbtx/tree/next ). (A version for OpenTX is being looked at)
2015-12-28 14:22:50 +01:00
2015-12-28 13:40:36 +01:00
This enables full integration using the radio GUI to setup models with all the available protocols options.
![Screenshot ](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8520065-194-thumb-IMG_20151217_002215%20%28Medium%29.jpg?d=1450308588 )
Options are:
2015-12-28 17:53:56 +01:00
- Protocol and type: many main protocols have variants
- RX Num: number your different RXs and make sure only one model will react to the commands
- Power: High or low, enables to lower the power setting of your TX (indoor for example).
- Option: -127..+127 allowing to set specific protocol options. Like for Hubsan to set the video frequency.
- Bind: bind a RX/model
- Autobind: Yes or No. At the model selection (or power applied to the TX) a bind sequence will be initiated
- Range: test range by setting the transmission power to the lowest value
2015-12-31 10:19:21 +01:00
Notes:
- Using this solution does not need any modification of the TX since it uses the TX module slot PPM pin for serial transfer.
2016-01-22 16:23:39 +01:00
- There are 2 versions of serial protocol either 8 or 16 channels. 16 channels is the latest and only available version going forward. Make sure to use the right version based on your version of er9x/ersky9x.
- Channels order is AETR by default but can be changed in _Config.h.
2015-12-28 17:53:56 +01:00
###Telemetry
2016-01-27 18:09:20 +01:00
2015-12-28 17:53:56 +01:00
There are only 2 protocols so far supporting telemetry: Hubsan and Frsky.
2016-01-28 17:27:58 +01:00
Hubsan displays the battery voltage and TX RSSI.
2016-01-27 18:09:20 +01:00
2016-01-28 17:27:58 +01:00
FRSky displays full telemetry (A0, A1, RX RSSI, TX RSSI and Hub).
2016-01-27 18:09:20 +01:00
### If used in PPM mode
Telemetry is available as a serial 9600 8 n 1 output on the TX pin of the Atmega328p using the FRSky hub format.
2016-01-28 09:52:44 +01:00
You can connect it to your TX if it is telemetry enabled or use a bluetooth adapter (HC05/HC06) along with an app on your phone/tablet ([app example ](https://play.google.com/store/apps/details?id=biz.onomato.frskydash&hl=fr )) to display telemetry information and setup alerts.
2016-01-27 18:09:20 +01:00
### If used in Serial mode
Telemetry is built in for er9x and ersky9x TXs.
To enable telemetry on a Turnigy 9X or 9XR you need to modify your TX following one of the Frsky mod like this [one ](http://blog.oscarliang.net/turnigy-9x-advance-mod/ ).
2015-12-28 17:53:56 +01:00
2016-01-27 18:09:20 +01:00
Enabling telemetry on a 9XR PRO and may be other TXs does not require any hardware modifications. The additional required serial pin is already available on the TX back module pins.
2015-12-31 10:19:21 +01:00
2016-01-27 18:09:20 +01:00
Once the TX is telemetry enabled, it just needs to be configured on the model (see er9x/ersky9x documentation).
2015-12-28 13:40:36 +01:00
2015-12-28 14:48:22 +01:00
##Protocols
###TX ID
2015-12-31 10:19:21 +01:00
The multiprotocol TX module is using a 32bits ID generated randomly at first power up. This global ID is used by all protocols.
There are little chances to get a duplicated ID.
2015-12-28 14:48:22 +01:00
2015-12-29 09:04:35 +01:00
It's possible to generate a new ID using bind button on the Hubsan protocol during power up.
2015-12-28 14:48:22 +01:00
###Bind
2016-01-12 15:52:51 +01:00
To bind a model in PPM Mode press the physical bind button, apply power and then release.
In Serial Mode you have 2 options:
- use the GUI, access the model protocol page and long press on Bind. This operation can be done at anytime.
- press the physical bind button, apply power and then release. It will request a bind of the first loaded model protocol.
Notes:
- the physical bind button is only effective at power up. Pressing the button later has no effects.
- a bind in progress is indicated by the LED fast blinking. Make sure to bind during this period.
2015-12-28 14:48:22 +01:00
###Protocol selection
####Using the dial for PPM input
2016-01-22 16:23:39 +01:00
PPM is only allowing access to a subset of existing protocols.
2015-12-31 10:28:19 +01:00
The default association dial position / protocol is listed below.
2016-01-22 16:30:59 +01:00
Dial|Protocol|Sub_protocol|RX Num|Power|Auto Bind|Option|RF Module
----|--------|------------|------|-----|---------|------|---------
0|Select serial||||||
1|FLYSKY|Flysky|0|High|No|0|A7105
2|HUBSAN|-|0|High|No|0|A7105
3|FRSKY|-|0|High|No|-41|CC2500
4|HISKY|Hisky|0|High|No|0|NRF24L01
5|V2X2|-|0|High|No|0|NRF24L01
6|DSM2|DSM2|0|High|No|0|CYRF6936
7|DEVO|-|0|High|No|0|CYRF6936
8|YD717|YD717|0|High|No|0|NRF24L01
9|KN|WLTOYS|0|High|No|0|NRF24L01
10|SYMAX|SYMAX|0|High|No|0|NRF24L01
11|SLT|-|0|High|No|0|NRF24L01
12|CX10|CX10_BLUE|0|High|No|0|NRF24L01
13|CG023|CG023|0|High|No|0|NRF24L01
14|BAYANG|-|0|High|No|0|NRF24L01
15|SYMAX|SYMAX5C|0|High|No|0|NRF24L01
2015-12-28 14:48:22 +01:00
Notes:
2015-12-28 22:59:07 +01:00
- The dial selection must be done before the power is applied.
2016-01-22 16:23:39 +01:00
- The protocols, subprotocols and all other settings can be personalized by modifying the _Config.h file.
2015-12-28 14:48:22 +01:00
####Using serial input with er9x/ersky9x
2015-12-31 10:28:19 +01:00
Serial is allowing access to all existing protocols & sub_protocols listed below.
2015-12-28 14:48:22 +01:00
Protocol|Sub_protocol|RF Module
--------|------------|---------
Flysky||A7105
|Flysky
|V9x9
|V6x6
|V912
Hubsan||A7105
Frsky||CC2500
Hisky||NRF24L01
|Hisky
|HK310
V2x2||NRF24L01
DSM2||CYRF6936
|DSM2
|DSMX
Devo||CYRF6936
YD717||NRF24L01
|YD717
|SKYWLKR
2016-01-18 21:01:02 +01:00
|SYMAX4
2015-12-28 14:48:22 +01:00
|XINXUN
|NIHUI
KN||NRF24L01
2016-01-19 00:19:32 +01:00
|WLTOYS
|FEILUN
2015-12-28 14:48:22 +01:00
SymaX||NRF24L01
|SYMAX
|SYMAX5C
SLT||NRF24L01
CX10||NRF24L01
|CX10_GREEN
|CX10_BLUE
|DM007
2016-01-18 15:28:11 +01:00
|Q282
|JC3015_1
|JC3015_2
|MK33041
2016-01-25 18:14:56 +01:00
|Q242
2015-12-28 14:48:22 +01:00
CG023||NRF24L01
|CG023
|YD829
2016-01-10 16:07:27 +01:00
|H8_3D
2015-12-28 14:48:22 +01:00
Bayang||NRF24L01
2016-01-10 16:07:27 +01:00
FrskyX||CC2500
2016-01-19 18:44:08 +01:00
ESky||NRF24L01
2015-12-28 14:48:22 +01:00
Note:
2015-12-31 10:28:19 +01:00
- The dial should be set to 0 for serial. Which means all protocol selection pins should be left unconnected.
2015-12-28 14:48:22 +01:00
2015-12-29 09:04:35 +01:00
###Protocol details
Extended limits supported: -125%..+125% can be used and will be transmitted. Otherwise the default is -100%..+100% only.
2015-12-30 02:07:53 +01:00
Autobind protocol: you do not need to press the bind button at power up to bind, this is done automatically.
2015-12-29 09:04:35 +01:00
2015-12-28 19:19:11 +01:00
####BAYANG
2016-01-15 10:40:57 +01:00
Models: EAchine H8(C) mini, BayangToys X6/X7/X9, JJRC JJ850, Floureon H101 ...
2015-12-29 09:04:35 +01:00
Autobind protocol
2015-12-28 19:19:11 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10
---|---|---|---|---|---|---|---|---|----
2016-01-16 12:05:24 +01:00
A|E|T|R|FLIP|RTH|PICTURE|VIDEO|HEADLESS|INVERTED
2015-12-28 19:19:11 +01:00
####CG023
2016-01-15 10:40:57 +01:00
Models: EAchine CG023/CG031/3D X4
2015-12-29 09:04:35 +01:00
Autobind protocol
2015-12-28 19:19:11 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9
---|---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
A|E|T|R|FLIP|LIGHT|PICTURE|VIDEO|HEADLESS
#####Sub_protocol YD829
2016-01-15 10:40:57 +01:00
Models: Attop YD-822/YD-829/YD-829C ...
2015-12-29 11:23:43 +01:00
CH5|CH6|CH7|CH8|CH9
---|---|---|---|---
FLIP||PICTURE|VIDEO|HEADLESS
2015-12-28 19:19:11 +01:00
2016-01-10 16:07:27 +01:00
#####Sub_protocol H8_3D
2016-01-15 10:40:57 +01:00
Models: EAchine H8 mini 3D, JJRC H20/H22
2016-01-10 16:07:27 +01:00
CH5|CH6|CH7|CH8|CH9
---|---|---|---|---
2016-01-18 13:54:09 +01:00
FLIP|LIGTH|OPT1|OPT2|CAL
2016-01-10 16:07:27 +01:00
2016-01-11 11:17:03 +01:00
JJRC H20: OPT1=Headless, OPT2=RTH
2016-01-18 13:54:09 +01:00
JJRC H22: OPT1=RTH, OPT2=180/360° flip mode
2016-01-16 12:05:24 +01:00
2016-01-16 22:48:45 +01:00
H8 3D: OPT1=RTH + headless, OPT2=180/360° flip mode
2016-01-10 16:07:27 +01:00
2016-01-18 13:54:09 +01:00
CAL: calibrate accelerometers
2016-01-10 16:07:27 +01:00
2015-12-28 19:19:11 +01:00
####CX10
2015-12-29 09:04:35 +01:00
Extended limits supported
2015-12-28 19:19:11 +01:00
2016-01-15 11:14:36 +01:00
Autobind protocol
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6
---|---|---|---|---|---
2016-01-18 15:28:11 +01:00
A|E|T|R|FLIP|RATE
2015-12-28 19:19:11 +01:00
2016-01-18 15:28:11 +01:00
Rate: -100%=rate 1, 0%=rate 2, +100%=rate 3
2015-12-28 19:19:11 +01:00
2016-01-15 10:40:57 +01:00
#####Sub_protocol CX10_GREEN
2016-01-19 19:11:56 +01:00
Models: Cheerson CX-10 green pcb
2016-01-15 10:40:57 +01:00
Same channels assignement as above.
#####Sub_protocol CX10_BLUE
2016-01-19 19:11:56 +01:00
Models: Cheerson CX-10 blue pcb & some newer red pcb, CX-10A, CX-10C, CX11, CX12, Floureon FX10, JJRC DHD D1
2016-01-15 10:40:57 +01:00
2016-01-18 15:28:11 +01:00
CH5|CH6|CH7|CH8
---|---|---|---
FLIP|RATE|PICTURE|VIDEO
Rate: -100%=rate 1, 0%=rate 2, +100%=rate 3 or headless for CX-10A
2016-01-15 10:40:57 +01:00
#####Sub_protocol CX10_DM007
CH5|CH6|CH7|CH8|CH9
---|---|---|---|---
FLIP|MODE|PICTURE|VIDEO|HEADLESS
2016-01-25 18:16:20 +01:00
#####Sub_protocol CX10_Q282 and CX10_Q242
2016-01-18 15:28:11 +01:00
CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12
---|---|---|---|---|---|---|---
FLIP|LED|PICTURE|VIDEO|HEADLESS|RTH|XCAL|YCAL
#####Sub_protocol CX10_JC3015_1
CH5|CH6|CH7|CH8
---|---|---|---
FLIP|MODE|PICTURE|VIDEO
#####Sub_protocol CX10_JC3015_2
CH5|CH6|CH7|CH8
---|---|---|---
FLIP|MODE|LED|DFLIP
#####Sub_protocol CX10_MK33041
CH5|CH6|CH7|CH8|CH9|CH10
---|---|---|---|---|---
FLIP|MODE|PICTURE|VIDEO|HEADLESS|RTH
2015-12-28 19:19:11 +01:00
####DEVO
2015-12-29 09:04:35 +01:00
Extended limits supported
2015-12-28 19:19:11 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
####DSM2
2015-12-29 09:04:35 +01:00
Extended limits supported
2015-12-28 19:19:11 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
A|E|T|R|CH5|CH6|CH7|CH8
2016-01-19 18:44:08 +01:00
####ESKY
CH1|CH2|CH3|CH4|CH5|CH6
---|---|---|---|---|---
A|E|T|R|GYRO|PITCH
2015-12-28 19:19:11 +01:00
####FLYSKY
2015-12-29 09:04:35 +01:00
Extended limits supported
2015-12-28 19:19:11 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
A|E|T|R|CH5|CH6|CH7|CH8
#####Sub_protocol V9X9
CH5|CH6|CH7|CH8
---|---|---|---
UNK|LIGHT|PICTURE|VIDEO
#####Sub_protocol V6X6
CH5|CH6|CH7|CH8|CH9|CH10|CH11|CH12
---|---|---|---|---|---|---|---
FLIP|LIGHT|PICTURE|VIDEO|HEADLESS|RTH|XCAL|YCAL
#####Sub_protocol V912
CH5|CH6
---|---
BTMBTN|TOPBTN
####FRSKY
2015-12-29 09:04:35 +01:00
Extended limits supported
2016-01-27 18:09:20 +01:00
Telemetry enabled for A0, A1, RSSI, TSSI and Hub
2015-12-29 09:04:35 +01:00
2015-12-30 02:07:53 +01:00
Option=fine frequency tuning, usually 0 or -41 based on the manufacturer boards
2015-12-28 19:19:11 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
####HISKY
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
A|E|T|R|GEAR|PITCH|GYRO|CH8
2015-12-29 10:45:45 +01:00
GYRO: -100%=6G, +100%=3G
2015-12-28 19:19:11 +01:00
####HK310
2016-01-20 14:34:29 +01:00
Models: RX HK-3000, HK3100 and XY3000 (TX are HK-300, HK-310 and TL-3C)
2016-01-15 10:40:57 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|---|---
2015-12-28 19:19:11 +01:00
|||T|R|AUX|T_FSAFE|R_FSAFE|AUX_FSAFE
####HUBSAN
2016-01-21 17:26:31 +01:00
Models: Hubsan H102D, H107/L/C/D and Hubsan H107P/C+/D+
2016-01-19 19:11:56 +01:00
2015-12-29 09:04:35 +01:00
Autobind protocol
2015-12-28 19:19:11 +01:00
2016-01-28 17:27:58 +01:00
Telemetry enabled for battery voltage and TX RSSI
2015-12-28 19:19:11 +01:00
Option=vTX frequency (H107D) 5645 - 5900 MHz
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9
---|---|---|---|---|---|---|---|---
2016-01-18 17:02:39 +01:00
A|E|T|R|FLIP|LIGHT|PICTURE|VIDEO|HEADLESS
2015-12-28 22:59:07 +01:00
2015-12-28 19:19:11 +01:00
####KN
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11
---|---|---|---|---|---|---|---|---|----|----
2016-01-19 00:19:32 +01:00
A|E|T|R|DR|THOLD|IDLEUP|GYRO|Ttrim|Atrim|Etrim
2015-12-28 19:19:11 +01:00
2016-01-19 00:19:32 +01:00
Dual Rate: +100%=full range, Throttle Hold: +100%=hold, Idle Up: +100%=3D, GYRO: -100%=6G, +100%=3G
#####Sub_protocol WLTOYS
#####Sub_protocol FEILUN
Same channels assignement as above.
2015-12-28 19:19:11 +01:00
2015-12-28 17:53:56 +01:00
####SLT
2015-12-29 09:04:35 +01:00
Autobind protocol
2015-12-28 17:53:56 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6
---|---|---|---|---|---
2015-12-28 17:53:56 +01:00
A|E|T|R|GEAR|PITCH
####Symax
2015-12-29 09:04:35 +01:00
Autobind protocol
2015-12-28 17:53:56 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9
---|---|---|---|---|---|---|---|---
2015-12-28 17:53:56 +01:00
A|E|T|R|FLIP||PICTURE|VIDEO|HEADLESS
2016-01-15 10:40:57 +01:00
#####Sub_protocol SYMAX
Models: Syma X5C-1/X11/X11C/X12
#####Sub_protocol SYMAX5C
2016-01-18 18:21:04 +01:00
Model: Syma X5C (original) and X2
2016-01-15 10:40:57 +01:00
2015-12-28 17:53:56 +01:00
####V2X2
2016-01-15 10:40:57 +01:00
Models: WLToys V202/252/272, JXD 385/388, JJRC H6C, Yizhan Tarantula X6 ...
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9|CH10|CH11
---|---|---|---|---|---|---|---|---|----|----
2015-12-28 17:53:56 +01:00
A|E|T|R|FLIP|LIGHT|PICTURE|VIDEO|HEADLESS|MAG_CAL_X|MAG_CAL_Y
2016-01-18 18:56:15 +01:00
PICTURE: also automatic Missile Launcher and Hoist in one direction
VIDEO: also Sprayer, Bubbler, Missile Launcher(1), and Hoist in the other dir
2015-12-28 17:53:56 +01:00
####YD717
2015-12-29 09:04:35 +01:00
Autobind protocol
2015-12-28 17:53:56 +01:00
2016-01-19 18:44:08 +01:00
CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8|CH9
---|---|---|---|---|---|---|---|---
2015-12-28 17:53:56 +01:00
A|E|T|R|FLIP|LIGHT|PICTURE|VIDEO|HEADLESS
2016-01-15 11:14:36 +01:00
#####Sub_protocol YD717
#####Sub_protocol SKYWLKR
2016-01-18 21:01:02 +01:00
#####Sub_protocol SYMAX4
2016-01-15 11:14:36 +01:00
#####Sub_protocol XINXUN
#####Sub_protocol NIHUI
Same channels assignement as above.
2015-12-28 13:40:36 +01:00
##Hardware
###RF modules
Up to 4 RF modules can be installed:
- [A7105 ](http://www.banggood.com/XL7105-D03-A7105-Modification-Module-Support-Deviation-Galee-Flysky-p-922603.html ) for Flysky, Hubsan
- [CC2500 ](http://www.banggood.com/CC2500-PA-LNA-Romote-Wireless-Module-CC2500-SI4432-NRF24L01-p-922595.html ) for Frsky
- [CYRF6936 ](http://www.ehirobo.com/walkera-wk-devo-s-mod-devo-8-or-12-to-devo-8s-or-12s-upgrade-module.html ) for DSM2, DSMX, DEVO, Walkera
- [NRF24L01 ](http://www.banggood.com/2_4G-NRF24L01-PA-LNA-Wireless-Module-1632mm-Without-Antenna-p-922601.html ) for Hisky, V2x2, CX-10, SYMAX and plenty other protocols
RF modules can be installed for protocols need only. Example: if you only need the Hubsan protocol then install only a A7105 on your board.
You also need some [antennas ](http://www.banggood.com/2_4GHz-3dBi-RP-SMA-Connector-Booster-Wireless-Antenna-Modem-Router-p-979407.html ) and [cables ](http://www.banggood.com/10cm-PCI-UFL-IPX-to-RPSMA-Female-Jack-Pigtail-Cable-p-924933.html ).
###Microcontroller
2015-12-30 02:07:53 +01:00
The main program is running on an ATMEGA328 running @16MHz and 3.3V.
2015-12-28 22:59:07 +01:00
An [Arduino pro mini ](http://www.banggood.com/Wholesale-New-Ver-Pro-Mini-ATMEGA328-328p-5V-16MHz-Arduino-Compatible-Nano-Size-p-68534.html ) can be used to build your own Multimodule.
Using stripboard:
2015-12-28 13:40:36 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t8214655-87-thumb-uploadfromtaptalk1405598143749.jpg?d=1441459923 )
2016-01-22 16:33:46 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t8214656-102-thumb-uploadfromtaptalk1405598152484.jpg?d=1441459924 )
2015-12-28 13:40:36 +01:00
2015-12-28 22:59:07 +01:00
Using a [home made PCB ](http://www.rcgroups.com/forums/showpost.php?p=32645328&postcount=1621 ):
![Screenshot ](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8226720-197-thumb-IMG_20150715_230603155.jpg?d=1441816457 )
2016-01-22 16:34:34 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8226719-72-thumb-IMG_20150715_230024065.jpg?d=1441816456 )
2015-12-28 22:59:07 +01:00
2016-01-15 10:40:57 +01:00
or build your own board using [SMD components ](http://www.rcgroups.com/forums/showpost.php?p=31064232&postcount=1020 ) and an [associated PCB ](https://oshpark.com/shared_projects/MaGYDg0y ):
2015-12-28 13:40:36 +01:00
2016-01-15 10:40:57 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7566755-3-thumb-i.png?d=1423810885 )
2015-12-28 13:40:36 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952726-108-thumb-image-62c29cf2.jpg?d=1433909893 )
2015-12-29 09:04:35 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952733-114-thumb-P4100002.JPG?d=1433910155 ) ![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t7952734-189-thumb-P4100003.JPG?d=1433910159 )
2015-12-28 13:40:36 +01:00
2016-01-15 11:29:22 +01:00
If you build this PCB v2.3c and want to enable serial mode for er9x/ersky9x, you should do [this mod ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/a8180322-194-multi.jpg ):
2016-01-15 10:40:57 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/t8180322-35-thumb-multi.jpg?d=1440422869 )
2015-12-28 13:40:36 +01:00
###Schematic
![Screenshot ](http://static.rcgroups.net/forums/attachments/4/0/8/5/8/3/a8443844-119-multiprotocol_diagram_rotary_serial_2.jpg )
2015-12-31 10:19:21 +01:00
Notes:
- Attention: All modules are 3.3V only, never power them with 5V.
- For serial, the dial switch is not needed and the bind button optionnal
2015-12-28 13:40:36 +01:00
###Radio integration
2015-12-30 02:07:53 +01:00
You can 3D print your box (details [here ](http://www.rcgroups.com/forums/showpost.php?p=33294140&postcount=2034 )):
2015-12-28 13:40:36 +01:00
![Screenshot ](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8462144-54-thumb-Multi_case_9XR.jpg?d=1448575289 )
![Screenshot ](http://static.rcgroups.net/forums/attachments/1/1/5/4/3/7/t8462145-106-thumb-Multi_case_v1.jpg?d=1448575293 )
2015-12-28 14:22:50 +01:00
2016-01-01 22:54:43 +01:00
##Compilation and programmation
2015-12-28 14:22:50 +01:00
###Toolchain
2016-01-28 10:53:14 +01:00
Supported Arduino version is [1.6.7 ](https://www.arduino.cc/download_handler.php?f=/arduino-1.6.7-windows.exe ). Make sure to select "Arduino Pro or Pro Mini, ATmega328 (5V,16MHz)" before compiling.
2015-12-28 20:42:00 +01:00
Compilation of the code posted here works. So if it doesn't for you this is a problem with your setup, please double check everything before asking.
2016-01-22 16:23:39 +01:00
_Config.h file can be modified to compile with/without some protocols, change protocols/sub_protocols/settings associated with dial for PPM input, different channel orders, different channels timing, Telemetry or not, ...
2015-12-28 14:22:50 +01:00
###Upload the code using ISP (In System Programming)
2015-12-28 21:53:27 +01:00
It is recommended to use an external programmer like [USBASP ](http://www.banggood.com/USBASP-USBISP-3_3-5V-AVR-Downloader-Programmer-With-ATMEGA8-ATMEGA128-p-934425.html ) to upload the code in the Atmega328. The programmer should be set to 3.3V or nothing to not supply any over voltage to the multimodule and avoid any damages.
2016-01-15 10:40:57 +01:00
The dial must be set to 0 before flashing!
2015-12-28 21:53:27 +01:00
From the Arduino environment, you can use this shortcut to compile and upload to the module: Skecth->Upload Using Programmer (Ctrl+Maj+U)
2015-12-28 14:22:50 +01:00
2016-01-01 22:54:43 +01:00
To flash the latest provided hex file under [Release ](https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/releases ), you can use a tool like [AVR Burn-O-Mat ](http://avr8-burn-o-mat.aaabbb.de/ ), set the microcontroller to m328p and flash it.
2015-12-28 14:22:50 +01:00
###Set fuses
Use a tool like [AVR Burn-O-Mat ](http://avr8-burn-o-mat.aaabbb.de/ ) to set the fuses of the Atmega328 to:
2015-12-28 21:53:27 +01:00
- Low Fuse 0xFF
2015-12-28 14:22:50 +01:00
- High Fuse 0xD2
- Extended Fuse 0x05
2015-12-28 21:58:10 +01:00
2015-12-30 02:07:53 +01:00
This will make sure your ATMEGA328 is well configured and the global TX ID is not erased at each updates.
2015-12-28 14:48:22 +01:00
##Troubleshooting
2015-12-28 14:58:43 +01:00
2015-12-28 14:48:22 +01:00
###LED status
- off: program not running or a protocol selected with the associated module not installed.
2016-01-19 18:44:08 +01:00
- flash: invalid protocol selected (excluded from compilation or invalid protocol number)
2015-12-28 14:48:22 +01:00
- slow blink: serial has been selected but no valid signal has been seen on the RX pin.
- fast blink: bind in progress.
- on: normal operation.
2015-12-28 14:58:43 +01:00
###Bind
2016-01-12 15:52:51 +01:00
Make sure to follow this procedure: press the bind button, apply power and then release it after 1sec. The LED should be blinking fast indicating a bind status and then fixed on when the bind period is over. It's normal that the LED turns off when you press the bind button, this behavior is not controlled by the Atmega328.
2015-12-31 10:19:21 +01:00
For serial, the preffered method is to bind via the GUI protocol page.
2015-12-28 14:58:43 +01:00
2016-01-12 15:52:51 +01:00
It migth happen that your module is always binding at power up. If this is the case, there is a big chance that you are using an Arduino Pro Mini with an external status LED. To work around this issue connect a 10K resistor between D13 and 3.3V.
2015-12-28 14:58:43 +01:00
###Protocol selection
For serial, leave all 4 selection pins unconnected.
For PPM, connect 1 to 4 of the selection protocol pins to GND.
The protocol/mode selection must be done before the power is applied.
2016-01-01 22:54:43 +01:00
###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
- TX type
- Using PPM or Serial, if using er9x or ersky9x the version in use
- Different led status (multimodule and model)
- Explanation of the behavior and reproduction steps