Merge bugfix-2.0.x into 2.0.x
This commit is contained in:
commit
fa48fbb9b8
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
|
||||||
- megaatmega2560
|
- mega2560
|
||||||
- teensy31
|
- teensy31
|
||||||
- teensy35
|
- teensy35
|
||||||
- SAMD51_grandcentral_m4
|
- SAMD51_grandcentral_m4
|
||||||
|
@ -37,22 +37,23 @@ jobs:
|
||||||
# Extended AVR Environments
|
# Extended AVR Environments
|
||||||
|
|
||||||
- FYSETC_F6_13
|
- FYSETC_F6_13
|
||||||
- megaatmega1280
|
- mega1280
|
||||||
- rambo
|
- rambo
|
||||||
- sanguino_atmega1284p
|
- sanguino1284p
|
||||||
- sanguino_atmega644p
|
- sanguino644p
|
||||||
|
|
||||||
# Extended STM32 Environments
|
# Extended STM32 Environments
|
||||||
|
|
||||||
- STM32F103RC_bigtree
|
- STM32F103RC_btt
|
||||||
- STM32F103RC_bigtree_USB
|
- STM32F103RC_btt_USB
|
||||||
- STM32F103RE_bigtree
|
- STM32F103RE_btt
|
||||||
- STM32F103RE_bigtree_USB
|
- STM32F103RE_btt_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
|
||||||
|
|
|
@ -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 020004
|
#define CONFIGURATION_H_VERSION 020005
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//============================= Getting Started =============================
|
//============================= Getting Started =============================
|
||||||
|
@ -925,6 +925,14 @@
|
||||||
#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.
|
||||||
//
|
//
|
||||||
|
|
|
@ -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 020004
|
#define CONFIGURATION_ADV_H_VERSION 020005
|
||||||
|
|
||||||
// @section temperature
|
// @section temperature
|
||||||
|
|
||||||
|
@ -276,8 +276,10 @@
|
||||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show extra position information with 'M114 D'
|
// Extra options for the M114 "Current Position" report
|
||||||
//#define M114_DETAIL
|
//#define M114_DETAIL // Use 'M114` for details to check planner calculations
|
||||||
|
//#define M114_REALTIME // Real current position based on forward kinematics
|
||||||
|
//#define M114_LEGACY // M114 used to synchronize on every call. Enable if needed.
|
||||||
|
|
||||||
// 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.
|
||||||
|
@ -716,6 +718,9 @@
|
||||||
#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
|
||||||
|
@ -990,6 +995,10 @@
|
||||||
// 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)
|
||||||
|
#define BOOTSCREEN_TIMEOUT 4000 // (ms) Total Duration to display the boot screen(s)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAS_GRAPHICAL_LCD && HAS_PRINT_PROGRESS
|
#if HAS_GRAPHICAL_LCD && HAS_PRINT_PROGRESS
|
||||||
//#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
|
||||||
|
@ -1012,12 +1021,9 @@
|
||||||
|
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
|
|
||||||
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
|
// The standard SD detect circuit reads LOW when media is inserted and HIGH when empty.
|
||||||
// around this by connecting a push button or single throw switch to the pin defined
|
// Enable this option and set to HIGH if your SD cards are incorrectly detected.
|
||||||
// as SD_DETECT_PIN in your board's pins definitions.
|
//#define SD_DETECT_STATE HIGH
|
||||||
// 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.
|
||||||
|
@ -1039,9 +1045,13 @@
|
||||||
* 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.
|
||||||
|
@ -1221,10 +1231,6 @@
|
||||||
// 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
|
||||||
|
|
||||||
|
@ -1241,6 +1247,10 @@
|
||||||
* 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
|
||||||
|
@ -1278,7 +1288,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 2
|
#define DGUS_SERIAL_PORT 3
|
||||||
#define DGUS_BAUDRATE 115200
|
#define DGUS_BAUDRATE 115200
|
||||||
|
|
||||||
#define DGUS_RX_BUFFER_SIZE 128
|
#define DGUS_RX_BUFFER_SIZE 128
|
||||||
|
@ -1286,16 +1296,15 @@
|
||||||
//#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 DUGS_UI_MOVE_DIS_OPTION // Disabled by default for UI_FYSETC
|
//#define DGUS_UI_MOVE_DIS_OPTION // Disabled by default for UI_FYSETC
|
||||||
#else
|
#else
|
||||||
#define DUGS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY
|
#define DGUS_UI_MOVE_DIS_OPTION // Enabled by default for UI_HIPRECY
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DGUS_FILAMENT_LOADUNLOAD
|
#define DGUS_FILAMENT_LOADUNLOAD
|
||||||
|
@ -1578,7 +1587,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 110
|
#define PTC_MAX_BED_TEMP BED_MAXTEMP
|
||||||
|
|
||||||
// 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
|
||||||
|
@ -2015,7 +2024,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
|
#if HAS_TRINAMIC_CONFIG
|
||||||
|
|
||||||
#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
|
||||||
|
@ -2302,14 +2311,6 @@
|
||||||
*/
|
*/
|
||||||
//#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
|
||||||
|
@ -2345,7 +2346,7 @@
|
||||||
*/
|
*/
|
||||||
#define TMC_ADV() { }
|
#define TMC_ADV() { }
|
||||||
|
|
||||||
#endif // HAS_TRINAMIC
|
#endif // HAS_TRINAMIC_CONFIG
|
||||||
|
|
||||||
// @section L64XX
|
// @section L64XX
|
||||||
|
|
||||||
|
@ -2991,7 +2992,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 // Do a test pattern at initialization (Set to 2 for spiral)
|
#define MAX7219_INIT_TEST 2 // Test pattern at startup: 0=none, 1=sweep, 2=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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
for (uint8_t i = 0; i < 8; i++) {
|
LOOP_L_N(i, 8) {
|
||||||
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();
|
||||||
for (uint8_t i = 0; i < 8; i++) {
|
LOOP_L_N(i, 8) {
|
||||||
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/emergency_parser.h"
|
#include "../../feature/e_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;
|
||||||
for (uint8_t i = 0; i < digits; ++i) rounding *= 0.1;
|
LOOP_L_N(i, digits) 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,10 +31,10 @@
|
||||||
* 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 "../shared/MarlinSerial.h"
|
|
||||||
|
|
||||||
#include <WString.h>
|
#include <WString.h>
|
||||||
|
|
||||||
|
#include "../../inc/MarlinConfigPre.h"
|
||||||
|
|
||||||
#ifndef SERIAL_PORT
|
#ifndef SERIAL_PORT
|
||||||
#define SERIAL_PORT 0
|
#define SERIAL_PORT 0
|
||||||
#endif
|
#endif
|
||||||
|
@ -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 = bSERIAL_XON_XOFF;
|
static constexpr bool XONOFF = ENABLED(SERIAL_XON_XOFF);
|
||||||
static constexpr bool EMERGENCYPARSER = bEMERGENCY_PARSER;
|
static constexpr bool EMERGENCYPARSER = ENABLED(EMERGENCY_PARSER);
|
||||||
static constexpr bool DROPPED_RX = bSERIAL_STATS_DROPPED_RX;
|
static constexpr bool DROPPED_RX = ENABLED(SERIAL_STATS_DROPPED_RX);
|
||||||
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
static constexpr bool RX_OVERRUNS = ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS);
|
||||||
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
static constexpr bool RX_FRAMING_ERRORS = ENABLED(SERIAL_STATS_RX_FRAMING_ERRORS);
|
||||||
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
static constexpr bool MAX_RX_QUEUED = ENABLED(SERIAL_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 = bDGUS_SERIAL_STATS_RX_BUFFER_OVERRUNS;
|
static constexpr bool RX_OVERRUNS = HAS_DGUS_LCD && ENABLED(DGUS_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
|
||||||
for (uint8_t i = 1; i < 8; i++) {
|
LOOP_S_L_N(i, 1, 8) {
|
||||||
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 72 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 73 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 && ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
#if HAS_TRINAMIC_CONFIG && 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);
|
||||||
for (uint8_t y = 0; y < MAX_NAME_LENGTH; y++) {
|
LOOP_L_N(y, MAX_NAME_LENGTH) {
|
||||||
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 {
|
||||||
for (uint8_t i = 0; i < MAX_NAME_LENGTH - y; i++) SERIAL_CHAR(' ');
|
LOOP_L_N(i, MAX_NAME_LENGTH - y) 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();
|
||||||
for (uint8_t i = 0; i < 8; i++) {
|
LOOP_L_N(i, 8) {
|
||||||
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();
|
||||||
for (uint8_t i = 0; i < 8; i++) {
|
LOOP_L_N(i, 8) {
|
||||||
*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(EEPROM_SETTINGS) && NONE(I2C_EEPROM, SPI_EEPROM)
|
#if ENABLED(FLASH_EEPROM_EMULATION)
|
||||||
|
|
||||||
#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 // EEPROM_SETTINGS && (!I2C_EEPROM && !SPI_EEPROM)
|
#endif // FLASH_EEPROM_EMULATION
|
||||||
#endif // ARDUINO_ARCH_AVR
|
#endif // ARDUINO_ARCH_AVR
|
|
@ -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/emergency_parser.h"
|
#include "../../feature/e_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;
|
||||||
for (uint8_t i = 0; i < digits; ++i) rounding *= 0.1;
|
LOOP_L_N(i, digits) 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
|
|
@ -27,10 +27,10 @@
|
||||||
* 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 "../shared/MarlinSerial.h"
|
|
||||||
|
|
||||||
#include <WString.h>
|
#include <WString.h>
|
||||||
|
|
||||||
|
#include "../../inc/MarlinConfigPre.h"
|
||||||
|
|
||||||
#define DEC 10
|
#define DEC 10
|
||||||
#define HEX 16
|
#define HEX 16
|
||||||
#define OCT 8
|
#define OCT 8
|
||||||
|
@ -163,12 +163,12 @@ 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 = bSERIAL_XON_XOFF;
|
static constexpr bool XONOFF = ENABLED(SERIAL_XON_XOFF);
|
||||||
static constexpr bool EMERGENCYPARSER = bEMERGENCY_PARSER;
|
static constexpr bool EMERGENCYPARSER = ENABLED(EMERGENCY_PARSER);
|
||||||
static constexpr bool DROPPED_RX = bSERIAL_STATS_DROPPED_RX;
|
static constexpr bool DROPPED_RX = ENABLED(SERIAL_STATS_DROPPED_RX);
|
||||||
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
static constexpr bool RX_OVERRUNS = ENABLED(SERIAL_STATS_RX_BUFFER_OVERRUNS);
|
||||||
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
static constexpr bool RX_FRAMING_ERRORS = ENABLED(SERIAL_STATS_RX_FRAMING_ERRORS);
|
||||||
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
static constexpr bool MAX_RX_QUEUED = ENABLED(SERIAL_STATS_MAX_RX_QUEUED);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if SERIAL_PORT >= 0
|
#if SERIAL_PORT >= 0
|
|
@ -34,7 +34,7 @@
|
||||||
#include "MarlinSerialUSB.h"
|
#include "MarlinSerialUSB.h"
|
||||||
|
|
||||||
#if ENABLED(EMERGENCY_PARSER)
|
#if ENABLED(EMERGENCY_PARSER)
|
||||||
#include "../../feature/emergency_parser.h"
|
#include "../../feature/e_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;
|
||||||
for (uint8_t i = 0; i < digits; ++i)
|
LOOP_L_N(i, digits)
|
||||||
rounding *= 0.1;
|
rounding *= 0.1;
|
||||||
|
|
||||||
number += rounding;
|
number += rounding;
|
|
@ -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
|
||||||
for (uint8_t i = 0; i < 8; i++) {
|
LOOP_L_N(i, 8) {
|
||||||
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
|
||||||
for (uint8_t i = 0; i < 8; i++) {
|
LOOP_L_N(i, 8) {
|
||||||
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{ for (uint8_t i = 0; i < 6 ; i++) work_table[i] = active_table[i]; }while(0)
|
#define COPY_ACTIVE_TABLE() do{ LOOP_L_N(i, 6) 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
|
|
@ -20,3 +20,9 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#if USE_EMULATED_EEPROM
|
||||||
|
#undef SRAM_EEPROM_EMULATION
|
||||||
|
#undef SDCARD_EEPROM_EMULATION
|
||||||
|
#define FLASH_EEPROM_EMULATION 1
|
||||||
|
#endif
|
|
@ -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) && NONE(I2C_EEPROM, SPI_EEPROM)
|
#if !defined(E2END) && ENABLED(FLASH_EEPROM_EMULATION)
|
||||||
#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 NONE(I2C_EEPROM, SPI_EEPROM)
|
#if ENABLED(FLASH_EEPROM_EMULATION)
|
||||||
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
Loading…
Reference in a new issue