Introduction: DIY Car Radio TX With MultiProtocol Module

This is my Car Radio TX with Multliprotocol Module ( https://github.com/pascallanger/DIY-Multiprotocol-TX-Module ) and OpenTX (https://www.open-tx.org) on small sized Arduino Mega 2560 PRO.

I designed this radio because I didn't find any Pistol Radio with Multimodule support.

Unfortunately OpenTX supported ArduinoMega only up to Version 2.1 although the schematic can be found in version 2.2.

A special feature compared to other Pistol Radios is the 2-Axis Trigger Gimbal.

In normal direction the throttle is controlled as usual. But sideways you can add features like mixing force between rear and front traction if you have two separate motor drivers. This can be helpful for Crawler Cars.

But you can also install common 1 Axis Gimbal instead.

I used an "Rj1616t-45j-h 16mm 3d Joystick Potentiometer" from an older Radio.

Maybe this is hard to get as it seems to be discontinued but there are similar Gimbals that should fit.

Supplies

Partlist for the Electronics:

Step 1: Schematic & PCB

Prepare Main PCB

Since I was too lacy to create a printable board PCB I just drew the schematic and placed the Connectors, Resistors and Capacitors on a Veroboard. More Details can be seen when you open the DesignSpark 3D Source File from Thingiverse (Link below) or the pictures above. See attached Schematic for wiring.

Pictures PCB_B.png and PCB_F.png to get an idea how it looks.

I made all connections with thread wires.

Feel free to create your PCB based on the included KiCAD Files in Franks-DIY-TX.zip.


Prepare Buttons PCBs

Also for the Trim Buttons and Menu Buttons I used tiny Veroboards.

See above picture what it looks like when the final Transmitter is opened.

Step 2: Download Firmware on Arduino Mega 2560 PRO

Unfortunately the Firmware Images of OpenTX for Arduino Mega are not available anymore.

I read anywhere that they moved the Project to another server and lost the images.

And was was not able to compile one from source,

see https://github.com/opentx/opentx/wiki/OpenTX-Windows-Build-Instructions

Useful informations are also here "DIY Radio with Mega2560 and OpenTx":

https://www.rcgroups.com/forums/showthread.php?2406337-DIY-Radio-with-Mega2560-and-OpenTx


Atleast I saved some hex files from an older Arduino Mega based TX which I provide here:

 - opentx-mega2560-ST7920-frsky-sdcard-haptic-gvars-en.hex

 - opentx-mega2560-ST7920-sdcard-gvars-battgraph-en.hex

I use the first one which is working well.

Maybe some of you own other appropriate images that I could add here?

Or you know where to get them or how to compile one?

How to flash OpenTx firmware to Arduino MEGA2560 is shown in this video using the OpenTX Companion

https://www.youtube.com/watch?v=xk9BfAGJWOc

Step 3: Download Firmware on Multiprotocol Module

The source from Pascal Langer is available here

https://github.com/pascallanger/DIY-Multiprotocol-TX-Module


As we use the Module in PPM mode it is strongly recommended to compile the Firmware instead of using precompiled imgages (from https://downloads.multi-module.org/ )

The process is not very difficult and a good description using the Arduino IDE can be found e.g. here (Option 3):

https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling_STM32.md#option-3---compiling-and-updating-firmware

Step 4: Check Function

Before printing the 3D parts you should check if everything is working at all.

Plug everything together and use a current limited power supply. I do not recommend to use a LiPo battery. If there something like a shortcut you could damage important parts. If everything looks good you could switch to a 2S LiPo if required. 

On a first look the LCD should show the OpenTX Splash Screen and then show an EEPROM WARNING.

If that does'nt happen something is still wrong in the circuit wiring ...

The channel reorder function of the Multiprotocol Module almost drove me cracy.

There is an explanation in https://www.multi-module.org/using-the-module/channel-order

I configured a special model "Test" in the TX that just sent simple analog values to each channel:

Mixer:

CH1 = Ail --> analog signal from the Wheel Stick

CH2 = P1  --> analog signal from Poti 1

CH3 = Thr --> analog signal from Throttle Trigger normal way

CH4 = Rud --> analog signal from Throttle Trigger side ways

CH5 = P2  --> analog signal from Poti 2

CH6 = P3  --> analog signal from Poti 3

CH7 = RUD --> 2 position analog signal from Rudder Switch

CH8 = 3POS --> 3 position analog signal from 3-Position Switch


With this Test Model I tested several receivers like Spektrum AR6200, AR500, AR6100e, OrangeRX R1220X, ... by connecting them to my Servo Simulator https://www.thingiverse.com/thing:3951640 (see Picture above)

This Tool shows the output of each connected Receiver Channel.

I selected different DSM Protocols on the HEX switch of the Multiprotocol Module.

But the results seemed to be unpredictable...

Finally I was successful when

- the correct protocol was selected ( DSM2_1F /DSM2_2F / DSMX_1F /DSMX_2F )

- and (!) the number of channels in the selected protocol does not exceed the max. number of channels of the receiver ( --> "option=number of channels" )

- and the number of channels in the Model setup page 2 was the same as the selected Multiprotocol Module protocol.

So pay attention to select the right combination!

With the Servo Simulator you can now see which Mixer Channel is output on which Receiver Output.

When everything work fine at this state you can continue programming your models on the TX.

Step 5: Print 3D Parts