🎨 Fix echoes, dialect, etc.
This commit is contained in:
@@ -942,7 +942,7 @@
|
||||
* protect against a broken or disconnected thermistor wire.
|
||||
*
|
||||
* The issue: If a thermistor falls out, it will report the much lower
|
||||
* temperature of the air in the room, and the the firmware will keep
|
||||
* temperature of the air in the room, and the firmware will keep
|
||||
* the heater on.
|
||||
*
|
||||
* If you get "Thermal Runaway" or "Heating failed" errors the
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
* protect against a broken or disconnected thermistor wire.
|
||||
*
|
||||
* The issue: If a thermistor falls out, it will report the much lower
|
||||
* temperature of the air in the room, and the the firmware will keep
|
||||
* temperature of the air in the room, and the firmware will keep
|
||||
* the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
@@ -778,7 +778,7 @@
|
||||
|
||||
// @section endstops
|
||||
|
||||
// If you want endstops to stay on (by default) even when not homing
|
||||
// If you want endstops to stay on (by default) even when not homing,
|
||||
// enable this option. Override at any time with M120, M121.
|
||||
//#define ENDSTOPS_ALWAYS_ON_DEFAULT
|
||||
|
||||
@@ -1174,7 +1174,7 @@
|
||||
#define FTM_SHAPING_V_TOL_Z 0.05f // Vibration tolerance used by EI input shapers for Z axis
|
||||
|
||||
//#define FTM_SHAPER_E // Include E shaping support
|
||||
// Required to synchronise extruder with XYZ (better quality)
|
||||
// Required to synchronize extruder with XYZ (better quality)
|
||||
#define FTM_DEFAULT_SHAPER_E ftMotionShaper_NONE // Default shaper mode on Extruder axis
|
||||
#define FTM_SHAPING_DEFAULT_FREQ_E 21.0f // (Hz) Default peak frequency used by input shapers
|
||||
#define FTM_SHAPING_ZETA_E 0.03f // Zeta used by input shapers for E axis
|
||||
@@ -4285,7 +4285,7 @@
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_MICROSTEP // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_MICROSTEP // Type of error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
|
||||
@@ -78,8 +78,8 @@ void IRAM_ATTR timer_isr(void *para) {
|
||||
|
||||
/**
|
||||
* Enable and initialize the timer
|
||||
* @param timer_num timer number to initialize
|
||||
* @param frequency frequency of the timer
|
||||
* @param timer_num timer number to initialize
|
||||
* @param frequency frequency of the timer
|
||||
*/
|
||||
void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
|
||||
const tTimerConfig timer = timer_config[timer_num];
|
||||
|
||||
@@ -37,9 +37,9 @@ public:
|
||||
MarlinServo();
|
||||
|
||||
/**
|
||||
* @brief attach the pin to the servo, set pin mode, return channel number
|
||||
* @param pin pin to attach to
|
||||
* @return channel number, -1 if failed
|
||||
* @brief attach the pin to the servo, set pin mode, return channel number
|
||||
* @param pin pin to attach to
|
||||
* @return channel number, -1 if failed
|
||||
*/
|
||||
int8_t attach(const pin_t apin);
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
*
|
||||
* Couldn't just call exact copies because the overhead killed the LCD update speed
|
||||
* With an intermediate level the softspi was running in the 10-20kHz range which
|
||||
* resulted in using about about 25% of the CPU's time.
|
||||
* resulted in using about 25% of the CPU's time.
|
||||
*/
|
||||
|
||||
#ifdef TARGET_LPC1768
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
*
|
||||
* Couldn't just call exact copies because the overhead killed the LCD update speed
|
||||
* With an intermediate level the softspi was running in the 10-20kHz range which
|
||||
* resulted in using about about 25% of the CPU's time.
|
||||
* resulted in using about 25% of the CPU's time.
|
||||
*/
|
||||
|
||||
void u8g_SetPinOutput(uint8_t internal_pin_number);
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
*
|
||||
* Couldn't just call exact copies because the overhead killed the LCD update speed
|
||||
* With an intermediate level the softspi was running in the 10-20kHz range which
|
||||
* resulted in using about about 25% of the CPU's time.
|
||||
* resulted in using about 25% of the CPU's time.
|
||||
*/
|
||||
|
||||
#ifdef __PLAT_NATIVE_SIM__
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
*
|
||||
* Couldn't just call exact copies because the overhead killed the LCD update speed
|
||||
* With an intermediate level the softspi was running in the 10-20kHz range which
|
||||
* resulted in using about about 25% of the CPU's time.
|
||||
* resulted in using about 25% of the CPU's time.
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
*
|
||||
* Couldn't just call exact copies because the overhead killed the LCD update speed
|
||||
* With an intermediate level the softspi was running in the 10-20kHz range which
|
||||
* resulted in using about about 25% of the CPU's time.
|
||||
* resulted in using about 25% of the CPU's time.
|
||||
*/
|
||||
|
||||
#ifdef __SAMD21__
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
*
|
||||
* Couldn't just call exact copies because the overhead killed the LCD update speed
|
||||
* With an intermediate level the softspi was running in the 10-20kHz range which
|
||||
* resulted in using about about 25% of the CPU's time.
|
||||
* resulted in using about 25% of the CPU's time.
|
||||
*/
|
||||
|
||||
void u8g_SetPinOutput(uint8_t internal_pin_number);
|
||||
|
||||
@@ -39,8 +39,8 @@ static_assert(COUNT(servoDelay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM
|
||||
static uint32_t servo_interrupt_priority = NVIC_EncodePriority(NVIC_GetPriorityGrouping(), TIM_IRQ_PRIO, TIM_IRQ_SUBPRIO);
|
||||
|
||||
// This must be called after the STM32 Servo class has initialized the timer.
|
||||
// It may only be needed after the first call to attach(), but it is possible
|
||||
// that is is necessary after every detach() call. To be safe this is currently
|
||||
// It may only be needed after the first call to attach(), but it's possible
|
||||
// that this is needed after every detach() call. To be safe this is currently
|
||||
// called after every call to attach().
|
||||
static void fixServoTimerInterruptPriority() {
|
||||
NVIC_SetPriority(getTimerUpIrq(TIMER_SERVO), servo_interrupt_priority);
|
||||
|
||||
@@ -800,7 +800,7 @@ void ADC_StartCalibration(ADC_Module* NS_ADCx);
|
||||
void ADC_EnableDMA(ADC_Module* NS_ADCx, uint32_t Cmd);
|
||||
|
||||
/**================================================================
|
||||
* Configure ADC interrupt enable enable
|
||||
* Configure ADC interrupt enable
|
||||
================================================================*/
|
||||
void ADC_ConfigInt(ADC_Module* NS_ADCx, uint16_t ADC_IT, uint32_t Cmd);
|
||||
|
||||
|
||||
@@ -414,7 +414,7 @@ UnwResult UnwStartArm(UnwState * const state) {
|
||||
|
||||
/* S indicates that banked registers (untracked) are used, unless
|
||||
* this is a load including the PC when the S-bit indicates that
|
||||
* that CPSR is loaded from SPSR (also untracked, but ignored).
|
||||
* CPSR is loaded from SPSR (also untracked, but ignored).
|
||||
*/
|
||||
if (S && (!L || (regList & (0x01 << 15)) == 0)) {
|
||||
UnwPrintd1("\nError:S-bit set requiring banked registers\n");
|
||||
@@ -431,7 +431,7 @@ UnwResult UnwStartArm(UnwState * const state) {
|
||||
|
||||
/* Check if ascending or descending.
|
||||
* Registers are loaded/stored in order of address.
|
||||
* i.e. r0 is at the lowest address, r15 at the highest.
|
||||
* i.e., r0 is at the lowest address, r15 at the highest.
|
||||
*/
|
||||
r = U ? 0 : 15;
|
||||
do {
|
||||
|
||||
@@ -154,37 +154,36 @@ inline void servo_probe_test() {
|
||||
|
||||
SET_INPUT_PULLUP(PROBE_TEST_PIN);
|
||||
|
||||
// First, check for a probe that recognizes an advanced BLTouch sequence.
|
||||
// In addition to STOW and DEPLOY, it uses SW MODE (and RESET in the beginning)
|
||||
// to see if this is one of the following: BLTOUCH Classic 1.2, 1.3, or
|
||||
// BLTouch Smart 1.0, 2.0, 2.2, 3.0, 3.1. But only if the user has actually
|
||||
// configured a BLTouch as being present. If the user has not configured this,
|
||||
// the BLTouch will be detected in the last phase of these tests (see further on).
|
||||
bool blt = false;
|
||||
// This code will try to detect a BLTouch probe or clone
|
||||
/**
|
||||
* This code will try to detect a BLTouch probe or clone.
|
||||
* First, check for a probe that recognizes an advanced BLTouch sequence.
|
||||
* In addition to STOW and DEPLOY, it uses SW MODE (and RESET in the beginning)
|
||||
* to see if this is one of the following: BLTOUCH Classic 1.2, 1.3, or
|
||||
* BLTouch Smart 1.0, 2.0, 2.2, 3.0, 3.1. But only if the user has actually
|
||||
* configured a BLTouch as being present. If the user has not configured this,
|
||||
* the BLTouch will be detected in the last phase of these tests (see further on).
|
||||
*/
|
||||
#if ENABLED(BLTOUCH)
|
||||
SERIAL_ECHOLNPGM(". Check for BLTOUCH");
|
||||
bltouch._reset();
|
||||
bltouch._stow();
|
||||
if (!PROBE_TRIGGERED()) {
|
||||
bltouch._set_SW_mode();
|
||||
if (PROBE_TRIGGERED()) {
|
||||
bltouch._deploy();
|
||||
if (!PROBE_TRIGGERED()) {
|
||||
bltouch._stow();
|
||||
SERIAL_ECHOLNPGM("= BLTouch Classic 1.2, 1.3, Smart 1.0, 2.0, 2.2, 3.0, 3.1 detected.");
|
||||
// Check for a 3.1 by letting the user trigger it, later
|
||||
blt = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
bool blt = false;
|
||||
do {
|
||||
SERIAL_ECHOLNPGM(". Check for BLTOUCH");
|
||||
bltouch._reset();
|
||||
bltouch._stow(); if ( PROBE_TRIGGERED()) break;
|
||||
bltouch._set_SW_mode(); if (!PROBE_TRIGGERED()) break;
|
||||
bltouch._deploy(); if ( PROBE_TRIGGERED()) break;
|
||||
bltouch._stow();
|
||||
SERIAL_ECHOLNPGM("= BLTouch Classic 1.2, 1.3, Smart 1.0, 2.0, 2.2, 3.0, 3.1 detected.");
|
||||
blt = true; // Check for a 3.1 by letting the user trigger it, later
|
||||
} while(0);
|
||||
#else
|
||||
static constexpr bool blt = false;
|
||||
#endif
|
||||
|
||||
// The following code is common to all kinds of servo probes.
|
||||
// Since it could be a real servo or a BLTouch (any kind) or a clone,
|
||||
// use only "common" functions - i.e. SERVO_MOVE. No bltouch.xxxx stuff.
|
||||
|
||||
// If it is already recognised as a being a BLTouch, no need for this test
|
||||
// If it is already recognized as a being a BLTouch, no need for this test
|
||||
if (!blt) {
|
||||
// DEPLOY and STOW 4 times and see if the signal follows
|
||||
// Then it is a mechanical switch
|
||||
|
||||
@@ -975,7 +975,7 @@ do {
|
||||
* The end result is that the selected items have dual presence
|
||||
* in both hashes. There is no copy of the items made; rather
|
||||
* they are added into the new hash through a secondary hash
|
||||
* hash handle that must be present in the structure. */
|
||||
* handle that must be present in the structure. */
|
||||
#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \
|
||||
do { \
|
||||
unsigned _src_bkt, _dst_bkt; \
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
#endif
|
||||
|
||||
#if ENABLED(LASER_FEATURE)
|
||||
// Setup and fire a test pulse using the current PWM power level for for a duration of test_pulse_min to test_pulse_max ms.
|
||||
// Setup and fire a test pulse using the current PWM power level for a duration of test_pulse_min to test_pulse_max ms.
|
||||
EDIT_ITEM_FAST(CUTTER_MENU_PULSE_TYPE, MSG_LASER_PULSE_MS, &cutter.testPulse, LASER_TEST_PULSE_MIN, LASER_TEST_PULSE_MAX);
|
||||
ACTION_ITEM(MSG_LASER_FIRE_PULSE, cutter.test_fire_pulse);
|
||||
#if ENABLED(HAL_CAN_SET_PWM_FREQ) && SPINDLE_LASER_FREQUENCY
|
||||
|
||||
@@ -134,7 +134,7 @@ glyph_t *TFT_String::glyph(uint16_t character) {
|
||||
}
|
||||
else {
|
||||
#if 0
|
||||
// Slow search method that that does not care if glyphs are ordered by unicode
|
||||
// Slow search method that doesn't care if glyphs are Unicode-ordered
|
||||
for (uint16_t i = 0; i < extra_count; i++) {
|
||||
if (character == ((uniglyph_t *)glyphs_extra[i])->unicode)
|
||||
return &(((uniglyph_t *)glyphs_extra[i])->glyph);
|
||||
|
||||
@@ -481,9 +481,9 @@
|
||||
|
||||
/**
|
||||
* Fast write helper
|
||||
* @param[in] address I/O register address
|
||||
* @param[in] bit bit number to write
|
||||
* @param[in] level value for bit
|
||||
* @param[in] address I/O register address
|
||||
* @param[in] bit bit number to write
|
||||
* @param[in] level value for bit
|
||||
*/
|
||||
FORCE_INLINE static void fastBitWriteSafe(volatile uint8_t* address, uint8_t bit, bool level) {
|
||||
uint8_t oldSREG;
|
||||
|
||||
@@ -150,7 +150,7 @@ public:
|
||||
* can reach the position required to put the probe at the given position.
|
||||
*
|
||||
* Example: For a probe offset of -10,+10, then for the probe to reach 0,0 the
|
||||
* nozzle must be be able to reach +10,-10.
|
||||
* nozzle must be able to reach +10,-10.
|
||||
*/
|
||||
static bool can_reach(const float rx, const float ry, const bool probe_relative=true) {
|
||||
if (probe_relative) {
|
||||
|
||||
@@ -486,7 +486,7 @@ class Stepper {
|
||||
#if ENABLED(SMOOTH_LIN_ADVANCE)
|
||||
static uint32_t curr_timer_tick, // Current tick relative to block start
|
||||
curr_step_rate; // Current motion step rate
|
||||
static uint32_t extruder_advance_tau_ticks[DISTINCT_E], // Same as extruder_advance_tau but in in stepper timer ticks
|
||||
static uint32_t extruder_advance_tau_ticks[DISTINCT_E], // Same as extruder_advance_tau but in stepper timer ticks
|
||||
extruder_advance_alpha_q30[DISTINCT_E]; // The smoothing factor of each stage of the high-order exponential
|
||||
// smoothing filter (calculated from tau)
|
||||
#else
|
||||
|
||||
@@ -1155,7 +1155,7 @@ void Temperature::factory_reset() {
|
||||
hotend.target = 200.0f; // So M105 looks nice
|
||||
hotend.soft_pwm_amount = (MPC_MAX) >> 1;
|
||||
|
||||
// Initialise rate of change to to steady state at current time
|
||||
// Initialise rate of change to steady state at current time
|
||||
temp_samples[0] = temp_samples[1] = temp_samples[2] = current_temp;
|
||||
time_fastest = rate_fastest = 0;
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
* The best solution is to use the custom cable to connect the LCD SD_DETECT to a pin NOT on EXP2.
|
||||
*
|
||||
* If you can't find a pin to use for the LCD SD_DETECT then comment out SD_DETECT_PIN and remove that wire
|
||||
* from the the custom cable.
|
||||
* from the custom cable.
|
||||
*/
|
||||
#define SD_DETECT_PIN PIN_P2_11 // J8-5 (moved from EXP2 P0.27)
|
||||
#define SD_SCK_PIN PIN_P1_22 // J8-2 (moved from EXP2 P0.7)
|
||||
|
||||
@@ -444,14 +444,14 @@
|
||||
* The LPC1768's hardware PWM controller has 6 channels. Each channel
|
||||
* can be setup to either control a dedicated pin directly or to generate
|
||||
* an interrupt. The direct method's duty cycle is accurate to within a
|
||||
* a microsecond. The interrupt method's average duty cycle has the
|
||||
* the same accuracy but the individual cycles can vary because of higher
|
||||
* microsecond. The interrupt method's average duty cycle has the
|
||||
* same accuracy but the individual cycles can vary because of higher
|
||||
* priority interrupts.
|
||||
*
|
||||
* All Fast PWMs have a 50Hz rate.
|
||||
*
|
||||
* The following pins/signals use the direct method. All other pins use the
|
||||
* the interrupt method. Note that SERVO2_PIN and MOSFET_C_PIN use the
|
||||
* interrupt method. Note that SERVO2_PIN and MOSFET_C_PIN use the
|
||||
* interrupt method.
|
||||
*
|
||||
* P1_20 (11) SERVO0_PIN
|
||||
|
||||
@@ -84,13 +84,13 @@
|
||||
* M3/M4/M5 - Spindle/Laser Control
|
||||
*
|
||||
* If you want to control the speed of your spindle then you'll have
|
||||
* have to sacrifce the Extruder and pull some signals off the Z stepper
|
||||
* to sacrifce the Extruder and pull some signals off the Z stepper
|
||||
* driver socket.
|
||||
*
|
||||
* The following assumes:
|
||||
* - the Z stepper driver socket is empty
|
||||
* - the extruder driver socket has a driver board plugged into it
|
||||
* - the Z stepper wires are attached the the extruder connector
|
||||
* - the Z stepper wires are attached the extruder connector
|
||||
*
|
||||
* If you want to keep the extruder AND don't have a LCD display then
|
||||
* you can still control the power on/off and spindle direction.
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
|
||||
/**
|
||||
* This section starts with the pins_RAMPS_144.h as example, after if you need any new
|
||||
* display, you could use normal duponts and connect it with with the scheme showed before.
|
||||
* display, you could use normal duponts and connect it with the scheme showed before.
|
||||
* Tested:
|
||||
* - Ender-3 Old display (Character LCD)
|
||||
* - Ender-3 New Serial DWING Display
|
||||
|
||||
@@ -236,7 +236,7 @@
|
||||
|
||||
/**
|
||||
* This sections starts with the pins_RAMPS_144.h as example, after if you need any new
|
||||
* display, you could use normal duponts and connect it with with the scheme showed before.
|
||||
* display, you could use normal duponts and connect it with the scheme showed before.
|
||||
* Tested:
|
||||
* - Ender-3 Old display (Character LCD)
|
||||
* - Ender-3 New Serial DWING Display
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
* The following assumes:
|
||||
* - The X stepper driver socket is empty
|
||||
* - The extruder driver socket has a driver board plugged into it
|
||||
* - The X stepper wires are attached the the extruder connector
|
||||
* - The X stepper wires are attached the extruder connector
|
||||
*/
|
||||
|
||||
/**
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
/**
|
||||
* FLSUN Hi-Speed has no hard-wired UART pins for TMC drivers.
|
||||
* Several wiring options are provided below, defaulting to
|
||||
* to the most compatible.
|
||||
* the most compatible.
|
||||
*/
|
||||
#if HAS_TMC_UART
|
||||
// SoftwareSerial with one pin per driver
|
||||
|
||||
@@ -33,7 +33,7 @@ class ReadTimeout(Exception):
|
||||
pass
|
||||
class FatalError(Exception):
|
||||
pass
|
||||
class SycronisationError(Exception):
|
||||
class SynchronizationError(Exception):
|
||||
pass
|
||||
class PayloadOverflow(Exception):
|
||||
pass
|
||||
@@ -56,7 +56,7 @@ class Protocol(object):
|
||||
simulate_errors = 0
|
||||
sync = 0
|
||||
connected = False
|
||||
syncronised = False
|
||||
syncronized = False
|
||||
worker_thread = None
|
||||
|
||||
response_timeout = 1000
|
||||
@@ -261,7 +261,7 @@ class Protocol(object):
|
||||
|
||||
def disconnect(self):
|
||||
self.send(0, 2)
|
||||
self.syncronised = False
|
||||
self.syncronized = False
|
||||
|
||||
def response_ok(self, data):
|
||||
try:
|
||||
@@ -269,17 +269,17 @@ class Protocol(object):
|
||||
except ValueError:
|
||||
return
|
||||
if packet_id != self.sync:
|
||||
raise SycronisationError()
|
||||
raise SynchronizationError()
|
||||
self.sync = (self.sync + 1) % 256
|
||||
self.packet_status = 1
|
||||
|
||||
def response_resend(self, data):
|
||||
packet_id = int(data)
|
||||
self.errors += 1
|
||||
if not self.syncronised:
|
||||
print("Retrying syncronisation")
|
||||
if not self.syncronized:
|
||||
print("Retrying synchronization")
|
||||
elif packet_id != self.sync:
|
||||
raise SycronisationError()
|
||||
raise SynchronizationError()
|
||||
|
||||
def response_stream_sync(self, data):
|
||||
sync, max_block_size, protocol_version = data.split(',')
|
||||
@@ -288,7 +288,7 @@ class Protocol(object):
|
||||
self.block_size = self.max_block_size if self.max_block_size < self.block_size else self.block_size
|
||||
self.protocol_version = protocol_version
|
||||
self.packet_status = 1
|
||||
self.syncronised = True
|
||||
self.syncronized = True
|
||||
print("Connection synced [{0}], binary protocol version {1}, {2} byte payload buffer".format(self.sync, self.protocol_version, self.max_block_size))
|
||||
|
||||
def response_fatal_error(self, data):
|
||||
|
||||
Reference in New Issue
Block a user