| 
    Prusa MINI Firmware overview
    
   | 
 
 
 
  
  
 
Go to the documentation of this file.
   33 #include "../Marlin.h" 
   36 #include "../gcode/queue.h" 
   43   #include "../libs/vector_3.h"  
   46 #if ENABLED(FWRETRACT) 
   47   #include "../feature/fwretract.h" 
   50 #if ENABLED(MIXING_EXTRUDER) 
   51   #include "../feature/mixing.h" 
   55   #include "../feature/spindle_laser.h" 
   59 #ifdef MANUAL_FEEDRATE 
  118   #if ENABLED(MIXING_EXTRUDER) 
  126   #if ENABLED(S_CURVE_ACCELERATION) 
  127     uint32_t cruise_rate,                   
 
  130              acceleration_time_inverse,     
 
  131              deceleration_time_inverse;
 
  139   #if ENABLED(LIN_ADVANCE) 
  140     bool use_advance_lead;
 
  141     uint16_t advance_speed,                 
 
  160   #if ENABLED(BARICUDA) 
  161     uint8_t valve_pressure, e_to_p_pressure;
 
  165     uint32_t segment_time_us;
 
  168   #if ENABLED(POWER_LOSS_RECOVERY) 
  174 #define HAS_POSITION_FLOAT ANY(LIN_ADVANCE, SCARA_FEEDRATE_SCALING, GRADIENT_MIX) 
  176 #define BLOCK_MOD(n) ((n)&(BLOCK_BUFFER_SIZE-1)) 
  179    uint32_t max_acceleration_mm_per_s2[
XYZE_N], 
 
  184             retract_acceleration,               
 
  190 #if DISABLED(SKEW_CORRECTION) 
  191   #define XY_SKEW_FACTOR 0 
  192   #define XZ_SKEW_FACTOR 0 
  193   #define YZ_SKEW_FACTOR 0 
  197   #if ENABLED(SKEW_CORRECTION_GCODE) 
  199     #if ENABLED(SKEW_CORRECTION_FOR_Z) 
  202       const float xz = XZ_SKEW_FACTOR, yz = YZ_SKEW_FACTOR;
 
  205     const float xy = XY_SKEW_FACTOR,
 
  206                 xz = XZ_SKEW_FACTOR, yz = YZ_SKEW_FACTOR;
 
  235     #if ENABLED(DISTINCT_E_FACTORS) 
  240       static int16_t flow_percentage[
EXTRUDERS];    
 
  244     #if DISABLED(NO_VOLUMETRICS) 
  246                    volumetric_area_nominal,           
 
  256     #if DISABLED(CLASSIC_JERK) 
  257       static float junction_deviation_mm;       
 
  258       #if ENABLED(LIN_ADVANCE) 
  259         static float max_e_jerk                 
 
  260           #if ENABLED(DISTINCT_E_FACTORS) 
  268       #if HAS_LINEAR_E_JERK 
  280       #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) 
  281         static float z_fade_height, inverse_z_fade_height;
 
  287     #if ENABLED(LIN_ADVANCE) 
  288       static float extruder_advance_K[
EXTRUDERS];
 
  291     #if HAS_POSITION_FLOAT 
  301     #if ENABLED(SD_ABORT_ON_ENDSTOP_HIT) 
  302       static bool abort_on_endstop_hit;
 
  321     static float previous_nominal_speed_sqr;
 
  326     static uint32_t cutoff_long;
 
  328     #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) 
  329       static float last_fade_z;
 
  332     #if ENABLED(DISABLE_INACTIVE_EXTRUDER) 
  337     #endif // DISABLE_INACTIVE_EXTRUDER 
  339     #ifdef XY_FREQUENCY_LIMIT 
  341       #define MAX_FREQ_TIME_US (uint32_t)(1000000.0 / XY_FREQUENCY_LIMIT) 
  343       static unsigned char old_direction_bits;
 
  349       volatile static uint32_t block_buffer_runtime_us; 
 
  375         e_factor[e] = (flow_percentage[e] * 0.01f
 
  376           #if DISABLED(NO_VOLUMETRICS) 
  377             * volumetric_multiplier[e]
 
  389     #if ENABLED(FILAMENT_WIDTH_SENSOR) 
  390       void apply_filament_width_sensor(
const int8_t encoded_ratio);
 
  392       static inline float volumetric_percent(
const bool vol) {
 
  394             ? volumetric_area_nominal / volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]
 
  395             : volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]
 
  400     #if DISABLED(NO_VOLUMETRICS) 
  403         filament_size[e] = v;
 
  411     #if ENABLED(ENABLE_LEVELING_FADE_HEIGHT) 
  421         static float z_fade_factor = 1;
 
  422         if (!z_fade_height) 
