|
1600 | 1600 | // Add additional compensation depending on hotend temperature
|
1601 | 1601 | // Note: this values cannot be calibrated and have to be set manually
|
1602 | 1602 | #if ENABLED(PROBE_TEMP_COMPENSATION)
|
1603 |
| - // Max temperature that can be reached by heated bed. |
1604 |
| - // This is required only for the calibration process. |
1605 |
| - #define PTC_MAX_BED_TEMP BED_MAXTEMP |
1606 |
| - |
1607 | 1603 | // Park position to wait for probe cooldown
|
1608 |
| - #define PTC_PARK_POS_X 0.0F |
1609 |
| - #define PTC_PARK_POS_Y 0.0F |
1610 |
| - #define PTC_PARK_POS_Z 100.0F |
| 1604 | + #define PTC_PARK_POS { 0, 0, 100 } |
1611 | 1605 |
|
1612 | 1606 | // Probe position to probe and wait for probe to reach target temperature
|
1613 |
| - #define PTC_PROBE_POS_X 90.0F |
1614 |
| - #define PTC_PROBE_POS_Y 100.0F |
| 1607 | + #define PTC_PROBE_POS { 90, 100 } |
1615 | 1608 |
|
1616 | 1609 | // Enable additional compensation using hotend temperature
|
1617 | 1610 | // Note: this values cannot be calibrated automatically but have to be set manually
|
|
2662 | 2655 | #define SPINDLE_LASER_ACTIVE_HIGH false // Set to "true" if the on/off function is active HIGH
|
2663 | 2656 | #define SPINDLE_LASER_PWM true // Set to "true" if your controller supports setting the speed/power
|
2664 | 2657 | #define SPINDLE_LASER_PWM_INVERT true // Set to "true" if the speed/power goes up when you want it to go slower
|
2665 |
| - #define SPINDLE_LASER_POWERUP_DELAY 5000 // (ms) Delay to allow the spindle/laser to come up to speed/power |
2666 |
| - #define SPINDLE_LASER_POWERDOWN_DELAY 5000 // (ms) Delay to allow the spindle to stop |
| 2658 | + |
| 2659 | + #define SPINDLE_LASER_FREQUENCY 2500 // (Hz) Spindle/laser frequency (only on supported HALs: AVR and LPC) |
| 2660 | + |
| 2661 | + /** |
| 2662 | + * Speed / Power can be set ('M3 S') and displayed in terms of: |
| 2663 | + * - PWM (S0 - S255) |
| 2664 | + * - PERCENT (S0 - S100) |
| 2665 | + * - RPM (S0 - S50000) Best for use with a spindle |
| 2666 | + */ |
| 2667 | + #define CUTTER_POWER_DISPLAY PWM |
| 2668 | + |
| 2669 | + /** |
| 2670 | + * Relative mode uses relative range (SPEED_POWER_MIN to SPEED_POWER_MAX) instead of normal range (0 to SPEED_POWER_MAX) |
| 2671 | + * Best use with SuperPID router controller where for example S0 = 5,000 RPM and S255 = 30,000 RPM |
| 2672 | + */ |
| 2673 | + //#define CUTTER_POWER_RELATIVE // Set speed proportional to [SPEED_POWER_MIN...SPEED_POWER_MAX] instead of directly |
2667 | 2674 |
|
2668 | 2675 | #if ENABLED(SPINDLE_FEATURE)
|
2669 | 2676 | //#define SPINDLE_CHANGE_DIR // Enable if your spindle controller can change spindle direction
|
2670 | 2677 | #define SPINDLE_CHANGE_DIR_STOP // Enable if the spindle should stop before changing spin direction
|
2671 | 2678 | #define SPINDLE_INVERT_DIR false // Set to "true" if the spin direction is reversed
|
2672 | 2679 |
|
| 2680 | + #define SPINDLE_LASER_POWERUP_DELAY 5000 // (ms) Delay to allow the spindle/laser to come up to speed/power |
| 2681 | + #define SPINDLE_LASER_POWERDOWN_DELAY 5000 // (ms) Delay to allow the spindle to stop |
| 2682 | + |
2673 | 2683 | /**
|
2674 |
| - * The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power |
| 2684 | + * M3/M4 uses the following equation to convert speed/power to PWM duty cycle |
| 2685 | + * Power = ((DC / 255 * 100) - SPEED_POWER_INTERCEPT)) * (1 / SPEED_POWER_SLOPE) |
| 2686 | + * where PWM DC varies from 0 to 255 |
2675 | 2687 | *
|
2676 |
| - * SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT |
2677 |
| - * where PWM duty cycle varies from 0 to 255 |
2678 |
| - * |
2679 |
| - * set the following for your controller (ALL MUST BE SET) |
| 2688 | + * Set these required parameters for your controller |
2680 | 2689 | */
|
2681 |
| - #define SPEED_POWER_SLOPE 118.4 |
2682 |
| - #define SPEED_POWER_INTERCEPT 0 |
2683 |
| - #define SPEED_POWER_MIN 5000 |
2684 |
| - #define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM |
| 2690 | + #define SPEED_POWER_SLOPE 118.4 // SPEED_POWER_SLOPE = SPEED_POWER_MAX / 255 |
| 2691 | + #define SPEED_POWER_INTERCEPT 0 |
| 2692 | + #define SPEED_POWER_MIN 5000 |
| 2693 | + #define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM |
| 2694 | + #define SPEED_POWER_STARTUP 25000 // The default value for speed power when M3 is called without arguments |
| 2695 | + |
2685 | 2696 | #else
|
2686 |
| - #define SPEED_POWER_SLOPE 0.3922 |
2687 |
| - #define SPEED_POWER_INTERCEPT 0 |
2688 |
| - #define SPEED_POWER_MIN 10 |
2689 |
| - #define SPEED_POWER_MAX 100 // 0-100% |
| 2697 | + |
| 2698 | + #define SPEED_POWER_SLOPE 0.3922 // SPEED_POWER_SLOPE = SPEED_POWER_MAX / 255 |
| 2699 | + #define SPEED_POWER_INTERCEPT 0 |
| 2700 | + #define SPEED_POWER_MIN 0 |
| 2701 | + #define SPEED_POWER_MAX 100 // 0-100% |
| 2702 | + #define SPEED_POWER_STARTUP 80 // The default value for speed power when M3 is called without arguments |
| 2703 | + |
| 2704 | + /** |
| 2705 | + * Enable inline laser power to be handled in the planner / stepper routines. |
| 2706 | + * Inline power is specified by the I (inline) flag in an M3 command (e.g., M3 S20 I) |
| 2707 | + * or by the 'S' parameter in G0/G1/G2/G3 moves (see LASER_MOVE_POWER). |
| 2708 | + * |
| 2709 | + * This allows the laser to keep in perfect sync with the planner and removes |
| 2710 | + * the powerup/down delay since lasers require negligible time. |
| 2711 | + */ |
| 2712 | + #define LASER_POWER_INLINE |
| 2713 | + |
| 2714 | + #if ENABLED(LASER_POWER_INLINE) |
| 2715 | + /** |
| 2716 | + * Scale the laser's power in proportion to the movement rate. |
| 2717 | + * |
| 2718 | + * - Sets the entry power proportional to the entry speed over the nominal speed. |
| 2719 | + * - Ramps the power up every N steps to approximate the speed trapezoid. |
| 2720 | + * - Due to the limited power resolution this is only approximate. |
| 2721 | + */ |
| 2722 | + #define LASER_POWER_INLINE_TRAPEZOID |
| 2723 | + |
| 2724 | + /** |
| 2725 | + * Continuously calculate the current power (nominal_power * current_rate / nominal_rate). |
| 2726 | + * Required for accurate power with non-trapezoidal acceleration (e.g., S_CURVE_ACCELERATION). |
| 2727 | + * This is a costly calculation so this option is discouraged on 8-bit AVR boards. |
| 2728 | + * |
| 2729 | + * LASER_POWER_INLINE_TRAPEZOID_CONT_PER defines how many step cycles there are between power updates. If your |
| 2730 | + * board isn't able to generate steps fast enough (and you are using LASER_POWER_INLINE_TRAPEZOID_CONT), increase this. |
| 2731 | + * Note that when this is zero it means it occurs every cycle; 1 means a delay wait one cycle then run, etc. |
| 2732 | + */ |
| 2733 | + //#define LASER_POWER_INLINE_TRAPEZOID_CONT |
| 2734 | + |
| 2735 | + /** |
| 2736 | + * Stepper iterations between power updates. Increase this value if the board |
| 2737 | + * can't keep up with the processing demands of LASER_POWER_INLINE_TRAPEZOID_CONT. |
| 2738 | + * Disable (or set to 0) to recalculate power on every stepper iteration. |
| 2739 | + */ |
| 2740 | + //#define LASER_POWER_INLINE_TRAPEZOID_CONT_PER 10 |
| 2741 | + |
| 2742 | + /** |
| 2743 | + * Include laser power in G0/G1/G2/G3/G5 commands with the 'S' parameter |
| 2744 | + */ |
| 2745 | + //#define LASER_MOVE_POWER |
| 2746 | + |
| 2747 | + #if ENABLED(LASER_MOVE_POWER) |
| 2748 | + // Turn off the laser on G0 moves with no power parameter. |
| 2749 | + // If a power parameter is provided, use that instead. |
| 2750 | + //#define LASER_MOVE_G0_OFF |
| 2751 | + #endif |
| 2752 | + |
| 2753 | + /** |
| 2754 | + * Inline flag inverted |
| 2755 | + * |
| 2756 | + * WARNING: M5 will NOT turn off the laser unless another move |
| 2757 | + * is done (so G-code files must end with 'M5 I'). |
| 2758 | + */ |
| 2759 | + //#define LASER_POWER_INLINE_INVERT |
| 2760 | + |
| 2761 | + /** |
| 2762 | + * Continuously apply inline power. ('M3 S3' == 'G1 S3' == 'M3 S3 I') |
| 2763 | + * |
| 2764 | + * The laser might do some weird things, so only enable this |
| 2765 | + * feature if you understand the implications. |
| 2766 | + */ |
| 2767 | + //#define LASER_POWER_INLINE_CONTINUOUS |
| 2768 | + |
| 2769 | + #else |
| 2770 | + |
| 2771 | + #define SPINDLE_LASER_POWERUP_DELAY 50 // (ms) Delay to allow the spindle/laser to come up to speed/power |
| 2772 | + #define SPINDLE_LASER_POWERDOWN_DELAY 50 // (ms) Delay to allow the spindle to stop |
| 2773 | + |
| 2774 | + #endif |
2690 | 2775 | #endif
|
2691 | 2776 | #endif
|
2692 | 2777 |
|
|
0 commit comments