void targetConfiguration(void) { #ifdef BEEBRAIN // alternative defaults settings for Beebrain target motorConfigMutable()->dev.motorPwmRate = 4000; failsafeConfigMutable()->failsafe_delay = 2; failsafeConfigMutable()->failsafe_off_delay = 0; motorConfigMutable()->minthrottle = 1049; gyroConfigMutable()->gyro_lpf = GYRO_LPF_188HZ; gyroConfigMutable()->gyro_soft_lpf_hz = 100; gyroConfigMutable()->gyro_soft_notch_hz_1 = 0; gyroConfigMutable()->gyro_soft_notch_hz_2 = 0; /*for (int channel = 0; channel < NON_AUX_CHANNEL_COUNT; channel++) { rxChannelRangeConfigsMutable(channel)->min = 1180; rxChannelRangeConfigsMutable(channel)->max = 1860; }*/ for (int profileId = 0; profileId < 2; profileId++) { pidProfilesMutable(0)->P8[ROLL] = 60; pidProfilesMutable(0)->I8[ROLL] = 70; pidProfilesMutable(0)->D8[ROLL] = 17; pidProfilesMutable(0)->P8[PITCH] = 80; pidProfilesMutable(0)->I8[PITCH] = 90; pidProfilesMutable(0)->D8[PITCH] = 18; pidProfilesMutable(0)->P8[YAW] = 200; pidProfilesMutable(0)->I8[YAW] = 45; pidProfilesMutable(0)->P8[PIDLEVEL] = 30; pidProfilesMutable(0)->D8[PIDLEVEL] = 30; for (int rateProfileId = 0; rateProfileId < CONTROL_RATE_PROFILE_COUNT; rateProfileId++) { controlRateProfilesMutable(rateProfileId)->rcRate8 = 100; controlRateProfilesMutable(rateProfileId)->rcYawRate8 = 110; controlRateProfilesMutable(rateProfileId)->rcExpo8 = 0; controlRateProfilesMutable(rateProfileId)->rates[FD_ROLL] = 77; controlRateProfilesMutable(rateProfileId)->rates[FD_PITCH] = 77; controlRateProfilesMutable(rateProfileId)->rates[FD_YAW] = 80; pidProfilesMutable(0)->dtermSetpointWeight = 200; pidProfilesMutable(0)->setpointRelaxRatio = 50; } } #endif #if !defined(AFROMINI) && !defined(BEEBRAIN) if (hardwareRevision >= NAZE32_REV5) { // naze rev4 and below used opendrain to PNP for buzzer. Rev5 and above use PP to NPN. beeperDevConfigMutable()->isOpenDrain = false; beeperDevConfigMutable()->isInverted = true; } else { beeperDevConfigMutable()->isOpenDrain = true; beeperDevConfigMutable()->isInverted = false; flashConfigMutable()->csTag = IO_TAG_NONE; } #endif #ifdef MAG_INT_EXTI if (hardwareRevision < NAZE32_REV5) { compassConfigMutable()->interruptTag = IO_TAG(PB12); } #endif }
void targetConfiguration(void) { #ifdef BEEBRAIN // alternative defaults settings for Beebrain target motorConfigMutable()->dev.motorPwmRate = 4000; failsafeConfigMutable()->failsafe_delay = 2; failsafeConfigMutable()->failsafe_off_delay = 0; motorConfigMutable()->minthrottle = 1049; gyroConfigMutable()->gyro_hardware_lpf = GYRO_HARDWARE_LPF_1KHZ_SAMPLE; gyroConfigMutable()->gyro_lowpass_hz = 100; gyroConfigMutable()->gyro_soft_notch_hz_1 = 0; gyroConfigMutable()->gyro_soft_notch_hz_2 = 0; /*for (int channel = 0; channel < NON_AUX_CHANNEL_COUNT; channel++) { rxChannelRangeConfigsMutable(channel)->min = 1180; rxChannelRangeConfigsMutable(channel)->max = 1860; }*/ for (uint8_t pidProfileIndex = 0; pidProfileIndex < MAX_PROFILE_COUNT; pidProfileIndex++) { pidProfile_t *pidProfile = pidProfilesMutable(pidProfileIndex); pidProfile->pid[PID_ROLL].P = 60; pidProfile->pid[PID_ROLL].I = 70; pidProfile->pid[PID_ROLL].D = 17; pidProfile->pid[PID_PITCH].P = 80; pidProfile->pid[PID_PITCH].I = 90; pidProfile->pid[PID_PITCH].D = 18; pidProfile->pid[PID_YAW].P = 200; pidProfile->pid[PID_YAW].I = 45; pidProfile->pid[PID_LEVEL].P = 30; pidProfile->pid[PID_LEVEL].D = 30; pidProfile->pid[PID_PITCH].F = 200; pidProfile->pid[PID_ROLL].F = 200; pidProfile->feedForwardTransition = 50; } for (uint8_t rateProfileIndex = 0; rateProfileIndex < CONTROL_RATE_PROFILE_COUNT; rateProfileIndex++) { controlRateConfig_t *controlRateConfig = controlRateProfilesMutable(rateProfileIndex); controlRateConfig->rcRates[FD_ROLL] = 100; controlRateConfig->rcRates[FD_PITCH] = 100; controlRateConfig->rcRates[FD_YAW] = 110; controlRateConfig->rcExpo[FD_ROLL] = 0; controlRateConfig->rcExpo[FD_PITCH] = 0; controlRateConfig->rates[FD_ROLL] = 77; controlRateConfig->rates[FD_PITCH] = 77; controlRateConfig->rates[FD_YAW] = 80; } #endif #if !defined(AFROMINI) && !defined(BEEBRAIN) if (hardwareRevision >= NAZE32_REV5) { // naze rev4 and below used opendrain to PNP for buzzer. Rev5 and above use PP to NPN. beeperDevConfigMutable()->isOpenDrain = false; beeperDevConfigMutable()->isInverted = true; } else { beeperDevConfigMutable()->isOpenDrain = true; beeperDevConfigMutable()->isInverted = false; flashConfigMutable()->csTag = IO_TAG_NONE; } #endif #ifdef MAG_INT_EXTI if (hardwareRevision < NAZE32_REV5) { compassConfigMutable()->interruptTag = IO_TAG(PB12); } #endif #ifdef BLACKBOX if (hardwareRevision >= NAZE32_REV5) blackboxConfigMutable()->device = BLACKBOX_DEVICE_FLASH; #endif }