Introduction: How to Hack RC Car Transmitter Via 2.4 GHz NRF24L01 Arduino Part1 Tx

This instruction will advice you to hack 3-Channel RC transmitter(Tx).The standard remote control of RC car and boat today.

The standard Gas or Electric RC cars are directional controlled by an electric servo that moving mechanical front steering wheel Left/Right.The servo have two main type-analog and digital.Analog servo is slower than digital but consume less power than digital servo.It depends on how fast the car will be applied.The steering servo shall be metal gear than plastic gear.It's more durable on tough road and serious crash.

The standard Electric RC cars are drove by electric motors.The electric motors in RC have two main type Brushed and Brushless motor.For small or mini RC car ,Brushed motors still favorite.For large scale or super fast RC car, Brushless motors are the best choice.

RC car scale < 1/24 brushed motor size 130 , 180

RC car scale 1/24 - 1/18 brushed/brushless motor size 180 , 280 , 370

RC car scale 1/10 brushed/brushless motor size 380

RC car scale > 1/10 brushless motor size 380 , 540

For this instruction , the prototype RC car use brushed motor 130 and 280.

The RC car motor controlled by electronic speed control(ESC).There are two type Brushed and Brushless ESC.

The size of ESC separated by Ampere from 10A to 200A.

For this instruction , the prototype RC car use brushed motor ESC 30A with reverse function.

The transmitter(Tx) has two potentiometers(Pot),one for steering servo and one for electronic speed control (ESC).

Potentiometers will send code through radio system from transmitter(Tx) to receiver(Rx) to control Steering servo and ESC.

This project aim to resurrect low-brand sleepy FM transmitter by applying NRF24L01 module plus Arduino Nano.All unused control board have been removed , except potentiometers and some auxiliary switches to be hacked.Battery compartment has been modified for 2s Lipo 7.4V. 1000 mAh.(Ordinary 9V. Batt. ,play too short time.)

The hacked transmitter works well on traditional application.Unless it's difficult on site adjustment like End point trimming,Steering trimming,Speed throttle curve,Brake adjustment where brand transmitter still be racing king.

Thank to arduino-info.wikispaces.com , github.com/maniacbug/RF24 for RF24 library and other nRF24L01 module information.

You can purchase electronic parts from Aliexpress, Banggod,Ebay,etc.

Project more : http://hobbywitch666.blogspot.com

Step 1: Materials & Tools

Materials

1. 1 - Arduino controller - Nano

2. 1 - NRF24L01 module with or without SMA anttenna

3. 1 - Socket adapter for NRF24L01(For protect & stabilize NRF24L01 module)

4. 1 - LED 4 mm.(Option)

5. 1 - Resistor 1 kOhm. 1/4 watt.(Option)

6. 1 - Capacitor 0.1 microF /50V.

7. 1 - Capacitor 1 microF /50V.

8. 1 - Capacitor 100 microF /50V.

9. 1- Diode 1N4001

10. 1 - 7805 IC Regulator 5V.

11. Dupont wires.

12. Female pin header

13. Dupont Jumper Cable Housing Male Pin Connector

14. Dupont Jumper Cable Housing Female Pin Connector

15. Male JST Battery Pigtail

16. Heat shrink tube 1.5 - 10 mm.

17. Velcro tape

18. PCB - DIY circuit board

19. Battery Lipo 7.4 V. 1000 mAh

20. Unused 3-Channel RC transmitter(Pistol type with Steering wheel)

Tools

1. Soldering gun.

2. Soldering wire.

3. Soldering paste.

4. Screw driver.

5. Plier.

6. Hot glue gun.

7. Epoxy glue.

Step 2: Body Modification , Electronic Parts Installation & DIY PCB

Body modification & DIY PCB

1. Open transmitter body up,remove unnecessary PCB ,leave Steering potentiometer , ESC potentiometer and Auxiliary switch for hacking.

2. Make DIY PCB according to circuit diagram.(See pin connection below)