return 1;
 
  423         if (rz >= z_fade_height) 
return 0;
 
  424         if (last_fade_z != rz) {
 
  426           z_fade_factor = 1 - rz * inverse_z_fade_height;
 
  428         return z_fade_factor;
 
  431       FORCE_INLINE static void force_fade_recalc() { last_fade_z = -999.999f; }
 
  433       FORCE_INLINE static void set_z_fade_height(
const float &zfh) {
 
  434         z_fade_height = zfh > 0 ? zfh : 0;
 
  435         inverse_z_fade_height = 
RECIPROCAL(z_fade_height);
 
  440         return !z_fade_height || rz < z_fade_height;
 
  451     #if ENABLED(SKEW_CORRECTION) 
  453       FORCE_INLINE static void skew(
float &cx, 
float &cy, 
const float &cz) {
 
  464       FORCE_INLINE static void unskew(
float &cx, 
float &cy, 
const float &cz) {
 
  475     #endif // SKEW_CORRECTION 
  491     #if ENABLED(FWRETRACT) 
  492       static void apply_retract(
float &rz, 
float &e);
 
  494       static void unapply_retract(
float &rz, 
float &e);
 
  498     #if HAS_POSITION_MODIFIERS 
  509         #if ENABLED(SKEW_CORRECTION) 
  515         #if ENABLED(FWRETRACT) 
  530         #if ENABLED(FWRETRACT) 
  531           unapply_retract(pos);
 
  536         #if ENABLED(SKEW_CORRECTION) 
  540     #endif // HAS_POSITION_MODIFIERS 
  644     static bool buffer_segment(
const float &
a, 
const float &
b, 
const float &c, 
const float &e
 
  648       , 
const feedRate_t &fr_mm_s, 
const uint8_t extruder, 
const float &millimeters=0.0
 
  655       , 
const feedRate_t &fr_mm_s, 
const uint8_t extruder, 
const float &millimeters=0.0
 
  661         , fr_mm_s, extruder, millimeters);
 
  677     static bool buffer_line(
const float &rx, 
const float &ry, 
const float &rz, 
const float &e, 
const feedRate_t &fr_mm_s, 
const uint8_t extruder, 
const float millimeters=0.0
 
  678       #
if ENABLED(SCARA_FEEDRATE_SCALING)
 
  679         , 
const float &inv_duration=0.0
 
  684       #
if ENABLED(SCARA_FEEDRATE_SCALING)
 
  685         , 
const float &inv_duration=0.0
 
  688       return buffer_line(cart.
x, cart.
y, cart.
z, cart.
e, fr_mm_s, extruder, millimeters
 
  689         #
if ENABLED(SCARA_FEEDRATE_SCALING)
 
  708     static void set_position_mm(
const float &rx, 
const float &ry, 
const float &rz, 
const float &e);
 
  753         #if ENABLED(SD_FINISHED_STEPPERRELEASE) && defined(SD_FINISHED_RELEASECOMMAND) 
  793           block_buffer_runtime_us -= block->segment_time_us; 
 
  809         clear_block_buffer_runtime(); 
 
  827       static uint16_t block_buffer_runtime() {
 
  835         millis_t bbru = block_buffer_runtime_us;
 
  851       static void clear_block_buffer_runtime() {
 
  859         block_buffer_runtime_us = 0;
 
  869     #if ENABLED(AUTOTEMP) 
  870       static float autotemp_min, autotemp_max, autotemp_factor;
 
  871       static bool autotemp_enabled;
 
  872       static void getHighESpeed();
 
  873       static void autotemp_M104_M109();
 
  876     #if HAS_LINEAR_E_JERK 
  877       #pragma GCC diagnostic push 
  878       #pragma GCC diagnostic ignored "-Wdouble-promotion" 
  880         #define GET_MAX_E_JERK(N) SQRT(SQRT(0.5) * junction_deviation_mm * (N) * RECIPROCAL(1.0 - SQRT(0.5))) 
  881         #if ENABLED(DISTINCT_E_FACTORS) 
  888       #pragma GCC diagnostic pop 
  903     static float estimate_acceleration_distance(
const float &initial_rate, 
const float &target_rate, 
const float &accel) {
 
  904       if (accel == 0) 
return 0; 
 
  905       return (
sq(target_rate) - 
sq(initial_rate)) / (accel * 2);
 
  916     static float intersection_distance(
const float &initial_rate, 
const float &final_rate, 
const float &accel, 
const float &distance) {
 
  917       if (accel == 0) 
return 0; 
 
  918       return (accel * 2 * distance - 
sq(initial_rate) + 
sq(final_rate)) / (accel * 4);
 
  926     static float max_allowable_speed_sqr(
const float &accel, 
const float &target_velocity_sqr, 
const float &distance) {
 
  927       return target_velocity_sqr - 2 * accel * distance;
 
  930     #if ENABLED(S_CURVE_ACCELERATION) 
  934       static float final_speed(
const float &initial_velocity, 
const float &accel, 
const float &distance) {
 
  935         return SQRT(
sq(initial_velocity) + 2 * accel * distance);
 
  939     static void calculate_trapezoid_for_block(
block_t* 
const block, 
const float &entry_factor, 
const float &exit_factor);
 
  941     static void reverse_pass_kernel(
block_t* 
const current, 
const block_t * 
const next);
 
  942     static void forward_pass_kernel(
const block_t * 
const previous, 
block_t* 
const current, 
uint8_t block_index);
 
  944     static void reverse_pass();
 
  945     static void forward_pass();
 
  947     static void recalculate_trapezoids();
 
  949     static void recalculate();
 
  951     #if DISABLED(CLASSIC_JERK) 
  954         float magnitude_sq = 0;
 
  955         LOOP_XYZE(idx) 
if (vector[idx]) magnitude_sq += 
sq(vector[idx]);
 
  956         vector *= 
RSQRT(magnitude_sq);
 
  960         float limit_value = max_value;
 
  966     #endif // !CLASSIC_JERK 
  969 #define PLANNER_XY_FEEDRATE() (_MIN(planner.settings.max_feedrate_mm_s[X_AXIS], planner.settings.max_feedrate_mm_s[Y_AXIS])) 
  
 
#define enable_E2()
Definition: Marlin.h:276
 
#define WITHIN(N, L, H)
Definition: macros.h:195
 
BlockFlagBit
Definition: planner.h:63
 
static void buffer_sync_block()
Definition: planner.cpp:2529
 
T z
Definition: types.h:286
 
#define enable_E0()
Definition: Marlin.h:260
 
static void set_machine_position_mm(const float &a, const float &b, const float &c, const float &e)
Definition: planner.cpp:2721
 
static void set_max_jerk(const AxisEnum axis, float targetValue)
Definition: planner.cpp:2855
 
static FORCE_INLINE bool tooColdToExtrude(const uint8_t)
Definition: temperature.h:314
 
#define SERIAL_CHAR(x)
Definition: serial.h:69
 
#define Y_MIN_POS
Definition: Configuration_A3ides_2209_MINI.h:985
 
#define NOLESS(v, n)
Definition: macros.h:127
 
static FORCE_INLINE void discard_current_block()
Definition: planner.h:820
 
#define DEFAULT_EJERK
Definition: Configuration_A3ides_2209_MINI.h:733
 
static FORCE_INLINE void set_machine_position_mm(const abce_pos_t &abce)
Definition: planner.h:719
 
static FORCE_INLINE bool buffer_segment(abce_pos_t &abce, const feedRate_t &fr_mm_s, const uint8_t extruder, const float &millimeters=0.0)
Definition: planner.h:651
 
#define RSQRT(x)
Definition: macros.h:282
 
#define MIXER_POPULATE_BLOCK()
Definition: mixing.h:72
 
#define sq(x)
Definition: wiring_constants.h:83
 
T z
Definition: types.h:383
 
static void synchronize()
Definition: planner.cpp:1556
 
Definition: planner.h:196
 
#define LIMIT_ACCEL_LONG(AXIS, INDX)
 
#define DEFAULT_MAX_ACCELERATION
Definition: Configuration_A3ides_2209_MINI.h:696
 
#define MINIMAL_STEP_RATE
Definition: planner.cpp:706
 
feedRate_t min_feedrate_mm_s
Definition: planner.h:186
 
volatile uint8_t flag
Definition: planner.h:97
 
static FORCE_INLINE int16_t degTargetHotend(const uint8_t E_NAME)
Definition: temperature.h:562
 
T x
Definition: types.h:286
 
static float get_z(const xy_pos_t &pos)
Definition: mesh_bed_leveling.h:107
 
Planner()
Definition: planner.cpp:232
 
void disable_e_steppers()
Definition: Marlin.cpp:293
 
feedRate_t max_feedrate_mm_s[XYZE_N]
Definition: planner.h:182
 
#define MSG_ERR_COLD_EXTRUDE_STOP
Definition: language.h:242
 
static matrix_3x3 bed_level_matrix
Definition: planner.h:278
 
#define enable_E5()
Definition: Marlin.h:300
 
#define PROGMEM
Definition: pgmspace.h:29
 
#define CORE_IS_XY
Definition: Conditionals_post.h:101
 
static cutter_power_t power
Definition: spindle_laser.h:48
 
GCodeQueue queue
Definition: queue.cpp:28
 
#define BLOCK_MOD(n)
Definition: planner.h:176
 
#define RECIPROCAL(x)
Definition: macros.h:273
 
Planner planner
Definition: planner.cpp:111
 
constexpr xy_pos_t level_fulcrum
Definition: planner.cpp:1369
 
#define enable_E3()
Definition: Marlin.h:284
 
#define UNEAR_ZERO(x)
Definition: macros.h:269
 
static uint32_t command_sdpos()
Definition: power_loss_recovery.h:135
 
Stepper stepper
Definition: stepper.cpp:82
 
static bool buffer_segment(const float &a, const float &b, const float &c, const float &e, const feedRate_t &fr_mm_s, const uint8_t extruder, const float &millimeters=0.0)
Definition: planner.cpp:2568
 
float retract_acceleration
Definition: planner.h:183
 
#define _MAX(V...)
Definition: macros.h:346
 
uint32_t acceleration_steps_per_s2
Definition: planner.h:147
 
static float get_axis_position_mm(const AxisEnum axis)
Definition: planner.cpp:1526
 
static uint32_t max_acceleration_steps_per_s2[XYZE_N]
Definition: planner.h:253
 
static bool _buffer_steps(const xyze_long_t &target, const xyze_pos_t &target_float, feedRate_t fr_mm_s, const uint8_t extruder, const float &millimeters=0.0)
Definition: planner.cpp:1578
 
static bool leveling_active
Definition: planner.h:276
 
#define MIN_STEPS_PER_SEGMENT
Definition: Configuration_A3ides_2209_MINI_adv.h:1108
 
static void advance_e(const float &e_move)
Definition: filwidth.h:80
 
Definition: planner.h:178
 
static void calculate_volumetric_multipliers()
 
#define disable_Z()
Definition: Marlin.h:143
 
static bool is_block_busy(const block_t *const block)
Definition: stepper.cpp:1967
 
#define PGM_P
Definition: pgmspace.h:30
 
T e
Definition: types.h:383
 
static FORCE_INLINE uint8_t movesplanned()
Definition: planner.h:543
 
uint8_t i
Definition: screen_test_graph.c:72
 
Definition: planner.h:210
 
#define _MIN(V...)
Definition: macros.h:333
 
#define LOOP_XYZE_N(VAR)
Definition: types.h:62
 
static volatile uint8_t block_buffer_tail
Definition: planner.h:227
 
AxisEnum
Definition: types.h:36
 
static void wake_up()
Definition: stepper.cpp:342
 
static void endstop_triggered(const AxisEnum axis)
Definition: stepper.cpp:2237
 
#define disable_Y()
Definition: Marlin.h:104
 
#define enable_Z()
Definition: Marlin.h:142
 
#define CIRCLE_AREA(R)
Definition: macros.h:102
 
#define CACHED_SQRT(N, V)
 
#define LIMIT(v, n1, n2)
Definition: macros.h:139
 
#define A(CODE)
Definition: macros.h:75
 
#define IS_KINEMATIC
Definition: Conditionals_LCD.h:545
 
PrintJobRecovery recovery
 
abce_ulong_t steps
Definition: planner.h:107
 
static volatile uint8_t block_buffer_head
Definition: planner.h:227
 
#define STEPPER_ISR_ENABLED()
Definition: HAL.h:143
 
float feedRate_t
Definition: types.h:80
 
static matrix_3x3 transpose(const matrix_3x3 &original)
Definition: vector_3.cpp:131
 
static void endstop_triggered(const AxisEnum axis)
Definition: planner.cpp:1508
 
static xyze_pos_t position_float
Definition: planner.h:292
 
bool extruder_duplication_enabled
Definition: motion.cpp:876
 
const float yz
Definition: planner.h:206
 
static void set_axis_position(const AxisEnum a, const int32_t &v)
Definition: stepper.h:446
 
SpindleLaser cutter
Definition: spindle_laser.cpp:33
 
static FORCE_INLINE void unapply_modifiers(xyze_pos_t &pos, bool leveling=false)
Definition: planner.h:520
 
void set_to_identity()
Definition: vector_3.cpp:94
 
Definition: vector_3.h:73
 
static FORCE_INLINE block_t * get_next_free_block(uint8_t &next_buffer_head, const uint8_t count=1)
Definition: planner.h:564
 
uint8_t cutter_power_t
Definition: spindle_laser.h:42
 
#define HEATER_2_PIN
Definition: pins_COHESION3D_REMIX.h:116
 
#define X_MIN_POS
Definition: Configuration_A3ides_2209_MINI.h:984
 
#define NOMORE(v, n)
Definition: macros.h:133
 
cutter_power_t cutter_power
Definition: planner.h:153
 
FI T magnitude() const
Definition: types.h:295
 
int8_t pin_t
Definition: HAL.h:65
 
#define ABS(a)
Definition: macros.h:266
 
static volatile uint8_t block_buffer_nonbusy
Definition: planner.h:227
 
#define MIXER_BLOCK_FIELD
Definition: mixing.h:71
 
static block_t block_buffer[BLOCK_BUFFER_SIZE]
Definition: planner.h:226
 
#define E_AXIS_N(E)
Definition: Conditionals_LCD.h:454
 
static void refresh_positioning()
Definition: planner.cpp:2806
 
#define AUTO_BED_LEVELING_BILINEAR
Definition: Configuration_A3ides_2209_MINI.h:1092
 
#define FORCE_INLINE
Definition: macros.h:40
 
static FORCE_INLINE void clear_block_buffer()
Definition: planner.h:549
 
T a
Definition: types.h:384
 
static void finish_and_disable()
Definition: planner.cpp:1517
 
#define Y_MAX_POS
Definition: Configuration_A3ides_2209_MINI.h:988
 
#define SERIAL_ECHO_MSG(S)
Definition: serial.h:183
 
abce_long_t position
Definition: planner.h:108
 
#define RADIANS(d)
Definition: macros.h:98
 
T c
Definition: types.h:384
 
#define PSTR(str)
Definition: pgmspace.h:31
 
xyze_pos_t current_position
Definition: motion.cpp:102
 
static FORCE_INLINE void apply_modifiers(xyze_pos_t &pos, bool leveling=false)
Definition: planner.h:499
 
#define LROUND(x)
Definition: macros.h:285
 
static FORCE_INLINE bool leveling_active_at_z(const float &)
Definition: planner.h:447
 
#define HAS_LEVELING
Definition: Conditionals_post.h:1408
 
void add_correction_steps(const int32_t &da, const int32_t &db, const int32_t &dc, const uint8_t dm, block_t *const block)
 
#define BLOCK_BUFFER_SIZE
Definition: Configuration_A3ides_2209_MINI_adv.h:1167
 
void apply_rotation_xyz(const matrix_3x3 &matrix, float &_x, float &_y, float &_z)
Definition: vector_3.cpp:88
 
void init()
Definition: planner.cpp:234
 
#define COUNT(a)
Definition: macros.h:200
 
T b
Definition: types.h:384
 
float entry_speed_sqr
Definition: planner.h:100
 
uint32_t acceleration_rate
Definition: planner.h:133
 
FilamentWidthSensor filwidth
 
#define X_HOME_POS
Definition: Conditionals_post.h:156
 
#define ENABLE_STEPPER_DRIVER_INTERRUPT()
Definition: HAL.h:141
 
static float nominal_mm
Definition: filwidth.h:33
 
#define LOOP_XYZ(VAR)
Definition: types.h:60
 
float travel_acceleration
Definition: planner.h:183
 
#define FLOOR(x)
Definition: macros.h:284
 
float axis_steps_per_mm[XYZE_N]
Definition: planner.h:181
 
#define Y_HOME_POS
Definition: Conditionals_post.h:172
 
#define DISABLED(V...)
Definition: macros.h:178
 
uint32_t final_rate
Definition: planner.h:147
 
float millimeters
Definition: planner.h:100
 
#define CEIL(x)
Definition: macros.h:283
 
#define HAS_POSITION_FLOAT
Definition: planner.h:174
 
float nominal_speed_sqr
Definition: planner.h:100
 
static void refresh_collector(const float proportion=1.0, const uint8_t t=selected_vtool, float(&c)[MIXING_STEPPERS]=collector)
 
float acceleration
Definition: planner.h:183
 
static int32_t triggered_position(const AxisEnum axis)
Definition: stepper.cpp:2258
 
T x
Definition: types.h:383
 
uint8_t baricuda_valve_pressure
 
uint32_t max_acceleration_mm_per_s2[XYZE_N]
Definition: planner.h:179
 
#define SERIAL_ECHOPGM(S)
Definition: serial.h:173
 
static void reset_acceleration_rates()
Definition: planner.cpp:2788
 
#define HEATER_1_PIN
Definition: pins_RAMPS_LINUX.h:196
 
static bool buffer_line(const float &rx, const float &ry, const float &rz, const float &e, const feedRate_t &fr_mm_s, const uint8_t extruder, const float millimeters=0.0)
Definition: planner.cpp:2663
 
#define SERIAL_ECHOLNPAIR(V...)
Definition: serial.h:144
 
#define enable_X()
Definition: Marlin.h:76
 
list a
Definition: createSpeedLookupTable.py:29
 
static FORCE_INLINE void quick_stop()
Definition: stepper.h:375
 
#define enable_Y()
Definition: Marlin.h:103
 
#define L(CODE)
Definition: macros.h:76
 
void disable_all_steppers()
Definition: Marlin.cpp:308
 
static float get_z_correction(const float &rx0, const float &ry0)
Definition: ubl.h:238
 
FI void set(const T px)
Definition: types.h:391
 
#define SQRT(x)
Definition: macros.h:281
 
#define MANUAL_FEEDRATE
Definition: Configuration_A3ides_2209_MINI_adv.h:521
 
T x
Definition: types.h:185
 
float max_entry_speed_sqr
Definition: planner.h:100
 
#define MIXER_STEPPER_LOOP(VAR)
Definition: mixing.h:68
 
#define BLOCK_DELAY_FOR_1ST_MOVE
Definition: planner.cpp:109
 
void do_homing_move(const AxisEnum axis, const float distance, const feedRate_t fr_mm_s=0.0)
Definition: motion.cpp:1232
 
#define enable_E1()
Definition: Marlin.h:268
 
const uint8_t[]
Definition: 404_html.c:3
 
#define DEFAULT_MAX_FEEDRATE
Definition: Configuration_A3ides_2209_MINI.h:687
 
float bilinear_z_offset(const xy_pos_t &raw)
 
const float xz
Definition: planner.h:206
 
uint8_t direction_bits
Definition: planner.h:136
 
#define DISABLE_STEPPER_DRIVER_INTERRUPT()
Definition: HAL.h:142
 
#define HYPOT(x, y)
Definition: macros.h:287
 
static FORCE_INLINE void force_unapply_leveling(xyz_pos_t &raw)
Definition: planner.h:484
 
#define _BV(bit)
Definition: wiring_constants.h:99
 
T y
Definition: types.h:286
 
uint32_t initial_rate
Definition: planner.h:147
 
static float steps_to_mm[XYZE_N]
Definition: planner.h:254
 
#define DEFAULT_NOMINAL_FILAMENT_DIA
Definition: Configuration_A3ides_2209_MINI.h:151
 
static uint16_t cleaning_buffer_counter
Definition: planner.h:231
 
BlockFlag
Definition: planner.h:79
 
void inverse_kinematics(const xyz_pos_t &raw)
 
static FORCE_INLINE bool is_full()
Definition: planner.h:552
 
#define X_MAX_POS
Definition: Configuration_A3ides_2209_MINI.h:987
 
#define disable_X()
Definition: Marlin.h:77
 
#define CBI(A, B)
Definition: macros.h:89
 
uint32_t step_event_count
Definition: planner.h:110
 
static void quick_stop()
Definition: planner.cpp:1475
 
static void set_e_position_mm(const float &e)
Definition: planner.cpp:2764
 
#define enable_E4()
Definition: Marlin.h:292
 
#define MSG_ERR_LONG_EXTRUDE_STOP
Definition: language.h:243
 
void limit_and_warn(float &val, const uint8_t axis, PGM_P const setting_name, const xyze_float_t &max_limit)
Definition: planner.cpp:2812
 
static bool _populate_block(block_t *const block, bool split_move, const xyze_long_t &target, const xyze_pos_t &target_float, feedRate_t fr_mm_s, const uint8_t extruder, const float &millimeters=0.0)
Definition: planner.cpp:1641
 
static FORCE_INLINE uint8_t moves_free()
Definition: planner.h:555
 
#define EXTRUDERS
Definition: Configuration_A3ides_2209_MINI.h:148
 
#define DEBUGGING(F)
Definition: serial.h:47
 
#define FAN_COUNT
Definition: Conditionals_post.h:1292
 
static void check_axes_activity()
Definition: planner.cpp:1180
 
#define pgm_read_dword(addr)
Definition: pgmspace.h:105
 
float acceleration
Definition: planner.h:100
 
#define MINIMUM_PLANNER_SPEED
Definition: Configuration_A3ides_2209_MINI_adv.h:545
 
uint32_t decelerate_after
Definition: planner.h:123
 
static FORCE_INLINE float fade_scaling_factor_for_z(const float &)
Definition: planner.h:445
 
const float xy
Definition: planner.h:205
 
uint8_t baricuda_e_to_p_pressure
 
static FORCE_INLINE uint8_t nonbusy_movesplanned()
Definition: planner.h:546
 
static float triggered_position_mm(const AxisEnum axis)
Definition: planner.cpp:1513
 
uint32_t nominal_rate
Definition: planner.h:147
 
#define TEST(n, b)
Definition: macros.h:81
 
T y
Definition: types.h:185
 
#define XYZE_N
Definition: Conditionals_LCD.h:453
 
static int32_t position(const AxisEnum axis)
Definition: stepper.cpp:2214
 
#define PLANNER_LEVELING
Definition: Conditionals_post.h:1411
 
static block_t * get_current_block()
Definition: planner.h:769
 
static void inject_P(PGM_P const pgcode)
Definition: queue.cpp:206
 
static FORCE_INLINE void set_position_mm(const xyze_pos_t &cart)
Definition: planner.h:709
 
void serialprintPGM(PGM_P str)
Definition: serial.cpp:35
 
#define SBI(A, B)
Definition: macros.h:85
 
const xyze_char_t axis_codes
Definition: types.h:486
 
static planner_settings_t settings
Definition: planner.h:251
 
#define SERIAL_ECHOLNPGM(S)
Definition: serial.h:174
 
static void set_position_mm(const float &rx, const float &ry, const float &rz, const float &e)
Definition: planner.cpp:2741
 
static void tick()
Definition: planner.h:750
 
static void apply_leveling(xyz_pos_t &raw)
Definition: planner.cpp:1381
 
static FORCE_INLINE bool buffer_line(const xyze_pos_t &cart, const feedRate_t &fr_mm_s, const uint8_t extruder, const float millimeters=0.0)
Definition: planner.h:683
 
static void set_max_feedrate(const uint8_t axis, float targetValue)
Definition: planner.cpp:2841
 
list b
Definition: createSpeedLookupTable.py:30
 
void analogWrite(uint32_t ulPin, uint32_t ulValue)
Definition: wiring_analog.c:12
 
#define LOOP_XYZE(VAR)
Definition: types.h:61
 
static void set_max_acceleration(const uint8_t axis, float targetValue)
Definition: planner.cpp:2824
 
void idle()
Definition: Marlin.cpp:629
 
#define READ(IO)
Definition: fastio.h:95
 
#define CORE_IS_XZ
Definition: Conditionals_post.h:102
 
feedRate_t min_travel_feedrate_mm_s
Definition: planner.h:186
 
static void unapply_leveling(xyz_pos_t &raw)
Definition: planner.cpp:1415
 
uint32_t accelerate_until
Definition: planner.h:123
 
Temperature thermalManager
Definition: temperature.cpp:89
 
#define UNUSED(X)
Definition: stm32f4xx_hal_def.h:74
 
#define ARRAY_BY_EXTRUDERS1(v1)
Definition: Conditionals_post.h:534
 
FI void reset()
Definition: types.h:387
 
static volatile uint8_t block_buffer_planned
Definition: planner.h:227
 
static constexpr uint8_t extruder
Definition: planner.h:115
 
uint32_t millis_t
Definition: millis_t.h:26
 
#define LIMIT_ACCEL_FLOAT(AXIS, INDX)
 
#define CORE_IS_YZ
Definition: Conditionals_post.h:103
 
static FORCE_INLINE uint8_t get_current_vtool()
Definition: mixing.h:111
 
static uint8_t delay_before_delivering
Definition: planner.h:232
 
constexpr uint8_t active_extruder
Definition: motion.h:107
 
static void set_position(const int32_t &a, const int32_t &b, const int32_t &c, const int32_t &e)
Definition: stepper.h:437
 
uint32_t min_segment_time_us
Definition: planner.h:179
 
#define ENABLED(V...)
Definition: macros.h:177
 
static FORCE_INLINE bool has_blocks_queued()
Definition: planner.h:762
 
Planner planner
Definition: planner.cpp:111
 
T y
Definition: types.h:383
 
parser
Definition: createSpeedLookupTable.py:14
 
static void refresh()
Definition: spindle_laser.h:56
 
#define STEPPER_TIMER_RATE
Definition: HAL.h:133
 
#define EXTRUDE_MAXLENGTH
Definition: Configuration_A3ides_2209_MINI.h:524
 
static skew_factor_t skew_factor
Definition: planner.h:299