Tags: bird-sanctuary/bluejay
Tags
Implement deadtime pwm correction. The correction will be made with a LUT. Previously this correction had to be made in timer1 interrupt that was stuffed, so it penalized commutation. Now the load is moved to a new state machine the like of dshot_tlm_create_packet. dshot_tlm_create_packet has been demistified removing obstructing macros. Fixed bugs Reoptimized t1_int Refactorings Updated comments Updated comment Fixed telemetry state machine to produce frames only if telemetry is enabled Always run at least 1 state of rcpulse state machine so firmware cannot get stuck at max pwm Fixed many bugs Added pwm deadtime lookup table Implemented pwm deadtime adjustment Fixed some bugs Fixed Infinite loop bug and EDT Disable interrupts while applying new pwm config and duty cycle Moved cleaning Flag_Ext_Tele to the place the esc is disarmed to avoid disabling telemetry when desync events are produced Disable telemetry when stall is done Updated deadtime correction LUTs and algorithm to allow being more precise Updated LUTs Fixed LUTs Fixed LUTs Refactored some tags and updated some comments Reset PCA before commutating Reworked commutation to erradicate shoot throughs Only inject deadtime when switching between phases. Seamless deadtimes and seamless valiable pwm Allow to process commands when beacon is disabled Optimized Clear_PCA macro to save 3 cycles Dampening reactivated. Deadtime misconception Fixed a bug Reorganized modules into Modules folder Removed frequency selection options from build system Removed all pwm options from build system Added EDT enabled required to arm safety feature Implemented deadtime correction algorithm Splitted pwm adjustment calculations into 3 substates Added LUTs for precalculated deadtime intermediate values Code reordering for optimization PWM deadtime adjustment removed. The discrepancies found in speed are because of freewheeling when applying deadtime. At higher PWM deadtime takes more cycle time, so during it is being applied motor is freewheeling, so if no drag is being applied RPMs grows and gives the false sensation intransitions that the motor runs faster at higher PWM than at lower PWM in the transition Wait loop balanced to run stms when idle (waiting for zero crossings) Fixed arming bug Fixed force edt to arm bug Simplified and optimized use of Flag_Telemetry_Pending flag Rebalanced the execution of the stms Dynamic pwm high threshold adjustment Added dshot error counter to debug2 frame as bf team request Refactored names for coherence Improved comments Reorganized sources into src folder Fixed Dinamic PWM default threshold Publish PCA0PWM config on Debug0 for testing Bumped version number Fixed wait_for_start_nonzero_wait Improved wait_for_start_nonzero_wait Removed debugging variables Removed BB1 from build system Added a flag to avoid disabling EDT safety when turtle mode is applied Use 24khz when turtle mode is selected (inverted operation mode) sending command 21 Added filter to mitigate overshooting caused by bad PID tuning. Overshooting leads to hot and burning motors and escs Updated wording Disable filter when using turtle mode Added a configuration setting to enable rc pulse noise filtering to avoid stalls, and mitigate desyncs Fixed some bugs Fixed 3d bidirectional operation Removed PWM limit reinitializations to allow temperature protection Enforced PWM limit during startup Cut power on timeout for some cooldown Fixed stall counter Moved stall detection flag to the place it is originated Updated filter to make it more flexible Updated comments and refactored to be coherent Do not boost rcpulse when it is zero (stop) Set 24khz by default
PreviousNext