diff --git a/LICENSE b/LICENSE
index 4ad6d9b1e2aa..6c0e10f3b802 100644
--- a/LICENSE
+++ b/LICENSE
@@ -3,7 +3,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
- Copyright (c) 2007 Free Software Foundation, Inc.
+ Copyright (c) 2007 Free Software Foundation, Inc.
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
-.
-
+.
diff --git a/Marlin/src/HAL/DUE/HAL.cpp b/Marlin/src/HAL/DUE/HAL.cpp
index f2bf4ebbf5b8..4b9260c35962 100644
--- a/Marlin/src/HAL/DUE/HAL.cpp
+++ b/Marlin/src/HAL/DUE/HAL.cpp
@@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
+ *
*/
/**
diff --git a/Marlin/src/HAL/ESP32/ota.cpp b/Marlin/src/HAL/ESP32/ota.cpp
index 7cf65ed2d3cf..69a3e25e5631 100644
--- a/Marlin/src/HAL/ESP32/ota.cpp
+++ b/Marlin/src/HAL/ESP32/ota.cpp
@@ -15,6 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
+ *
*/
#ifdef ARDUINO_ARCH_ESP32
diff --git a/Marlin/src/HAL/STM32/SoftwareSerial.cpp b/Marlin/src/HAL/STM32/SoftwareSerial.cpp
index af92548cbb64..2228a177be66 100644
--- a/Marlin/src/HAL/STM32/SoftwareSerial.cpp
+++ b/Marlin/src/HAL/STM32/SoftwareSerial.cpp
@@ -3,14 +3,14 @@
*
* Multi-instance software serial library for Arduino/Wiring
* -- Interrupt-driven receive and other improvements by ladyada
- * (https://ladyada.net)
+ *
* -- Tuning, circular buffer, derivation from class Print/Stream,
* multi-instance support, porting to 8MHz processors,
* various optimizations, PROGMEM delay tables, inverse logic and
- * direct port writing by Mikal Hart (http://www.arduiniana.org)
- * -- Pin change interrupt macros by Paul Stoffregen (https://www.pjrc.com)
- * -- 20MHz processor support by Garrett Mace (http://www.macetech.com)
- * -- ATmega1280/2560 support by Brett Hagman (https://www.roguerobotics.com/)
+ * direct port writing by Mikal Hart
+ * -- Pin change interrupt macros by Paul Stoffregen
+ * -- 20MHz processor support by Garrett Mace
+ * -- ATmega1280/2560 support by Brett Hagman
* -- STM32 support by Armin van der Togt
*
* This library is free software; you can redistribute it and/or
diff --git a/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp b/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp
index f524673ecd74..bfc062af2090 100644
--- a/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp
+++ b/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp
@@ -4,7 +4,7 @@
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ * file, You can obtain one at https://www.mozilla.org/en-US/MPL/2.0/
*
* This library was modified, some bugs fixed, stack address validated
* and adapted to be used in Marlin 3D printer firmware as backtracer
diff --git a/Marlin/src/core/serial.cpp b/Marlin/src/core/serial.cpp
index 77854d0f80a2..0d22f7bfc067 100644
--- a/Marlin/src/core/serial.cpp
+++ b/Marlin/src/core/serial.cpp
@@ -68,7 +68,7 @@ void print_bin(uint16_t val) {
extern const char SP_X_STR[], SP_Y_STR[], SP_Z_STR[];
void print_xyz(const float &x, const float &y, const float &z, PGM_P const prefix/*=nullptr*/, PGM_P const suffix/*=nullptr*/) {
- serialprintPGM(prefix);
+ if (prefix) serialprintPGM(prefix);
SERIAL_ECHOPAIR_P(SP_X_STR, x, SP_Y_STR, y, SP_Z_STR, z);
if (suffix) serialprintPGM(suffix); else SERIAL_EOL();
}
diff --git a/Marlin/src/feature/dac/dac_mcp4728.cpp b/Marlin/src/feature/dac/dac_mcp4728.cpp
index 4976b3690729..55f10a49ef70 100644
--- a/Marlin/src/feature/dac/dac_mcp4728.cpp
+++ b/Marlin/src/feature/dac/dac_mcp4728.cpp
@@ -27,7 +27,7 @@
* https://ww1.microchip.com/downloads/en/DeviceDoc/22187a.pdf
*
* For discussion and feedback, please go to:
- * https://arduino.cc/forum/index.php/topic,51842.0.html
+ * https://forum.arduino.cc/index.php/topic,51842.0.html
*/
#include "../../inc/MarlinConfig.h"
diff --git a/Marlin/src/gcode/motion/G5.cpp b/Marlin/src/gcode/motion/G5.cpp
index 35cc4280239b..2c98fae84522 100644
--- a/Marlin/src/gcode/motion/G5.cpp
+++ b/Marlin/src/gcode/motion/G5.cpp
@@ -29,7 +29,7 @@
/**
* Parameters interpreted according to:
- * https://linuxcnc.org/docs/2.6/html/gcode/gcode.html#sec:G5-Cubic-Spline
+ * https://linuxcnc.org/docs/2.7/html/gcode/g-code.html#gcode:g5
* However I, J omission is not supported at this point; all
* parameters can be omitted and default to zero.
*/
diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h
index 2cba0fecf26d..9fde639b0f26 100644
--- a/Marlin/src/inc/SanityCheck.h
+++ b/Marlin/src/inc/SanityCheck.h
@@ -3047,8 +3047,8 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
/**
* Sanity check for WIFI
*/
-#if ENABLED(ESP3D_WIFISUPPORT) && DISABLED(ARDUINO_ARCH_ESP32)
- #error "ESP3D_WIFISUPPORT requires an ESP32 controller. Use WIFISUPPORT for standalone ESP3D modules."
+#if EITHER(ESP3D_WIFISUPPORT, WIFISUPPORT) && DISABLED(ARDUINO_ARCH_ESP32)
+ #error "ESP3D_WIFISUPPORT or WIFISUPPORT requires an ESP32 controller."
#endif
// Misc. Cleanup
diff --git a/Marlin/src/inc/Version.h b/Marlin/src/inc/Version.h
index 4007997de8c3..aea45c24c5a1 100644
--- a/Marlin/src/inc/Version.h
+++ b/Marlin/src/inc/Version.h
@@ -42,7 +42,7 @@
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
- #define STRING_DISTRIBUTION_DATE "2020-07-27"
+ #define STRING_DISTRIBUTION_DATE "2020-07-28"
#endif
/**
diff --git a/Marlin/src/module/delta.cpp b/Marlin/src/module/delta.cpp
index 9361729462a7..df6cae6e0a97 100644
--- a/Marlin/src/module/delta.cpp
+++ b/Marlin/src/module/delta.cpp
@@ -242,11 +242,9 @@ void home_delta() {
// Disable stealthChop if used. Enable diag1 pin on driver.
#if ENABLED(SENSORLESS_HOMING)
- sensorless_t stealth_states {
- tmc_enable_stallguard(stepperX),
- tmc_enable_stallguard(stepperY),
- tmc_enable_stallguard(stepperZ)
- };
+ TERN_(X_SENSORLESS, sensorless_t stealth_states_x = start_sensorless_homing_per_axis(X_AXIS));
+ TERN_(Y_SENSORLESS, sensorless_t stealth_states_y = start_sensorless_homing_per_axis(Y_AXIS));
+ TERN_(Z_SENSORLESS, sensorless_t stealth_states_z = start_sensorless_homing_per_axis(Z_AXIS));
#endif
// Move all carriages together linearly until an endstop is hit.
@@ -256,9 +254,9 @@ void home_delta() {
// Re-enable stealthChop if used. Disable diag1 pin on driver.
#if ENABLED(SENSORLESS_HOMING)
- tmc_disable_stallguard(stepperX, stealth_states.x);
- tmc_disable_stallguard(stepperY, stealth_states.y);
- tmc_disable_stallguard(stepperZ, stealth_states.z);
+ TERN_(X_SENSORLESS, end_sensorless_homing_per_axis(X_AXIS, stealth_states_x));
+ TERN_(Y_SENSORLESS, end_sensorless_homing_per_axis(Y_AXIS, stealth_states_y));
+ TERN_(Z_SENSORLESS, end_sensorless_homing_per_axis(Z_AXIS, stealth_states_z));
#endif
endstops.validate_homing_move();
diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h
index d33ce623a466..38ce980dae98 100644
--- a/Marlin/src/module/motion.h
+++ b/Marlin/src/module/motion.h
@@ -395,3 +395,9 @@ void homeaxis(const AxisEnum axis);
#if HAS_M206_COMMAND
void set_home_offset(const AxisEnum axis, const float v);
#endif
+
+#if USE_SENSORLESS
+ struct sensorless_t;
+ sensorless_t start_sensorless_homing_per_axis(const AxisEnum axis);
+ void end_sensorless_homing_per_axis(const AxisEnum axis, sensorless_t enable_stealth);
+#endif
diff --git a/buildroot/share/vscode/avrdude.conf b/buildroot/share/vscode/avrdude.conf
index 1194847f775d..475f8bf1086c 100644
--- a/buildroot/share/vscode/avrdude.conf
+++ b/buildroot/share/vscode/avrdude.conf
@@ -145,9 +145,9 @@
# VCC pins are not defined for the programmer, a message
# indicating that the device needs a power-cycle is printed out.
# This flag was added to work around a problem with the
-# at90s4433/2333's; see the at90s4433 errata at:
+# at90s4433/2333's; see the at90s4433 errata page 2 at:
#
-# http://www.atmel.com/atmel/acrobat/doc1280.pdf
+# https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf
#
# INSTRUCTION FORMATS
#
@@ -416,13 +416,13 @@ programmer
programmer
id = "usbasp";
- desc = "USBasp, http://www.fischl.de/usbasp/";
+ desc = "USBasp, https://www.fischl.de/usbasp/";
type = usbasp;
;
programmer
id = "usbtiny";
- desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/";
+ desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp";
type = usbtiny;
;
@@ -596,7 +596,7 @@ programmer
programmer
id = "bsd";
- desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/";
+ desc = "Brian Dean's Programmer, https://savannah.nongnu.org/projects/avrdude";
type = par;
vcc = 2, 3, 4, 5;
reset = 7;
@@ -743,7 +743,7 @@ programmer
programmer
id = "atisp";
- desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th";
+ desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th";
type = par;
reset = ~6;
sck = ~8;
@@ -773,7 +773,7 @@ programmer
;
# It is almost same as pony-stk200, except vcc on pin 5 to auto
-# disconnect port (download on http://electropol.free.fr)
+# disconnect port download on http://www.electropol.fr
programmer
id = "frank-stk200";
desc = "Frank STK200";
@@ -787,7 +787,7 @@ programmer
;
# The AT98ISP Cable is a simple parallel dongle for AT89 family.
-# http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877
+# https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en592141
programmer
id = "89isp";
desc = "Atmel at89isp cable";
diff --git a/buildroot/share/vscode/avrdude_linux.conf b/buildroot/share/vscode/avrdude_linux.conf
index 46e7ace34b21..cbc65d6917ca 100644
--- a/buildroot/share/vscode/avrdude_linux.conf
+++ b/buildroot/share/vscode/avrdude_linux.conf
@@ -145,9 +145,9 @@
# VCC pins are not defined for the programmer, a message
# indicating that the device needs a power-cycle is printed out.
# This flag was added to work around a problem with the
-# at90s4433/2333's; see the at90s4433 errata at:
+# at90s4433/2333's; see the at90s4433 errata page 2 at:
#
-# http://www.atmel.com/atmel/acrobat/doc1280.pdf
+# https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf
#
# INSTRUCTION FORMATS
#
@@ -416,13 +416,13 @@ programmer
programmer
id = "usbasp";
- desc = "USBasp, http://www.fischl.de/usbasp/";
+ desc = "USBasp, https://www.fischl.de/usbasp/";
type = usbasp;
;
programmer
id = "usbtiny";
- desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/";
+ desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp";
type = usbtiny;
;
@@ -596,7 +596,7 @@ programmer
programmer
id = "bsd";
- desc = "Brian Dean's Programmer, http://www.bsdhome.com/avrdude/";
+ desc = "Brian Dean's Programmer, https://savannah.nongnu.org/projects/avrdude";
type = par;
vcc = 2, 3, 4, 5;
reset = 7;
@@ -743,7 +743,7 @@ programmer
programmer
id = "atisp";
- desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th";
+ desc = "AT-ISP V1.1 programming cable for AVR-SDK1 from micro-research.co.th";
type = par;
reset = ~6;
sck = ~8;
@@ -773,7 +773,7 @@ programmer
;
# It is almost same as pony-stk200, except vcc on pin 5 to auto
-# disconnect port (download on http://electropol.free.fr)
+# disconnect port download on http://www.electropol.fr
programmer
id = "frank-stk200";
desc = "Frank STK200";
@@ -787,7 +787,7 @@ programmer
;
# The AT98ISP Cable is a simple parallel dongle for AT89 family.
-# http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877
+# https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en592141
programmer
id = "89isp";
desc = "Atmel at89isp cable";
diff --git a/buildroot/share/vscode/avrdude_macOS.conf b/buildroot/share/vscode/avrdude_macOS.conf
index d933567452fc..814e87e35ea3 100644
--- a/buildroot/share/vscode/avrdude_macOS.conf
+++ b/buildroot/share/vscode/avrdude_macOS.conf
@@ -145,9 +145,9 @@
# VCC pins are not defined for the programmer, a message
# indicating that the device needs a power-cycle is printed out.
# This flag was added to work around a problem with the
-# at90s4433/2333's; see the at90s4433 errata at:
+# at90s4433/2333's; see the at90s4433 errata page 2 at:
#
-# http://www.atmel.com/atmel/acrobat/doc1280.pdf
+# https://ww1.microchip.com/downloads/en/AppNotes/doc2574.pdf
#
# INSTRUCTION FORMATS
#
@@ -416,13 +416,13 @@ programmer
programmer
id = "usbasp";
- desc = "USBasp, http://www.fischl.de/usbasp/";
+ desc = "USBasp, https://www.fischl.de/usbasp/";
type = usbasp;
;
programmer
id = "usbtiny";
- desc = "USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/";
+ desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp";
type = usbtiny;
;
diff --git a/platformio.ini b/platformio.ini
index 543b837f54d3..24d416444f83 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -4,7 +4,7 @@
#
# For detailed documentation with EXAMPLES:
#
-# https://docs.platformio.org/en/latest/projectconf.html
+# https://docs.platformio.org/en/latest/projectconf/index.html
#
# Automatic targets - enable auto-uploading
@@ -380,7 +380,7 @@ src_filter = ${common.default_src_filter} +
platform = ${common_stm32.platform}
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL
-build_unflags = -std=gnu11
+build_unflags = -std=gnu11 -std=gnu++11
src_filter = ${common.default_src_filter} +
lib_ignore = SPI
lib_deps = ${common.lib_deps}