Update setup() description

This commit is contained in:
Scott Lahteine 2021-03-17 19:24:07 -05:00
parent 2fc854eda0
commit de73b9b934

View File

@ -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