*Soldering all devices carefully ,use enough large wire.Making good ground.

3. Cut off plastic body to open a hole for Nano USB.

4. Modify battery compartment by cutting all plastic fins for more clear room.Paste Velcro tape on battery and compartment to fix battery in place.

5. Attach DIY PCB and NRF24L01 module on opposite side of transmitter body by hot glue.

6. Connection wiring between DIY PCB , Potentiometers , power switch and battery terminal.

*Before connecting main supply,check out to find short circuit points on DIY PCB.Otherwise it can smoke and burn everything.(Be careful of Lipo battery , it's high current supply , short contact will spark fire)

Arduino Nano to Pistol Transmitter Connection

pin No :

A3 - Steering servo potentiometer signal o/p

A4 - ESC potentiometer signal o/p

D4 - Auxiliary switch o/p

nRF24L01 module Socket adaptor to Arduino Nano

pin No :

Vcc - 5 V. supply (Do not connect 5V. direct to nRF24L01 module,it's supplied only 3.3V.)

GND - GND

CE - 9

CSN - 10

SCK - 13

MO - 11

MI - 12

IRQ - 2

*If you have communication problem,you can change connection from pin 13,11,12 to pin SCK,MOSI,MISO of Nano programming pins.
*It's necessary to add 0.1 microF to nRF24L01 module pin Vcc/GND because the module needs stable current and voltage.Also solder a small wire at the antenna to increase control range.

Step 3: Software Download & Upload to Transmitter

Arduino sketch and Library :

1.Down load attached sketch file .ino and download library zip file for nRF24L01 module from https://github.com/maniacbug/RF24/downloads

2.Add library zip file to Arduino software.(After added you will see new library RF24-master in Examples menu.) 3.Before using new nRF24L01 modules,we shall burn the modules by uploading default sketch pingpair and GettingStarted for tuning up frequency otherwise it will has uncommunication problem.(Use another Arduino Nano and nRF24L01 modules for pairing)

4.After matching the frequency ,we can upload Tx sketch to transmitter.(If you have problem,go to visit website https://arduino-info.wikispaces.com/Nrf24L01-2.4G... for more information)

- Steering Potentiometer will send code between 150 - 910 at 4.5V. if voltage change Potentiometer will send another code range it's necessary to maintain voltage.Another transmitter brand send different code,it has to be checked before updating sketch.

- ESC Potentiometer will send code between 170 - 900 at 4.5V. if voltage change Potentiometer will send another code range , it's necessary to maintain voltage.Another transmitter brand send different code,it has to be checked before updating sketch.

Both code have to be divided by 10 to reduce value to two digit data before sending on radio.(See detail in attached sketch)

5. The sketch serial monitor will not show anything as video clip.We have to build receiver(Rx) on the car.Go to next instruction"How to Hack RC Car Receiver via 2.4 GHz NRF24L01 Arduino Part 2 Rx+Servo+ESC"

Comments

author
JoanM32 (author)2016-05-02

I can aply this to 6 or 7 ch? y will make an E 1:15 full RC Tank, engine start/stop, one or two gears up and back, cannon elevation, and airsoft shoot... thx :)) nice tuto

author
nipon4666 (author)JoanM322016-08-21

Another point,you have to use commercial 9 channel transmitter base,2ch pistol Tx cannot do.It needs 6-7 potentiometers too.

author
nipon4666 (author)JoanM322016-08-21

Modify sketch :

uint8_t data[X] ;
X = number of channel (counting from 0 to X)

But if you increase to 6-7 channel ,it will make more delay of transmission.You have to modify Rx sketch also by add delay at reading step like :
done = radio.read(&received_data, num_received_data);
delay(60);//increase delay for longer data

author
nipon4666 (author)JoanM322016-05-03

You can try,I'm doing 4-ch Tx for plane.

author
HuseyinR (author)nipon46662016-08-20

Hi, How do I increase the number of CH?