MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.28k stars 19.24k forks source link

[BUG] Failed compile with USB flash drive and BTT SKR PRO v1.2 #23579

Closed svd05 closed 1 year ago

svd05 commented 2 years ago

Did you test the latest bugfix-2.0.x code?

Yes, and the problem still exists.

Bug Description

Firmware not compiled with USB flash drive support for BTT SKR PRO v1.2 image image

Bug Timeline

It's new problem. Compiling first time with USB support.

Expected behavior

Firmware will be compiled.

Actual behavior

Errors. Firmware not compiled.

Steps to Reproduce

  1. Configure "Configuration.h, Configuration_adv.h, pins_BTT_SKR_PRO_common.h, platformio.ini" with USB support.
  2. Compiling.

Version of Marlin Firmware

2.0.9.3, 2.0.x-bugfix

Printer model

own

Electronics

BTT SKR Pro v1.2

Add-ons

MAX31865, PT100

Bed Leveling

No response

Your Slicer

Cura

Host Software

Cura

Additional information & file uploads

config.zip

Bob-the-Kuhn commented 2 years ago

~I was not able to compile using any comination of USE_UHS2_USB vs. USE_UHS3_USB and your platformio.ini vs. the default.~

~None of my error messages matched yours.~

~Are you using an article to guide you through adding USB flash drive support? If yes, please include a link to the article.~

~I'm concerned that the Marlin's USB flash drive support doesn't pertain to your hardware. The configuration_adv.h file says it is for MAX3421E breakout board solutions. While the BTT SKR PRO does have two independent USB controllersw built into the CPU, I don't think that Marlin currently can make use of both. Hope I'm wrong on this.~

Bob-the-Kuhn commented 2 years ago

I don't know enough about the USB FLASH drive option to help on this issue.

I did finally notice the comment indicating that the OTG port on boards like yours may be supported.

I also finally noticed the BIGTREE_SKR_PRO_usb_flash_drive build option.

I have not been able to compile using BIGTREE_SKR_PRO_usb_flash_drive. I've tried the following:

I couldn't do any troubleshooting, beyond playing with the above options, because the warnings/errors scrolled beyond my terminal buffer so I couldn't determine what the first error was.

thinkyhead commented 2 years ago

First, it looks like there's no Native USB Serial for this board, so maybe this should be added to the pins file…

#define BOARD_NO_NATIVE_USB

Beyond that, we can only compare with other boards that successfully compile with USE_UHS3_USB and USE_OTG_USB_HOST both enabled. In my testing with your configurations I could only get a successful compile with USE_UHS2_USB enabled and USE_OTG_USB_HOST disabled.

svd05 commented 2 years ago

https://www.facebook.com/201952790264935/posts/big-news-for-everyone-we-have-released-the-new-firmware-which-enables-printing-w/1065478637245675/

https://github.com/MarlinFirmware/Marlin/pull/20299?fbclid=IwAR0h_Mof8EzFT2vjKji7Ozy0s1ZzOsn7OJfDs1d1ogqLvwPDEo63q8ZZamU

USE_UHS2_USB enabled and USE_OTG_USB_HOST disabled

tried and got this: image image image

image etc.

github-actions[bot] commented 2 years ago

This issue has had no activity in the last 60 days. Please add a reply if you want to keep this issue active, otherwise it will be automatically closed within 10 days.

svd05 commented 2 years ago

issue still exist

wcdnail commented 2 years ago

image Change SERIAL_PORT to 1

wcdnail commented 2 years ago

image

USE_UHS2_USB & USE_UHS3_USB must be disabled USE_OTG_USB_HOST must be enabled

On SKR Pro 1.1 board I've got detection issue, but M21 g-code works correctly

svd05 commented 1 year ago

better than it was, but there are still errors Screenshot_20230307_231850

Screenshot_20230307_232636

ellensp commented 1 year ago

@svd05 you did not build with the required build environment BIGTREE_SKR_PRO_usb_flash_drive you used environment BIGTREE_SKR_PRO

svd05 commented 1 year ago

@ellensp, you're right, but this is no changing result. Screenshot_20230309_201811

thisiskeithb commented 1 year ago

