Arduino Mini 2.4GHz and IR Remote Control System

Introduction: Arduino Mini 2.4GHz and IR Remote Control System

About: Arduino, DIY RC remotes, solar electronics

This is my DIY remote control system. It was designed during the last couple of months. It's based on an Atmega 328P MCU and NRF24L01+ radio modules.

The software and board CAD data are available on my GitHub repo:

Lots of videos are available on my YouTube channel:

If you want to build your own remote, just upload the EAGLE .brd file on and exactly the same boards as mine will be delivered to you in a couple of weeks.

Of course, you can also use a standard Arduino board and wire it up in accordance with the schematic on GitHub.

Technical specification transmitter:

  • Batteries: 4AA Alcalines or NiMh rechargeables
  • 2.4GHz, 10 vehicle ID's
  • LEGO "Power Functions" Infrared, blue and red channel, 4 groups
  • MECCANO Infrared (A, B, C, D)
  • 4 analog channels (2 joysticks)
  • 1 analog channel (additional potentiometer connector on the right hand side)
  • 2 digital "Mode1" & "Mode2" channels, integrated in joysticks)
  • 1 momentary push button channel (for horn etc.)
  • 0.96" OLED, 128 x 64 pixels
  • Back channel for vehicle battery monitoring on the transmitter
  • Configuration menu for servo travel and rotation direction adjustment (independent for all vehicle ID's)
  • Automatic joystick zero point calibration during power-on
  • Documentation on GitHub:

Technical specification receiver:

  • Input voltage range 3.5 - 8.5V (be careful with your servos, they usually require 4.8 - 6V)
  • 4 standard RC servo outputs
  • TB6612FNG dual channel DC motor driver integrated, so you don't need an additional ESC for smaller models (two versions available, see step 3)
  • Lots of vehicle software configuration options, such as differential steering for caterpillar models, headlights, taillights, brake lights, indicators
  • I2C and Serial headers (can also be used for lights)
  • Documentation on GitHub:

Step 1: Transmitter Assembly and Software Configuration:

The easiest way to do the necessary steps is described in the videos above. The used stock material for the housing is black MDF for the frame and PVC foam plate material for the cover. For software upload, also have a look at the manual on the first page.

Step 2: Receiver Assembly and Software Configuration:

The easiest way to do the necessary steps is described in the videos above. The shot air soldering is shown in the Porsche video. After soldering, use a magnifying glass and have a close look for shorts between the pins! Some rework, using flux and the soldering iron may be necessary.

The used stock material for the housing is black MDF. The label is an Excel sheet.

Step 3: "High Power" Receiver Version

For bigger vehicles, you can use this receiver version. It has both TB6612FNG channels wired in parallel. That means, you can use a motor up to 2.4A (average) and 6.4A (peak)

Important: if you draw the maximum current during a longer time period, an additional heat sink is required. See the KD-Summit S600 video. Also important to know is, that a higher PWM frequency produces more losses and therefore more heat. The PWM motor 2 PWM frequency can be adjusted in the "vehicleConfig.h" If "HP" is selected in your "vehicleConfig.h", motor 2 is the driving motor and no steering motor is available!

Step 4: Steering: Original Motor or Servo? or Even a Caterpillar With Differential Steering?

You can reuse the original steering motor of cheap RC cars. In this case, it is wired to the motor 2 connector.

Or you can use a standard RC servo and wire it to the servo channel 1. Please note, that RC servos require a voltage of 4.8 - 6V. Use a voltage converter, if your receiver is supplied with a different voltage

No software configuration is required, because motor channel 2 and servo channel 1 are controlled in parallel.

The entirely different choice is the caterpillar mode with differential steering. Select "vehicleType" = 1 in "vehicleConfig.h" in this case. Axis 3 is then the throttle and axis 1 the steering of your caterpillar vehicle! The left track is wired to the motor 1 connector and the right track to the motor 2 connector.

Step 5: Headlights, Taillights, Brake Lights, Indicators

IMPORTANT! The maximum output current of all the mentioned pins is 20mA

You can add lights. They use the following pins:

  • Headlights: RXI
  • Taillights / brake lights (US style combination): servo pin 2 (additional driver in accordance with video required)
  • Indicators: SDA and SCL

Note: you have to select the lights you want in your "vehicleConfig.h"

A momentary signal can be switched on the TXO pin (for example a horn)

Engine sound can be added in accordance with the video.

Step 6: Housing Milling Process Enhanced

The housing milling process was enhanced, using GRBL 1.1, UGS Platform and FUSION 360 CAD CAM

Step 7: How the First Prototype Looked Like and Thanks for Reading

I hope, that you've enjoyed this little instructable and that it was useful for you.

If so, please subscribe to my YouTube channel, thanks:

Be the First to Share


    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    6 Discussions


    Question 2 years ago on Introduction

    Hi, I would like to know which protocol you use? I_s it your own one or something common like wltoys or flysky? Thank you. Regards Timo


    2 years ago

    First, sorry for my bad english.
    I loved your project
    I'm setting up my board.
    I am in doubt about the servo motor.
    Movement range is too short.
    I set up a board using the electonoobs project, so I've figured out how to adjust the range in that project.
    In your project has the "arrays" and "offsets", a bit tricky for me, that I'm newbie.
    In your code, where you adjust the range of the potentiometer is very simple, but the sticks are more complicated.
    How do I increase this range? I'm using standard sparkfun 10k sticks.
    even changed the code, deactivating the lines and putting the same
    potentiometer there, but the telemetry does not work when I do this.
    Sorry for the long text ...

    2 years ago

    I love your projects - I`m a big fan of your work.

    thanks for sharing!


    3 years ago

    Wow nice tutorial, keep up the good work! :)


    3 years ago

    Looks neat :)