Browse Source

first commit

current
bigtreetech 7 months ago
parent
commit
df17583813
796 changed files with 29622 additions and 17954 deletions
  1. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/.github/ISSUE_TEMPLATE/feature_request.md
  2. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/.github/pull_request_template.md
  3. +2
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/.github/workflows/test-builds.yml
  4. +2
    -3
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/LICENSE
  5. +169
    -75
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Configuration.h
  6. +59
    -43
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Configuration_adv.h
  7. BIN
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Marlin.zip
  8. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Version.h
  9. +11
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/HAL.h
  10. +18
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/MarlinSerial.cpp
  11. +17
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/MarlinSerial.h
  12. +5
    -3
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/ServoTimers.h
  13. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/inc/Conditionals_LCD.h
  14. +2
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/inc/SanityCheck.h
  15. +1
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/HAL.cpp
  16. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/inc/Conditionals_LCD.h
  17. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/inc/SanityCheck.h
  18. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/usb/arduino_due_x.h
  19. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h
  20. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/ESP32/inc/SanityCheck.h
  21. +1
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/ESP32/ota.cpp
  22. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/HAL.h
  23. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h
  24. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LINUX/inc/SanityCheck.h
  25. +228
    -24
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/HAL_SPI.cpp
  26. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/fast_pwm.cpp
  27. +11
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/inc/Conditionals_LCD.h
  28. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/inc/SanityCheck.h
  29. +127
    -13
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/include/SPI.h
  30. +153
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/tft/tft_spi.cpp
  31. +77
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/tft/tft_spi.h
  32. +129
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/tft/xpt2046.cpp
  33. +80
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/tft/xpt2046.h
  34. +14
    -13
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/SAMD51/endstop_interrupts.h
  35. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/SAMD51/inc/Conditionals_LCD.h
  36. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/SAMD51/inc/SanityCheck.h
  37. +5
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/HAL.h
  38. +54
    -19
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/Sd2Card_sdio_stm32duino.cpp
  39. +5
    -5
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/SoftwareSerial.cpp
  40. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/inc/SanityCheck.h
  41. +180
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/tft/tft_fsmc.cpp
  42. +160
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/tft/tft_fsmc.h
  43. +212
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/tft/tft_spi.cpp
  44. +67
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/tft/tft_spi.h
  45. +185
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/tft/xpt2046.cpp
  46. +86
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32/tft/xpt2046.h
  47. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/SPI.cpp
  48. +2
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/SPI.h
  49. +0
    -335
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/dogm/u8g_com_stm32duino_fsmc.cpp
  50. +7
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/inc/Conditionals_LCD.h
  51. +6
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/inc/SanityCheck.h
  52. +57
    -154
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/tft/tft_fsmc.cpp
  53. +71
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/tft/tft_fsmc.h
  54. +149
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/tft/tft_spi.cpp
  55. +72
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/tft/tft_spi.h
  56. +141
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/tft/xpt2046.cpp
  57. +80
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32F1/tft/xpt2046.h
  58. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32_F4_F7/STM32F7/TMC2660.cpp
  59. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32_F4_F7/inc/Conditionals_LCD.h
  60. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/STM32_F4_F7/inc/SanityCheck.h
  61. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/TEENSY31_32/inc/Conditionals_LCD.h
  62. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/TEENSY31_32/inc/SanityCheck.h
  63. +4
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/TEENSY35_36/inc/Conditionals_LCD.h
  64. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/TEENSY35_36/inc/SanityCheck.h
  65. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp
  66. +50
    -23
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/MarlinCore.cpp
  67. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/MarlinCore.h
  68. +11
    -3
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/core/boards.h
  69. +9
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/core/language.h
  70. +32
    -19
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/core/macros.h
  71. +0
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/core/multi_language.cpp
  72. +3
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/babystep.cpp
  73. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/bedlevel/ubl/ubl.cpp
  74. +3
    -3
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/bedlevel/ubl/ubl_G29.cpp
  75. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/binary_stream.cpp
  76. +0
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/binary_stream.h
  77. +25
    -23
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/caselight.cpp
  78. +21
    -5
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/caselight.h
  79. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/dac/dac_mcp4728.cpp
  80. +19
    -30
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/direct_stepping.cpp
  81. +1
    -5
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/direct_stepping.h
  82. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/e_parser.cpp
  83. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/e_parser.h
  84. +43
    -17
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/leds.cpp
  85. +44
    -9
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/leds.h
  86. +58
    -9
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/neopixel.cpp
  87. +66
    -13
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/neopixel.h
  88. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/pca9533.cpp
  89. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/pca9533.h
  90. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/pca9632.cpp
  91. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/pca9632.h
  92. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/printer_event_leds.cpp
  93. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/leds/printer_event_leds.h
  94. +58
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/password/password.cpp
  95. +57
    -0
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/password/password.h
  96. +4
    -3
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/pause.cpp
  97. +2
    -3
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/power.cpp
  98. +2
    -2
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/powerloss.cpp
  99. +1
    -1
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/powerloss.h
  100. +0
    -8
      BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/feature/runout.cpp

+ 1
- 1
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/.github/ISSUE_TEMPLATE/feature_request.md View File

@ -2,7 +2,7 @@
name: Feature request
about: Request a Feature
title: "[FR] (feature request title)"
labels: ''
labels: 'T: Feature Request'
assignees: ''
---


+ 4
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/.github/pull_request_template.md View File

@ -14,6 +14,10 @@ We must be able to understand your proposed change from this description. If we
<!-- What does this fix or improve? -->
### Configurations
<!-- Attach any Configuration.h, Configuration_adv.h, or platformio.ini files needed to compile/test your Pull Request. -->
### Related Issues
<!-- Whether this fixes a bug or fulfills a feature request, please list any related Issues here. -->

+ 2
- 1
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/.github/workflows/test-builds.yml View File

@ -67,6 +67,7 @@ jobs:
- BIGTREE_SKR_PRO
- BIGTREE_GTR_V1_0
- mks_robin
- mks_robin_stm32
- ARMED
- FYSETC_S6
- STM32F070RB_malyan
@ -77,6 +78,7 @@ jobs:
- mks_robin_pro
- STM32F103RET6_creality
- LERDGEX
- mks_robin_nano35
# Put lengthy tests last
@ -93,7 +95,6 @@ jobs:
#- at90usb1286_dfu
#- STM32F103CB_malyan
#- mks_robin_mini
#- mks_robin_nano
steps:


