An easy-to-use Node.js module for controlling DJI Tello drones.
- Simple and intuitive interface
- Complete error handling
- Support for all Tello SDK 2.0 commands
- Real-time drone state monitoring
- Comprehensive documentation
- Detailed logging (optional)
npm install tello-connect
- Node.js >= 14.0.0
- A DJI Tello drone
- Wi-Fi connection to the drone
const { TelloController } = require('tello-connect');
async function simpleFlight() {
const tello = new TelloController({
debug: true // Optional: enables detailed logging
});
try {
// Initialization
await tello.initialize();
// Battery check
const battery = await tello.getBattery();
console.log(`Battery: ${battery}%`);
// Flight sequence
await tello.takeoff();
await tello.move('up', 50);
await tello.rotate(360);
await tello.land();
} catch (error) {
console.error('Error:', error);
await tello.emergency();
} finally {
tello.disconnect();
}
}
const tello = new TelloController({
ip: '192.168.10.1', // Drone IP (default)
commandPort: 8889, // Command port (default)
statePort: 8890, // State port (default)
debug: true // Enable logging
});
tello.onState((state) => {
console.log('Height:', state.h);
console.log('Battery:', state.bat);
console.log('Flight time:', state.time);
});
initialize()
- Enter SDK modetakeoff()
- Take offland()
- Landemergency()
- Emergency stop
move(direction, distance)
- Movement (up, down, left, right, forward, back)rotate(degrees)
- Rotation (positive = clockwise, negative = counterclockwise)flip(direction)
- Flip (l = left, r = right, f = forward, b = back)
setSpeed(speed)
- Set speed (10-100 cm/s)
getBattery()
- Battery levelgetSpeed()
- Current speedgetTime()
- Flight timegetWifi()
- Wi-Fi signal quality
try {
await tello.move('forward', 50);
} catch (error) {
if (error.message.includes('timed out')) {
console.error('Command timed out');
} else {
console.error('Error:', error.message);
}
}
Contributions are welcome!
FREE TO USE
- DJI and Ryze Tech for the Tello drone
- The Node.js community