Pluto-IDE is the professional development environment required to build, flash, and monitor firmware using the MagisV2 library on Pluto Drones.
Flight controller configuration including PID parameters and system settings.
PIDtypedef struct {
uint8_t p; // Proportional gain
uint8_t i; // Integral gain
uint8_t d; // Derivative gain
} PID;
pid_profile_etypedef enum {
PID_ROLL, // Roll axis PID
PID_PITCH, // Pitch axis PID
PID_YAW, // Yaw axis PID
PID_ALT, // Altitude PID
PID_USER // User-defined PID
} pid_profile_e;
failsafe_etypedef enum {
LOW_BATTERY, // Low battery failsafe
INFLIGHT_LOW_BATTERY, // In-flight low battery failsafe
CRASH, // Crash detection failsafe
ALL // All failsafes
} failsafe_e;
void setUserLoopFrequency(float frequency)Sets main control loop frequency (3.5-2000 Hz).
void get_PIDProfile(pid_profile_e PROFILE, PID *pid)Retrieves PID gains for specified profile.
void set_PIDProfile(pid_profile_e PROFILE, PID *pid)Updates PID gains for specified profile.
void setDefault_PIDProfile(void)Resets all PID profiles to default values.
int32_t getDesiredAngle(angle_e ANGLE) - Get desired anglevoid setDesiredAngle(angle_e ANGLE, int32_t angle) - Set desired angleint32_t getDesiredRate(angle_e ANGLE) - Get desired ratevoid setDesiredRate(angle_e ANGLE, int32_t rate) - Set desired rateint32_t getDesiredPositions(axis_e AXIS) - Get desired positionvoid setDesiredPosition(axis_e AXIS, int32_t position) - Set desired positionvoid DesiredPosition_setRelative(axis_e AXIS, int32_t position) - Set relative positionvoid Failsafe_enable(failsafe_e FAILSAFE) - Enable failsafevoid Failsafe_disable(failsafe_e FAILSAFE) - Disable failsafe// Set loop frequency
setUserLoopFrequency(100.0);
// Configure PID
PID rollPID = {50, 25, 15};
set_PIDProfile(PID_ROLL, &rollPID);
// Set desired angles
setDesiredAngle(AG_ROLL, 150); // 15 degrees
setDesiredAngle(AG_PITCH, -100); // -10 degrees
// Enable failsafes
Failsafe_enable(LOW_BATTERY);
