Production Ready • v2.0.0

RCduino

Professional Arduino RC Library

Build advanced RC cars, planes, boats, and drones with IMU stabilization, GPS navigation, PID controllers, and professional-grade safety systems.

100%
Complete
50+
API Methods
4
Examples
MIT
License

What is RCduino?

A comprehensive, production-ready Arduino library for building professional-grade RC vehicles

Why RCduino?

  • Complete Solution: Everything you need for RC vehicle control in one library
  • Production-Ready: Thoroughly tested and optimized for real-world use
  • Easy to Use: Simple API with comprehensive examples and documentation
  • Extensible: Modular design allows you to use only what you need
#include <RCduino.h>

RCduino car(RC_CAR);

void setup() {
  // Add H-Bridge motor
  car.addMotor(9, 10, BRUSHED_DC);
  
  // Add steering servo
  car.addServo(6);
  
  // Add RC receiver
  car.addReceiver(PWM_SIGNAL);
  car.getReceiver()->addChannel(0, 2);
  
  // Add battery monitor
  car.addBattery(A0, 11.0);
  
  car.begin();
}

void loop() {
  car.update();
}

Powerful Features

Everything you need to build professional RC vehicles

Motor Control

  • • Brushed & Brushless support
  • • H-Bridge dual-pin control
  • • Speed ramping
  • • Multiple brake modes

IMU Integration

  • • Full MPU6050 support
  • • Sensor fusion
  • • Pitch/Roll/Yaw calculation
  • • Auto-calibration

GPS Navigation

  • • NMEA sentence parsing
  • • Position tracking
  • • Distance & bearing
  • • Waypoint navigation

PID Controller

  • • Professional implementation
  • • Anti-windup protection
  • • Configurable gains
  • • Output limiting

Safety Systems

  • • Signal loss detection
  • • Battery monitoring
  • • Emergency stop
  • • Multiple warnings

Receiver Input

  • • PWM/PPM/Analog signals
  • • 8-channel support
  • • Channel reverse & trim
  • • Expo curves

Getting Started

Get up and running in minutes

Installation

# Arduino IDE:
# 1. Download RCduino library from GitHub
# 2. Sketch → Include Library → Add .ZIP Library
# 3. Select the downloaded RCduino.zip

# PlatformIO:
lib_deps = RCduino@^2.0.0

Hardware Requirements

Supported Boards

Board IMU GPS
Arduino Uno ❌*
Arduino Mega
Arduino Nano ❌*
ESP32

*Use SoftwareSerial for GPS

Components

  • Motor Drivers:
  • • ESC (1000-2000µs PWM)
  • • L298N, TB6612, DRV8833
  • Sensors (Optional):
  • • MPU6050 (IMU)
  • • NEO-6M/7M (GPS)
  • Batteries:
  • • LiPo, Li-Ion, NiMH, NiCd
  • • 1S to 12S support

Quick Start Code

#include <RCduino.h>

RCduino car(RC_CAR);

void setup() {
  Serial.begin(9600);
  
  car.addMotor(9, 10, BRUSHED_DC);
  car.getMotor(0)->setSpeedRamping(200);
  
  car.addServo(6);
  
  car.addReceiver(PWM_SIGNAL);
  car.getReceiver()->addChannel(0, 2);
  car.getReceiver()->addChannel(1, 3);
  
  car.addBattery(A0, 11.0);
  car.getBattery()->setBatteryType(LIPO, 3);
  
  car.addStatus(13, 255);
  car.begin();
  
  Serial.println("RC Car Ready!");
}

void loop() {
  car.update();
}

API Reference

Complete API documentation

RCduino Class

Main class that integrates all components

RCduino(VehicleType type = RC_CAR);
void begin();
void addMotor(uint8_t pin1, uint8_t pin2, MotorType type);
void addServo(uint8_t pin);
void addReceiver(SignalType type);
void addBattery(uint8_t pin, float dividerRatio);
void addIMU();
void addGPS(HardwareSerial* serial);
void update();
void setThrottle(int throttle);
void setSteering(int steering);

RCMotor Class

Motor control with H-Bridge support

void setSpeed(int speed);
void setSpeedRamping(int rampRate);
void setBrakeMode(BrakeMode mode);
void setDeadband(int deadband);
int getSpeed();
bool isRunning();

RCIMU Class

MPU6050 IMU with sensor fusion

bool begin();
void update();
void calibrate();
float getPitch();
float getRoll();
float getYaw();
float getTemperature();

RCGPS Class

GPS navigation and waypoint support

bool begin(HardwareSerial* serial);
void update();
float getLatitude();
float getLongitude();
float distanceTo(float lat, float lon);
float bearingTo(float lat, float lon);

RCPID Class

Professional PID controller

RCPID(float p, float i, float d);
void setGains(float p, float i, float d);
void setOutputLimits(float min, float max);
float compute(float setpoint, float input);
void reset();

Examples

Learn from comprehensive examples

Basic RC Car

Simple RC car with H-Bridge motor and battery monitoring

Motor Control Beginner

Stabilized Plane

IMU-based stabilization with PID controllers

IMU Advanced

GPS Waypoint

Autonomous navigation with GPS waypoints

GPS Advanced

H-Bridge Advanced

Advanced motor control with expo curves

Motor Intermediate