void targetConfiguration(void) { #ifdef KISSCC // alternative defaults settings for Beebrain target boardAlignmentMutable()->rollDegrees = 180; boardAlignmentMutable()->pitchDegrees = 0; boardAlignmentMutable()->yawDegrees = 0; #endif }
void updateBoardAlignment(int16_t roll, int16_t pitch) { const float sinAlignYaw = sin_approx(DECIDEGREES_TO_RADIANS(boardAlignment()->yawDeciDegrees)); const float cosAlignYaw = cos_approx(DECIDEGREES_TO_RADIANS(boardAlignment()->yawDeciDegrees)); boardAlignmentMutable()->rollDeciDegrees += -sinAlignYaw * pitch + cosAlignYaw * roll; boardAlignmentMutable()->pitchDeciDegrees += cosAlignYaw * pitch + sinAlignYaw * roll; initBoardAlignment(); }
void targetConfiguration(void) { if (getDetectedMotorType() == MOTOR_BRUSHED) { motorConfigMutable()->dev.motorPwmRate = BRUSHED_MOTORS_PWM_RATE; motorConfigMutable()->minthrottle = 1050; // for 6mm and 7mm brushed } /* Default to Spektrum */ rxConfigMutable()->serialrx_provider = SERIALRX_SPEKTRUM2048; // all DSM* except DSM2 22ms rxConfigMutable()->spektrum_sat_bind = 5; // DSM2 11ms rxConfigMutable()->spektrum_sat_bind_autoreset = 1; rxConfigMutable()->mincheck = 1025; rxConfigMutable()->rcInterpolation = RC_SMOOTHING_MANUAL; rxConfigMutable()->rcInterpolationInterval = 14; parseRcChannels("TAER1234", rxConfigMutable()); mixerConfigMutable()->yaw_motors_reversed = true; imuConfigMutable()->small_angle = 180; blackboxConfigMutable()->p_ratio = 128; /* Breadboard-specific settings for development purposes only */ #if defined(BREADBOARD) boardAlignmentMutable()->pitchDegrees = 90; // vertical breakout board barometerConfigMutable()->baro_hardware = BARO_DEFAULT; // still testing not on V1 or V2 pcb #else barometerConfigMutable()->baro_hardware = BARO_NONE; #endif compassConfigMutable()->mag_hardware = MAG_NONE; systemConfigMutable()->cpu_overclock = 2; //216MHZ pidConfigMutable()->runaway_takeoff_prevention = false; featureEnable((FEATURE_DYNAMIC_FILTER | FEATURE_AIRMODE | FEATURE_ANTI_GRAVITY) ^ FEATURE_RX_PARALLEL_PWM); /* AlienWhoop PIDs tested with 6mm and 7mm motors on most frames */ for (uint8_t pidProfileIndex = 0; pidProfileIndex < PID_PROFILE_COUNT; pidProfileIndex++) { pidProfile_t *pidProfile = pidProfilesMutable(pidProfileIndex); pidProfile->pidSumLimit = 1000; pidProfile->pidSumLimitYaw = 1000; /* AlienWhoop PIDs tested with 6mm and 7mm motors on most frames */ pidProfile->pid[PID_PITCH].P = 115; pidProfile->pid[PID_PITCH].I = 75; pidProfile->pid[PID_PITCH].D = 95; pidProfile->pid[PID_ROLL].P = 110; pidProfile->pid[PID_ROLL].I = 75; pidProfile->pid[PID_ROLL].D = 85; pidProfile->pid[PID_YAW].P = 220; pidProfile->pid[PID_YAW].I = 75; pidProfile->pid[PID_YAW].D = 20; pidProfile->pid[PID_LEVEL].P = 65; pidProfile->pid[PID_LEVEL].I = 65; pidProfile->pid[PID_LEVEL].D = 55; /* Setpoints */ pidProfile->dterm_filter_type = FILTER_BIQUAD; pidProfile->dterm_notch_hz = 0; pidProfile->pid[PID_PITCH].F = 100; pidProfile->pid[PID_ROLL].F = 100; pidProfile->feedForwardTransition = 0; /* Anti-Gravity */ pidProfile->itermThrottleThreshold = 500; pidProfile->itermAcceleratorGain = 5000; pidProfile->levelAngleLimit = 65; } for (uint8_t rateProfileIndex = 0; rateProfileIndex < CONTROL_RATE_PROFILE_COUNT; rateProfileIndex++) { controlRateConfig_t *controlRateConfig = controlRateProfilesMutable(rateProfileIndex); /* RC Rates */ controlRateConfig->rcRates[FD_ROLL] = 218; controlRateConfig->rcRates[FD_PITCH] = 218; controlRateConfig->rcRates[FD_YAW] = 218; /* Classic Expo */ controlRateConfig->rcExpo[FD_ROLL] = 45; controlRateConfig->rcExpo[FD_PITCH] = 45; controlRateConfig->rcExpo[FD_YAW] = 45; /* Super Expo Rates */ controlRateConfig->rates[FD_ROLL] = 0; controlRateConfig->rates[FD_PITCH] = 0; controlRateConfig->rates[FD_YAW] = 0; /* Throttle PID Attenuation (TPA) */ controlRateConfig->dynThrPID = 0; // tpa_rate off controlRateConfig->tpa_breakpoint = 1600; /* Force the clipping mixer at 100% seems better for brushed than default (off) and scaling)? */ controlRateConfig->throttle_limit_type = THROTTLE_LIMIT_TYPE_CLIP; //controlRateConfig->throttle_limit_percent = 100; controlRateConfig->thrExpo8 = 20; // 20% throttle expo } }