+ 2
- 3
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/LICENSE View File

@ -3,7 +3,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (c) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Copyright (c) 2007 Free Software Foundation, Inc. <https://www.fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@ -673,5 +673,4 @@ into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/philosophy/why-not-lgpl.html>.
<https://www.gnu.org/licenses/why-not-lgpl.html>.

+ 169
- 75
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Configuration.h View File

@ -132,7 +132,7 @@
#endif
// Name displayed in the LCD "Ready" message and Info menu
//#define CUSTOM_MACHINE_NAME "3D Printer"
//#define CUSTOM_MACHINE_NAME "Ender-3"
// 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
@ -177,7 +177,7 @@
#endif
/**
* Prusa Multi-Material Unit v2
* Průša Multi-Material Unit v2
*
* Requires NOZZLE_PARK_FEATURE to park print head in case MMU unit fails.
* Requires EXTRUDERS = 5
@ -235,8 +235,8 @@
#elif ENABLED(MAGNETIC_PARKING_EXTRUDER)
#define MPE_FAST_SPEED 9000 // (mm/m) Speed for travel before last distance point
#define MPE_SLOW_SPEED 4500 // (mm/m) Speed for last distance travel to park and couple
#define MPE_FAST_SPEED 9000 // (mm/min) Speed for travel before last distance point
#define MPE_SLOW_SPEED 4500 // (mm/min) Speed for last distance travel to park and couple
#define MPE_TRAVEL_DISTANCE 10 // (mm) Last distance point
#define MPE_COMPENSATION 0 // Offset Compensation -1 , 0 , 1 (multiplier) only for coupling
@ -284,8 +284,8 @@
#if ENABLED(PRIME_BEFORE_REMOVE)
#define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm) Extruder prime length
#define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm) Retract after priming length
#define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/m) Extruder prime feedrate
#define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/m) Extruder retract feedrate
#define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/min) Extruder prime feedrate
#define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/min) Extruder retract feedrate
#endif
#elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm) Z raise for switching
@ -330,7 +330,7 @@
//#define PSU_NAME "Power Supply"
#if ENABLED(PSU_CONTROL)
#define PSU_ACTIVE_HIGH false // Set 'false' for ATX, 'true' for X-Box
#define PSU_ACTIVE_STATE LOW // Set 'LOW' for ATX, 'HIGH' for X-Box
//#define PSU_DEFAULT_OFF // Keep power off until enabled directly with M80
//#define PSU_POWERUP_DELAY 250 // (ms) Delay for the PSU to warm up to full power
@ -373,7 +373,7 @@
* 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
* 5 : 100K thermistor - ATC Semitec 104GT-2/104NT-4-R025H42G (Used in ParCan, J-Head, and E3D) (4.7k pullup)
* 501 : 100K Zonestar (Tronxy X3A) Thermistor
* 502 : 100K Zonestar Thermistor used by hot bed in Zonestar Prusa P802M
* 502 : 100K Zonestar Thermistor used by hot bed in Zonestar Průša P802M
* 512 : 100k RPW-Ultra hotend thermistor (4.7k pullup)
* 6 : 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
* 7 : 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
@ -541,9 +541,9 @@
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
#define DEFAULT_bedKp 70.13//10.00
#define DEFAULT_bedKi 11.27//.023
#define DEFAULT_bedKd 290.86//305.4
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
@ -684,17 +684,17 @@
* TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
* :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', '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 TMC2208
//#define Y_DRIVER_TYPE TMC2209
//#define Z_DRIVER_TYPE TMC2209
//#define X_DRIVER_TYPE TMC5160
//#define Y_DRIVER_TYPE TMC5160
//#define Z_DRIVER_TYPE TMC5160
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE TMC2209
//#define E1_DRIVER_TYPE TMC2660
//#define E2_DRIVER_TYPE TMC2660
//#define E0_DRIVER_TYPE TMC5160
//#define E1_DRIVER_TYPE TMC5160
//#define E2_DRIVER_TYPE TMC5160
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
@ -964,24 +964,34 @@
//
/**
* Z Probe to nozzle (X,Y) offset, relative to (0, 0).
* Nozzle-to-Probe offsets { X, Y, Z }
*
* In the following example the X and Y offsets are both positive:
* - Use a caliper or ruler to measure the distance from the tip of
* the Nozzle to the center-point of the Probe in the X and Y axes.
* - For the Z offset use your best known value and adjust at runtime.
* - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc.
*
* #define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
* Assuming the typical work area orientation:
* - Probe to RIGHT of the Nozzle has a Positive X offset
* - Probe to LEFT of the Nozzle has a Negative X offset
* - Probe in BACK of the Nozzle has a Positive Y offset
* - Probe in FRONT of the Nozzle has a Negative Y offset
*
* Some examples:
* #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1"
* #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2"
* #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3"
* #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4"
*
* +-- BACK ---+
* | |
* L | (+) P | R <-- probe (20,20)
* E | | I
* F | (-) N (+) | G <-- nozzle (10,10)
* T | | H
* | (-) | T
* | |
* | [+] |
* L | 1 | R <-- Example "1" (right+, back+)
* E | 2 | I <-- Example "2" ( left-, back+)
* F |[-] N [+]| G <-- Nozzle
* T | 3 | H <-- Example "3" (right+, front-)
* | 4 | T <-- Example "4" ( left-, front-)
* | [-] |
* O-- FRONT --+
* (0,0)
*
* Specify a Probe position as { X, Y, Z }
*/
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
@ -989,13 +999,13 @@
// with NOZZLE_AS_PROBE this can be negative for a wider probing area.
#define PROBING_MARGIN 10
// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000
// X and Y axis travel speed (mm/min) between probes
#define XY_PROBE_SPEED (133*60)
// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
// Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
// Feedrate (mm/m) for the "accurate" probe of each point
// Feedrate (mm/min) for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
/**
@ -1066,18 +1076,18 @@
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // For all extruders
// Disables axis stepper immediately when it's not being used.
// Disable axis steppers immediately when they're not being stepped.
// WARNING: When motors turn off there is a chance of losing position accuracy!
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
// Warn on display about possibly reduced accuracy
// Turn off the display blinking that warns about possible accuracy reduction
//#define DISABLE_REDUCED_ACCURACY_WARNING
// @section extruder
#define DISABLE_E false // For all extruders
#define DISABLE_E false // Disable the extruder when not stepping
#define DISABLE_INACTIVE_EXTRUDER // Keep only the active extruder enabled
// @section machine
@ -1119,8 +1129,8 @@
// @section machine
// The size of the print bed
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define X_BED_SIZE 200
#define Y_BED_SIZE 200
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
@ -1128,7 +1138,7 @@
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 250
#define Z_MAX_POS 200
/**
* Software Endstops
@ -1168,10 +1178,11 @@
*/
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
//#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.
#define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
//#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.
// Set one or more commands to execute on filament runout.
// (After 'M412 H' Marlin will ask the host to handle the process.)
@ -1388,8 +1399,8 @@
#define Z_SAFE_HOMING_Y_POINT Y_CENTER // Y point for Z homing
#endif
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (20*60)
// Homing speeds (mm/min)
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60)
// Validate that endstops are triggered on homing moves
@ -1472,7 +1483,7 @@
#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)
//#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
#endif
//
@ -1593,9 +1604,12 @@
// Move the nozzle to the initial position after cleaning
#define NOZZLE_CLEAN_GOBACK
// Enable for a purge/clean station that's always at the gantry height (thus no Z move)
// For a purge/clean station that's always at the gantry height (thus no Z move)
//#define NOZZLE_CLEAN_NO_Z
// For a purge/clean station mounted on the X axis
//#define NOZZLE_CLEAN_NO_Y
// Explicit wipe G-code script applies to a G12 with no arguments.
//#define WIPE_SEQUENCE_COMMANDS "G1 X-17 Y25 Z10 F4000\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nG0 X-10.0 Y-9.0"
@ -1632,6 +1646,37 @@
*/
//#define PRINTCOUNTER
/**
* Password
*
* Set a numerical password for the printer which can be requested:
*
* - When the printer boots up
* - Upon opening the 'Print from Media' Menu
* - When SD printing is completed or aborted
*
* The following G-codes can be used:
*
* M510 - Lock Printer. Blocks all commands except M511.
* M511 - Unlock Printer.
* M512 - Set, Change and Remove Password.
*
* If you forget the password and get locked out you'll need to re-flash
* the firmware with the feature disabled, reset EEPROM, and (optionally)
* re-flash the firmware again with this feature enabled.
*/
//#define PASSWORD_FEATURE
#if ENABLED(PASSWORD_FEATURE)
#define PASSWORD_LENGTH 4 // (#) Number of digits (1-9). 3 or 4 is recommended
#define PASSWORD_ON_STARTUP
#define PASSWORD_UNLOCK_GCODE // Unlock with the M511 P<password> command. Disable to prevent brute-force attack.
#define PASSWORD_CHANGE_GCODE // Change the password with M512 P<old> S<new>.
//#define PASSWORD_ON_SD_PRINT_MENU // This does not prevent gcodes from running
//#define PASSWORD_AFTER_SD_PRINT_END
//#define PASSWORD_AFTER_SD_PRINT_ABORT
//#include "Configuration_Secure.h" // External file with PASSWORD_DEFAULT_VALUE
#endif
//=============================================================================
//============================= LCD and SD support ============================
//=============================================================================
@ -1644,7 +1689,7 @@
* Select the language to display on the LCD. These languages are available:
*
* en, an, bg, ca, cz, da, de, el, el_gr, es, eu, fi, fr, gl, hr, hu, it,
* jp_kana, ko_KR, nl, pl, pt, pt_br, ro ru, sk, tr, uk, vi, zh_CN, zh_TW, test
* jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, tr, uk, vi, zh_CN, zh_TW, test
*
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek', 'el_gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)', 'test':'TEST' }
*/
@ -1675,9 +1720,9 @@
#define DISPLAY_CHARSET_HD44780 JAPANESE
/**
* Info Screen Style (0:Classic, 1:Prusa)
* Info Screen Style (0:Classic, 1:Průša)
*
* :[0:'Classic', 1:'Prusa']
* :[0:'Classic', 1:'Průša']
*/
#define LCD_INFO_SCREEN_STYLE 0
@ -2017,7 +2062,7 @@
//#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default
//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on)
//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight
//#define FYSETC_MINI_12864_2_1 // Type A/B. Neopixel RGB Backlight
//#define FYSETC_MINI_12864_2_1 // Type A/B. NeoPixel RGB Backlight
//#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight.
//
@ -2079,7 +2124,7 @@
//#define OLED_PANEL_TINYBOY2
//
// MKS OLED 1.3" 128 × 64 FULL GRAPHICS CONTROLLER
// MKS OLED 1.3" 128×64 FULL GRAPHICS CONTROLLER
// https://reprap.org/wiki/MKS_12864OLED
//
// Tiny, but very sharp OLED display
@ -2087,6 +2132,13 @@
//#define MKS_12864OLED // Uses the SH1106 controller (default)
//#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller
//
// Zonestar OLED 128×64 FULL GRAPHICS CONTROLLER
//
//#define ZONESTAR_12864LCD // Graphical (DOGM) with ST7920 controller
//#define ZONESTAR_12864OLED // 1.3" OLED with SH1106 controller (default)
//#define ZONESTAR_12864OLED_SSD1306 // 0.96" OLED with SSD1306 controller
//
// Einstart S OLED SSD1306
//
@ -2098,7 +2150,7 @@
//#define OVERLORD_OLED
//
// FYSETC OLED 2.42" 128 × 64 FULL GRAPHICS CONTROLLER with WS2812 RGB
// FYSETC OLED 2.42" 128×64 FULL GRAPHICS CONTROLLER with WS2812 RGB
// Where to find : https://www.aliexpress.com/item/4000345255731.html
//#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller
@ -2126,6 +2178,16 @@
//
//#define TOUCH_UI_FTDI_EVE
//
// Touch-screen LCD for Anycubic printers
//
//#define ANYCUBIC_LCD_I3MEGA
//#define ANYCUBIC_LCD_CHIRON
#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON)
#define ANYCUBIC_LCD_SERIAL_PORT 3
//#define ANYCUBIC_LCD_DEBUG
#endif
//
// Third-party or vendor-customized controller interfaces.
// Sources should be installed in 'src/lcd/extensible_ui'.
@ -2140,6 +2202,28 @@
//=============================== Graphical TFTs ==============================
//=============================================================================
//
// TFT display with optional touch screen
// Color Marlin UI with standard menu system
//
//#define TFT_320x240
//#define TFT_320x240_SPI
//#define TFT_480x320
//#define TFT_480x320_SPI
//
// Skip autodetect and force specific TFT driver
// Mandatory for SPI screens with no MISO line
// Available drivers are: ST7735, ST7789, ST7796, R61505, ILI9328, ILI9341, ILI9488
//
//#define TFT_DRIVER AUTO
//
// SPI display (MKS Robin Nano V2.0, MKS Gen L V2.0)
// Upscaled 128x64 Marlin UI
//
//#define SPI_GRAPHICAL_TFT
//
// FSMC display (MKS Robin, Alfawise U20, JGAurora A5S, REXYZ A1, etc.)
// Upscaled 128x64 Marlin UI
@ -2156,12 +2240,6 @@
//#define TFT_LVGL_UI_FSMC // Robin nano v1.2 uses FSMC
//#define TFT_LVGL_UI_SPI // Robin nano v2.0 uses SPI
//
// Anycubic Mega TFT (AI3M)
//
//#define ANYCUBIC_TFT_MODEL
//#define ANYCUBIC_TFT_DEBUG
//=============================================================================
//============================ Other Controllers ============================
//=============================================================================
@ -2174,20 +2252,22 @@
//
// ADS7843/XPT2046 ADC Touchscreen such as ILI9341 2.8
//
//#define TOUCH_BUTTONS
#if ENABLED(TOUCH_BUTTONS)
//#define TOUCH_SCREEN
#if ENABLED(TOUCH_SCREEN)
#define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens
#define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus
#define XPT2046_X_CALIBRATION 12316
#define XPT2046_Y_CALIBRATION -8981
#define XPT2046_X_OFFSET -43
#define XPT2046_Y_OFFSET 257
#define TOUCH_SCREEN_CALIBRATION
//#define XPT2046_X_CALIBRATION 12316
//#define XPT2046_Y_CALIBRATION -8981
//#define XPT2046_X_OFFSET -43
//#define XPT2046_Y_OFFSET 257
#endif
//
// RepRapWorld REPRAPWORLD_KEYPAD v1.1
// https://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
// https://reprapworld.com/products/electronics/ramps/keypad_v1_0_fully_assembled/
//
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // (mm) Distance to move per key-press
@ -2198,6 +2278,10 @@
// @section extras
// Set number of user-controlled fans. Disable to use all board-defined fans.
// :[1,2,3,4,5,6,7,8]
//#define NUM_M106_FANS 1
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
//#define FAST_PWM_FAN
@ -2248,13 +2332,13 @@
* Adds the M150 command to set the LED (or LED strip) color.
* If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
* luminance values can be set from 0 to 255.
* For Neopixel LED an overall brightness parameter is also available.
* For NeoPixel LED an overall brightness parameter is also available.
*
* *** CAUTION ***
* LED Strips require a MOSFET Chip between PWM lines and LEDs,
* as the Arduino cannot handle the current the LEDs will require.
* Failure to follow this precaution can destroy your Arduino!
* NOTE: A separate 5V power supply is required! The Neopixel LED needs
* NOTE: A separate 5V power supply is required! The NeoPixel LED needs
* more current than the Arduino 5V linear regulator can produce.
* *** CAUTION ***
*
@ -2271,21 +2355,31 @@
//#define RGB_LED_W_PIN -1
#endif
// Support for Adafruit Neopixel LED driver
// Support for Adafruit NeoPixel LED driver
//#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
#define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW / NEO_GRB - four/three channel driver type (defined in Adafruit_NeoPixel.h)
//#define NEOPIXEL_PIN 4 // LED driving pin
#define NEOPIXEL_PIN 4 // LED driving pin
//#define NEOPIXEL2_TYPE NEOPIXEL_TYPE
//#define NEOPIXEL2_PIN 5
#define NEOPIXEL_PIXELS 5 // Number of LEDs in the strip, larger of 2 strips if 2 neopixel strips are used
#define NEOPIXEL_PIXELS 30 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.)
#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
#define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255)
//#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup
// Use a single Neopixel LED for static (background) lighting
#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use
#define NEOPIXEL_BKGD_COLOR { 128, 128, 255, 0 } // R, G, B, W
// Support for second Adafruit NeoPixel LED driver controlled with M150 S1 ...
//#define NEOPIXEL2_SEPARATE
#if ENABLED(NEOPIXEL2_SEPARATE)
#define NEOPIXEL2_PIXELS 15 // Number of LEDs in the second strip
#define NEOPIXEL2_BRIGHTNESS 127 // Initial brightness (0-255)
#define NEOPIXEL2_STARTUP_TEST // Cycle through colors at startup
#else
//#define NEOPIXEL2_INSERIES // Default behavior is NeoPixel 2 in parallel
#endif
// Use a single NeoPixel LED for static (background) lighting
//#define NEOPIXEL_BKGD_LED_INDEX 0 // Index of the LED to use
//#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W
#endif
/**


+ 59
- 43
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Configuration_adv.h View File

@ -339,7 +339,7 @@
#if ENABLED(EXTRUDER_RUNOUT_PREVENT)
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30
#define EXTRUDER_RUNOUT_SPEED 1500 // (mm/m)
#define EXTRUDER_RUNOUT_SPEED 1500 // (mm/min)
#define EXTRUDER_RUNOUT_EXTRUDE 5 // (mm)
#endif
@ -488,7 +488,7 @@
//#define CASE_LIGHT_MAX_PWM 128 // Limit pwm
//#define CASE_LIGHT_MENU // Add Case Light options to the LCD menu
//#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting.
//#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED.
//#define CASE_LIGHT_USE_NEOPIXEL // Use NeoPixel LED as case light, requires NEOPIXEL_LED.
#if ENABLED(CASE_LIGHT_USE_NEOPIXEL)
#define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White }
#endif
@ -680,7 +680,7 @@
* Danger: Don't activate 5V mode unless attached to a 5V-tolerant controller!
* V3.0 or 3.1: Set default mode to 5V mode at Marlin startup.
* If disabled, OD mode is the hard-coded default on 3.0
* On startup, Marlin will compare its eeprom to this vale. If the selected mode
* On startup, Marlin will compare its eeprom to this value. If the selected mode
* differs, a mode set eeprom write will be completed at initialization.
* Use the option below to force an eeprom write to a V3.1 probe regardless.
*/
@ -769,7 +769,7 @@
#endif
//
// Add the G35 command to read bed corners to help adjust screws.
// Add the G35 command to read bed corners to help adjust screws. Requires a bed probe.
//
//#define ASSISTED_TRAMMING
#if ENABLED(ASSISTED_TRAMMING)
@ -809,24 +809,30 @@
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
/**
* Idle Stepper Shutdown
* Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period.
* The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout.
*/
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // Set to false if the nozzle will fall down on your printed part when print has finished.
#define DISABLE_INACTIVE_Z true // Set 'false' if the nozzle could fall onto your printed part!
#define DISABLE_INACTIVE_E true
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
#define DEFAULT_MINTRAVELFEEDRATE 0.0
// If the Nozzle or Bed falls when the Z stepper is disabled, set its resting position here.
//#define Z_AFTER_DEACTIVATE Z_HOME_POS
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
// Minimum time that a segment needs to take if the buffer is emptied
#define DEFAULT_MINSEGMENTTIME 20000 // (µs)
// Default Minimum Feedrates for printing and travel moves
#define DEFAULT_MINIMUMFEEDRATE 0.0 // (mm/s) Minimum feedrate. Set with M205 S.
#define DEFAULT_MINTRAVELFEEDRATE 0.0 // (mm/s) Minimum travel feedrate. Set with M205 T.
// Slow down the machine if the look ahead buffer is (by default) half full.
// Minimum time that a segment needs to take as the buffer gets emptied
#define DEFAULT_MINSEGMENTTIME 20000 // (µs) Set with M205 B.
// Slow down the machine if the lookahead buffer is (by default) half full.
// Increase the slowdown divisor for larger buffer sizes.
#define SLOWDOWN
#if ENABLED(SLOWDOWN)
@ -877,7 +883,7 @@
// increments while checking for the contact to be broken.
#define BACKLASH_MEASUREMENT_LIMIT 0.5 // (mm)
#define BACKLASH_MEASUREMENT_RESOLUTION 0.005 // (mm)
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/m)
#define BACKLASH_MEASUREMENT_FEEDRATE Z_PROBE_SPEED_SLOW // (mm/min)
#endif
#endif
#endif
@ -903,9 +909,9 @@
#define CALIBRATION_MEASUREMENT_RESOLUTION 0.01 // mm
#define CALIBRATION_FEEDRATE_SLOW 60 // mm/m
#define CALIBRATION_FEEDRATE_FAST 1200 // mm/m
#define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/m
#define CALIBRATION_FEEDRATE_SLOW 60 // mm/min
#define CALIBRATION_FEEDRATE_FAST 1200 // mm/min
#define CALIBRATION_FEEDRATE_TRAVEL 3000 // mm/min
// The following parameters refer to the conical section of the nozzle tip.
#define CALIBRATION_NOZZLE_TIP_HEIGHT 1.0 // mm
@ -1019,7 +1025,7 @@
// @section lcd
#if EITHER(ULTIPANEL, EXTENSIBLE_UI)
#define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 60 } // Feedrates for manual moves along X, Y, Z, E from panel
#define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel
#define SHORT_MANUAL_Z_MOVE 0.025 // (mm) Smallest manual Z move (< 0.1mm)
#if ENABLED(ULTIPANEL)
#define MANUAL_E_MOVES_RELATIVE // Display extruder move distance rather than "position"
@ -1059,6 +1065,7 @@
//#define LED_CONTROL_MENU
#if ENABLED(LED_CONTROL_MENU)
#define LED_COLOR_PRESETS // Enable the Preset Color menu option
//#define NEO2_COLOR_PRESETS // Enable a second NeoPixel Preset Color menu option
#if ENABLED(LED_COLOR_PRESETS)
#define LED_USER_PRESET_RED 255 // User defined RED value
#define LED_USER_PRESET_GREEN 128 // User defined GREEN value
@ -1067,6 +1074,14 @@
#define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity
//#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup
#endif
#if ENABLED(NEO2_COLOR_PRESETS)
#define NEO2_USER_PRESET_RED 255 // User defined RED value
#define NEO2_USER_PRESET_GREEN 128 // User defined GREEN value
#define NEO2_USER_PRESET_BLUE 0 // User defined BLUE value
#define NEO2_USER_PRESET_WHITE 255 // User defined WHITE value
#define NEO2_USER_PRESET_BRIGHTNESS 255 // User defined intensity
//#define NEO2_USER_PRESET_STARTUP // Have the printer display the user preset color on startup for the second strip
#endif
#endif
#endif // HAS_LCD_MENU
@ -1131,7 +1146,7 @@
//#define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files
#define EVENT_GCODE_SD_STOP "G28XY" // G-code to run on Stop Print (e.g., "G28XY" or "G27")
#define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27")
#if ENABLED(PRINTER_EVENT_LEDS)
#define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination
@ -1509,9 +1524,10 @@
#endif
//
// FSMC Graphical TFT
// FSMC / SPI Graphical TFT
//
#if ENABLED(FSMC_GRAPHICAL_TFT)
#if TFT_SCALED_DOGLCD
//#define GRAPHICAL_TFT_ROTATE_180
//#define TFT_MARLINUI_COLOR 0xFFFF // White
//#define TFT_MARLINBG_COLOR 0x0000 // Black
//#define TFT_DISABLED_COLOR 0x0003 // Almost black
@ -1978,13 +1994,13 @@
// Load / Unload
#define TOOLCHANGE_FS_LENGTH 12 // (mm) Load / Unload length
#define TOOLCHANGE_FS_EXTRA_RESUME_LENGTH 0 // (mm) Extra length for better restart, fine tune by LCD/Gcode)
#define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/m) (Unloading)
#define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/m) (On SINGLENOZZLE or Bowden loading must be slowed down)
#define TOOLCHANGE_FS_RETRACT_SPEED (50*60) // (mm/min) (Unloading)
#define TOOLCHANGE_FS_UNRETRACT_SPEED (25*60) // (mm/min) (On SINGLENOZZLE or Bowden loading must be slowed down)
// Longer prime to clean out a SINGLENOZZLE
#define TOOLCHANGE_FS_EXTRA_PRIME 0 // (mm) Extra priming length
#define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/m) Extra priming feedrate
#define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm/m) Retract before cooling for less stringing, better wipe, etc.
#define TOOLCHANGE_FS_PRIME_SPEED (4.6*60) // (mm/min) Extra priming feedrate
#define TOOLCHANGE_FS_WIPE_RETRACT 0 // (mm/min) Retract before cooling for less stringing, better wipe, etc.
// Cool after prime to reduce stringing
#define TOOLCHANGE_FS_FAN -1 // Fan index or -1 to skip
@ -2020,7 +2036,7 @@
//#define TOOLCHANGE_PARK
#if ENABLED(TOOLCHANGE_PARK)
#define TOOLCHANGE_PARK_XY { X_MIN_POS + 10, Y_MIN_POS + 10 }
#define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/m)
#define TOOLCHANGE_PARK_XY_FEEDRATE 6000 // (mm/min)
//#define TOOLCHANGE_PARK_X_ONLY // X axis only move
//#define TOOLCHANGE_PARK_Y_ONLY // Y axis only move
#endif
@ -2210,13 +2226,13 @@
#if HAS_TRINAMIC_CONFIG
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
#define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256
#define INTERPOLATE false // Interpolate X/Y/Z_MICROSTEPS to 256
#if AXIS_IS_TMC(X)
#define X_CURRENT 800 // (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_RSENSE 0.11
#define X_RSENSE 0.062
#define X_CHAIN_POS -1 // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
#endif
@ -2232,7 +2248,7 @@
#define Y_CURRENT 800
#define Y_CURRENT_HOME Y_CURRENT
#define Y_MICROSTEPS 16
#define Y_RSENSE 0.11
#define Y_RSENSE 0.062
#define Y_CHAIN_POS -1
#endif
@ -2248,7 +2264,7 @@
#define Z_CURRENT 800
#define Z_CURRENT_HOME Z_CURRENT
#define Z_MICROSTEPS 16
#define Z_RSENSE 0.11
#define Z_RSENSE 0.062
#define Z_CHAIN_POS -1
#endif
@ -2279,21 +2295,21 @@
#if AXIS_IS_TMC(E0)
#define E0_CURRENT 800
#define E0_MICROSTEPS 16
#define E0_RSENSE 0.11
#define E0_RSENSE 0.062
#define E0_CHAIN_POS -1
#endif
#if AXIS_IS_TMC(E1)
#define E1_CURRENT 800
#define E1_MICROSTEPS 16
#define E1_RSENSE 0.051
#define E1_RSENSE 0.062
#define E1_CHAIN_POS -1
#endif
#if AXIS_IS_TMC(E2)
#define E2_CURRENT 800
#define E2_MICROSTEPS 16
#define E2_RSENSE 0.051
#define E2_RSENSE 0.062
#define E2_CHAIN_POS -1
#endif
@ -2404,9 +2420,9 @@
* Use Trinamic's ultra quiet stepping mode.
* When disabled, Marlin will use spreadCycle stepping mode.
*/
//#define STEALTHCHOP_XY
//#define STEALTHCHOP_Z
//#define STEALTHCHOP_E
#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
/**
* Optimize spreadCycle chopper parameters by using predefined parameter sets
@ -2417,7 +2433,7 @@
* CHOPPER_DEFAULT_24V
* CHOPPER_DEFAULT_36V
* CHOPPER_09STEP_24V // 0.9 degree steppers (24V)
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Prusa firmware for MK3 (24V)
* CHOPPER_PRUSAMK3_24V // Imported parameters from the official Průša firmware for MK3 (24V)
* CHOPPER_MARLIN_119 // Old defaults from Marlin v1.1.9
*
* Define you own with
@ -2844,7 +2860,7 @@
//#define SPINDLE_FEATURE
//#define LASER_FEATURE
#if EITHER(SPINDLE_FEATURE, LASER_FEATURE)
#define SPINDLE_LASER_ACTIVE_HIGH false // Set to "true" if the on/off function is active HIGH
#define SPINDLE_LASER_ACTIVE_STATE LOW // Set to "HIGH" if the on/off function is active HIGH
#define SPINDLE_LASER_PWM true // Set to "true" if your controller supports setting the speed/power
#define SPINDLE_LASER_PWM_INVERT false // Set to "true" if the speed/power goes up when you want it to go slower
@ -3144,7 +3160,7 @@
//#define GCODE_MOTION_MODES // Remember the motion mode (G0 G1 G2 G3 G5 G38.X) and apply for X Y Z E F, etc.
// Enable and set a (default) feedrate for all G0 moves
//#define G0_FEEDRATE 3000 // (mm/m)
//#define G0_FEEDRATE 3000 // (mm/min)
#ifdef G0_FEEDRATE
//#define VARIABLE_G0_FEEDRATE // The G0 feedrate is set by F in G0 motion mode
#endif
@ -3389,7 +3405,7 @@
#endif
/**
* Prusa Multi-Material Unit v2
* Průša Multi-Material Unit v2
* Enable in Configuration.h
*/
#if ENABLED(PRUSA_MMU2)
@ -3413,7 +3429,7 @@
//#define MMU2_MENUS
#if ENABLED(MMU2_MENUS)
// Settings for filament load / unload from the LCD menu.
// This is for Prusa MK3-style extruders. Customize for your hardware.
// This is for Průša MK3-style extruders. Customize for your hardware.
#define MMU2_FILAMENTCHANGE_EJECT_FEED 80.0
#define MMU2_LOAD_TO_NOZZLE_SEQUENCE \
{ 7.2, 1145 }, \
@ -3439,7 +3455,7 @@
/**
* MMU Extruder Sensor
*
* Support for a Prusa (or other) IR Sensor to detect filament near the extruder
* Support for a Průša (or other) IR Sensor to detect filament near the extruder
* and make loading more reliable. Suitable for an extruder equipped with a filament
* sensor less than 38mm from the gears.
*
@ -3461,7 +3477,7 @@
#if ENABLED(PRUSA_MMU2_S_MODE)
#define MMU2_C0_RETRY 5 // Number of retries (total time = timeout*retries)
#define MMU2_CAN_LOAD_FEEDRATE 800 // (mm/m)
#define MMU2_CAN_LOAD_FEEDRATE 800 // (mm/min)
#define MMU2_CAN_LOAD_SEQUENCE \
{ 0.1, MMU2_CAN_LOAD_FEEDRATE }, \
{ 60.0, MMU2_CAN_LOAD_FEEDRATE }, \


BIN
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Marlin.zip View File


+ 1
- 1
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/Version.h View File

@ -28,7 +28,7 @@
/**
* Marlin release version identifier
*/
//#define SHORT_BUILD_VERSION "2.0.6"
//#define SHORT_BUILD_VERSION "2.0.6.1"
/**
* Verbose version identifier which should contain a reference to the location


+ 11
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/HAL.h View File

@ -120,6 +120,17 @@ typedef int8_t pin_t;
#define DGUS_SERIAL_GET_TX_BUFFER_FREE DGUS_SERIAL.get_tx_buffer_free
#endif
#ifdef ANYCUBIC_LCD_SERIAL_PORT
#if !WITHIN(ANYCUBIC_LCD_SERIAL_PORT, -1, 3)
#error "ANYCUBIC_LCD_SERIAL_PORT must be from -1 to 3. Please update your configuration."
#elif ANYCUBIC_LCD_SERIAL_PORT == SERIAL_PORT
#error "ANYCUBIC_LCD_SERIAL_PORT must be different than SERIAL_PORT. Please update your configuration."
#elif defined(SERIAL_PORT_2) && ANYCUBIC_LCD_SERIAL_PORT == SERIAL_PORT_2
#error "ANYCUBIC_LCD_SERIAL_PORT must be different than SERIAL_PORT_2. Please update your configuration."
#endif
#define ANYCUBIC_LCD_SERIAL anycubicLcdSerial
#endif
// ------------------------
// Public functions
// ------------------------


+ 18
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/MarlinSerial.cpp View File

@ -792,6 +792,24 @@
#endif
#ifdef ANYCUBIC_LCD_SERIAL_PORT
ISR(SERIAL_REGNAME(USART,ANYCUBIC_LCD_SERIAL_PORT,_RX_vect)) {
MarlinSerial<AnycubicLcdSerialCfg<ANYCUBIC_LCD_SERIAL_PORT>>::store_rxd_char();
}
ISR(SERIAL_REGNAME(USART,ANYCUBIC_LCD_SERIAL_PORT,_UDRE_vect)) {
MarlinSerial<AnycubicLcdSerialCfg<ANYCUBIC_LCD_SERIAL_PORT>>::_tx_udr_empty_irq();
}
// Preinstantiate
template class MarlinSerial<AnycubicLcdSerialCfg<ANYCUBIC_LCD_SERIAL_PORT>>;
// Instantiate
MarlinSerial<AnycubicLcdSerialCfg<ANYCUBIC_LCD_SERIAL_PORT>> anycubicLcdSerial;
#endif
// For AT90USB targets use the UART for BT interfacing
#if defined(USBCON) && ENABLED(BLUETOOTH)
HardwareSerial bluetoothSerial;


+ 17
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/MarlinSerial.h View File

@ -312,6 +312,23 @@
extern MarlinSerial<MarlinInternalSerialCfg<DGUS_SERIAL_PORT>> internalDgusSerial;
#endif
#ifdef ANYCUBIC_LCD_SERIAL_PORT
template <uint8_t serial>
struct AnycubicLcdSerialCfg {
static constexpr int PORT = serial;
static constexpr unsigned int RX_SIZE = 64;
static constexpr unsigned int TX_SIZE = 128;
static constexpr bool XONOFF = false;
static constexpr bool EMERGENCYPARSER = false;
static constexpr bool DROPPED_RX = false;
static constexpr bool RX_OVERRUNS = false;
static constexpr bool RX_FRAMING_ERRORS = false;
static constexpr bool MAX_RX_QUEUED = false;
};
extern MarlinSerial<AnycubicLcdSerialCfg<ANYCUBIC_LCD_SERIAL_PORT>> anycubicLcdSerial;
#endif
// Use the UART for Bluetooth in AT90USB configurations
#if defined(USBCON) && ENABLED(BLUETOOTH)
extern HardwareSerial bluetoothSerial;


+ 5
- 3
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/ServoTimers.h View File

@ -59,10 +59,12 @@
// Say which 16 bit timers can be used and in what order
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
//#define _useTimer1
#define _useTimer3
#define _useTimer4
#if !HAS_MOTOR_CURRENT_PWM
#define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos.
#if NUM_SERVOS > SERVOS_PER_TIMER
#define _useTimer3
#if !HAS_MOTOR_CURRENT_PWM && SERVOS > 2 * SERVOS_PER_TIMER
#define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos.
#endif
#endif
#elif defined(__AVR_ATmega32U4__)
#define _useTimer3


+ 4
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/inc/Conditionals_LCD.h View File

@ -20,3 +20,7 @@
*
*/
#pragma once
#if HAS_SPI_TFT || HAS_FSMC_TFT
#error "Sorry! TFT displays are not available for HAL/AVR."
#endif

