๐ Documentation โข ๐ Issues โข ๐ก Examples
RCduino 2.0 is a professional-grade Arduino library for building advanced RC vehicles including cars, drones, boats and planes with full IMU, GPS, and safety features.
๐ View Full Documentation Website โ
- Key Features
- Quick Start
- Hardware Requirements
- Examples
- Documentation
- Supported Boards
- What's New in v2.0.0
- Community
- License
- Brushed/Brushless motor support
- H-Bridge dual-pin control (L298N, TB6612)
- ESC calibration
- Speed regulation with ramping
- Multiple brake modes (Coast, Brake, Active)
- PWM/PPM/Analog signal decoding
- 8-channel support
- Channel reverse, trim, expo, and rate
- Fail-safe detection
- Signal validation
- Battery voltage monitoring with smoothing
- Auto cell count detection (1S-12S)
- Multi-chemistry support (LiPo, Li-Ion, NiMH, NiCd)
- Low voltage cutoff
- Per-cell voltage calculation
- Bitwise safety flags (multiple simultaneous warnings)
- Signal loss protection
- Emergency stop
- Battery warnings
- Configurable fail-safe actions
- Full MPU6050 support
- Gyroscope and accelerometer reading
- Complementary filter for sensor fusion
- Pitch, roll, yaw calculation
- Auto-calibration routine
- Temperature monitoring
- NMEA sentence parsing (GGA, RMC)
- Position, altitude, speed tracking
- Satellite count and HDOP
- Distance and bearing calculations
- Waypoint navigation helpers
- Professional PID implementation
- Configurable gains (P, I, D)
- Anti-windup protection
- Output limiting
- CSV and JSON formats
- Configurable data rate
- GPS, IMU, and status streaming
- Custom data support
- Download the latest release from GitHub Releases
- In Arduino IDE: Sketch โ Include Library โ Add .ZIP Library
- Select the downloaded
RCduino.zipfile - Restart Arduino IDE
Add to your platformio.ini:
lib_deps =
RCduino@^2.0.0#include <RCduino.h>
RCduino myVehicle(RC_CAR);
void setup() {
// Add H-Bridge motor (IN1=9, IN2=10)
myVehicle.addMotor(9, 10, BRUSHED_DC);
// Add steering servo
myVehicle.addServo(6);
// Add receiver
myVehicle.addReceiver(PWM_SIGNAL);
myVehicle.getReceiver()->addChannel(0, 2); // Throttle
myVehicle.getReceiver()->addChannel(1, 3); // Steering
// Add battery monitor
myVehicle.addBattery(A0, 11.0); // 11:1 voltage divider
// Add IMU (optional)
myVehicle.addIMU();
myVehicle.begin();
// Calibrate IMU
myVehicle.calibrateIMU();
}
void loop() {
myVehicle.update(); // Handles everything automatically
}
- ESC: Any standard brushless ESC (1000-2000ยตs PWM)
- H-Bridge: L298N, TB6612FNG, DRV8833, or similar
- IMU: MPU6050 (I2C address 0x68)
- GPS: NEO-6M, NEO-7M, or any NMEA-compatible GPS module
Arduino Pin 9 โ IN1
Arduino Pin 10 โ IN2
Motor โ OUT1, OUT2
Arduino SDA โ MPU6050 SDA
Arduino SCL โ MPU6050 SCL
3.3V/5V โ VCC
GND โ GND
GPS TX โ Arduino RX (Serial1)
GPS RX โ Arduino TX (Serial1)
VCC โ 3.3V/5V
GND โ GND
RCduino includes 4 comprehensive examples:
Simple RC car with H-Bridge motor control and battery monitoring. Perfect for beginners.
Features:
- H-Bridge motor control
- Steering servo
- PWM receiver input
- Battery monitoring with auto cell detection
- Speed ramping
Demonstrates advanced motor control features including brake modes and expo curves.
Features:
- Dual H-Bridge motors
- Multiple brake modes (Coast, Brake, Active)
- Channel expo and rate control
- Advanced battery management
- Status LED indicators
IMU-based flight stabilization using PID controllers for pitch and roll.
Features:
- MPU6050 IMU integration
- Dual PID controllers (pitch & roll)
- Auto-leveling mode
- 4-channel receiver support
- Real-time telemetry
Autonomous navigation with GPS waypoint following and heading control.
Features:
- GPS NMEA parsing
- Waypoint navigation
- PID heading controller
- Distance and bearing calculations
- Autonomous mode switching
| Board | Notes | IMU | GPS |
|---|---|---|---|
| Arduino Uno | Full support | โ | โ* |
| Arduino Mega | Best for complex builds | โ | โ |
| Arduino Nano | Compact projects | โ | โ* |
| ESP32 | WiFi/Bluetooth enabled | โ | โ |
*Uno/Nano lack hardware Serial1, use SoftwareSerial for GPS
RCduino v2.0 is a complete rewrite with production-ready features:
- โ Full H-Bridge motor control - Dual-pin control for L298N, TB6612, DRV8833
- โ Speed ramping - Smooth acceleration/deceleration
- โ Multiple brake modes - Coast, Brake, Active Brake
- โ Complete MPU6050 IMU - Gyro, accelerometer, sensor fusion
- โ GPS NMEA parsing - GGA/RMC sentence support, waypoint navigation
- โ PID controller class - Professional implementation with anti-windup
- โ Auto battery detection - 1S-12S with multi-chemistry support
- โ Bitwise safety system - Multiple simultaneous warnings
- โ Channel reverse/trim/expo - Full RC transmitter feature parity
- โ JSON telemetry - Modern data streaming format
- ๐ Fixed memory leak in safety status
- ๐ Improved signal validation
- ๐ Enhanced fail-safe reliability
- ๐ฌ GitHub Discussions - Ask questions, share projects
- ๐ Report Issues - Bug reports and feature requests
- ๐ Documentation - Full API reference and guides
- โญ Star on GitHub - Show your support!
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - Free for personal and commercial use
Copyright (c) 2025 RCduino Development Team
See LICENSE file for details.
Made with โค๏ธ by the RCduino community
Documentation โข
GitHub