First, it looks like there's no Native USB Serial for this board, so maybe this should be added to the pins file…

#define BOARD_NO_NATIVE_USB

It does, but not when using default_envs = BIGTREE_SKR_PRO_usb_flash_drive / USB_FLASH_DRIVE_SUPPORT. #define SERIAL_PORT -1 / usb serial only works with default_envs BIGTREE_SKR_PRO.

You also have to physically move two jumpers to select between the USB-B (serial/host) port or USB-A (flash drive) port:

image

I spent some time porting OP's config to the latest bugfix-2.1.x (dbed3f1) and after fixing the serial ports and disabling USE_UHS3_USB, it compiles and boots. Flash drives can be read after moving the onboard jumpers over.

image

Here's the compiled firmware for easy testing: firmware.bin.zip

Here are the changed files: issue_235789_changed_files_bugfix-2.1.x_commit_dbed3f1.zip

And a diff for good measure:

```diff diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 8818b04..185cea3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -67,7 +67,7 @@ // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMPS_14_EFB + #define MOTHERBOARD BOARD_BTT_SKR_PRO_V1_2 #endif /** @@ -78,7 +78,7 @@ * * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ -#define SERIAL_PORT 0 +#define SERIAL_PORT 1 /** * Serial Port Baud Rate @@ -115,7 +115,7 @@ //#define BLUETOOTH // Name displayed in the LCD "Ready" message and Info menu -//#define CUSTOM_MACHINE_NAME "3D Printer" +#define CUSTOM_MACHINE_NAME "3D Printer" // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 @@ -138,9 +138,9 @@ * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -#define X_DRIVER_TYPE A4988 -#define Y_DRIVER_TYPE A4988 -#define Z_DRIVER_TYPE A4988 +#define X_DRIVER_TYPE TMC2209 +#define Y_DRIVER_TYPE TMC2209 +#define Z_DRIVER_TYPE TMC2209 //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988 @@ -152,7 +152,7 @@ //#define U_DRIVER_TYPE A4988 //#define V_DRIVER_TYPE A4988 //#define W_DRIVER_TYPE A4988 -#define E0_DRIVER_TYPE A4988 +#define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 @@ -539,7 +539,7 @@ * 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below. * 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below. */ -#define TEMP_SENSOR_0 1 +#define TEMP_SENSOR_0 -5 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 @@ -547,7 +547,7 @@ #define TEMP_SENSOR_5 0 #define TEMP_SENSOR_6 0 #define TEMP_SENSOR_7 0 -#define TEMP_SENSOR_BED 0 +#define TEMP_SENSOR_BED 5 #define TEMP_SENSOR_PROBE 0 #define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_COOLER 0 @@ -562,7 +562,7 @@ // Resistor values when using MAX31865 sensors (-5) on TEMP_SENSOR_0 / 1 #if TEMP_SENSOR_IS_MAX_TC(0) #define MAX31865_SENSOR_OHMS_0 100 // (Ω) Typically 100 or 1000 (PT100 or PT1000) - #define MAX31865_CALIBRATION_OHMS_0 430 // (Ω) Typically 430 for Adafruit PT100; 4300 for Adafruit PT1000 + #define MAX31865_CALIBRATION_OHMS_0 427 // (Ω) Typically 430 for Adafruit PT100; 4300 for Adafruit PT1000 #endif #if TEMP_SENSOR_IS_MAX_TC(1) #define MAX31865_SENSOR_OHMS_1 100 @@ -623,7 +623,7 @@ // Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) -#define HEATER_0_MAXTEMP 275 +#define HEATER_0_MAXTEMP 300 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 @@ -631,7 +631,7 @@ #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 -#define BED_MAXTEMP 150 +#define BED_MAXTEMP 115 #define CHAMBER_MAXTEMP 60 /** @@ -739,7 +739,7 @@ * the issues involved, don't use bed PID until someone else verifies that your hardware works. * @section bed temp */ -//#define PIDTEMPBED +#define PIDTEMPBED //#define BED_LIMIT_SWITCHING @@ -815,8 +815,8 @@ #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. - //#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) - //#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) + #define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) + #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) #endif // @section safety @@ -836,7 +836,7 @@ * Note: For Bowden Extruders make this large enough to allow load/unload. */ #define PREVENT_LENGTHY_EXTRUDE -#define EXTRUDE_MAXLENGTH 200 +#define EXTRUDE_MAXLENGTH 120 //=========================================================================== //======================== Thermal Runaway Protection ======================= @@ -1181,7 +1181,7 @@ //#define ENDSTOP_NOISE_THRESHOLD 2 // Check for stuck or disconnected endstops during homing moves. -//#define DETECT_BROKEN_ENDSTOP +#define DETECT_BROKEN_ENDSTOP //============================================================================= //============================== Movement Settings ============================ @@ -1208,18 +1208,18 @@ * Override with M92 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 500 } +#define DEFAULT_AXIS_STEPS_PER_UNIT { 640, 640, 7680, 1680 } /** * Default Max Feed Rate (linear=mm/s, rotational=°/s) * Override with M203 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 } +#define DEFAULT_MAX_FEEDRATE { 100, 100, 5, 30 } -//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 +#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) - #define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } // ...or, set your own edit limits + #define MAX_FEEDRATE_EDIT_VALUES { 200, 200, 10, 40 } // ...or, set your own edit limits #endif /** @@ -1228,11 +1228,11 @@ * Override with M201 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 } +#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 10000 } -//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 +#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 #if ENABLED(LIMITED_MAX_ACCEL_EDITING) - #define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 200, 20000 } // ...or, set your own edit limits + #define MAX_ACCEL_EDIT_VALUES { 3000, 3000, 200, 20000 } // ...or, set your own edit limits #endif /** @@ -1243,7 +1243,7 @@ * M204 R Retract Acceleration * M204 T Travel Acceleration */ -#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves +#define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves #define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts #define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves @@ -1255,11 +1255,11 @@ * When changing speed and direction, if the difference is less than the * value set here, it may happen instantaneously. */ -//#define CLASSIC_JERK +#define CLASSIC_JERK #if ENABLED(CLASSIC_JERK) - #define DEFAULT_XJERK 10.0 - #define DEFAULT_YJERK 10.0 - #define DEFAULT_ZJERK 0.3 + #define DEFAULT_XJERK 15.0 + #define DEFAULT_YJERK 15.0 + #define DEFAULT_ZJERK 0.5 //#define DEFAULT_IJERK 0.3 //#define DEFAULT_JJERK 0.3 //#define DEFAULT_KJERK 0.3 @@ -1269,9 +1269,9 @@ //#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves - //#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 + #define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 #if ENABLED(LIMITED_JERK_EDITING) - #define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } // ...or, set your own edit limits + #define MAX_JERK_EDIT_VALUES { 25, 25, 0.7, 10 } // ...or, set your own edit limits #endif #endif @@ -1641,16 +1641,16 @@ //#define WAIT_FOR_BED_HEATER // Wait for bed to heat back up between probes (to improve accuracy) //#define WAIT_FOR_HOTEND // Wait for hotend to heat back up between probes (to improve accuracy & prevent cold extrude) #endif -//#define PROBING_FANS_OFF // Turn fans off when probing -//#define PROBING_ESTEPPERS_OFF // Turn all extruder steppers off when probing +#define PROBING_FANS_OFF // Turn fans off when probing +#define PROBING_ESTEPPERS_OFF // Turn all extruder steppers off when probing //#define PROBING_STEPPERS_OFF // Turn all steppers off (unless needed to hold position) when probing (including extruders) //#define DELAY_BEFORE_PROBING 200 // (ms) To prevent vibrations from triggering piezo sensors // Require minimum nozzle and/or bed temperature for probing -//#define PREHEAT_BEFORE_PROBING +#define PREHEAT_BEFORE_PROBING #if ENABLED(PREHEAT_BEFORE_PROBING) - #define PROBING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time - #define PROBING_BED_TEMP 50 + #define PROBING_NOZZLE_TEMP 180 // (°C) Only applies to E0 at this time + #define PROBING_BED_TEMP 60 #endif // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 @@ -1690,7 +1690,7 @@ // Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way. #define INVERT_X_DIR false -#define INVERT_Y_DIR true +#define INVERT_Y_DIR false #define INVERT_Z_DIR false //#define INVERT_I_DIR false //#define INVERT_J_DIR false @@ -1743,8 +1743,8 @@ // @section geometry // The size of the printable area -#define X_BED_SIZE 200 -#define Y_BED_SIZE 200 +#define X_BED_SIZE 330 +#define Y_BED_SIZE 330 // Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions. #define X_MIN_POS 0 @@ -1752,7 +1752,7 @@ #define Z_MIN_POS 0 #define X_MAX_POS X_BED_SIZE #define Y_MAX_POS Y_BED_SIZE -#define Z_MAX_POS 200 +#define Z_MAX_POS 350 //#define I_MIN_POS 0 //#define I_MAX_POS 50 //#define J_MIN_POS 0 @@ -1804,7 +1804,7 @@ #endif #if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) - //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD + #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #endif /** @@ -2289,8 +2289,8 @@ * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes) * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.) */ -//#define EEPROM_SETTINGS // Persistent storage with M500 and M501 -//#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release! +#define EEPROM_SETTINGS // Persistent storage with M500 and M501 +#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release! #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM. #define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load #if ENABLED(EEPROM_SETTINGS) @@ -2298,6 +2298,16 @@ //#define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build. #endif +#define I2C_EEPROM +#ifdef MARLIN_EEPROM_SIZE + #undef MARLIN_EEPROM_SIZE +#endif +// uncomment the size of EEPROM you are using. +#define MARLIN_EEPROM_SIZE 0x7FFF // EEPROM end address AT24C256 (32kB) +//#define MARLIN_EEPROM_SIZE 0x3FFF // EEPROM end address AT24C128 (16kB) +//#define MARLIN_EEPROM_SIZE 0x1FFF // EEPROM end address AT24C64 (8kB) +//#define MARLIN_EEPROM_SIZE 0x0FFF // EEPROM end address AT24C32 (4kB) + // @section host // @@ -2327,18 +2337,30 @@ // // Preheat Constants - Up to 10 are supported without changes // -#define PREHEAT_1_LABEL "PLA" -#define PREHEAT_1_TEMP_HOTEND 180 +#define PREHEAT_1_LABEL "PETG" +#define PREHEAT_1_TEMP_HOTEND 245 #define PREHEAT_1_TEMP_BED 70 #define PREHEAT_1_TEMP_CHAMBER 35 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 #define PREHEAT_2_LABEL "ABS" #define PREHEAT_2_TEMP_HOTEND 240 -#define PREHEAT_2_TEMP_BED 110 +#define PREHEAT_2_TEMP_BED 100 #define PREHEAT_2_TEMP_CHAMBER 35 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 +#define PREHEAT_3_LABEL "NYLON" +#define PREHEAT_3_TEMP_HOTEND 240 +#define PREHEAT_3_TEMP_BED 100 +#define PREHEAT_3_TEMP_CHAMBER 35 +#define PREHEAT_3_FAN_SPEED 0 // Value from 0 to 255 + +#define PREHEAT_4_LABEL "PLA" +#define PREHEAT_4_TEMP_HOTEND 180 +#define PREHEAT_4_TEMP_BED 70 +#define PREHEAT_4_TEMP_CHAMBER 35 +#define PREHEAT_4_FAN_SPEED 0 // Value from 0 to 255 + // @section motion /** @@ -2352,11 +2374,11 @@ * P1 Raise the nozzle always to Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS. */ -//#define NOZZLE_PARK_FEATURE +#define NOZZLE_PARK_FEATURE #if ENABLED(NOZZLE_PARK_FEATURE) // Specify a park position as { X, Y, Z_raise } - #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } + #define NOZZLE_PARK_POINT { (X_MIN_POS + 165), (Y_MAX_POS - 10), 30 } #define NOZZLE_PARK_MOVE 0 // Park motion: 0 = XY Move, 1 = X Only, 2 = Y Only, 3 = X before Y, 4 = Y before X #define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance #define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis) @@ -2486,7 +2508,7 @@ * * View the current statistics with M78. */ -//#define PRINTCOUNTER +#define PRINTCOUNTER #if ENABLED(PRINTCOUNTER) #define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print. #endif @@ -2579,14 +2601,14 @@ * SD Card support is disabled by default. If your controller has an SD slot, * you must uncomment the following option or it won't work. */ -//#define SDSUPPORT +#define SDSUPPORT /** * SD CARD: ENABLE CRC * * Use CRC checks and retries on the SD communication. */ -//#define SD_CHECK_AND_RETRY +#define SD_CHECK_AND_RETRY /** * LCD Menu Items @@ -2659,7 +2681,7 @@ // // Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. // -//#define INDIVIDUAL_AXIS_HOMING_MENU +#define INDIVIDUAL_AXIS_HOMING_MENU //#define INDIVIDUAL_AXIS_HOMING_SUBMENU // @@ -2668,7 +2690,7 @@ // If you have a speaker that can produce tones, enable it here. // By default Marlin assumes you have a buzzer with a fixed frequency. // -//#define SPEAKER +#define SPEAKER // // The duration and frequency for the UI feedback sound. @@ -2862,7 +2884,7 @@ // RepRapDiscount FULL GRAPHIC Smart Controller // https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller // -//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER +#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER // // K.3D Full Graphic Smart Controller diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 34f5f38..f119711 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -66,7 +66,7 @@ * * Set this value to 0 to fail on the first error to occur. */ -#define THERMOCOUPLE_MAX_ERRORS 15 +#define THERMOCOUPLE_MAX_ERRORS 20 // // Custom Thermistor 1000 parameters @@ -173,18 +173,18 @@ * Thermocouple Options — for MAX6675 (-2), MAX31855 (-3), and MAX31865 (-5). */ //#define TEMP_SENSOR_FORCE_HW_SPI // Ignore SCK/MOSI/MISO pins; use CS and the default SPI bus. -//#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board. +#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board. //#define MAX31865_SENSOR_WIRES_1 2 //#define MAX31865_SENSOR_WIRES_2 2 -//#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz. +#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz. //#define MAX31865_USE_READ_ERROR_DETECTION // Treat value spikes (20°C delta in under 1s) as read errors. //#define MAX31865_USE_AUTO_MODE // Read faster and more often than 1-shot; bias voltage always on; slight effect on RTD temperature. //#define MAX31865_MIN_SAMPLING_TIME_MSEC 100 // (ms) 1-shot: minimum read interval. Reduces bias voltage effects by leaving sensor unpowered for longer intervals. //#define MAX31865_IGNORE_INITIAL_FAULTY_READS 10 // Ignore some read faults (keeping the temperature reading) to work around a possible issue (#23439). -//#define MAX31865_WIRE_OHMS_0 0.95f // For 2-wire, set the wire resistances for more accurate readings. +#define MAX31865_WIRE_OHMS_0 0.4f // For 2-wire, set the wire resistances for more accurate readings. //#define MAX31865_WIRE_OHMS_1 0.0f //#define MAX31865_WIRE_OHMS_2 0.0f @@ -327,7 +327,7 @@ * and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set * below 2. */ - #define WATCH_TEMP_PERIOD 40 // Seconds + #define WATCH_TEMP_PERIOD 20 // Seconds #define WATCH_TEMP_INCREASE 2 // Degrees Celsius #endif @@ -496,7 +496,7 @@ // Show Temperature ADC value // Enable for M105 to include ADC values read from temperature sensors. -//#define SHOW_TEMP_ADC_VALUES +#define SHOW_TEMP_ADC_VALUES /** * High Temperature Thermistor Support @@ -516,7 +516,7 @@ // The number of consecutive low temperature errors that can occur // before a MINTEMP error is triggered. (Shouldn't be more than 10.) -//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0 +#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 10 /** * The number of milliseconds a hotend will preheat before starting to check @@ -600,7 +600,7 @@ * gets it spinning reliably for a short time before setting the requested speed. * (Does not work on Sanguinololu with FAN_SOFT_PWM.) */ -//#define FAN_KICKSTART_TIME 100 // (ms) +#define FAN_KICKSTART_TIME 200 // (ms) //#define FAN_KICKSTART_POWER 180 // 64-255 // Some coolers may require a non-zero "off" state. @@ -618,7 +618,7 @@ * * Define one or both of these to override the default 0-255 range. */ -//#define FAN_MIN_PWM 50 +#define FAN_MIN_PWM 10 //#define FAN_MAX_PWM 128 /** @@ -689,7 +689,7 @@ #define CHAMBER_AUTO_FAN_PIN -1 #define COOLER_AUTO_FAN_PIN -1 -#define EXTRUDER_AUTO_FAN_TEMPERATURE 50 +#define EXTRUDER_AUTO_FAN_TEMPERATURE 40 #define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed #define CHAMBER_AUTO_FAN_TEMPERATURE 30 #define CHAMBER_AUTO_FAN_SPEED 255 @@ -768,7 +768,7 @@ // If you want endstops to stay on (by default) even when not homing // enable this option. Override at any time with M120, M121. -//#define ENDSTOPS_ALWAYS_ON_DEFAULT +#define ENDSTOPS_ALWAYS_ON_DEFAULT // @section extras @@ -1654,7 +1654,7 @@ // Enable this option and set to HIGH if your SD cards are incorrectly detected. //#define SD_DETECT_STATE HIGH - //#define SD_IGNORE_AT_STARTUP // Don't mount the SD card when starting up + #define SD_IGNORE_AT_STARTUP // Don't mount the SD card when starting up //#define SDCARD_READONLY // Read-only SD card (to save over 2K of flash) //#define GCODE_REPEAT_MARKERS // Enable G-code M808 to set repeat markers and do looping @@ -1754,13 +1754,13 @@ // Allow international symbols in long filenames. To display correctly, the // LCD's font must contain the characters. Check your selected LCD language. - //#define UTF_FILENAME_SUPPORT + #define UTF_FILENAME_SUPPORT - //#define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' + #define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' //#define LONG_FILENAME_WRITE_SUPPORT // Create / delete files with long filenames via M28, M30, and Binary Transfer Protocol //#define M20_TIMESTAMP_SUPPORT // Include timestamps by adding the 'T' flag to M20 commands - //#define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu + #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu //#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!) @@ -1774,9 +1774,9 @@ //#define SD_ABORT_ON_ENDSTOP_HIT_GCODE "G28XY" // G-code to run on endstop hit (e.g., "G28XY" or "G27") #endif - //#define SD_REPRINT_LAST_SELECTED_FILE // On print completion open the LCD Menu and select the same file + #define SD_REPRINT_LAST_SELECTED_FILE // On print completion open the LCD Menu and select the same file - //#define AUTO_REPORT_SD_STATUS // Auto-report media status with 'M27 S' + #define AUTO_REPORT_SD_STATUS // Auto-report media status with 'M27 S' /** * Support for USB thumb drives using an Arduino USB Host Shield or @@ -1792,7 +1792,7 @@ * * [1] On AVR an interrupt-capable pin is best for UHS3 compatibility. */ - //#define USB_FLASH_DRIVE_SUPPORT + #define USB_FLASH_DRIVE_SUPPORT #if ENABLED(USB_FLASH_DRIVE_SUPPORT) /** * USB Host Shield Library @@ -1812,7 +1812,7 @@ /** * Native USB Host supported by some boards (USB OTG) */ - //#define USE_OTG_USB_HOST + #define USE_OTG_USB_HOST #if DISABLED(USE_OTG_USB_HOST) #define USB_CS_PIN SDSS @@ -1845,7 +1845,7 @@ //#define CONFIGURATION_EMBEDDING // Add an optimized binary file transfer mode, initiated with 'M28 B1' - //#define BINARY_FILE_TRANSFER + #define BINARY_FILE_TRANSFER #if ENABLED(BINARY_FILE_TRANSFER) // Include extra facilities (e.g., 'M20 F') supporting firmware upload via BINARY_FILE_TRANSFER @@ -1861,7 +1861,7 @@ * * :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ] */ - //#define SDCARD_CONNECTION LCD + #define SDCARD_CONNECTION ONBOARD // Enable if SD detect is rendered useless (e.g., by using an SD extender) //#define NO_SD_DETECT @@ -1870,7 +1870,7 @@ * Multiple volume support - EXPERIMENTAL. * Adds 'M21 Pm' / 'M21 S' / 'M21 U' to mount SD Card / USB Drive. */ - //#define MULTI_VOLUME + #define MULTI_VOLUME #if ENABLED(MULTI_VOLUME) #define VOLUME_SD_ONBOARD #define VOLUME_USB_FLASH_DRIVE @@ -2183,7 +2183,7 @@ * * Warning: Does not respect endstops! */ -//#define BABYSTEPPING +#define BABYSTEPPING #if ENABLED(BABYSTEPPING) //#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR //#define BABYSTEP_WITHOUT_HOMING @@ -2230,16 +2230,16 @@ * * See https://marlinfw.org/docs/features/lin_advance.html for full instructions. */ -//#define LIN_ADVANCE +#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) #if ENABLED(DISTINCT_E_FACTORS) #define ADVANCE_K { 0.22 } // (mm) Compression length per 1mm/s extruder speed, per extruder #else - #define ADVANCE_K 0.22 // (mm) Compression length applying to all extruders + #define ADVANCE_K 0.15 // (mm) Compression length applying to all extruders #endif //#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L. //#define LA_DEBUG // Print debug information to serial during operation. Disable for production use. - //#define ALLOW_LOW_EJERK // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends. + #define ALLOW_LOW_EJERK // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends. //#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz. #endif @@ -2561,7 +2561,7 @@ * Currently handles M108, M112, M410, M876 * NOTE: Not yet implemented for all platforms. */ -//#define EMERGENCY_PARSER +#define EMERGENCY_PARSER /** * Realtime Reporting (requires EMERGENCY_PARSER) @@ -2762,7 +2762,7 @@ * * Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park. */ -//#define ADVANCED_PAUSE_FEATURE +#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. @@ -2846,9 +2846,9 @@ #define INTERPOLATE true #if AXIS_IS_TMC_CONFIG(X) - #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current. + #define X_CURRENT 1000 // (mA) RMS current. Multiply by 1.414 for peak current. #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing - #define X_MICROSTEPS 16 // 0..256 + #define X_MICROSTEPS 128 // 0..256 #define X_RSENSE 0.11 // Multiplied x1000 for TMC26X #define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ... //#define X_INTERPOLATE true // Enable to override 'INTERPOLATE' for the X axis @@ -2866,9 +2866,9 @@ #endif #if AXIS_IS_TMC_CONFIG(Y) - #define Y_CURRENT 800 + #define Y_CURRENT 1000 #define Y_CURRENT_HOME Y_CURRENT - #define Y_MICROSTEPS 16 + #define Y_MICROSTEPS 64 #define Y_RSENSE 0.11 #define Y_CHAIN_POS -1 //#define Y_INTERPOLATE true @@ -2886,9 +2886,9 @@ #endif #if AXIS_IS_TMC_CONFIG(Z) - #define Z_CURRENT 800 + #define Z_CURRENT 1400 #define Z_CURRENT_HOME Z_CURRENT - #define Z_MICROSTEPS 16 + #define Z_MICROSTEPS 64 #define Z_RSENSE 0.11 #define Z_CHAIN_POS -1 //#define Z_INTERPOLATE true @@ -2987,7 +2987,7 @@ #if AXIS_IS_TMC_CONFIG(E0) #define E0_CURRENT 800 - #define E0_MICROSTEPS 16 + #define E0_MICROSTEPS 64 #define E0_RSENSE 0.11 #define E0_CHAIN_POS -1 //#define E0_INTERPOLATE true @@ -3110,9 +3110,9 @@ * Set *_SERIAL_TX_PIN and *_SERIAL_RX_PIN to match for all drivers * on the same serial port, either here or in your board's pins file. */ - //#define X_SLAVE_ADDRESS 0 - //#define Y_SLAVE_ADDRESS 0 - //#define Z_SLAVE_ADDRESS 0 + #define X_SLAVE_ADDRESS 0 + #define Y_SLAVE_ADDRESS 0 + #define Z_SLAVE_ADDRESS 0 //#define X2_SLAVE_ADDRESS 0 //#define Y2_SLAVE_ADDRESS 0 //#define Z2_SLAVE_ADDRESS 0 @@ -3124,7 +3124,7 @@ //#define U_SLAVE_ADDRESS 0 //#define V_SLAVE_ADDRESS 0 //#define W_SLAVE_ADDRESS 0 - //#define E0_SLAVE_ADDRESS 0 + #define E0_SLAVE_ADDRESS 0 //#define E1_SLAVE_ADDRESS 0 //#define E2_SLAVE_ADDRESS 0 //#define E3_SLAVE_ADDRESS 0 @@ -3177,7 +3177,7 @@ * Define your own with: * { , , hysteresis_start[1..8] } */ - #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below) + #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below) //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below) //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) @@ -3214,7 +3214,7 @@ * M912 - Clear stepper driver overtemperature pre-warn condition flag. * M122 - Report driver parameters (Requires TMC_DEBUG) */ - //#define MONITOR_DRIVER_STATUS + #define MONITOR_DRIVER_STATUS #if ENABLED(MONITOR_DRIVER_STATUS) #define CURRENT_STEP_DOWN 50 // [mA] @@ -3321,13 +3321,13 @@ /** * Step on both rising and falling edge signals (as with a square wave). */ - //#define EDGE_STEPPING + #define EDGE_STEPPING /** * Enable M122 debugging command for TMC stepper drivers. * M122 S0/1 will enable continuous reporting. */ - //#define TMC_DEBUG + #define TMC_DEBUG /** * You can set your own advanced settings by filling in predefined functions. @@ -3743,7 +3743,7 @@ */ #define EXTENDED_CAPABILITIES_REPORT #if ENABLED(EXTENDED_CAPABILITIES_REPORT) - //#define M115_GEOMETRY_REPORT + #define M115_GEOMETRY_REPORT #endif // @section security @@ -3788,11 +3788,11 @@ // @section reporting // Extra options for the M114 "Current Position" report -//#define M114_DETAIL // Use 'M114` for details to check planner calculations +#define M114_DETAIL // Use 'M114` for details to check planner calculations //#define M114_REALTIME // Real current position based on forward kinematics //#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed. -//#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) +#define REPORT_FAN_CHANGE // Report the new fan speed when changed by M106 (and others) // @section gcode @@ -3976,7 +3976,7 @@ * Host Prompt Support enables Marlin to use the host for user prompts so * filament runout and other processes can be managed from the host side. */ -//#define HOST_ACTION_COMMANDS +#define HOST_ACTION_COMMANDS #if ENABLED(HOST_ACTION_COMMANDS) //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76 //#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback @@ -4160,8 +4160,8 @@ * If you add more debug displays, be careful to avoid conflicts! */ #define MAX7219_DEBUG_PRINTER_ALIVE // Blink corner LED of 8x8 matrix to show that the firmware is functioning - #define MAX7219_DEBUG_PLANNER_HEAD 2 // Show the planner queue head position on this and the next LED matrix row - #define MAX7219_DEBUG_PLANNER_TAIL 4 // Show the planner queue tail position on this and the next LED matrix row + #define MAX7219_DEBUG_PLANNER_HEAD 3 // Show the planner queue head position on this and the next LED matrix row + #define MAX7219_DEBUG_PLANNER_TAIL 5 // Show the planner queue tail position on this and the next LED matrix row #define MAX7219_DEBUG_PLANNER_QUEUE 0 // Show the current planner queue depth on this and the next LED matrix row // If you experience stuttering, reboots, etc. this option can reveal how diff --git a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h index ad0f594..b7f15c4 100644 --- a/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h +++ b/Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h @@ -274,6 +274,14 @@ #endif #endif +// CS, MISO, MOSI, and SCK for MAX Thermocouple SPI +#if HAS_MAX_TC + #define TEMP_0_MISO_PIN PC11 + #define TEMP_0_SCK_PIN PC10 + #define TEMP_0_MOSI_PIN PC12 + #define TEMP_0_CS_PIN PG12 +#endif + // // Heaters // diff --git a/platformio.ini b/platformio.ini index e3bdb6f..0f27dc4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,7 +13,7 @@ [platformio] src_dir = Marlin boards_dir = buildroot/share/PlatformIO/boards -default_envs = mega2560 +default_envs = BIGTREE_SKR_PRO_usb_flash_drive include_dir = Marlin extra_configs = Marlin/config.ini ```

github-actions[bot] commented 1 year ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.