+ 2
- 1
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/AVR/inc/SanityCheck.h View File

@ -36,9 +36,10 @@
* Sanity checks for Spindle / Laser PWM
*/
#if ENABLED(SPINDLE_LASER_PWM)
#include "../ServoTimers.h" // Needed to check timer availability (_useTimer3)
#if SPINDLE_LASER_PWM_PIN == 4 || WITHIN(SPINDLE_LASER_PWM_PIN, 11, 13)
#error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by a system interrupt."
#elif NUM_SERVOS > 0 && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5)
#elif NUM_SERVOS > 0 && defined(_useTimer3) && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5)
#error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by the servo system."
#endif
#elif defined(SPINDLE_LASER_FREQUENCY)


+ 1
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/HAL.cpp View File

@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
/**


+ 4
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/inc/Conditionals_LCD.h View File

@ -20,3 +20,7 @@
*
*/
#pragma once
#if HAS_SPI_TFT || HAS_FSMC_TFT
#error "Sorry! TFT displays are not available for HAL/DUE."
#endif

+ 2
- 2
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/inc/SanityCheck.h View File

@ -52,8 +52,8 @@
#endif
#endif
#if ENABLED(FAST_PWM_FAN)
#error "FAST_PWM_FAN is not yet implemented for this platform."
#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY
#error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on DUE."
#endif
#if HAS_TMC_SW_SERIAL


