|
|
@ -953,23 +953,92 @@ inline void tmc_standby_setup() { |
|
|
|
} |
|
|
|
|
|
|
|
/**
|
|
|
|
* Marlin entry-point: Set up before the program loop |
|
|
|
* - Set up the kill pin, filament runout, power hold, custom user buttons |
|
|
|
* - Start the serial port |
|
|
|
* Marlin Firmware entry-point. Abandon Hope All Ye Who Enter Here. |
|
|
|
* Setup before the program loop: |
|
|
|
* |
|
|
|
* - Call any special pre-init set for the board |
|
|
|
* - Put TMC drivers into Low Power Standby mode |
|
|
|
* - Init the serial ports (so setup can be debugged) |
|
|
|
* - Set up the kill and suicide pins |
|
|
|
* - Prepare (disable) board JTAG and Debug ports |
|
|
|
* - Init serial for a connected MKS TFT with WiFi |
|
|
|
* - Install Marlin custom Exception Handlers, if set. |
|
|
|
* - Init Marlin's HAL interfaces (for SPI, i2c, etc.) |
|
|
|
* - Init some optional hardware and features: |
|
|
|
* • MAX Thermocouple pins |
|
|
|
* • Duet Smart Effector |
|
|
|
* • Filament Runout Sensor |
|
|
|
* • TMC220x Stepper Drivers (Serial) |
|
|
|
* • PSU control |
|
|
|
* • Power-loss Recovery |
|
|
|
* • L64XX Stepper Drivers (SPI) |
|
|
|
* • Stepper Driver Reset: DISABLE |
|
|
|
* • TMC Stepper Drivers (SPI) |
|
|
|
* • Run BOARD_INIT if defined |
|
|
|
* • ESP WiFi |
|
|
|
* - Get the Reset Reason and report it |
|
|
|
* - Print startup messages and diagnostics |
|
|
|
* - Get EEPROM or default settings |
|
|
|
* - Initialize managers for: |
|
|
|
* • temperature |
|
|
|
* • planner |
|
|
|
* • watchdog |
|
|
|
* • stepper |
|
|
|
* • photo pin |
|
|
|
* • servos |
|
|
|
* • LCD controller |
|
|
|
* • Digipot I2C |
|
|
|
* • Z probe sled |
|
|
|
* • status LEDs |
|
|
|
* • Max7219 |
|
|
|
* - Calibrate the HAL DELAY for precise timing |
|
|
|
* - Init the buzzer, possibly a custom timer |
|
|
|
* - Init more optional hardware: |
|
|
|
* • Color LED illumination |
|
|
|
* • Neopixel illumination |
|
|
|
* • Controller Fan |
|
|
|
* • Creality DWIN LCD (show boot image) |
|
|
|
* • Tare the Probe if possible |
|
|
|
* - Mount the (most likely external) SD Card |
|
|
|
* - Load settings from EEPROM (or use defaults) |
|
|
|
* - Init the Ethernet Port |
|
|
|
* - Init Touch Buttons (for emulated DOGLCD) |
|
|
|
* - Adjust the (certainly wrong) current position by the home offset |
|
|
|
* - Init the Planner::position (steps) based on current (native) position |
|
|
|
* - Initialize more managers and peripherals: |
|
|
|
* • Temperatures |
|
|
|
* • Print Job Timer |
|
|
|
* • Endstops and Endstop Interrupts |
|
|
|
* • Stepper ISR - Kind of Important! |
|
|
|
* • Servos |
|
|
|
* • Servo-based Probe |
|
|
|
* • Photograph Pin |
|
|
|
* • Laser/Spindle tool Power / PWM |
|
|
|
* • Coolant Control |
|
|
|
* • Bed Probe |
|
|
|
* • Stepper Driver Reset: ENABLE |
|
|
|
* • Digipot I2C - Stepper driver current control |
|
|
|
* • Stepper DAC - Stepper driver current control |
|
|
|
* • Solenoid (probe, or for other use) |
|
|
|
* • Home Pin |
|
|
|
* • Custom User Buttons |
|
|
|
* • Red/Blue Status LEDs |
|
|
|
* • Case Light |
|
|
|
* • Prusa MMU filament changer |
|
|
|
* • Fan Multiplexer |
|
|
|
* • Mixing Extruder |
|
|
|
* • BLTouch Probe |
|
|
|
* • I2C Position Encoders |
|
|
|
* • Custom I2C Bus handlers |
|
|
|
* • Enhanced tools or extruders: |
|
|
|
* • Switching Extruder |
|
|
|
* • Switching Nozzle |
|
|
|
* • Parking Extruder |
|
|
|
* • Magnetic Parking Extruder |
|
|
|
* • Switching Toolhead |
|
|
|
* • Electromagnetic Switching Toolhead |
|
|
|
* • Watchdog Timer - Also Kind of Important! |
|
|
|
* • Closed Loop Controller |
|
|
|
* - Run Startup Commands, if defined |
|
|
|
* - Tell host to close Host Prompts |
|
|
|
* - Test Trinamic driver connections |
|
|
|
* - Init Prusa MMU2 filament changer |
|
|
|
* - Init and test BL24Cxx EEPROM |
|
|
|
* - Init Creality DWIN encoder, show faux progress bar |
|
|
|
* - Reset Status Message / Show Service Messages |
|
|
|
* - Init MAX7219 LED Matrix |
|
|
|
* - Init Direct Stepping (Klipper-style motion control) |
|
|
|
* - Init TFT LVGL UI (with 3D Graphics) |
|
|
|
* - Apply Password Lock - Hold for Authentication |
|
|
|
* - Open Touch Screen Calibration screen, if not calibrated |
|
|
|
* - Set Marlin to RUNNING State |
|
|
|
*/ |
|
|
|
void setup() { |
|
|
|
#ifdef BOARD_PREINIT |
|
|
@ -1311,7 +1380,6 @@ void setup() { |
|
|
|
#if PIN_EXISTS(STAT_LED_RED) |
|
|
|
OUT_WRITE(STAT_LED_RED_PIN, LOW); // OFF
|
|
|
|
#endif |
|
|
|
|
|
|
|
#if PIN_EXISTS(STAT_LED_BLUE) |
|
|
|
OUT_WRITE(STAT_LED_BLUE_PIN, LOW); // OFF
|
|
|
|
#endif |
|
|
@ -1364,19 +1432,13 @@ void setup() { |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(MAGNETIC_PARKING_EXTRUDER) |
|
|
|
SETUP_RUN(mpe_settings_init()); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(PARKING_EXTRUDER) |
|
|
|
SETUP_RUN(pe_solenoid_init()); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(SWITCHING_TOOLHEAD) |
|
|
|
#elif ENABLED(MAGNETIC_PARKING_EXTRUDER) |
|
|
|
SETUP_RUN(mpe_settings_init()); |
|
|
|
#elif ENABLED(SWITCHING_TOOLHEAD) |
|
|
|
SETUP_RUN(swt_init()); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD) |
|
|
|
#elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD) |
|
|
|
SETUP_RUN(est_init()); |
|
|
|
#endif |
|
|
|
|
|
|
|