Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
136075d3fe | ||
|
42facec7ce | ||
|
e8b5641b27 |
17
.github/workflows/test-builds.yml
vendored
17
.github/workflows/test-builds.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
|||||||
- DUE
|
- DUE
|
||||||
- esp32
|
- esp32
|
||||||
- linux_native
|
- linux_native
|
||||||
- mega2560
|
- megaatmega2560
|
||||||
- teensy31
|
- teensy31
|
||||||
- teensy35
|
- teensy35
|
||||||
- SAMD51_grandcentral_m4
|
- SAMD51_grandcentral_m4
|
||||||
@@ -37,23 +37,22 @@ jobs:
|
|||||||
# Extended AVR Environments
|
# Extended AVR Environments
|
||||||
|
|
||||||
- FYSETC_F6_13
|
- FYSETC_F6_13
|
||||||
- mega1280
|
- megaatmega1280
|
||||||
- rambo
|
- rambo
|
||||||
- sanguino1284p
|
- sanguino_atmega1284p
|
||||||
- sanguino644p
|
- sanguino_atmega644p
|
||||||
|
|
||||||
# Extended STM32 Environments
|
# Extended STM32 Environments
|
||||||
|
|
||||||
- STM32F103RC_btt
|
- STM32F103RC_bigtree
|
||||||
- STM32F103RC_btt_USB
|
- STM32F103RC_bigtree_USB
|
||||||
- STM32F103RE_btt
|
- STM32F103RE_bigtree
|
||||||
- STM32F103RE_btt_USB
|
- STM32F103RE_bigtree_USB
|
||||||
- STM32F103RC_fysetc
|
- STM32F103RC_fysetc
|
||||||
- jgaurora_a5s_a1
|
- jgaurora_a5s_a1
|
||||||
- STM32F103VE_longer
|
- STM32F103VE_longer
|
||||||
- STM32F407VE_black
|
- STM32F407VE_black
|
||||||
- BIGTREE_SKR_PRO
|
- BIGTREE_SKR_PRO
|
||||||
- BIGTREE_GTR_V1_0
|
|
||||||
- mks_robin
|
- mks_robin
|
||||||
- ARMED
|
- ARMED
|
||||||
- FYSETC_S6
|
- FYSETC_S6
|
||||||
|
112
.gitignore
vendored
112
.gitignore
vendored
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Marlin 3D Printer Firmware
|
# Marlin 3D Printer Firmware
|
||||||
# Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
# Copyright (c) 2023 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||||
#
|
#
|
||||||
# Based on Sprinter and grbl.
|
# Based on Sprinter and grbl.
|
||||||
# Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
# Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
||||||
@@ -16,37 +16,26 @@
|
|||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Our automatic versioning scheme generates the following file
|
# Generated files
|
||||||
# NEVER put it in the repository
|
|
||||||
_Version.h
|
_Version.h
|
||||||
|
bdf2u8g.exe
|
||||||
|
genpages.exe
|
||||||
|
marlin_config.json
|
||||||
|
mczip.h
|
||||||
|
language*.csv
|
||||||
|
out-csv/
|
||||||
|
out-language/
|
||||||
|
*.gen
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
#
|
|
||||||
# OS
|
# OS
|
||||||
#
|
|
||||||
applet/
|
applet/
|
||||||
*.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
#
|
# Compiled C++ Object files
|
||||||
# Misc
|
|
||||||
#
|
|
||||||
*~
|
|
||||||
*.orig
|
|
||||||
*.rej
|
|
||||||
*.bak
|
|
||||||
*.idea
|
|
||||||
*.s
|
|
||||||
*.i
|
|
||||||
*.ii
|
|
||||||
*.swp
|
|
||||||
tags
|
|
||||||
|
|
||||||
#
|
|
||||||
# C++
|
|
||||||
#
|
|
||||||
# Compiled Object files
|
|
||||||
*.slo
|
*.slo
|
||||||
*.lo
|
*.lo
|
||||||
*.o
|
*.o
|
||||||
@@ -77,11 +66,7 @@ tags
|
|||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
|
||||||
|
# Compiled C Object files
|
||||||
#
|
|
||||||
# C
|
|
||||||
#
|
|
||||||
# Object files
|
|
||||||
*.o
|
*.o
|
||||||
*.ko
|
*.ko
|
||||||
*.obj
|
*.obj
|
||||||
@@ -123,33 +108,10 @@ tags
|
|||||||
.gcc-flags.json
|
.gcc-flags.json
|
||||||
/lib/
|
/lib/
|
||||||
|
|
||||||
# Workaround for Deviot+platformio quirks
|
|
||||||
Marlin/lib
|
|
||||||
Marlin/platformio.ini
|
|
||||||
Marlin/*/platformio.ini
|
|
||||||
Marlin/*/*/platformio.ini
|
|
||||||
Marlin/*/*/*/platformio.ini
|
|
||||||
Marlin/*/*/*/*/platformio.ini
|
|
||||||
Marlin/.travis.yml
|
|
||||||
Marlin/*/.travis.yml
|
|
||||||
Marlin/*/*/.travis.yml
|
|
||||||
Marlin/*/*/*/.travis.yml
|
|
||||||
Marlin/*/*/*/*/.travis.yml
|
|
||||||
Marlin/.gitignore
|
|
||||||
Marlin/*/.gitignore
|
|
||||||
Marlin/*/*/.gitignore
|
|
||||||
Marlin/*/*/*/.gitignore
|
|
||||||
Marlin/*/*/*/*/.gitignore
|
|
||||||
Marlin/readme.txt
|
|
||||||
Marlin/*/readme.txt
|
|
||||||
Marlin/*/*/readme.txt
|
|
||||||
Marlin/*/*/*/readme.txt
|
|
||||||
Marlin/*/*/*/*/readme.txt
|
|
||||||
|
|
||||||
# Secure Credentials
|
# Secure Credentials
|
||||||
Configuration_Secure.h
|
Configuration_Secure.h
|
||||||
|
|
||||||
#Visual Studio
|
# Visual Studio
|
||||||
*.sln
|
*.sln
|
||||||
*.vcxproj
|
*.vcxproj
|
||||||
*.vcxproj.user
|
*.vcxproj.user
|
||||||
@@ -160,27 +122,49 @@ __vm/
|
|||||||
.vs/
|
.vs/
|
||||||
vc-fileutils.settings
|
vc-fileutils.settings
|
||||||
|
|
||||||
#Visual Studio Code
|
# Visual Studio Code
|
||||||
.vscode
|
.vscode/*
|
||||||
.vscode/.browse.c_cpp.db*
|
!.vscode/extensions.json
|
||||||
.vscode/c_cpp_properties.json
|
|
||||||
.vscode/launch.json
|
|
||||||
.vscode/*.db
|
|
||||||
|
|
||||||
#cmake
|
# Simulation files
|
||||||
|
imgui.ini
|
||||||
|
eeprom.dat
|
||||||
|
spi_flash.bin
|
||||||
|
fs.img
|
||||||
|
|
||||||
|
# CMake
|
||||||
|
buildroot/share/cmake/*
|
||||||
CMakeLists.txt
|
CMakeLists.txt
|
||||||
|
!buildroot/share/cmake/CMakeLists.txt
|
||||||
src/CMakeLists.txt
|
src/CMakeLists.txt
|
||||||
CMakeListsPrivate.txt
|
CMakeListsPrivate.txt
|
||||||
|
build/
|
||||||
|
|
||||||
#CLion
|
# CLion
|
||||||
cmake-build-*
|
cmake-build-*
|
||||||
|
|
||||||
#Eclipse
|
# Eclipse
|
||||||
.project
|
.project
|
||||||
.cproject
|
.cproject
|
||||||
.pydevproject
|
.pydevproject
|
||||||
.settings
|
.settings
|
||||||
.classpath
|
.classpath
|
||||||
|
|
||||||
#Python
|
# Python
|
||||||
__pycache__
|
__pycache__
|
||||||
|
|
||||||
|
# IOLogger logs
|
||||||
|
*_log.csv
|
||||||
|
|
||||||
|
# Misc.
|
||||||
|
*~
|
||||||
|
*.orig
|
||||||
|
*.rej
|
||||||
|
*.bak
|
||||||
|
*.idea
|
||||||
|
*.i
|
||||||
|
*.ii
|
||||||
|
*.swp
|
||||||
|
tags
|
||||||
|
*.logs
|
||||||
|
*.bak
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
* Advanced settings can be found in Configuration_adv.h
|
* Advanced settings can be found in Configuration_adv.h
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define CONFIGURATION_H_VERSION 020005
|
#define CONFIGURATION_H_VERSION 020004
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================= Getting Started =============================
|
//============================= Getting Started =============================
|
||||||
@@ -99,7 +99,6 @@
|
|||||||
/**
|
/**
|
||||||
* Select the serial port on the board to use for communication with the host.
|
* Select the serial port on the board to use for communication with the host.
|
||||||
* This allows the connection of wireless adapters (for instance) to non-default port pins.
|
* This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||||
* Serial port -1 is the USB emulated serial port, if available.
|
|
||||||
* Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.
|
* Note: The first serial port (-1 or 0) will always be used by the Arduino bootloader.
|
||||||
*
|
*
|
||||||
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
|
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
@@ -108,6 +107,9 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Select a secondary serial port on the board to use for communication with the host.
|
* Select a secondary serial port on the board to use for communication with the host.
|
||||||
|
* This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||||
|
* Serial port -1 is the USB emulated serial port, if available.
|
||||||
|
*
|
||||||
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
|
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
|
||||||
*/
|
*/
|
||||||
//#define SERIAL_PORT_2 -1
|
//#define SERIAL_PORT_2 -1
|
||||||
@@ -361,7 +363,6 @@
|
|||||||
* 331 : (3.3V scaled thermistor 1 table for MEGA)
|
* 331 : (3.3V scaled thermistor 1 table for MEGA)
|
||||||
* 332 : (3.3V scaled thermistor 1 table for DUE)
|
* 332 : (3.3V scaled thermistor 1 table for DUE)
|
||||||
* 2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
* 2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||||
* 202 : 200k thermistor - Copymaster 3D
|
|
||||||
* 3 : Mendel-parts thermistor (4.7k pullup)
|
* 3 : Mendel-parts thermistor (4.7k pullup)
|
||||||
* 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
* 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) (4.7k pullup)
|
* 5 : 100K thermistor - ATC Semitec 104GT-2/104NT-4-R025H42G (Used in ParCan & J-Head) (4.7k pullup)
|
||||||
@@ -924,14 +925,6 @@
|
|||||||
#define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin
|
#define SMART_EFFECTOR_MOD_PIN -1 // Connect a GPIO pin to the Smart Effector MOD pin
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* Use StallGuard2 to probe the bed with the nozzle.
|
|
||||||
* Requires stallGuard-capable Trinamic stepper drivers.
|
|
||||||
* CAUTION: This can damage machines with Z lead screws.
|
|
||||||
* Take extreme care when setting up this feature.
|
|
||||||
*/
|
|
||||||
//#define SENSORLESS_PROBING
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// For Z_PROBE_ALLEN_KEY see the Delta example configurations.
|
// For Z_PROBE_ALLEN_KEY see the Delta example configurations.
|
||||||
//
|
//
|
||||||
@@ -1445,7 +1438,6 @@
|
|||||||
//#define EEPROM_SETTINGS // Persistent storage with M500 and M501
|
//#define EEPROM_SETTINGS // Persistent storage with M500 and M501
|
||||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
#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)
|
#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
|
#endif
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
* Basic settings can be found in Configuration.h
|
* Basic settings can be found in Configuration.h
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#define CONFIGURATION_ADV_H_VERSION 020005
|
#define CONFIGURATION_ADV_H_VERSION 020004
|
||||||
|
|
||||||
// @section temperature
|
// @section temperature
|
||||||
|
|
||||||
@@ -276,10 +276,8 @@
|
|||||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Extra options for the M114 "Current Position" report
|
// Show extra position information with 'M114 D'
|
||||||
//#define M114_DETAIL // Use 'M114` for details to check planner calculations
|
//#define M114_DETAIL
|
||||||
//#define M114_REALTIME // Real current position based on forward kinematics
|
|
||||||
//#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed.
|
|
||||||
|
|
||||||
// Show Temperature ADC value
|
// Show Temperature ADC value
|
||||||
// Enable for M105 to include ADC values read from temperature sensors.
|
// Enable for M105 to include ADC values read from temperature sensors.
|
||||||
@@ -338,22 +336,15 @@
|
|||||||
* Controller Fan
|
* Controller Fan
|
||||||
* To cool down the stepper drivers and MOSFETs.
|
* To cool down the stepper drivers and MOSFETs.
|
||||||
*
|
*
|
||||||
* The fan turns on automatically whenever any driver is enabled and turns
|
* The fan will turn on automatically whenever any stepper is enabled
|
||||||
* off (or reduces to idle speed) shortly after drivers are turned off.
|
* and turn off after a set period after all steppers are turned off.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
//#define USE_CONTROLLER_FAN
|
//#define USE_CONTROLLER_FAN
|
||||||
#if ENABLED(USE_CONTROLLER_FAN)
|
#if ENABLED(USE_CONTROLLER_FAN)
|
||||||
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
|
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
|
||||||
//#define CONTROLLER_FAN_USE_Z_ONLY // With this option only the Z axis is considered
|
#define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled
|
||||||
#define CONTROLLERFAN_SPEED_MIN 0 // (0-255) Minimum speed. (If set below this value the fan is turned off.)
|
#define CONTROLLERFAN_SPEED 255 // 255 == full speed
|
||||||
#define CONTROLLERFAN_SPEED_ACTIVE 255 // (0-255) Active speed, used when any motor is enabled
|
//#define CONTROLLERFAN_SPEED_Z_ONLY 127 // Reduce noise on machines that keep Z enabled
|
||||||
#define CONTROLLERFAN_SPEED_IDLE 0 // (0-255) Idle speed, used when motors are disabled
|
|
||||||
#define CONTROLLERFAN_IDLE_TIME 60 // (seconds) Extra time to keep the fan running after disabling motors
|
|
||||||
//#define CONTROLLER_FAN_EDITABLE // Enable M710 configurable settings
|
|
||||||
#if ENABLED(CONTROLLER_FAN_EDITABLE)
|
|
||||||
#define CONTROLLER_FAN_MENU // Enable the Controller Fan submenu
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// When first starting the main fan, run it at full speed for the
|
// When first starting the main fan, run it at full speed for the
|
||||||
@@ -725,9 +716,6 @@
|
|||||||
#define Z_STEPPER_ALIGN_ITERATIONS 5 // Number of iterations to apply during alignment
|
#define Z_STEPPER_ALIGN_ITERATIONS 5 // Number of iterations to apply during alignment
|
||||||
#define Z_STEPPER_ALIGN_ACC 0.02 // Stop iterating early if the accuracy is better than this
|
#define Z_STEPPER_ALIGN_ACC 0.02 // Stop iterating early if the accuracy is better than this
|
||||||
#define RESTORE_LEVELING_AFTER_G34 // Restore leveling after G34 is done?
|
#define RESTORE_LEVELING_AFTER_G34 // Restore leveling after G34 is done?
|
||||||
// After G34, re-home Z (G28 Z) or just calculate it from the last probe heights?
|
|
||||||
// Re-homing might be more precise in reproducing the actual 'G28 Z' homing height, especially on an uneven bed.
|
|
||||||
#define HOME_AFTER_G34
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// @section motion
|
// @section motion
|
||||||
@@ -760,12 +748,8 @@
|
|||||||
// Minimum time that a segment needs to take if the buffer is emptied
|
// Minimum time that a segment needs to take if the buffer is emptied
|
||||||
#define DEFAULT_MINSEGMENTTIME 20000 // (ms)
|
#define DEFAULT_MINSEGMENTTIME 20000 // (ms)
|
||||||
|
|
||||||
// Slow down the machine if the look ahead buffer is (by default) half full.
|
// If defined the movements slow down when the look ahead buffer is only half full
|
||||||
// Increase the slowdown divisor for larger buffer sizes.
|
|
||||||
#define SLOWDOWN
|
#define SLOWDOWN
|
||||||
#if ENABLED(SLOWDOWN)
|
|
||||||
#define SLOWDOWN_DIVISOR 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Frequency limit
|
// Frequency limit
|
||||||
// See nophead's blog for more info
|
// See nophead's blog for more info
|
||||||
@@ -1006,11 +990,7 @@
|
|||||||
// Show the E position (filament used) during printing
|
// Show the E position (filament used) during printing
|
||||||
//#define LCD_SHOW_E_TOTAL
|
//#define LCD_SHOW_E_TOTAL
|
||||||
|
|
||||||
#if ENABLED(SHOW_BOOTSCREEN)
|
#if HAS_GRAPHICAL_LCD && HAS_PRINT_PROGRESS
|
||||||
#define BOOTSCREEN_TIMEOUT 4000 // (ms) Total Duration to display the boot screen(s)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAS_GRAPHICAL_LCD && EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
|
|
||||||
//#define PRINT_PROGRESS_SHOW_DECIMALS // Show progress with decimal digits
|
//#define PRINT_PROGRESS_SHOW_DECIMALS // Show progress with decimal digits
|
||||||
//#define SHOW_REMAINING_TIME // Display estimated time to completion
|
//#define SHOW_REMAINING_TIME // Display estimated time to completion
|
||||||
#if ENABLED(SHOW_REMAINING_TIME)
|
#if ENABLED(SHOW_REMAINING_TIME)
|
||||||
@@ -1019,7 +999,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_CHARACTER_LCD && EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
|
#if HAS_CHARACTER_LCD && HAS_PRINT_PROGRESS
|
||||||
//#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing
|
//#define LCD_PROGRESS_BAR // Show a progress bar on HD44780 LCDs for SD printing
|
||||||
#if ENABLED(LCD_PROGRESS_BAR)
|
#if ENABLED(LCD_PROGRESS_BAR)
|
||||||
#define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar
|
#define PROGRESS_BAR_BAR_TIME 2000 // (ms) Amount of time to show the bar
|
||||||
@@ -1032,9 +1012,12 @@
|
|||||||
|
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
|
|
||||||
// The standard SD detect circuit reads LOW when media is inserted and HIGH when empty.
|
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
|
||||||
// Enable this option and set to HIGH if your SD cards are incorrectly detected.
|
// around this by connecting a push button or single throw switch to the pin defined
|
||||||
//#define SD_DETECT_STATE HIGH
|
// as SD_DETECT_PIN in your board's pins definitions.
|
||||||
|
// This setting should be disabled unless you are using a push button, pulling the pin to ground.
|
||||||
|
// Note: This is always disabled for ULTIPANEL (except ELB_FULL_GRAPHIC_CONTROLLER).
|
||||||
|
#define SD_DETECT_INVERTED
|
||||||
|
|
||||||
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
#define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished
|
||||||
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the Z enabled so your bed stays in place.
|
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the Z enabled so your bed stays in place.
|
||||||
@@ -1056,13 +1039,9 @@
|
|||||||
* during SD printing. If the recovery file is found at boot time, present
|
* during SD printing. If the recovery file is found at boot time, present
|
||||||
* an option on the LCD screen to continue the print from the last-known
|
* an option on the LCD screen to continue the print from the last-known
|
||||||
* point in the file.
|
* point in the file.
|
||||||
*
|
|
||||||
* If the machine reboots when resuming a print you may need to replace or
|
|
||||||
* reformat the SD card. (Bad sectors delay startup triggering the watchdog.)
|
|
||||||
*/
|
*/
|
||||||
//#define POWER_LOSS_RECOVERY
|
//#define POWER_LOSS_RECOVERY
|
||||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||||
#define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500)
|
|
||||||
//#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss
|
//#define BACKUP_POWER_SUPPLY // Backup power / UPS to move the steppers on power loss
|
||||||
//#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS)
|
//#define POWER_LOSS_ZRAISE 2 // (mm) Z axis raise on resume (on power loss with UPS)
|
||||||
//#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module.
|
//#define POWER_LOSS_PIN 44 // Pin to detect power loss. Set to -1 to disable default pin on boards without module.
|
||||||
@@ -1242,6 +1221,10 @@
|
|||||||
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
|
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
|
||||||
//#define USE_SMALL_INFOFONT
|
//#define USE_SMALL_INFOFONT
|
||||||
|
|
||||||
|
// Enable this option and reduce the value to optimize screen updates.
|
||||||
|
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
|
||||||
|
//#define DOGM_SPI_DELAY_US 5
|
||||||
|
|
||||||
// Swap the CW/CCW indicators in the graphics overlay
|
// Swap the CW/CCW indicators in the graphics overlay
|
||||||
//#define OVERLAY_GFX_REVERSE
|
//#define OVERLAY_GFX_REVERSE
|
||||||
|
|
||||||
@@ -1258,10 +1241,6 @@
|
|||||||
* This will prevent position updates from being displayed.
|
* This will prevent position updates from being displayed.
|
||||||
*/
|
*/
|
||||||
#if ENABLED(U8GLIB_ST7920)
|
#if ENABLED(U8GLIB_ST7920)
|
||||||
// Enable this option and reduce the value to optimize screen updates.
|
|
||||||
// The normal delay is 10µs. Use the lowest value that still gives a reliable display.
|
|
||||||
//#define DOGM_SPI_DELAY_US 5
|
|
||||||
|
|
||||||
//#define LIGHTWEIGHT_UI
|
//#define LIGHTWEIGHT_UI
|
||||||
#if ENABLED(LIGHTWEIGHT_UI)
|
#if ENABLED(LIGHTWEIGHT_UI)
|
||||||
#define STATUS_EXPIRE_SECONDS 20
|
#define STATUS_EXPIRE_SECONDS 20
|
||||||
@@ -1299,7 +1278,7 @@
|
|||||||
// Additional options for DGUS / DWIN displays
|
// Additional options for DGUS / DWIN displays
|
||||||
//
|
//
|
||||||
#if HAS_DGUS_LCD
|
#if HAS_DGUS_LCD
|
||||||
#define DGUS_SERIAL_PORT 3
|
#define DGUS_SERIAL_PORT 2
|
||||||
#define DGUS_BAUDRATE 115200
|
#define DGUS_BAUDRATE 115200
|
||||||
|
|
||||||
#define DGUS_RX_BUFFER_SIZE 128
|
#define DGUS_RX_BUFFER_SIZE 128
|
||||||
@@ -1307,15 +1286,16 @@
|
|||||||
//#define DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS // Fix Rx overrun situation (Currently only for AVR)
|
//#define DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS // Fix Rx overrun situation (Currently only for AVR)
|
||||||
|
|
||||||
#define DGUS_UPDATE_INTERVAL_MS 500 // (ms) Interval between automatic screen updates
|
#define DGUS_UPDATE_INTERVAL_MS 500 // (ms) Interval between automatic screen updates
|
||||||
|
#define BOOTSCREEN_TIMEOUT 3000 // (ms) Duration to display the boot screen
|
||||||
|
|
||||||
#if EITHER(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY)
|
#if EITHER(DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY)
|
||||||
#define DGUS_PRINT_FILENAME // Display the filename during printing
|
#define DGUS_PRINT_FILENAME // Display the filename during printing
|
||||||
#define DGUS_PREHEAT_UI // Display a preheat screen during heatup
|
#define DGUS_PREHEAT_UI // Display a preheat screen during heatup
|
||||||
|
|
||||||
#if ENABLED(DGUS_LCD_UI_FYSETC)
|
#if ENABLED(DGUS_LCD_UI_FYSETC)
|
||||||
//#define DGUS_UI_MOVE_DIS_OPTION // Disabled by default for UI_FYSETC
|
//#define DUGS_UI_MOVE_DIS_OPTION // Disabled by default for UI_FYSETC
|
||||||
#else
|
#else
|
||||||
#define DGUS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY
|
#define DUGS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DGUS_FILAMENT_LOADUNLOAD
|
#define DGUS_FILAMENT_LOADUNLOAD
|
||||||
@@ -1598,7 +1578,7 @@
|
|||||||
#if ENABLED(PROBE_TEMP_COMPENSATION)
|
#if ENABLED(PROBE_TEMP_COMPENSATION)
|
||||||
// Max temperature that can be reached by heated bed.
|
// Max temperature that can be reached by heated bed.
|
||||||
// This is required only for the calibration process.
|
// This is required only for the calibration process.
|
||||||
#define PTC_MAX_BED_TEMP BED_MAXTEMP
|
#define PTC_MAX_BED_TEMP 110
|
||||||
|
|
||||||
// Park position to wait for probe cooldown
|
// Park position to wait for probe cooldown
|
||||||
#define PTC_PARK_POS_X 0.0F
|
#define PTC_PARK_POS_X 0.0F
|
||||||
@@ -1915,7 +1895,7 @@
|
|||||||
* TMC26X Stepper Driver options
|
* TMC26X Stepper Driver options
|
||||||
*
|
*
|
||||||
* The TMC26XStepper library is required for this stepper driver.
|
* The TMC26XStepper library is required for this stepper driver.
|
||||||
* https://github.com/trinamic/TMC26XStepper
|
* https://github.com/MarlinFirmware/TMC26XStepper
|
||||||
*/
|
*/
|
||||||
#if HAS_DRIVER(TMC26X)
|
#if HAS_DRIVER(TMC26X)
|
||||||
|
|
||||||
@@ -2035,7 +2015,7 @@
|
|||||||
* TMCStepper library is required to use TMC stepper drivers.
|
* TMCStepper library is required to use TMC stepper drivers.
|
||||||
* https://github.com/teemuatlut/TMCStepper
|
* https://github.com/teemuatlut/TMCStepper
|
||||||
*/
|
*/
|
||||||
#if HAS_TRINAMIC_CONFIG
|
#if HAS_TRINAMIC
|
||||||
|
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#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 true // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
@@ -2322,6 +2302,14 @@
|
|||||||
*/
|
*/
|
||||||
//#define SENSORLESS_HOMING // StallGuard capable drivers only
|
//#define SENSORLESS_HOMING // StallGuard capable drivers only
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use StallGuard2 to probe the bed with the nozzle.
|
||||||
|
*
|
||||||
|
* CAUTION: This could cause damage to machines that use a lead screw or threaded rod
|
||||||
|
* to move the Z axis. Take extreme care when attempting to enable this feature.
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_PROBING // StallGuard capable drivers only
|
||||||
|
|
||||||
#if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING)
|
#if EITHER(SENSORLESS_HOMING, SENSORLESS_PROBING)
|
||||||
// TMC2209: 0...255. TMC2130: -64...63
|
// TMC2209: 0...255. TMC2130: -64...63
|
||||||
#define X_STALL_SENSITIVITY 8
|
#define X_STALL_SENSITIVITY 8
|
||||||
@@ -2357,7 +2345,7 @@
|
|||||||
*/
|
*/
|
||||||
#define TMC_ADV() { }
|
#define TMC_ADV() { }
|
||||||
|
|
||||||
#endif // HAS_TRINAMIC_CONFIG
|
#endif // HAS_TRINAMIC
|
||||||
|
|
||||||
// @section L64XX
|
// @section L64XX
|
||||||
|
|
||||||
@@ -3003,7 +2991,7 @@
|
|||||||
#define MAX7219_LOAD_PIN 44
|
#define MAX7219_LOAD_PIN 44
|
||||||
|
|
||||||
//#define MAX7219_GCODE // Add the M7219 G-code to control the LED matrix
|
//#define MAX7219_GCODE // Add the M7219 G-code to control the LED matrix
|
||||||
#define MAX7219_INIT_TEST 2 // Test pattern at startup: 0=none, 1=sweep, 2=spiral
|
#define MAX7219_INIT_TEST 2 // Do a test pattern at initialization (Set to 2 for spiral)
|
||||||
#define MAX7219_NUMBER_UNITS 1 // Number of Max7219 units in chain.
|
#define MAX7219_NUMBER_UNITS 1 // Number of Max7219 units in chain.
|
||||||
#define MAX7219_ROTATE 0 // Rotate the display clockwise (in multiples of +/- 90°)
|
#define MAX7219_ROTATE 0 // Rotate the display clockwise (in multiples of +/- 90°)
|
||||||
// connector at: right=0 bottom=-90 top=90 left=180
|
// connector at: right=0 bottom=-90 top=90 left=180
|
||||||
|
@@ -267,8 +267,6 @@ else ifeq ($(HARDWARE_MOTHERBOARD),1147)
|
|||||||
else ifeq ($(HARDWARE_MOTHERBOARD),1148)
|
else ifeq ($(HARDWARE_MOTHERBOARD),1148)
|
||||||
# MKS GEN L V2
|
# MKS GEN L V2
|
||||||
else ifeq ($(HARDWARE_MOTHERBOARD),1149)
|
else ifeq ($(HARDWARE_MOTHERBOARD),1149)
|
||||||
# Copymaster 3D
|
|
||||||
else ifeq ($(HARDWARE_MOTHERBOARD),1150)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# RAMBo and derivatives
|
# RAMBo and derivatives
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
/**
|
/**
|
||||||
* Marlin release version identifier
|
* Marlin release version identifier
|
||||||
*/
|
*/
|
||||||
//#define SHORT_BUILD_VERSION "2.0.5.2"
|
//#define SHORT_BUILD_VERSION "2.0.4.5"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Verbose version identifier which should contain a reference to the location
|
* Verbose version identifier which should contain a reference to the location
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
* here we define this default string as the date where the latest release
|
* here we define this default string as the date where the latest release
|
||||||
* version was tagged.
|
* version was tagged.
|
||||||
*/
|
*/
|
||||||
//#define STRING_DISTRIBUTION_DATE "2020-01-31"
|
//#define STRING_DISTRIBUTION_DATE "2023-07-19"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines a generic printer name to be output to the LCD after booting Marlin.
|
* Defines a generic printer name to be output to the LCD after booting Marlin.
|
||||||
|
@@ -1,27 +0,0 @@
|
|||||||
/**
|
|
||||||
* Marlin 3D Printer Firmware
|
|
||||||
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||||
*
|
|
||||||
* Based on Sprinter and grbl.
|
|
||||||
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// If no real EEPROM, Flash emulation, or SRAM emulation is available fall back to SD emulation
|
|
||||||
#if ENABLED(EEPROM_SETTINGS) && NONE(USE_REAL_EEPROM, FLASH_EEPROM_EMULATION, SRAM_EEPROM_EMULATION)
|
|
||||||
#define SDCARD_EEPROM_EMULATION
|
|
||||||
#endif
|
|
@@ -197,7 +197,7 @@ void spiBegin() {
|
|||||||
// output pin high - like sending 0xFF
|
// output pin high - like sending 0xFF
|
||||||
WRITE(MOSI_PIN, HIGH);
|
WRITE(MOSI_PIN, HIGH);
|
||||||
|
|
||||||
LOOP_L_N(i, 8) {
|
for (uint8_t i = 0; i < 8; i++) {
|
||||||
WRITE(SCK_PIN, HIGH);
|
WRITE(SCK_PIN, HIGH);
|
||||||
|
|
||||||
nop; // adjust so SCK is nice
|
nop; // adjust so SCK is nice
|
||||||
@@ -224,7 +224,7 @@ void spiBegin() {
|
|||||||
void spiSend(uint8_t data) {
|
void spiSend(uint8_t data) {
|
||||||
// no interrupts during byte send - about 8µs
|
// no interrupts during byte send - about 8µs
|
||||||
cli();
|
cli();
|
||||||
LOOP_L_N(i, 8) {
|
for (uint8_t i = 0; i < 8; i++) {
|
||||||
WRITE(SCK_PIN, LOW);
|
WRITE(SCK_PIN, LOW);
|
||||||
WRITE(MOSI_PIN, data & 0x80);
|
WRITE(MOSI_PIN, data & 0x80);
|
||||||
data <<= 1;
|
data <<= 1;
|
@@ -55,7 +55,7 @@
|
|||||||
// A SW memory barrier, to ensure GCC does not overoptimize loops
|
// A SW memory barrier, to ensure GCC does not overoptimize loops
|
||||||
#define sw_barrier() asm volatile("": : :"memory");
|
#define sw_barrier() asm volatile("": : :"memory");
|
||||||
|
|
||||||
#include "../../feature/e_parser.h"
|
#include "../../feature/emergency_parser.h"
|
||||||
|
|
||||||
// "Atomically" read the RX head index value without disabling interrupts:
|
// "Atomically" read the RX head index value without disabling interrupts:
|
||||||
// This MUST be called with RX interrupts enabled, and CAN'T be called
|
// This MUST be called with RX interrupts enabled, and CAN'T be called
|
||||||
@@ -682,7 +682,7 @@
|
|||||||
|
|
||||||
// Round correctly so that print(1.999, 2) prints as "2.00"
|
// Round correctly so that print(1.999, 2) prints as "2.00"
|
||||||
double rounding = 0.5;
|
double rounding = 0.5;
|
||||||
LOOP_L_N(i, digits) rounding *= 0.1;
|
for (uint8_t i = 0; i < digits; ++i) rounding *= 0.1;
|
||||||
number += rounding;
|
number += rounding;
|
||||||
|
|
||||||
// Extract the integer part of the number and print it
|
// Extract the integer part of the number and print it
|
@@ -31,9 +31,9 @@
|
|||||||
* Templatized 01 October 2018 by Eduardo José Tagle to allow multiple instances
|
* Templatized 01 October 2018 by Eduardo José Tagle to allow multiple instances
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <WString.h>
|
#include "../shared/MarlinSerial.h"
|
||||||
|
|
||||||
#include "../../inc/MarlinConfigPre.h"
|
#include <WString.h>
|
||||||
|
|
||||||
#ifndef SERIAL_PORT
|
#ifndef SERIAL_PORT
|
||||||
#define SERIAL_PORT 0
|
#define SERIAL_PORT 0
|
||||||
@@ -261,12 +261,12 @@
|
|||||||
static constexpr int PORT = serial;
|
static constexpr int PORT = serial;
|
||||||
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
||||||
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
||||||
static constexpr bool XONOFF = ENABLED(SERIAL_XON_XOFF);
|
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
||||||
static constexpr bool EMERGENCYPARSER = ENABLED(EMERGENCY_PARSER);
|
static constexpr bool EMERGENCYPARSER = bEMERGENCY_PARSER;
|
||||||
static constexpr bool DROPPED_RX = ENABLED(SERIAL_STATS_DROPPED_RX);
|
static constexpr bool DROPPED_RX = bSERIAL_STATS_DROPPED_RX;
|
||||||
static constexpr bool RX_OVERRUNS = ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS);
|
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
||||||
static constexpr bool RX_FRAMING_ERRORS = ENABLED(SERIAL_STATS_RX_FRAMING_ERRORS);
|
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
||||||
static constexpr bool MAX_RX_QUEUED = ENABLED(SERIAL_STATS_MAX_RX_QUEUED);
|
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
||||||
};
|
};
|
||||||
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
|
|
||||||
@@ -304,7 +304,7 @@
|
|||||||
static constexpr bool XONOFF = false;
|
static constexpr bool XONOFF = false;
|
||||||
static constexpr bool EMERGENCYPARSER = false;
|
static constexpr bool EMERGENCYPARSER = false;
|
||||||
static constexpr bool DROPPED_RX = false;
|
static constexpr bool DROPPED_RX = false;
|
||||||
static constexpr bool RX_OVERRUNS = HAS_DGUS_LCD && ENABLED(DGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS);
|
static constexpr bool RX_OVERRUNS = bDGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS;
|
||||||
static constexpr bool RX_FRAMING_ERRORS = false;
|
static constexpr bool RX_FRAMING_ERRORS = false;
|
||||||
static constexpr bool MAX_RX_QUEUED = false;
|
static constexpr bool MAX_RX_QUEUED = false;
|
||||||
};
|
};
|
@@ -167,7 +167,7 @@ void set_pwm_frequency(const pin_t pin, int f_desired) {
|
|||||||
uint16_t prescaler[] = { 0, 1, 8, /*TIMER2 ONLY*/32, 64, /*TIMER2 ONLY*/128, 256, 1024 };
|
uint16_t prescaler[] = { 0, 1, 8, /*TIMER2 ONLY*/32, 64, /*TIMER2 ONLY*/128, 256, 1024 };
|
||||||
|
|
||||||
// loop over prescaler values
|
// loop over prescaler values
|
||||||
LOOP_S_L_N(i, 1, 8) {
|
for (uint8_t i = 1; i < 8; i++) {
|
||||||
uint16_t res_temp_fast = 255, res_temp_phase_correct = 255;
|
uint16_t res_temp_fast = 255, res_temp_phase_correct = 255;
|
||||||
if (timer.n == 2) {
|
if (timer.n == 2) {
|
||||||
// No resolution calculation for TIMER2 unless enabled USE_OCR2A_AS_TOP
|
// No resolution calculation for TIMER2 unless enabled USE_OCR2A_AS_TOP
|
@@ -26,7 +26,7 @@
|
|||||||
*
|
*
|
||||||
* Hardware Pin : 02 03 06 07 01 05 15 16 17 18 23 24 25 26 64 63 13 12 46 45 44 43 78 77 76 75 74 73 72 71 60 59 58 57 56 55 54 53 50 70 52 51 42 41 40 39 38 37 36 35 22 21 20 19 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 | 04 08 09 10 11 14 27 28 29 30 31 32 33 34 47 48 49 61 62 65 66 67 68 69 79 80 81 98 99 100
|
* Hardware Pin : 02 03 06 07 01 05 15 16 17 18 23 24 25 26 64 63 13 12 46 45 44 43 78 77 76 75 74 73 72 71 60 59 58 57 56 55 54 53 50 70 52 51 42 41 40 39 38 37 36 35 22 21 20 19 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 | 04 08 09 10 11 14 27 28 29 30 31 32 33 34 47 48 49 61 62 65 66 67 68 69 79 80 81 98 99 100
|
||||||
* Port : E0 E1 E4 E5 G5 E3 H3 H4 H5 H6 B4 B5 B6 B7 J1 J0 H1 H0 D3 D2 D1 D0 A0 A1 A2 A3 A4 A5 A6 A7 C7 C6 C5 C4 C3 C2 C1 C0 D7 G2 G1 G0 L7 L6 L5 L4 L3 L2 L1 L0 B3 B2 B1 B0 F0 F1 F2 F3 F4 F5 F6 F7 K0 K1 K2 K3 K4 K5 K6 K7 | E2 E6 E7 xx xx H2 H7 G3 G4 xx xx xx xx xx D4 D5 D6 xx xx J2 J3 J4 J5 J6 J7 xx xx xx xx xx
|
* Port : E0 E1 E4 E5 G5 E3 H3 H4 H5 H6 B4 B5 B6 B7 J1 J0 H1 H0 D3 D2 D1 D0 A0 A1 A2 A3 A4 A5 A6 A7 C7 C6 C5 C4 C3 C2 C1 C0 D7 G2 G1 G0 L7 L6 L5 L4 L3 L2 L1 L0 B3 B2 B1 B0 F0 F1 F2 F3 F4 F5 F6 F7 K0 K1 K2 K3 K4 K5 K6 K7 | E2 E6 E7 xx xx H2 H7 G3 G4 xx xx xx xx xx D4 D5 D6 xx xx J2 J3 J4 J5 J6 J7 xx xx xx xx xx
|
||||||
* Logical Pin : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 78 79 80 xx xx 84 85 71 70 xx xx xx xx xx 81 82 83 xx xx 72 73 75 76 77 74 xx xx xx xx xx
|
* Logical Pin : 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 78 79 80 xx xx 84 85 71 70 xx xx xx xx xx 81 82 83 xx xx 72 72 75 76 77 74 xx xx xx xx xx
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../fastio.h"
|
#include "../fastio.h"
|
@@ -56,7 +56,7 @@
|
|||||||
/**
|
/**
|
||||||
* The Trinamic library includes SoftwareSerial.h, leading to a compile error.
|
* The Trinamic library includes SoftwareSerial.h, leading to a compile error.
|
||||||
*/
|
*/
|
||||||
#if HAS_TRINAMIC_CONFIG && ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
#if HAS_TRINAMIC && ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
||||||
#error "TMCStepper includes SoftwareSerial.h which is incompatible with ENDSTOP_INTERRUPTS_FEATURE. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
|
#error "TMCStepper includes SoftwareSerial.h which is incompatible with ENDSTOP_INTERRUPTS_FEATURE. Disable ENDSTOP_INTERRUPTS_FEATURE to continue."
|
||||||
#endif
|
#endif
|
||||||
|
|
@@ -70,12 +70,12 @@
|
|||||||
|
|
||||||
void PRINT_ARRAY_NAME(uint8_t x) {
|
void PRINT_ARRAY_NAME(uint8_t x) {
|
||||||
char *name_mem_pointer = (char*)pgm_read_ptr(&pin_array[x].name);
|
char *name_mem_pointer = (char*)pgm_read_ptr(&pin_array[x].name);
|
||||||
LOOP_L_N(y, MAX_NAME_LENGTH) {
|
for (uint8_t y = 0; y < MAX_NAME_LENGTH; y++) {
|
||||||
char temp_char = pgm_read_byte(name_mem_pointer + y);
|
char temp_char = pgm_read_byte(name_mem_pointer + y);
|
||||||
if (temp_char != 0)
|
if (temp_char != 0)
|
||||||
SERIAL_CHAR(temp_char);
|
SERIAL_CHAR(temp_char);
|
||||||
else {
|
else {
|
||||||
LOOP_L_N(i, MAX_NAME_LENGTH - y) SERIAL_CHAR(' ');
|
for (uint8_t i = 0; i < MAX_NAME_LENGTH - y; i++) SERIAL_CHAR(' ');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -88,7 +88,7 @@ void u8g_spiSend_sw_AVR_mode_0(uint8_t val) {
|
|||||||
volatile uint8_t *outData = u8g_outData,
|
volatile uint8_t *outData = u8g_outData,
|
||||||
*outClock = u8g_outClock;
|
*outClock = u8g_outClock;
|
||||||
U8G_ATOMIC_START();
|
U8G_ATOMIC_START();
|
||||||
LOOP_L_N(i, 8) {
|
for (uint8_t i = 0; i < 8; i++) {
|
||||||
if (val & 0x80)
|
if (val & 0x80)
|
||||||
*outData |= bitData;
|
*outData |= bitData;
|
||||||
else
|
else
|
||||||
@@ -108,7 +108,7 @@ void u8g_spiSend_sw_AVR_mode_3(uint8_t val) {
|
|||||||
volatile uint8_t *outData = u8g_outData,
|
volatile uint8_t *outData = u8g_outData,
|
||||||
*outClock = u8g_outClock;
|
*outClock = u8g_outClock;
|
||||||
U8G_ATOMIC_START();
|
U8G_ATOMIC_START();
|
||||||
LOOP_L_N(i, 8) {
|
for (uint8_t i = 0; i < 8; i++) {
|
||||||
*outClock &= bitNotClock;
|
*outClock &= bitNotClock;
|
||||||
if (val & 0x80)
|
if (val & 0x80)
|
||||||
*outData |= bitData;
|
*outData |= bitData;
|
@@ -54,7 +54,7 @@
|
|||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#if ENABLED(FLASH_EEPROM_EMULATION)
|
#if ENABLED(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM)
|
||||||
|
|
||||||
#include "../shared/Marduino.h"
|
#include "../shared/Marduino.h"
|
||||||
#include "../shared/persistent_store_api.h"
|
#include "../shared/persistent_store_api.h"
|
||||||
@@ -1016,5 +1016,5 @@ void eeprom_flush() {
|
|||||||
ee_Flush();
|
ee_Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // FLASH_EEPROM_EMULATION
|
#endif // EEPROM_SETTINGS && (!I2C_EEPROM && !SPI_EEPROM)
|
||||||
#endif // ARDUINO_ARCH_AVR
|
#endif // ARDUINO_ARCH_AVR
|
@@ -39,7 +39,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
// Define MYSERIAL0/1 before MarlinSerial includes!
|
// Define MYSERIAL0/1 before MarlinSerial includes!
|
||||||
#if SERIAL_PORT == -1 || ENABLED(EMERGENCY_PARSER)
|
#if SERIAL_PORT == -1
|
||||||
#define MYSERIAL0 customizedSerial1
|
#define MYSERIAL0 customizedSerial1
|
||||||
#elif SERIAL_PORT == 0
|
#elif SERIAL_PORT == 0
|
||||||
#define MYSERIAL0 Serial
|
#define MYSERIAL0 Serial
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
#ifdef SERIAL_PORT_2
|
#ifdef SERIAL_PORT_2
|
||||||
#if SERIAL_PORT_2 == SERIAL_PORT
|
#if SERIAL_PORT_2 == SERIAL_PORT
|
||||||
#error "SERIAL_PORT_2 must be different from SERIAL_PORT. Please update your configuration."
|
#error "SERIAL_PORT_2 must be different from SERIAL_PORT. Please update your configuration."
|
||||||
#elif SERIAL_PORT_2 == -1 || ENABLED(EMERGENCY_PARSER)
|
#elif SERIAL_PORT_2 == -1
|
||||||
#define MYSERIAL1 customizedSerial2
|
#define MYSERIAL1 customizedSerial2
|
||||||
#elif SERIAL_PORT_2 == 0
|
#elif SERIAL_PORT_2 == 0
|
||||||
#define MYSERIAL1 Serial
|
#define MYSERIAL1 Serial
|
||||||
@@ -94,6 +94,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#include "MarlinSerial.h"
|
#include "MarlinSerial.h"
|
||||||
#include "MarlinSerialUSB.h"
|
#include "MarlinSerialUSB.h"
|
||||||
|
|
@@ -45,7 +45,7 @@ template<typename Cfg> typename MarlinSerial<Cfg>::ring_buffer_pos_t MarlinSeria
|
|||||||
// A SW memory barrier, to ensure GCC does not overoptimize loops
|
// A SW memory barrier, to ensure GCC does not overoptimize loops
|
||||||
#define sw_barrier() asm volatile("": : :"memory");
|
#define sw_barrier() asm volatile("": : :"memory");
|
||||||
|
|
||||||
#include "../../feature/e_parser.h"
|
#include "../../feature/emergency_parser.h"
|
||||||
|
|
||||||
// (called with RX interrupts disabled)
|
// (called with RX interrupts disabled)
|
||||||
template<typename Cfg>
|
template<typename Cfg>
|
||||||
@@ -606,7 +606,7 @@ void MarlinSerial<Cfg>::printFloat(double number, uint8_t digits) {
|
|||||||
|
|
||||||
// Round correctly so that print(1.999, 2) prints as "2.00"
|
// Round correctly so that print(1.999, 2) prints as "2.00"
|
||||||
double rounding = 0.5;
|
double rounding = 0.5;
|
||||||
LOOP_L_N(i, digits) rounding *= 0.1;
|
for (uint8_t i = 0; i < digits; ++i) rounding *= 0.1;
|
||||||
number += rounding;
|
number += rounding;
|
||||||
|
|
||||||
// Extract the integer part of the number and print it
|
// Extract the integer part of the number and print it
|
||||||
@@ -629,13 +629,23 @@ void MarlinSerial<Cfg>::printFloat(double number, uint8_t digits) {
|
|||||||
|
|
||||||
// If not using the USB port as serial port
|
// If not using the USB port as serial port
|
||||||
#if SERIAL_PORT >= 0
|
#if SERIAL_PORT >= 0
|
||||||
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>; // Define
|
|
||||||
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1; // Instantiate
|
// Preinstantiate
|
||||||
|
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>;
|
||||||
|
|
||||||
|
// Instantiate
|
||||||
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SERIAL_PORT_2) && SERIAL_PORT_2 >= 0
|
#ifdef SERIAL_PORT_2
|
||||||
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>; // Define
|
|
||||||
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2; // Instantiate
|
// Preinstantiate
|
||||||
|
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>;
|
||||||
|
|
||||||
|
// Instantiate
|
||||||
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // ARDUINO_ARCH_SAM
|
#endif // ARDUINO_ARCH_SAM
|
@@ -27,9 +27,9 @@
|
|||||||
* Based on MarlinSerial for AVR, copyright (c) 2006 Nicholas Zambetti. All right reserved.
|
* Based on MarlinSerial for AVR, copyright (c) 2006 Nicholas Zambetti. All right reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <WString.h>
|
#include "../shared/MarlinSerial.h"
|
||||||
|
|
||||||
#include "../../inc/MarlinConfigPre.h"
|
#include <WString.h>
|
||||||
|
|
||||||
#define DEC 10
|
#define DEC 10
|
||||||
#define HEX 16
|
#define HEX 16
|
||||||
@@ -163,18 +163,22 @@ struct MarlinSerialCfg {
|
|||||||
static constexpr int PORT = serial;
|
static constexpr int PORT = serial;
|
||||||
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
||||||
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
||||||
static constexpr bool XONOFF = ENABLED(SERIAL_XON_XOFF);
|
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
||||||
static constexpr bool EMERGENCYPARSER = ENABLED(EMERGENCY_PARSER);
|
static constexpr bool EMERGENCYPARSER = bEMERGENCY_PARSER;
|
||||||
static constexpr bool DROPPED_RX = ENABLED(SERIAL_STATS_DROPPED_RX);
|
static constexpr bool DROPPED_RX = bSERIAL_STATS_DROPPED_RX;
|
||||||
static constexpr bool RX_OVERRUNS = ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS);
|
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
||||||
static constexpr bool RX_FRAMING_ERRORS = ENABLED(SERIAL_STATS_RX_FRAMING_ERRORS);
|
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
||||||
static constexpr bool MAX_RX_QUEUED = ENABLED(SERIAL_STATS_MAX_RX_QUEUED);
|
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if SERIAL_PORT >= 0
|
#if SERIAL_PORT >= 0
|
||||||
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(SERIAL_PORT_2) && SERIAL_PORT_2 >= 0
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
|
|
||||||
|
#endif // SERIAL_PORT >= 0
|
||||||
|
|
||||||
|
#ifdef SERIAL_PORT_2
|
||||||
|
|
||||||
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
||||||
|
|
||||||
#endif
|
#endif
|
@@ -29,12 +29,12 @@
|
|||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#if HAS_USB_SERIAL
|
#if SERIAL_PORT == -1
|
||||||
|
|
||||||
#include "MarlinSerialUSB.h"
|
#include "MarlinSerialUSB.h"
|
||||||
|
|
||||||
#if ENABLED(EMERGENCY_PARSER)
|
#if ENABLED(EMERGENCY_PARSER)
|
||||||
#include "../../feature/e_parser.h"
|
#include "../../feature/emergency_parser.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Imports from Atmel USB Stack/CDC implementation
|
// Imports from Atmel USB Stack/CDC implementation
|
||||||
@@ -259,7 +259,7 @@ void MarlinSerialUSB::printFloat(double number, uint8_t digits) {
|
|||||||
|
|
||||||
// Round correctly so that print(1.999, 2) prints as "2.00"
|
// Round correctly so that print(1.999, 2) prints as "2.00"
|
||||||
double rounding = 0.5;
|
double rounding = 0.5;
|
||||||
LOOP_L_N(i, digits)
|
for (uint8_t i = 0; i < digits; ++i)
|
||||||
rounding *= 0.1;
|
rounding *= 0.1;
|
||||||
|
|
||||||
number += rounding;
|
number += rounding;
|
||||||
@@ -283,12 +283,8 @@ void MarlinSerialUSB::printFloat(double number, uint8_t digits) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Preinstantiate
|
// Preinstantiate
|
||||||
#if SERIAL_PORT == -1
|
MarlinSerialUSB customizedSerial1;
|
||||||
MarlinSerialUSB customizedSerial1;
|
|
||||||
#endif
|
#endif // SERIAL_PORT == -1
|
||||||
#if SERIAL_PORT_2 == -1
|
|
||||||
MarlinSerialUSB customizedSerial2;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // HAS_USB_SERIAL
|
|
||||||
#endif // ARDUINO_ARCH_SAM
|
#endif // ARDUINO_ARCH_SAM
|
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#if HAS_USB_SERIAL
|
#if SERIAL_PORT == -1
|
||||||
|
|
||||||
#include <WString.h>
|
#include <WString.h>
|
||||||
|
|
||||||
@@ -88,12 +88,6 @@ private:
|
|||||||
static void printFloat(double, uint8_t);
|
static void printFloat(double, uint8_t);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if SERIAL_PORT == -1
|
extern MarlinSerialUSB customizedSerial1;
|
||||||
extern MarlinSerialUSB customizedSerial1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if SERIAL_PORT_2 == -1
|
#endif // SERIAL_PORT == -1
|
||||||
extern MarlinSerialUSB customizedSerial2;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // HAS_USB_SERIAL
|
|
@@ -80,7 +80,7 @@ Pio *SCK_pPio, *MOSI_pPio;
|
|||||||
uint32_t SCK_dwMask, MOSI_dwMask;
|
uint32_t SCK_dwMask, MOSI_dwMask;
|
||||||
|
|
||||||
void u8g_spiSend_sw_DUE_mode_0(uint8_t val) { // 3MHz
|
void u8g_spiSend_sw_DUE_mode_0(uint8_t val) { // 3MHz
|
||||||
LOOP_L_N(i, 8) {
|
for (uint8_t i = 0; i < 8; i++) {
|
||||||
if (val & 0x80)
|
if (val & 0x80)
|
||||||
MOSI_pPio->PIO_SODR = MOSI_dwMask;
|
MOSI_pPio->PIO_SODR = MOSI_dwMask;
|
||||||
else
|
else
|
||||||
@@ -94,7 +94,7 @@ void u8g_spiSend_sw_DUE_mode_0(uint8_t val) { // 3MHz
|
|||||||
}
|
}
|
||||||
|
|
||||||
void u8g_spiSend_sw_DUE_mode_3(uint8_t val) { // 3.5MHz
|
void u8g_spiSend_sw_DUE_mode_3(uint8_t val) { // 3.5MHz
|
||||||
LOOP_L_N(i, 8) {
|
for (uint8_t i = 0; i < 8; i++) {
|
||||||
SCK_pPio->PIO_CODR = SCK_dwMask;
|
SCK_pPio->PIO_CODR = SCK_dwMask;
|
||||||
DELAY_NS(50);
|
DELAY_NS(50);
|
||||||
if (val & 0x80)
|
if (val & 0x80)
|
@@ -63,7 +63,7 @@ extern PWM_map ISR_table[NUM_PWMS];
|
|||||||
extern uint32_t motor_current_setting[3];
|
extern uint32_t motor_current_setting[3];
|
||||||
|
|
||||||
#define IR_BIT(p) (WITHIN(p, 0, 3) ? (p) : (p) + 4)
|
#define IR_BIT(p) (WITHIN(p, 0, 3) ? (p) : (p) + 4)
|
||||||
#define COPY_ACTIVE_TABLE() do{ LOOP_L_N(i, 6) work_table[i] = active_table[i]; }while(0)
|
#define COPY_ACTIVE_TABLE() do{ for (uint8_t i = 0; i < 6 ; i++) work_table[i] = active_table[i]; }while(0)
|
||||||
|
|
||||||
#define PWM_MR0 19999 // base repetition rate minus one count - 20mS
|
#define PWM_MR0 19999 // base repetition rate minus one count - 20mS
|
||||||
#define PWM_PR 24 // prescaler value - prescaler divide by 24 + 1 - 1 MHz output
|
#define PWM_PR 24 // prescaler value - prescaler divide by 24 + 1 - 1 MHz output
|
@@ -29,7 +29,7 @@
|
|||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
#include "../shared/persistent_store_api.h"
|
#include "../shared/persistent_store_api.h"
|
||||||
|
|
||||||
#if !defined(E2END) && ENABLED(FLASH_EEPROM_EMULATION)
|
#if !defined(E2END) && NONE(I2C_EEPROM, SPI_EEPROM)
|
||||||
#define E2END 0xFFF // Default to Flash emulated EEPROM size (EepromEmulation_Due.cpp)
|
#define E2END 0xFFF // Default to Flash emulated EEPROM size (EepromEmulation_Due.cpp)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ extern void eeprom_flush();
|
|||||||
bool PersistentStore::access_start() { return true; }
|
bool PersistentStore::access_start() { return true; }
|
||||||
|
|
||||||
bool PersistentStore::access_finish() {
|
bool PersistentStore::access_finish() {
|
||||||
#if ENABLED(FLASH_EEPROM_EMULATION)
|
#if NONE(I2C_EEPROM, SPI_EEPROM)
|
||||||
eeprom_flush();
|
eeprom_flush();
|
||||||
#endif
|
#endif
|
||||||
return true;
|
return true;
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user