+ 1
- 1
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/DUE/usb/arduino_due_x.h View File

@ -93,5 +93,5 @@
#define USB_VBOF_GPIO (PIO_PB10_IDX)
#define USB_VBOF_FLAGS (PIO_PERIPH_A | PIO_DEFAULT)
/*! Active level of the USB_VBOF output pin. */
#define USB_VBOF_ACTIVE_LEVEL LOW
#define USB_VBOF_ACTIVE_STATE LOW
/* ------------------------------------------------------------------------ */

+ 4
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/ESP32/inc/Conditionals_LCD.h View File

@ -20,3 +20,7 @@
*
*/
#pragma once
#if HAS_SPI_TFT || HAS_FSMC_TFT
#error "Sorry! TFT displays are not available for HAL/ESP32."
#endif

+ 2
- 2
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/ESP32/inc/SanityCheck.h View File

@ -25,8 +25,8 @@
#error "EMERGENCY_PARSER is not yet implemented for ESP32. Disable EMERGENCY_PARSER to continue."
#endif
#if ENABLED(FAST_PWM_FAN)
#error "FAST_PWM_FAN is not yet implemented for this platform."
#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY
#error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on ESP32."
#endif
#if HAS_TMC_SW_SERIAL


+ 1
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/ESP32/ota.cpp View File

