|
1120 | 1120 | #if ENABLED(FT_MOTION)
|
1121 | 1121 | #define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
1122 | 1122 | #define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
1123 |
| - #define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers. |
1124 |
| - #define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers. |
1125 |
| - #define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false). |
1126 |
| - #define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain. |
1127 |
| - #define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers. |
1128 |
| - #define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers. |
| 1123 | + #define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers |
| 1124 | + #define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers |
| 1125 | + #define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false) |
| 1126 | + #define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain |
| 1127 | + #define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis |
| 1128 | + #define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis |
| 1129 | + |
| 1130 | + #define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis |
| 1131 | + #define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis |
| 1132 | + |
| 1133 | + //#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters |
1129 | 1134 |
|
1130 | 1135 | /**
|
1131 | 1136 | * Advanced configuration
|
1132 | 1137 | */
|
1133 |
| - #define FTM_BATCH_SIZE 100 // Batch size for trajectory generation; |
1134 |
| - #define FTM_WINDOW_SIZE 200 // Window size for trajectory generation. |
1135 |
| - #define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS) |
1136 |
| - #define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS) |
1137 |
| - #define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update. |
1138 |
| - #define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps. |
1139 |
| - #define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency. |
1140 |
| - #define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!). |
1141 |
| - // Calculate as: |
1142 |
| - // 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV. |
1143 |
| - // (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV. |
1144 |
| - // 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI. |
1145 |
| - // 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI. |
1146 |
| - #define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time. |
1147 |
| - // Calculate as (FTM_STEPPER_FS / FTM_FS). |
1148 |
| - #define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm. |
1149 |
| - // Calculate as (FTM_STEPS_PER_UNIT_TIME / 2). |
1150 |
| - // These values may be configured to adjust duration of loop(). |
1151 |
| - #define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop(). |
1152 |
| - #define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop(). |
1153 |
| - |
1154 |
| - // This value may be configured to adjust duration to consume the command buffer. |
1155 |
| - // Try increasing this value if stepper motion is not smooth. |
1156 |
| - #define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers. |
1157 |
| - |
1158 |
| - //#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters. |
| 1138 | + #define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented) |
| 1139 | + #if ENABLED(FTM_UNIFIED_BWS) |
| 1140 | + #define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2 |
| 1141 | + #else |
| 1142 | + #define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS |
| 1143 | + #define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS |
| 1144 | + #endif |
| 1145 | + |
| 1146 | + #define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS) |
| 1147 | + #define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS) |
| 1148 | + |
| 1149 | + // These values may be configured to adjust the duration of loop(). |
| 1150 | + #define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop() |
| 1151 | + #define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop() |
| 1152 | + |
| 1153 | + #if DISABLED(COREXY) |
| 1154 | + #define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update |
| 1155 | + |
| 1156 | + // Use this to adjust the time required to consume the command buffer. |
| 1157 | + // Try increasing this value if stepper motion is choppy. |
| 1158 | + #define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers |
| 1159 | + // (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start |
| 1160 | + // If you run out of memory, fall back to 3000 and increase progressively |
| 1161 | + #else |
| 1162 | + // CoreXY motion needs a larger buffer size. These values are based on our testing. |
| 1163 | + #define FTM_STEPPER_FS 30000 |
| 1164 | + #define FTM_STEPPERCMD_BUFF_SIZE 6000 |
| 1165 | + #endif |
| 1166 | + |
| 1167 | + #define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time |
| 1168 | + #define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm |
| 1169 | + #define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps |
| 1170 | + |
| 1171 | + #define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency |
| 1172 | + #define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE. |
| 1173 | + #define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!) |
| 1174 | + // Calculate as: |
| 1175 | + // ZV : FTM_RATIO / 2 |
| 1176 | + // ZVD, MZV : FTM_RATIO |
| 1177 | + // 2HEI : FTM_RATIO * 3 / 2 |
| 1178 | + // 3HEI : FTM_RATIO * 2 |
1159 | 1179 | #endif
|
1160 | 1180 |
|
1161 | 1181 | /**
|
|
1470 | 1490 | #define FEEDRATE_CHANGE_BEEP_FREQUENCY 440
|
1471 | 1491 | #endif
|
1472 | 1492 |
|
1473 |
| -// |
1474 |
| -// LCD Backlight Timeout |
1475 |
| -// |
1476 |
| -//#define LCD_BACKLIGHT_TIMEOUT_MINS 1 // (minutes) Timeout before turning off the backlight |
1477 |
| - |
1478 | 1493 | #if HAS_BED_PROBE && ANY(HAS_MARLINUI_MENU, HAS_TFT_LVGL_UI)
|
1479 | 1494 | #define PROBE_OFFSET_WIZARD // Add a Probe Z Offset calibration option to the LCD menu
|
1480 | 1495 | #if ENABLED(PROBE_OFFSET_WIZARD)
|
|
2205 | 2220 | //#define TFT_BTOKMENU_COLOR 0x145F // 00010 100010 11111 Cyan
|
2206 | 2221 | #endif
|
2207 | 2222 |
|
| 2223 | +// |
| 2224 | +// LCD Backlight Timeout |
| 2225 | +// Requires a display with a controllable backlight |
| 2226 | +// |
| 2227 | +//#define LCD_BACKLIGHT_TIMEOUT_MINS 1 // (minutes) Timeout before turning off the backlight |
| 2228 | +#if defined(DISPLAY_SLEEP_MINUTES) || defined(LCD_BACKLIGHT_TIMEOUT_MINS) |
| 2229 | + #define EDITABLE_DISPLAY_TIMEOUT // Edit timeout with M255 S<minutes> and a menu item |
| 2230 | +#endif |
| 2231 | + |
2208 | 2232 | //
|
2209 | 2233 | // ADC Button Debounce
|
2210 | 2234 | //
|
|
2648 | 2672 | //#define FULL_REPORT_TO_HOST_FEATURE // Auto-report the machine status like Grbl CNC
|
2649 | 2673 | #endif
|
2650 | 2674 |
|
2651 |
| -// Bad Serial-connections can miss a received command by sending an 'ok' |
2652 |
| -// Therefore some clients abort after 30 seconds in a timeout. |
2653 |
| -// Some other clients start sending commands while receiving a 'wait'. |
2654 |
| -// This "wait" is only sent when the buffer is empty. 1 second is a good value here. |
| 2675 | +/** |
| 2676 | + * Bad Serial-connections can miss a received command by sending an 'ok' |
| 2677 | + * Therefore some clients abort after 30 seconds in a timeout. |
| 2678 | + * Some other clients start sending commands while receiving a 'wait'. |
| 2679 | + * This "wait" is only sent when the buffer is empty. 1 second is a good value here. |
| 2680 | + */ |
2655 | 2681 | //#define NO_TIMEOUTS 1000 // (ms)
|
2656 | 2682 |
|
2657 | 2683 | // Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
|
|
2664 | 2690 | // For serial echo, the number of digits after the decimal point
|
2665 | 2691 | //#define SERIAL_FLOAT_PRECISION 4
|
2666 | 2692 |
|
| 2693 | +/** |
| 2694 | + * This feature is EXPERIMENTAL so use with caution and test thoroughly. |
| 2695 | + * Enable this option to receive data on the serial ports via the onboard DMA |
| 2696 | + * controller for more stable and reliable high-speed serial communication. |
| 2697 | + * Only some STM32 MCUs are currently supported. |
| 2698 | + * Note: This has no effect on emulated USB serial ports. |
| 2699 | + */ |
| 2700 | +//#define SERIAL_DMA |
| 2701 | + |
2667 | 2702 | /**
|
2668 | 2703 | * Set the number of proportional font spaces required to fill up a typical character space.
|
2669 | 2704 | * This can help to better align the output of commands like `G29 O` Mesh Output.
|
|
3444 | 3479 | /**
|
3445 | 3480 | * TWI/I2C BUS
|
3446 | 3481 | *
|
3447 |
| - * This feature is an EXPERIMENTAL feature so it shall not be used on production |
3448 |
| - * machines. Enabling this will allow you to send and receive I2C data from slave |
3449 |
| - * devices on the bus. |
| 3482 | + * This feature is EXPERIMENTAL but may be useful for custom I2C peripherals. |
| 3483 | + * Enable this to send and receive I2C data from slave devices on the bus. |
3450 | 3484 | *
|
3451 | 3485 | * ; Example #1
|
3452 | 3486 | * ; This macro send the string "Marlin" to the slave device with address 0x63 (99)
|
|
0 commit comments