@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#ifdef ARDUINO_ARCH_ESP32


+ 1
- 1
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/HAL.h View File

@ -38,7 +38,7 @@
// String helper
#ifndef PGMSTR
#define PGMSTR(NAM,STR) constexpr char NAM[] = STR
#define PGMSTR(NAM,STR) const char NAM[] = STR
#endif
inline void watchdog_refresh() {


+ 4
- 0
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LINUX/inc/Conditionals_LCD.h View File

@ -20,3 +20,7 @@
*
*/
#pragma once
#if HAS_SPI_TFT || HAS_FSMC_TFT
#error "Sorry! TFT displays are not available for HAL/LINUX."
#endif

+ 2
- 2
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LINUX/inc/SanityCheck.h View File

@ -30,8 +30,8 @@
#error "SPINDLE_LASER_PWM_PIN must use SERVO0, SERVO1 or SERVO3 connector"
#endif
#if ENABLED(FAST_PWM_FAN)
#error "FAST_PWM_FAN is not yet implemented for this platform."
#if ENABLED(FAST_PWM_FAN) || SPINDLE_LASER_FREQUENCY
#error "Features requiring Hardware PWM (FAST_PWM_FAN, SPINDLE_LASER_FREQUENCY) are not yet supported on LINUX."
#endif
#if HAS_TMC_SW_SERIAL


+ 228
- 24
BTT SKR V1.4/Firmware/Marlin-2.0.x-SKR-V1.4-Turbo/Marlin/src/HAL/LPC1768/HAL_SPI.cpp View File

@ -30,7 +30,7 @@
*/
/**
* Hardware SPI and a software SPI implementations are included in this file.
* Hardware SPI and Software SPI implementations are included in this file.
* The hardware SPI runs faster and has higher throughput but is not compatible
* with some LCD interfaces/adapters.
*
@ -51,6 +51,10 @@
#include "../../inc/MarlinConfig.h"
#include <SPI.h>
// Hardware SPI and SPIClass
#include <lpc17xx_pinsel.h>
#include <lpc17xx_clkpwr.h>
// ------------------------
// Public functions
// ------------------------
@ -96,12 +100,6 @@
#else
// Hardware SPI
#include <lpc17xx_pinsel.h>
#include <lpc17xx_ssp.h>
#include <lpc17xx_clkpwr.h>
// decide which HW SPI device to use
#ifndef LPC_HW_SPI_DEV
#if (SCK_PIN == P0_07 && MISO_PIN == P0_08 && MOSI_PIN == P0_09)
@ -114,7 +112,7 @@
#endif
#endif
#endif
#if (LPC_HW_SPI_DEV == 0)
#if LPC_HW_SPI_DEV == 0
#define LPC_SSPn LPC_SSP0
#else
#define LPC_SSPn LPC_SSP1
@ -192,7 +190,7 @@
for (uint16_t i = 0; i < nbyte; i++) buf[i] = doio(0xFF);
}
static uint8_t spiTransfer(uint8_t b) {
uint8_t spiTransfer(uint8_t b) {
return doio(b);
}
@ -211,30 +209,236 @@
#endif // LPC_SOFTWARE_SPI
void SPIClass::begin() { spiBegin(); }
/**
* @brief Wait until TXE (tx empty) flag is set and BSY (busy) flag unset.
*/
static inline void waitSpiTxEnd(LPC_SSP_TypeDef *spi_d) {
while (SSP_GetStatus(spi_d, SSP_STAT_TXFIFO_EMPTY) == RESET) { /* nada */ } // wait until TXE=1
while (SSP_GetStatus(spi_d, SSP_STAT_BUSY) == SET) { /* nada */ } // wait until BSY=0
}
SPIClass::SPIClass(uint8_t device) {
// Init things specific to each SPI device
// clock divider setup is a bit of hack, and needs to be improved at a later date.
PINSEL_CFG_Type PinCfg; // data structure to hold init values
#if BOARD_NR_SPI >= 1
_settings[0].spi_d = LPC_SSP0;
// _settings[0].clockDivider = determine_baud_rate(_settings[0].spi_d, _settings[0].clock);
PinCfg.Funcnum = 2;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0;
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_SCK_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_SCK_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(BOARD_SPI1_SCK_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_MISO_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_MISO_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_INPUT(BOARD_SPI1_MISO_PIN);
PinCfg.Pinnum = LPC176x::pin_bit(BOARD_SPI1_MOSI_PIN);
PinCfg.Portnum = LPC176x::pin_port(BOARD_SPI1_MOSI_PIN);
PINSEL_ConfigPin(&PinCfg);
SET_OUTPUT(BOARD_SPI1_MOSI_PIN);
#endif
#if BOARD_NR_SPI >= 2
_settings[1].spi_d = LPC_SSP1;
// _settings[1].clockDivider = determine_baud_rate(_settings[1].spi_d, _settings[1].clock);
PinCfg.Funcnum = 2;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 0