Compare commits
131 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ce6c07d231 | ||
|
0771266bf7 | ||
|
1f75f6710d | ||
|
200b2487c2 | ||
|
cf9a171aa9 | ||
|
783e0122d6 | ||
|
2b01649533 | ||
|
4f24323817 | ||
|
771ee1c1a9 | ||
|
d659777e70 | ||
|
5719fcba51 | ||
|
80b8fd1cad | ||
|
d1c45ff80b | ||
|
240b71ee1c | ||
|
b0a3c7a91c | ||
|
782c598e66 | ||
|
f08b0d034f | ||
|
09437466b1 | ||
|
2ee599d873 | ||
|
4e1bbdb89f | ||
|
5fb88a2754 | ||
|
3c14c01a3a | ||
|
93f690afdb | ||
|
6b1d2263a2 | ||
|
dfe891fe11 | ||
|
6e0d627c8c | ||
|
6c528e63eb | ||
|
949172606f | ||
|
55a248d6b4 | ||
|
04b2abb6aa | ||
|
81593cb3cb | ||
|
4d0d37aab7 | ||
|
6a245fe4f7 | ||
|
e8f8a46ef5 | ||
|
b98f72b483 | ||
|
a393941d2d | ||
|
097cc75ba8 | ||
|
1e1a18e091 | ||
|
0b4f65dca8 | ||
|
8e05b0037b | ||
|
ffe054c129 | ||
|
0d6609c3c5 | ||
|
af89ccf96a | ||
|
641b30217e | ||
|
41aa4bdf1f | ||
|
92882fcc51 | ||
|
0114cf1101 | ||
|
9c43369ebb | ||
|
6791401ca7 | ||
|
1da9d10173 | ||
|
fcedfd6e99 | ||
|
2512d8fd5e | ||
|
f543aaa54e | ||
|
f2ffc8b28b | ||
|
26279fa43c | ||
|
0bee67e5f1 | ||
|
709dd5aa4d | ||
|
4f85226106 | ||
|
bc86ee0271 | ||
|
cc5059478a | ||
|
82ef101ed5 | ||
|
33a9d32800 | ||
|
6a4d394fff | ||
|
de333c4fea | ||
|
0f835c0c4e | ||
|
8def2c31db | ||
|
b919a6f182 | ||
|
8bf5f7c676 | ||
|
31450ad498 | ||
|
187c183c20 | ||
|
352294b5f5 | ||
|
507aef055f | ||
|
1a79b13b7a | ||
|
7f81aa7ff3 | ||
|
5f32184254 | ||
|
05765fb570 | ||
|
4402760739 | ||
|
f0b96f5cae | ||
|
12c0bf9521 | ||
|
c6577aea60 | ||
|
ce0a9d3dc6 | ||
|
4ed8351e3d | ||
|
70d1d4de5f | ||
|
0385acea7a | ||
|
27d70599d4 | ||
|
372f93cc7a | ||
|
6b01cf07c2 | ||
|
9e520ae319 | ||
|
f83c03f594 | ||
|
3252df7998 | ||
|
b60ea95adf | ||
|
e0ab06cfae | ||
|
0b8ef5eba6 | ||
|
545f7997ea | ||
|
3dcf6d42ff | ||
|
5f8e52aefb | ||
|
0880fecbd4 | ||
|
f1ed310322 | ||
|
4b697938e6 | ||
|
3b2d159abd | ||
|
2e4ddd5c22 | ||
|
443e6d26fe | ||
|
ee71f5a320 | ||
|
7950b5268a | ||
|
e4039a9b5b | ||
|
1d987cd280 | ||
|
d6f92f9efe | ||
|
ab412a2153 | ||
|
53cc6cca46 | ||
|
5955a3063f | ||
|
67fabb6044 | ||
|
d1bdd25b84 | ||
|
0d554c10ac | ||
|
cd4c3e90bc | ||
|
8cb04816b5 | ||
|
4b31c67dce | ||
|
e08915a723 | ||
|
26168676e7 | ||
|
f54315c728 | ||
|
37a0806420 | ||
|
f423716c6a | ||
|
627f39e1e3 | ||
|
fc0baec991 | ||
|
18de9f55ac | ||
|
3a1e6b1752 | ||
|
1ee76fa981 | ||
|
94962ee678 | ||
|
14afe1a017 | ||
|
c606ed447a | ||
|
5d8036e554 | ||
|
bec112de87 |
@@ -124,11 +124,11 @@ script:
|
||||
- build_marlin
|
||||
# Enable filament sensor
|
||||
- restore_configs
|
||||
- opt_enable FILAMENT_SENSOR
|
||||
- opt_enable FILAMENT_WIDTH_SENSOR
|
||||
- build_marlin
|
||||
# Enable filament sensor with LCD display
|
||||
- restore_configs
|
||||
- opt_enable ULTIMAKERCONTROLLER FILAMENT_SENSOR FILAMENT_LCD_DISPLAY
|
||||
- opt_enable ULTIMAKERCONTROLLER FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY
|
||||
- build_marlin
|
||||
# Enable COREXY
|
||||
- restore_configs
|
||||
|
@@ -27,13 +27,22 @@
|
||||
|
||||
#ifndef CONDITIONALS_H
|
||||
|
||||
/**
|
||||
* Miscellaneous
|
||||
*/
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.1415926536
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURATION_LCD // Get the LCD defines which are needed first
|
||||
/**
|
||||
* This value is used by M109 when tying to calculate a ballpark safe margin
|
||||
* to prevent wait-forever situation.
|
||||
*/
|
||||
#ifndef EXTRUDE_MINTEMP
|
||||
#define EXTRUDE_MINTEMP 170
|
||||
#endif
|
||||
|
||||
#define PIN_EXISTS(PN) (defined(PN##_PIN) && PN##_PIN >= 0)
|
||||
#ifndef CONFIGURATION_LCD // Get the LCD defines which are needed first
|
||||
|
||||
#define CONFIGURATION_LCD
|
||||
|
||||
@@ -339,7 +348,7 @@
|
||||
#define MAX_PROBE_Y (min(Y_MAX_POS, Y_MAX_POS + Y_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
#endif
|
||||
|
||||
#define SERVO_LEVELING (defined(AUTO_BED_LEVELING_FEATURE) && defined(Z_ENDSTOP_SERVO_NR))
|
||||
#define SERVO_LEVELING (ENABLED(AUTO_BED_LEVELING_FEATURE) && defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
|
||||
|
||||
/**
|
||||
* Sled Options
|
||||
@@ -513,7 +522,7 @@
|
||||
#define HAS_SERVO_1 (PIN_EXISTS(SERVO1))
|
||||
#define HAS_SERVO_2 (PIN_EXISTS(SERVO2))
|
||||
#define HAS_SERVO_3 (PIN_EXISTS(SERVO3))
|
||||
#define HAS_FILAMENT_SENSOR (ENABLED(FILAMENT_SENSOR) && PIN_EXISTS(FILWIDTH))
|
||||
#define HAS_FILAMENT_WIDTH_SENSOR (PIN_EXISTS(FILWIDTH))
|
||||
#define HAS_FILRUNOUT (PIN_EXISTS(FILRUNOUT))
|
||||
#define HAS_HOME (PIN_EXISTS(HOME))
|
||||
#define HAS_KILL (PIN_EXISTS(KILL))
|
||||
@@ -570,6 +579,8 @@
|
||||
#define HAS_E3_STEP (PIN_EXISTS(E3_STEP))
|
||||
#define HAS_E4_STEP (PIN_EXISTS(E4_STEP))
|
||||
|
||||
#define HAS_MOTOR_CURRENT_PWM (PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_Z) || PIN_EXISTS(MOTOR_CURRENT_PWM_E))
|
||||
|
||||
/**
|
||||
* Helper Macros for heaters and extruder fan
|
||||
*/
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -279,10 +280,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -708,7 +709,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -919,11 +920,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -28,9 +28,9 @@
|
||||
// #error "You must specify the following parameters related to your distribution"
|
||||
|
||||
#if true
|
||||
#define SHORT_BUILD_VERSION "1.1.0-RC4"
|
||||
#define DETAILED_BUILD_VERSION "1.1.0-RC4 From Archive"
|
||||
#define STRING_DISTRIBUTION_DATE "2016-03-07 12:00"
|
||||
#define SHORT_BUILD_VERSION "1.1.0-RC5"
|
||||
#define DETAILED_BUILD_VERSION "1.1.0-RC5 From Archive"
|
||||
#define STRING_DISTRIBUTION_DATE "2016-04-01 12:00"
|
||||
// It might also be appropriate to define a location where additional information can be found
|
||||
// #define SOURCE_CODE_URL "http:// ..."
|
||||
#endif
|
||||
|
@@ -19,10 +19,6 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
// Tonokip RepRap firmware rewrite based off of Hydra-mmm firmware.
|
||||
// License: GPL
|
||||
|
||||
#ifndef MARLIN_H
|
||||
#define MARLIN_H
|
||||
|
||||
@@ -113,7 +109,6 @@ void serial_echopair_P(const char* s_P, float v);
|
||||
void serial_echopair_P(const char* s_P, double v);
|
||||
void serial_echopair_P(const char* s_P, unsigned long v);
|
||||
|
||||
|
||||
// Things to write to serial from Program memory. Saves 400 to 2k of RAM.
|
||||
FORCE_INLINE void serialprintPGM(const char* str) {
|
||||
char ch;
|
||||
@@ -123,8 +118,6 @@ FORCE_INLINE void serialprintPGM(const char* str) {
|
||||
}
|
||||
}
|
||||
|
||||
void get_command();
|
||||
|
||||
void idle(
|
||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
||||
bool no_stepper_sleep=false // pass true to keep steppers from disabling on timeout
|
||||
@@ -236,6 +229,7 @@ void Stop();
|
||||
* Debug flags - not yet widely applied
|
||||
*/
|
||||
enum DebugFlags {
|
||||
DEBUG_NONE = 0,
|
||||
DEBUG_ECHO = _BV(0),
|
||||
DEBUG_INFO = _BV(1),
|
||||
DEBUG_ERRORS = _BV(2),
|
||||
@@ -244,6 +238,7 @@ enum DebugFlags {
|
||||
DEBUG_LEVELING = _BV(5)
|
||||
};
|
||||
extern uint8_t marlin_debug_flags;
|
||||
#define DEBUGGING(F) (marlin_debug_flags & (DEBUG_## F))
|
||||
|
||||
extern bool Running;
|
||||
inline bool IsRunning() { return Running; }
|
||||
@@ -341,11 +336,11 @@ extern bool axis_homed[3]; // axis[n].is_homed
|
||||
extern int EtoPPressure;
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
extern float filament_width_nominal; //holds the theoretical filament diameter i.e., 3.00 or 1.75
|
||||
extern bool filament_sensor; //indicates that filament sensor readings should control extrusion
|
||||
extern float filament_width_meas; //holds the filament diameter as accurately measured
|
||||
extern signed char measurement_delay[]; //ring buffer to delay measurement
|
||||
extern int8_t measurement_delay[]; //ring buffer to delay measurement
|
||||
extern int delay_index1, delay_index2; //ring buffer index. used by planner, temperature, and main code
|
||||
extern float delay_dist; //delay distance counter
|
||||
extern int meas_delay_cm; //delay distance
|
||||
|
@@ -49,7 +49,7 @@
|
||||
#include <LCD.h>
|
||||
#include <LiquidCrystal_I2C.h>
|
||||
#elif ENABLED(DOGLCD)
|
||||
#include <U8glib.h> // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/)
|
||||
#include <U8glib.h> // library for graphics LCD by Oli Kraus (https://github.com/olikraus/U8glib_Arduino)
|
||||
#else
|
||||
#include <LiquidCrystal.h> // library for character LCD
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -28,6 +28,16 @@
|
||||
#ifndef SANITYCHECK_H
|
||||
#define SANITYCHECK_H
|
||||
|
||||
/**
|
||||
* Due to the high number of issues related with old versions of Arduino IDE
|
||||
* we are now warning our users to update their toolkits. In a future Marlin
|
||||
* release we will stop supporting old IDE versions and will require user
|
||||
* action to proceed with compilation in such environments.
|
||||
*/
|
||||
#if !defined(ARDUINO) || ARDUINO < 10500
|
||||
#warning Versions of Arduino IDE prior to 1.5 are no longer supported, please update your toolkit.
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Dual Stepper Drivers
|
||||
*/
|
||||
@@ -131,10 +141,16 @@
|
||||
#error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bed Heating Options - PID vs Limit Switching
|
||||
*/
|
||||
#if ENABLED(PIDTEMPBED) && ENABLED(BED_LIMIT_SWITCHING)
|
||||
#error To use BED_LIMIT_SWITCHING you must disable PIDTEMPBED.
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Mesh Bed Leveling
|
||||
*/
|
||||
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
#error MESH_BED_LEVELING does not yet support DELTA printers.
|
||||
@@ -153,9 +169,9 @@
|
||||
* Probes
|
||||
*/
|
||||
|
||||
/**
|
||||
* A probe needs a pin
|
||||
*/
|
||||
/**
|
||||
* A probe needs a pin
|
||||
*/
|
||||
#if (!((HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE )) && ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED))
|
||||
#error A probe needs a pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE]
|
||||
#endif
|
||||
@@ -164,9 +180,9 @@
|
||||
#error A probe should not be connected to more then one pin! [Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN || HAS_Z_PROBE]
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Require one kind of probe
|
||||
*/
|
||||
/**
|
||||
* Require one kind of probe
|
||||
*/
|
||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE) && !( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED))
|
||||
#error For AUTO_BED_LEVELING_FEATURE define one kind of probe! {Servo | Z_PROBE_ALLEN_KEY | Z_PROBE_SLED | FIX_MOUNTED_PROBE]
|
||||
#endif
|
||||
@@ -259,6 +275,14 @@
|
||||
|
||||
#endif // AUTO_BED_LEVELING_FEATURE
|
||||
|
||||
/**
|
||||
* Filament Width Sensor
|
||||
*/
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR) && !HAS_FILAMENT_WIDTH_SENSOR
|
||||
#error FILAMENT_WIDTH_SENSOR requires a FILWIDTH_PIN to be defined.
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* ULTIPANEL encoder
|
||||
*/
|
||||
@@ -430,6 +454,8 @@
|
||||
#error SDEXTRASLOW deprecated - set SPI_SPEED to SPI_QUARTER_SPEED instead
|
||||
#elif defined(Z_RAISE_BEFORE_HOMING)
|
||||
#error Z_RAISE_BEFORE_HOMING is deprecated. Use MIN_Z_HEIGHT_FOR_HOMING instead.
|
||||
#elif defined(FILAMENT_SENSOR)
|
||||
#error FILAMENT_SENSOR is deprecated. Use FILAMENT_WIDTH_SENSOR instead.
|
||||
#endif
|
||||
|
||||
#endif //SANITYCHECK_H
|
||||
|
@@ -83,6 +83,8 @@
|
||||
#define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board
|
||||
#define BOARD_LEAPFROG 999 // Leapfrog
|
||||
#define BOARD_MKS_BASE 40 // MKS BASE 1.0
|
||||
#define BOARD_MKS_13 47 // MKS v1.3 or 1.4 (maybe higher)
|
||||
#define BOARD_SAINSMART_2IN1 49 // Sainsmart 2-in-1 board
|
||||
#define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers
|
||||
#define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers
|
||||
#define BOARD_BQ_ZUM_MEGA_3D 503 // bq ZUM Mega 3D
|
||||
|
@@ -266,10 +266,10 @@ void CardReader::release() {
|
||||
}
|
||||
|
||||
void CardReader::openAndPrintFile(const char *name) {
|
||||
char cmd[4 + (FILENAME_LENGTH + 1) * MAX_DIR_DEPTH + 2]; // Room for "M23 ", names with slashes, a null, and one extra
|
||||
char cmd[4 + strlen(name) + 1]; // Room for "M23 ", filename, and null
|
||||
sprintf_P(cmd, PSTR("M23 %s"), name);
|
||||
for (char *c = &cmd[4]; *c; c++) *c = tolower(*c);
|
||||
enqueue_and_echo_command_now(cmd);
|
||||
enqueue_and_echo_command(cmd);
|
||||
enqueue_and_echo_commands_P(PSTR("M24"));
|
||||
}
|
||||
|
||||
@@ -300,10 +300,10 @@ void CardReader::getAbsFilename(char *t) {
|
||||
t[0] = 0;
|
||||
}
|
||||
|
||||
void CardReader::openFile(char* name, bool read, bool replace_current/*=true*/) {
|
||||
void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
||||
if (!cardOK) return;
|
||||
if (file.isOpen()) { //replacing current file by new file, or subfile call
|
||||
if (!replace_current) {
|
||||
if (push_current) {
|
||||
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
|
||||
@@ -318,20 +318,20 @@ void CardReader::openFile(char* name, bool read, bool replace_current/*=true*/)
|
||||
SERIAL_ECHOPGM("\" parent:\"");
|
||||
|
||||
//store current filename and position
|
||||
getAbsFilename(filenames[file_subcall_ctr]);
|
||||
getAbsFilename(proc_filenames[file_subcall_ctr]);
|
||||
|
||||
SERIAL_ECHO(filenames[file_subcall_ctr]);
|
||||
SERIAL_ECHO(proc_filenames[file_subcall_ctr]);
|
||||
SERIAL_ECHOPGM("\" pos");
|
||||
SERIAL_ECHOLN(sdpos);
|
||||
filespos[file_subcall_ctr] = sdpos;
|
||||
file_subcall_ctr++;
|
||||
}
|
||||
else {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOPGM("Now doing file: ");
|
||||
SERIAL_ECHOLN(name);
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
else {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOPGM("Now doing file: ");
|
||||
SERIAL_ECHOLN(name);
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
else { //opening fresh file
|
||||
file_subcall_ctr = 0; //resetting procedure depth in case user cancels print while in procedure
|
||||
@@ -584,22 +584,15 @@ void CardReader::chdir(const char * relpath) {
|
||||
SERIAL_ECHOLN(relpath);
|
||||
}
|
||||
else {
|
||||
if (workDirDepth < MAX_DIR_DEPTH) {
|
||||
++workDirDepth;
|
||||
for (int d = workDirDepth; d--;) workDirParents[d + 1] = workDirParents[d];
|
||||
workDirParents[0] = *parent;
|
||||
}
|
||||
if (workDirDepth < MAX_DIR_DEPTH)
|
||||
workDirParents[workDirDepth++] = *parent;
|
||||
workDir = newfile;
|
||||
}
|
||||
}
|
||||
|
||||
void CardReader::updir() {
|
||||
if (workDirDepth > 0) {
|
||||
--workDirDepth;
|
||||
workDir = workDirParents[0];
|
||||
for (uint16_t d = 0; d < workDirDepth; d++)
|
||||
workDirParents[d] = workDirParents[d+1];
|
||||
}
|
||||
if (workDirDepth > 0)
|
||||
workDir = workDirParents[--workDirDepth];
|
||||
}
|
||||
|
||||
void CardReader::printingHasFinished() {
|
||||
@@ -607,17 +600,15 @@ void CardReader::printingHasFinished() {
|
||||
if (file_subcall_ctr > 0) { // Heading up to a parent file that called current as a procedure.
|
||||
file.close();
|
||||
file_subcall_ctr--;
|
||||
openFile(filenames[file_subcall_ctr], true, true);
|
||||
openFile(proc_filenames[file_subcall_ctr], true, true);
|
||||
setIndex(filespos[file_subcall_ctr]);
|
||||
startFileprint();
|
||||
}
|
||||
else {
|
||||
file.close();
|
||||
sdprinting = false;
|
||||
if (SD_FINISHED_STEPPERRELEASE) {
|
||||
//finishAndDisableSteppers();
|
||||
if (SD_FINISHED_STEPPERRELEASE)
|
||||
enqueue_and_echo_commands_P(PSTR(SD_FINISHED_RELEASECOMMAND));
|
||||
}
|
||||
autotempShutdown();
|
||||
}
|
||||
}
|
||||
|
@@ -40,7 +40,7 @@ public:
|
||||
//this is to delay autostart and hence the initialisaiton of the sd card to some seconds after the normal init, so the device is available quick after a reset
|
||||
|
||||
void checkautostart(bool x);
|
||||
void openFile(char* name,bool read,bool replace_current=true);
|
||||
void openFile(char* name, bool read, bool push_current=false);
|
||||
void openLogFile(char* name);
|
||||
void removeFile(char* name);
|
||||
void closefile(bool store_location=false);
|
||||
@@ -65,7 +65,6 @@ public:
|
||||
void updir();
|
||||
void setroot();
|
||||
|
||||
|
||||
FORCE_INLINE bool isFileOpen() { return file.isOpen(); }
|
||||
FORCE_INLINE bool eof() { return sdpos >= filesize; }
|
||||
FORCE_INLINE int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
|
||||
@@ -79,19 +78,20 @@ public:
|
||||
int autostart_index;
|
||||
private:
|
||||
SdFile root, *curDir, workDir, workDirParents[MAX_DIR_DEPTH];
|
||||
uint16_t workDirDepth;
|
||||
uint8_t workDirDepth;
|
||||
Sd2Card card;
|
||||
SdVolume volume;
|
||||
SdFile file;
|
||||
|
||||
#define SD_PROCEDURE_DEPTH 1
|
||||
#define MAXPATHNAMELENGTH (FILENAME_LENGTH*MAX_DIR_DEPTH + MAX_DIR_DEPTH + 1)
|
||||
uint8_t file_subcall_ctr;
|
||||
uint32_t filespos[SD_PROCEDURE_DEPTH];
|
||||
char filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
||||
char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
|
||||
uint32_t filesize;
|
||||
millis_t next_autostart_ms;
|
||||
uint32_t sdpos;
|
||||
|
||||
millis_t next_autostart_ms;
|
||||
bool autostart_stilltocheck; //the sd start is delayed, because otherwise the serial cannot answer fast enought to make contact with the hostsoftware.
|
||||
|
||||
LsAction lsAction; //stored for recursion.
|
||||
|
@@ -36,10 +36,10 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define EEPROM_VERSION "V22"
|
||||
#define EEPROM_VERSION "V23"
|
||||
|
||||
/**
|
||||
* V21 EEPROM Layout:
|
||||
* V23 EEPROM Layout:
|
||||
*
|
||||
* 100 Version (char x4)
|
||||
*
|
||||
@@ -59,62 +59,65 @@
|
||||
*
|
||||
* Mesh bed leveling:
|
||||
* 200 M420 S active (bool)
|
||||
* 201 mesh_num_x (uint8 as set in firmware)
|
||||
* 202 mesh_num_y (uint8 as set in firmware)
|
||||
* 203 M421 XYZ z_values[][] (float x9, by default)
|
||||
* 239 M851 zprobe_zoffset (float)
|
||||
* 201 z_offset (float) (added in V23)
|
||||
* 205 mesh_num_x (uint8 as set in firmware)
|
||||
* 206 mesh_num_y (uint8 as set in firmware)
|
||||
* 207 M421 XYZ z_values[][] (float x9, by default)
|
||||
*
|
||||
* AUTO BED LEVELING
|
||||
* 243 M851 zprobe_zoffset (float)
|
||||
*
|
||||
* DELTA:
|
||||
* 243 M666 XYZ endstop_adj (float x3)
|
||||
* 255 M665 R delta_radius (float)
|
||||
* 259 M665 L delta_diagonal_rod (float)
|
||||
* 263 M665 S delta_segments_per_second (float)
|
||||
* 267 M665 A delta_diagonal_rod_trim_tower_1 (float)
|
||||
* 271 M665 B delta_diagonal_rod_trim_tower_2 (float)
|
||||
* 275 M665 C delta_diagonal_rod_trim_tower_3 (float)
|
||||
* 247 M666 XYZ endstop_adj (float x3)
|
||||
* 259 M665 R delta_radius (float)
|
||||
* 263 M665 L delta_diagonal_rod (float)
|
||||
* 267 M665 S delta_segments_per_second (float)
|
||||
* 271 M665 A delta_diagonal_rod_trim_tower_1 (float)
|
||||
* 275 M665 B delta_diagonal_rod_trim_tower_2 (float)
|
||||
* 279 M665 C delta_diagonal_rod_trim_tower_3 (float)
|
||||
*
|
||||
* Z_DUAL_ENDSTOPS:
|
||||
* 279 M666 Z z_endstop_adj (float)
|
||||
* 283 M666 Z z_endstop_adj (float)
|
||||
*
|
||||
* ULTIPANEL:
|
||||
* 283 M145 S0 H plaPreheatHotendTemp (int)
|
||||
* 285 M145 S0 B plaPreheatHPBTemp (int)
|
||||
* 287 M145 S0 F plaPreheatFanSpeed (int)
|
||||
* 289 M145 S1 H absPreheatHotendTemp (int)
|
||||
* 291 M145 S1 B absPreheatHPBTemp (int)
|
||||
* 293 M145 S1 F absPreheatFanSpeed (int)
|
||||
* 287 M145 S0 H plaPreheatHotendTemp (int)
|
||||
* 289 M145 S0 B plaPreheatHPBTemp (int)
|
||||
* 291 M145 S0 F plaPreheatFanSpeed (int)
|
||||
* 293 M145 S1 H absPreheatHotendTemp (int)
|
||||
* 295 M145 S1 B absPreheatHPBTemp (int)
|
||||
* 297 M145 S1 F absPreheatFanSpeed (int)
|
||||
*
|
||||
* PIDTEMP:
|
||||
* 295 M301 E0 PIDC Kp[0], Ki[0], Kd[0], Kc[0] (float x4)
|
||||
* 311 M301 E1 PIDC Kp[1], Ki[1], Kd[1], Kc[1] (float x4)
|
||||
* 327 M301 E2 PIDC Kp[2], Ki[2], Kd[2], Kc[2] (float x4)
|
||||
* 343 M301 E3 PIDC Kp[3], Ki[3], Kd[3], Kc[3] (float x4)
|
||||
* 359 M301 L lpq_len (int)
|
||||
* 299 M301 E0 PIDC Kp[0], Ki[0], Kd[0], Kc[0] (float x4)
|
||||
* 315 M301 E1 PIDC Kp[1], Ki[1], Kd[1], Kc[1] (float x4)
|
||||
* 331 M301 E2 PIDC Kp[2], Ki[2], Kd[2], Kc[2] (float x4)
|
||||
* 347 M301 E3 PIDC Kp[3], Ki[3], Kd[3], Kc[3] (float x4)
|
||||
* 363 M301 L lpq_len (int)
|
||||
*
|
||||
* PIDTEMPBED:
|
||||
* 361 M304 PID bedKp, bedKi, bedKd (float x3)
|
||||
* 365 M304 PID bedKp, bedKi, bedKd (float x3)
|
||||
*
|
||||
* DOGLCD:
|
||||
* 373 M250 C lcd_contrast (int)
|
||||
* 377 M250 C lcd_contrast (int)
|
||||
*
|
||||
* SCARA:
|
||||
* 375 M365 XYZ axis_scaling (float x3)
|
||||
* 379 M365 XYZ axis_scaling (float x3)
|
||||
*
|
||||
* FWRETRACT:
|
||||
* 387 M209 S autoretract_enabled (bool)
|
||||
* 388 M207 S retract_length (float)
|
||||
* 392 M207 W retract_length_swap (float)
|
||||
* 396 M207 F retract_feedrate (float)
|
||||
* 400 M207 Z retract_zlift (float)
|
||||
* 404 M208 S retract_recover_length (float)
|
||||
* 408 M208 W retract_recover_length_swap (float)
|
||||
* 412 M208 F retract_recover_feedrate (float)
|
||||
* 391 M209 S autoretract_enabled (bool)
|
||||
* 392 M207 S retract_length (float)
|
||||
* 396 M207 W retract_length_swap (float)
|
||||
* 400 M207 F retract_feedrate (float)
|
||||
* 404 M207 Z retract_zlift (float)
|
||||
* 408 M208 S retract_recover_length (float)
|
||||
* 412 M208 W retract_recover_length_swap (float)
|
||||
* 416 M208 F retract_recover_feedrate (float)
|
||||
*
|
||||
* Volumetric Extrusion:
|
||||
* 416 M200 D volumetric_enabled (bool)
|
||||
* 417 M200 T D filament_size (float x4) (T0..3)
|
||||
* 420 M200 D volumetric_enabled (bool)
|
||||
* 421 M200 T D filament_size (float x4) (T0..3)
|
||||
*
|
||||
* 433 This Slot is Available!
|
||||
* 437 This Slot is Available!
|
||||
*
|
||||
*/
|
||||
#include "Marlin.h"
|
||||
@@ -192,15 +195,17 @@ void Config_StoreSettings() {
|
||||
mesh_num_x = MESH_NUM_X_POINTS;
|
||||
mesh_num_y = MESH_NUM_Y_POINTS;
|
||||
EEPROM_WRITE_VAR(i, mbl.active);
|
||||
EEPROM_WRITE_VAR(i, mbl.z_offset);
|
||||
EEPROM_WRITE_VAR(i, mesh_num_x);
|
||||
EEPROM_WRITE_VAR(i, mesh_num_y);
|
||||
EEPROM_WRITE_VAR(i, mbl.z_values);
|
||||
#else
|
||||
uint8_t dummy_uint8 = 0;
|
||||
dummy = 0.0f;
|
||||
EEPROM_WRITE_VAR(i, dummy_uint8);
|
||||
EEPROM_WRITE_VAR(i, dummy);
|
||||
EEPROM_WRITE_VAR(i, mesh_num_x);
|
||||
EEPROM_WRITE_VAR(i, mesh_num_y);
|
||||
dummy = 0.0f;
|
||||
for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_WRITE_VAR(i, dummy);
|
||||
#endif // MESH_BED_LEVELING
|
||||
|
||||
@@ -366,10 +371,12 @@ void Config_RetrieveSettings() {
|
||||
|
||||
uint8_t dummy_uint8 = 0, mesh_num_x = 0, mesh_num_y = 0;
|
||||
EEPROM_READ_VAR(i, dummy_uint8);
|
||||
EEPROM_READ_VAR(i, dummy);
|
||||
EEPROM_READ_VAR(i, mesh_num_x);
|
||||
EEPROM_READ_VAR(i, mesh_num_y);
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
mbl.active = dummy_uint8;
|
||||
mbl.z_offset = dummy;
|
||||
if (mesh_num_x == MESH_NUM_X_POINTS && mesh_num_y == MESH_NUM_Y_POINTS) {
|
||||
EEPROM_READ_VAR(i, mbl.z_values);
|
||||
} else {
|
||||
|
@@ -24,7 +24,7 @@
|
||||
Fontname: HD44780_J
|
||||
Copyright: A. Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 6 h=10 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 8
|
||||
Calculated Max Values w= 6 h=10 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 8
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-2 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
@@ -32,9 +32,9 @@
|
||||
Max Font ascent = 8 descent=-2
|
||||
*/
|
||||
#include <U8glib.h>
|
||||
const u8g_fntpgm_uint8_t HD44780_J_5x7[2491] U8G_SECTION(".progmem.HD44780_J_5x7") = {
|
||||
const u8g_fntpgm_uint8_t HD44780_J_5x7[2492] U8G_SECTION(".progmem.HD44780_J_5x7") = {
|
||||
0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 254, 7,
|
||||
255, 0, 0, 0, 6, 0, 8, 1, 7, 7, 6, 2, 0, 128, 128, 128,
|
||||
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
|
||||
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
|
||||
0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
|
||||
120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
|
||||
@@ -106,19 +106,19 @@ const u8g_fntpgm_uint8_t HD44780_J_5x7[2491] U8G_SECTION(".progmem.HD44780_J_5x7
|
||||
128, 64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128,
|
||||
128, 3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 5,
|
||||
5, 6, 0, 1, 32, 16, 248, 16, 32, 5, 5, 5, 6, 0, 1, 32,
|
||||
64, 248, 64, 32, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
|
||||
0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
|
||||
0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
|
||||
0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
|
||||
0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
|
||||
0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
|
||||
0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
|
||||
0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
|
||||
0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
|
||||
0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
|
||||
0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
|
||||
0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
|
||||
0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 3, 3, 3, 6, 0, 0,
|
||||
64, 248, 64, 32, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
|
||||
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
|
||||
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
|
||||
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
|
||||
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 3, 3, 3, 6, 0, 0,
|
||||
224, 160, 224, 3, 4, 4, 6, 2, 3, 224, 128, 128, 128, 3, 4, 4,
|
||||
6, 0, 0, 32, 32, 32, 224, 3, 3, 3, 6, 0, 0, 128, 64, 32,
|
||||
2, 2, 2, 6, 1, 2, 192, 192, 5, 6, 6, 6, 0, 0, 248, 8,
|
||||
@@ -128,7 +128,7 @@ const u8g_fntpgm_uint8_t HD44780_J_5x7[2491] U8G_SECTION(".progmem.HD44780_J_5x7
|
||||
5, 5, 6, 0, 0, 16, 248, 48, 80, 144, 5, 5, 5, 6, 0, 0,
|
||||
64, 248, 72, 80, 64, 5, 4, 4, 6, 0, 0, 112, 16, 16, 248, 4,
|
||||
5, 5, 6, 0, 0, 240, 16, 240, 16, 240, 5, 4, 4, 6, 0, 0,
|
||||
168, 168, 8, 48, 5, 1, 1, 6, 0, 4, 248, 5, 7, 7, 6, 0,
|
||||
168, 168, 8, 48, 5, 1, 1, 6, 0, 3, 248, 5, 7, 7, 6, 0,
|
||||
0, 248, 8, 40, 48, 32, 32, 64, 5, 7, 7, 6, 0, 0, 8, 16,
|
||||
32, 96, 160, 32, 32, 5, 7, 7, 6, 0, 0, 32, 248, 136, 136, 8,
|
||||
16, 32, 5, 6, 6, 6, 0, 0, 248, 32, 32, 32, 32, 248, 5, 7,
|
||||
@@ -146,47 +146,47 @@ const u8g_fntpgm_uint8_t HD44780_J_5x7[2491] U8G_SECTION(".progmem.HD44780_J_5x7
|
||||
6, 0, 0, 112, 0, 248, 32, 32, 32, 64, 3, 7, 7, 6, 1, 0,
|
||||
128, 128, 128, 192, 160, 128, 128, 5, 7, 7, 6, 0, 0, 32, 32, 248,
|
||||
32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 112, 0, 0, 0, 0, 248,
|
||||
5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5, 6, 6, 6,
|
||||
0, 1, 32, 248, 16, 32, 112, 168, 3, 7, 7, 6, 1, 0, 32, 32,
|
||||
32, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 32, 16, 136, 136, 136,
|
||||
136, 5, 7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5, 6,
|
||||
6, 6, 0, 0, 248, 8, 8, 8, 16, 96, 5, 5, 5, 6, 0, 1,
|
||||
64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 0, 32, 248, 32, 32, 168,
|
||||
168, 32, 5, 6, 6, 6, 0, 0, 248, 8, 8, 80, 32, 16, 4, 6,
|
||||
6, 6, 1, 0, 224, 0, 224, 0, 224, 16, 5, 6, 6, 6, 0, 0,
|
||||
32, 64, 128, 136, 248, 8, 5, 6, 6, 6, 0, 0, 8, 8, 80, 32,
|
||||
80, 128, 5, 6, 6, 6, 0, 0, 248, 64, 248, 64, 64, 56, 5, 7,
|
||||
7, 6, 0, 0, 64, 64, 248, 72, 80, 64, 64, 5, 7, 7, 6, 0,
|
||||
0, 112, 16, 16, 16, 16, 16, 248, 5, 6, 6, 6, 0, 0, 248, 8,
|
||||
248, 8, 8, 248, 5, 7, 7, 6, 0, 0, 112, 0, 248, 8, 8, 16,
|
||||
32, 4, 7, 7, 6, 0, 0, 144, 144, 144, 144, 16, 32, 64, 5, 6,
|
||||
6, 6, 0, 0, 32, 160, 160, 168, 168, 176, 5, 7, 7, 6, 0, 0,
|
||||
128, 128, 128, 136, 144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136, 136,
|
||||
136, 136, 248, 5, 6, 6, 6, 0, 0, 248, 136, 136, 8, 16, 32, 5,
|
||||
6, 6, 6, 0, 0, 192, 0, 8, 8, 16, 224, 4, 3, 3, 6, 0,
|
||||
4, 32, 144, 64, 3, 3, 3, 6, 0, 4, 224, 160, 224, 5, 5, 5,
|
||||
6, 0, 1, 72, 168, 144, 144, 104, 5, 7, 7, 6, 0, 0, 80, 0,
|
||||
112, 8, 120, 136, 120, 4, 8, 8, 6, 1, 255, 96, 144, 144, 224, 144,
|
||||
144, 224, 128, 5, 5, 5, 6, 0, 0, 112, 128, 96, 136, 112, 5, 6,
|
||||
6, 6, 0, 255, 136, 136, 152, 232, 136, 128, 5, 5, 5, 6, 0, 0,
|
||||
120, 160, 144, 136, 112, 5, 7, 7, 6, 0, 254, 48, 72, 136, 136, 240,
|
||||
128, 128, 5, 8, 8, 6, 0, 254, 120, 136, 136, 136, 120, 8, 8, 112,
|
||||
5, 5, 5, 6, 0, 1, 56, 32, 32, 160, 64, 4, 3, 3, 6, 0,
|
||||
3, 16, 208, 16, 4, 8, 8, 6, 0, 255, 16, 0, 48, 16, 16, 16,
|
||||
144, 96, 3, 3, 3, 6, 0, 4, 160, 64, 160, 5, 7, 7, 6, 0,
|
||||
0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7, 6, 0, 0, 64, 64,
|
||||
224, 64, 224, 64, 120, 5, 7, 7, 6, 0, 0, 112, 0, 176, 200, 136,
|
||||
136, 136, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136, 112, 5,
|
||||
7, 7, 6, 0, 255, 176, 200, 136, 136, 240, 128, 128, 5, 7, 7, 6,
|
||||
0, 255, 104, 152, 136, 136, 120, 8, 8, 5, 6, 6, 6, 0, 0, 112,
|
||||
136, 248, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88, 168, 208, 5, 5,
|
||||
5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6, 0, 0, 80,
|
||||
0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 248, 128, 64, 32,
|
||||
64, 128, 248, 5, 5, 5, 6, 0, 0, 248, 80, 80, 80, 152, 5, 7,
|
||||
7, 6, 0, 0, 248, 0, 136, 80, 32, 80, 136, 5, 7, 7, 6, 0,
|
||||
255, 136, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 1, 8, 240,
|
||||
32, 248, 32, 32, 5, 5, 5, 6, 0, 0, 248, 64, 120, 72, 136, 5,
|
||||
5, 5, 6, 0, 0, 248, 168, 248, 136, 136, 5, 5, 5, 6, 0, 1,
|
||||
32, 0, 248, 0, 32, 0, 0, 0, 6, 0, 8, 6, 10, 10, 6, 0,
|
||||
254, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252
|
||||
5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5, 7, 7, 6,
|
||||
0, 0, 32, 248, 16, 32, 112, 168, 32, 3, 7, 7, 6, 1, 0, 32,
|
||||
32, 32, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 32, 16, 136, 136,
|
||||
136, 136, 5, 7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5,
|
||||
6, 6, 6, 0, 0, 248, 8, 8, 8, 16, 96, 5, 5, 5, 6, 0,
|
||||
1, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 0, 32, 248, 32, 32,
|
||||
168, 168, 32, 5, 6, 6, 6, 0, 0, 248, 8, 8, 80, 32, 16, 4,
|
||||
6, 6, 6, 1, 0, 224, 0, 224, 0, 224, 16, 5, 6, 6, 6, 0,
|
||||
0, 32, 64, 128, 136, 248, 8, 5, 6, 6, 6, 0, 0, 8, 8, 80,
|
||||
32, 80, 128, 5, 6, 6, 6, 0, 0, 248, 64, 248, 64, 64, 56, 5,
|
||||
7, 7, 6, 0, 0, 64, 64, 248, 72, 80, 64, 64, 5, 7, 7, 6,
|
||||
0, 0, 112, 16, 16, 16, 16, 16, 248, 5, 6, 6, 6, 0, 0, 248,
|
||||
8, 248, 8, 8, 248, 5, 7, 7, 6, 0, 0, 112, 0, 248, 8, 8,
|
||||
16, 32, 4, 7, 7, 6, 0, 0, 144, 144, 144, 144, 16, 32, 64, 5,
|
||||
6, 6, 6, 0, 0, 32, 160, 160, 168, 168, 176, 5, 7, 7, 6, 0,
|
||||
0, 128, 128, 128, 136, 144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136,
|
||||
136, 136, 136, 248, 5, 6, 6, 6, 0, 0, 248, 136, 136, 8, 16, 32,
|
||||
5, 6, 6, 6, 0, 0, 192, 0, 8, 8, 16, 224, 4, 3, 3, 6,
|
||||
0, 4, 32, 144, 64, 3, 3, 3, 6, 0, 4, 224, 160, 224, 5, 5,
|
||||
5, 6, 0, 1, 72, 168, 144, 144, 104, 5, 7, 7, 6, 0, 0, 80,
|
||||
0, 112, 8, 120, 136, 120, 4, 8, 8, 6, 1, 255, 96, 144, 144, 224,
|
||||
144, 144, 224, 128, 5, 5, 5, 6, 0, 0, 112, 128, 96, 136, 112, 5,
|
||||
6, 6, 6, 0, 255, 136, 136, 152, 232, 136, 128, 5, 5, 5, 6, 0,
|
||||
0, 120, 160, 144, 136, 112, 5, 7, 7, 6, 0, 254, 48, 72, 136, 136,
|
||||
240, 128, 128, 5, 8, 8, 6, 0, 254, 120, 136, 136, 136, 120, 8, 8,
|
||||
112, 5, 5, 5, 6, 0, 1, 56, 32, 32, 160, 64, 4, 3, 3, 6,
|
||||
0, 3, 16, 208, 16, 4, 8, 8, 6, 0, 255, 16, 0, 48, 16, 16,
|
||||
16, 144, 96, 3, 3, 3, 6, 0, 4, 160, 64, 160, 5, 7, 7, 6,
|
||||
0, 0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7, 6, 0, 0, 64,
|
||||
64, 224, 64, 224, 64, 120, 5, 7, 7, 6, 0, 0, 112, 0, 176, 200,
|
||||
136, 136, 136, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136, 112,
|
||||
5, 7, 7, 6, 0, 255, 176, 200, 136, 136, 240, 128, 128, 5, 7, 7,
|
||||
6, 0, 255, 104, 152, 136, 136, 120, 8, 8, 5, 6, 6, 6, 0, 0,
|
||||
112, 136, 248, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88, 168, 208, 5,
|
||||
5, 5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6, 0, 0,
|
||||
80, 0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 248, 128, 64,
|
||||
32, 64, 128, 248, 5, 5, 5, 6, 0, 0, 248, 80, 80, 80, 152, 5,
|
||||
7, 7, 6, 0, 0, 248, 0, 136, 80, 32, 80, 136, 5, 7, 7, 6,
|
||||
0, 255, 136, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 0, 8,
|
||||
240, 32, 248, 32, 32, 5, 5, 5, 6, 0, 0, 248, 64, 120, 72, 136,
|
||||
5, 5, 5, 6, 0, 0, 248, 168, 248, 136, 136, 5, 5, 5, 6, 0,
|
||||
1, 32, 0, 248, 0, 32, 0, 0, 0, 6, 0, 0, 6, 10, 10, 6,
|
||||
0, 254, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252
|
||||
};
|
||||
|
@@ -24,7 +24,7 @@
|
||||
Fontname: ISO10646_Kana
|
||||
Copyright: A. Hardtung, public domain
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Calculated Max Values w= 5 h= 8 x= 2 y= 5 dx= 6 dy= 0 ascent= 8 len= 8
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
@@ -32,7 +32,7 @@
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <U8glib.h>
|
||||
const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2549] U8G_SECTION(".progmem.ISO10646_Kana_5x7") = {
|
||||
const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2482] U8G_SECTION(".progmem.ISO10646_Kana_5x7") = {
|
||||
0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
|
||||
255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
|
||||
128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
|
||||
@@ -117,80 +117,76 @@ const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2549] U8G_SECTION(".progmem.ISO10646_
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
|
||||
0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
|
||||
0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 3, 3, 6, 0, 2,
|
||||
248, 0, 248, 5, 6, 6, 6, 0, 0, 248, 8, 40, 48, 32, 64, 5,
|
||||
7, 7, 6, 0, 0, 248, 8, 40, 48, 32, 32, 64, 4, 5, 5, 6,
|
||||
0, 0, 16, 32, 96, 160, 32, 5, 7, 7, 6, 0, 0, 8, 16, 32,
|
||||
96, 160, 32, 32, 5, 5, 5, 6, 0, 0, 32, 248, 136, 8, 48, 5,
|
||||
7, 7, 6, 0, 0, 32, 248, 136, 136, 8, 16, 32, 5, 4, 4, 6,
|
||||
0, 0, 248, 32, 32, 248, 5, 6, 6, 6, 0, 0, 248, 32, 32, 32,
|
||||
32, 248, 5, 5, 5, 6, 0, 0, 16, 248, 48, 80, 144, 5, 7, 7,
|
||||
6, 0, 0, 16, 248, 16, 48, 80, 144, 16, 5, 5, 5, 6, 0, 0,
|
||||
64, 248, 72, 80, 64, 5, 7, 7, 6, 0, 0, 40, 0, 64, 248, 72,
|
||||
80, 64, 5, 7, 7, 6, 0, 0, 32, 248, 32, 248, 32, 32, 32, 5,
|
||||
8, 8, 6, 0, 0, 40, 0, 32, 248, 32, 248, 32, 32, 4, 6, 6,
|
||||
6, 0, 0, 64, 112, 144, 16, 16, 32, 5, 8, 8, 6, 0, 0, 40,
|
||||
0, 64, 112, 144, 16, 16, 32, 5, 6, 6, 6, 0, 0, 64, 120, 144,
|
||||
16, 16, 32, 5, 8, 8, 6, 0, 0, 40, 0, 64, 120, 144, 16, 16,
|
||||
32, 5, 5, 5, 6, 0, 0, 248, 8, 8, 8, 248, 5, 7, 7, 6,
|
||||
0, 0, 40, 0, 248, 8, 8, 8, 248, 5, 7, 7, 6, 0, 255, 80,
|
||||
248, 80, 80, 16, 32, 64, 5, 9, 9, 6, 0, 255, 40, 0, 80, 248,
|
||||
80, 80, 16, 32, 64, 5, 6, 6, 6, 0, 0, 192, 8, 200, 8, 16,
|
||||
224, 5, 8, 8, 6, 0, 0, 40, 0, 192, 8, 200, 8, 16, 224, 5,
|
||||
6, 6, 6, 0, 0, 248, 8, 16, 32, 80, 136, 5, 8, 8, 6, 0,
|
||||
0, 40, 0, 248, 8, 16, 32, 80, 136, 5, 6, 6, 6, 0, 0, 64,
|
||||
248, 72, 80, 64, 120, 5, 8, 8, 6, 0, 0, 40, 0, 64, 248, 72,
|
||||
80, 64, 120, 4, 4, 4, 6, 0, 1, 16, 208, 16, 224, 5, 7, 7,
|
||||
6, 0, 0, 40, 0, 8, 200, 8, 16, 224, 5, 7, 7, 6, 0, 255,
|
||||
32, 120, 136, 40, 16, 40, 64, 5, 9, 9, 6, 0, 255, 40, 0, 32,
|
||||
120, 136, 40, 16, 40, 64, 5, 6, 6, 6, 0, 0, 240, 32, 248, 32,
|
||||
64, 128, 5, 8, 8, 6, 0, 0, 40, 0, 240, 32, 248, 32, 64, 128,
|
||||
4, 5, 5, 6, 0, 1, 192, 16, 208, 16, 224, 5, 6, 6, 6, 0,
|
||||
0, 192, 8, 200, 8, 16, 224, 5, 8, 8, 6, 0, 0, 40, 0, 192,
|
||||
8, 200, 8, 16, 224, 5, 6, 6, 6, 0, 0, 112, 0, 248, 32, 32,
|
||||
64, 5, 8, 8, 6, 0, 0, 40, 0, 112, 0, 248, 32, 32, 64, 3,
|
||||
7, 7, 6, 1, 0, 128, 128, 128, 192, 160, 128, 128, 4, 8, 8, 6,
|
||||
1, 0, 80, 0, 128, 128, 192, 160, 128, 128, 5, 7, 7, 6, 0, 0,
|
||||
32, 32, 248, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 112, 0, 0,
|
||||
0, 0, 248, 5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5,
|
||||
7, 7, 6, 0, 255, 32, 248, 8, 16, 32, 112, 168, 3, 7, 7, 6,
|
||||
1, 0, 32, 32, 32, 32, 32, 64, 128, 5, 5, 5, 6, 0, 0, 16,
|
||||
136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 40, 0, 16, 136, 136, 136,
|
||||
136, 5, 8, 8, 6, 0, 0, 24, 24, 0, 16, 136, 136, 136, 136, 5,
|
||||
7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5, 8, 8, 6,
|
||||
0, 0, 40, 128, 128, 248, 128, 128, 128, 120, 5, 8, 8, 6, 0, 0,
|
||||
24, 152, 128, 248, 128, 128, 128, 120, 5, 6, 6, 6, 0, 0, 248, 8,
|
||||
8, 8, 16, 96, 5, 8, 8, 6, 0, 0, 40, 0, 248, 8, 8, 8,
|
||||
16, 96, 5, 8, 8, 6, 0, 0, 24, 24, 248, 8, 8, 8, 16, 96,
|
||||
5, 5, 5, 6, 0, 1, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0,
|
||||
1, 40, 0, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 1, 24, 24,
|
||||
64, 160, 16, 8, 8, 5, 6, 6, 6, 0, 0, 32, 248, 32, 32, 168,
|
||||
168, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248, 32, 32, 168, 168, 5,
|
||||
8, 8, 6, 0, 0, 24, 24, 32, 248, 32, 32, 168, 168, 5, 6, 6,
|
||||
6, 0, 0, 248, 8, 8, 80, 32, 16, 4, 6, 6, 6, 1, 0, 224,
|
||||
0, 224, 0, 224, 16, 5, 6, 6, 6, 0, 0, 32, 64, 128, 144, 248,
|
||||
8, 5, 6, 6, 6, 0, 0, 8, 8, 80, 32, 80, 128, 5, 6, 6,
|
||||
6, 0, 0, 120, 32, 248, 32, 32, 56, 5, 7, 7, 6, 0, 0, 64,
|
||||
64, 248, 72, 80, 64, 64, 5, 7, 7, 6, 0, 0, 64, 248, 72, 80,
|
||||
64, 64, 64, 5, 5, 5, 6, 0, 0, 112, 16, 16, 16, 248, 5, 7,
|
||||
7, 6, 0, 0, 112, 16, 16, 16, 16, 16, 248, 4, 5, 5, 6, 1,
|
||||
0, 240, 16, 240, 16, 240, 5, 7, 7, 6, 0, 0, 248, 8, 8, 248,
|
||||
8, 8, 248, 5, 6, 6, 6, 0, 0, 112, 0, 248, 8, 16, 32, 3,
|
||||
6, 6, 6, 1, 0, 160, 160, 160, 160, 32, 64, 5, 6, 6, 6, 0,
|
||||
0, 80, 80, 80, 80, 88, 144, 4, 6, 6, 6, 1, 0, 128, 128, 128,
|
||||
144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136, 136, 136, 248, 136, 5,
|
||||
5, 5, 6, 0, 0, 248, 136, 8, 16, 96, 5, 6, 6, 6, 0, 0,
|
||||
248, 136, 8, 8, 16, 96, 5, 6, 6, 6, 0, 0, 16, 248, 80, 80,
|
||||
248, 16, 5, 6, 6, 6, 0, 0, 248, 8, 80, 96, 64, 248, 5, 6,
|
||||
6, 6, 0, 0, 248, 8, 248, 8, 16, 32, 5, 6, 6, 6, 0, 0,
|
||||
128, 64, 8, 8, 16, 224, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248,
|
||||
136, 8, 24, 32, 5, 6, 6, 6, 0, 0, 64, 248, 72, 72, 136, 144,
|
||||
4, 5, 5, 6, 1, 0, 128, 240, 160, 32, 32, 5, 8, 8, 6, 0,
|
||||
0, 40, 0, 248, 136, 8, 8, 16, 96, 5, 8, 8, 6, 0, 0, 40,
|
||||
0, 16, 248, 80, 80, 248, 16, 5, 7, 7, 6, 0, 0, 40, 0, 248,
|
||||
16, 32, 32, 248, 5, 8, 8, 6, 0, 0, 40, 0, 248, 8, 248, 8,
|
||||
16, 32, 2, 2, 2, 6, 2, 2, 192, 192, 5, 1, 1, 6, 0, 3,
|
||||
248, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 5, 6, 6, 6,
|
||||
0, 1, 40, 128, 64, 32, 16, 8, 5, 7, 7, 6, 0, 0, 248, 8,
|
||||
8, 8, 8, 8, 8
|
||||
0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 3, 3, 6, 0, 1,
|
||||
248, 0, 248, 4, 4, 4, 6, 0, 0, 240, 16, 96, 64, 5, 6, 6,
|
||||
6, 0, 0, 248, 8, 40, 48, 32, 64, 3, 4, 4, 6, 1, 0, 32,
|
||||
64, 192, 64, 4, 6, 6, 6, 0, 0, 16, 32, 96, 160, 32, 32, 4,
|
||||
4, 4, 6, 0, 0, 32, 240, 144, 32, 5, 6, 6, 6, 0, 0, 32,
|
||||
248, 136, 8, 16, 32, 3, 4, 4, 6, 1, 0, 224, 64, 64, 224, 5,
|
||||
5, 5, 6, 0, 0, 248, 32, 32, 32, 248, 4, 4, 4, 6, 0, 0,
|
||||
32, 240, 96, 160, 5, 6, 6, 6, 0, 0, 16, 248, 48, 80, 144, 16,
|
||||
5, 6, 6, 6, 0, 0, 64, 248, 72, 72, 72, 144, 5, 8, 8, 6,
|
||||
0, 0, 40, 0, 64, 248, 72, 72, 72, 144, 5, 6, 6, 6, 0, 0,
|
||||
32, 248, 32, 248, 32, 32, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248,
|
||||
32, 248, 32, 32, 4, 5, 5, 6, 0, 0, 112, 144, 16, 32, 192, 5,
|
||||
7, 7, 6, 0, 0, 40, 0, 112, 144, 16, 32, 192, 5, 6, 6, 6,
|
||||
0, 0, 64, 120, 144, 16, 16, 32, 5, 8, 8, 6, 0, 0, 40, 0,
|
||||
64, 120, 144, 16, 16, 32, 5, 5, 5, 6, 0, 0, 248, 8, 8, 8,
|
||||
248, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 8, 8, 248, 5, 6,
|
||||
6, 6, 0, 0, 80, 248, 80, 16, 32, 64, 5, 8, 8, 6, 0, 0,
|
||||
40, 0, 80, 248, 80, 16, 32, 64, 5, 5, 5, 6, 0, 0, 192, 8,
|
||||
200, 16, 224, 5, 7, 7, 6, 0, 0, 40, 0, 192, 8, 200, 16, 224,
|
||||
5, 5, 5, 6, 0, 0, 248, 16, 32, 80, 136, 5, 7, 7, 6, 0,
|
||||
0, 40, 0, 248, 16, 32, 80, 136, 5, 6, 6, 6, 0, 0, 64, 248,
|
||||
72, 80, 64, 56, 5, 8, 8, 6, 0, 0, 40, 0, 64, 248, 72, 80,
|
||||
64, 56, 5, 5, 5, 6, 0, 0, 136, 136, 72, 16, 96, 5, 7, 7,
|
||||
6, 0, 0, 40, 0, 136, 136, 72, 16, 96, 5, 5, 5, 6, 0, 0,
|
||||
120, 72, 168, 16, 96, 5, 7, 7, 6, 0, 0, 40, 0, 120, 72, 168,
|
||||
16, 96, 5, 6, 6, 6, 0, 0, 16, 224, 32, 248, 32, 64, 5, 8,
|
||||
8, 6, 0, 0, 40, 0, 16, 224, 32, 248, 32, 64, 5, 4, 4, 6,
|
||||
0, 0, 168, 168, 8, 48, 5, 5, 5, 6, 0, 0, 168, 168, 8, 16,
|
||||
32, 5, 7, 7, 6, 0, 0, 40, 0, 168, 168, 8, 16, 32, 5, 6,
|
||||
6, 6, 0, 0, 112, 0, 248, 32, 32, 64, 5, 8, 8, 6, 0, 0,
|
||||
40, 0, 112, 0, 248, 32, 32, 64, 3, 6, 6, 6, 1, 0, 128, 128,
|
||||
192, 160, 128, 128, 4, 8, 8, 6, 1, 0, 80, 0, 128, 128, 192, 160,
|
||||
128, 128, 5, 6, 6, 6, 0, 0, 32, 248, 32, 32, 64, 128, 5, 5,
|
||||
5, 6, 0, 0, 112, 0, 0, 0, 248, 5, 5, 5, 6, 0, 0, 248,
|
||||
8, 80, 32, 208, 5, 6, 6, 6, 0, 0, 32, 248, 16, 32, 112, 168,
|
||||
3, 6, 6, 6, 1, 0, 32, 32, 32, 32, 64, 128, 5, 5, 5, 6,
|
||||
0, 0, 16, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 40, 0, 16,
|
||||
136, 136, 136, 136, 5, 8, 8, 6, 0, 0, 24, 24, 0, 16, 136, 136,
|
||||
136, 136, 5, 6, 6, 6, 0, 0, 128, 128, 248, 128, 128, 120, 5, 7,
|
||||
7, 6, 0, 0, 40, 128, 128, 248, 128, 128, 120, 5, 7, 7, 6, 0,
|
||||
0, 24, 152, 128, 248, 128, 128, 120, 5, 5, 5, 6, 0, 0, 248, 8,
|
||||
8, 16, 96, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 8, 16, 96,
|
||||
5, 8, 8, 6, 0, 0, 24, 24, 0, 248, 8, 8, 16, 96, 5, 4,
|
||||
4, 6, 0, 1, 64, 160, 16, 8, 5, 6, 6, 6, 0, 1, 40, 0,
|
||||
64, 160, 16, 8, 5, 6, 6, 6, 0, 1, 24, 24, 64, 160, 16, 8,
|
||||
5, 6, 6, 6, 0, 0, 32, 248, 32, 168, 168, 32, 5, 8, 8, 6,
|
||||
0, 0, 40, 0, 32, 248, 32, 168, 168, 32, 5, 8, 8, 6, 0, 0,
|
||||
24, 24, 32, 248, 32, 168, 168, 32, 5, 5, 5, 6, 0, 0, 248, 8,
|
||||
80, 32, 16, 4, 5, 5, 6, 1, 0, 224, 0, 224, 0, 240, 5, 5,
|
||||
5, 6, 0, 0, 32, 64, 136, 248, 8, 5, 5, 5, 6, 0, 0, 8,
|
||||
40, 16, 40, 192, 5, 5, 5, 6, 0, 0, 248, 64, 248, 64, 56, 5,
|
||||
4, 4, 6, 0, 0, 64, 248, 80, 64, 5, 6, 6, 6, 0, 0, 64,
|
||||
248, 72, 80, 64, 64, 4, 4, 4, 6, 0, 0, 96, 32, 32, 240, 5,
|
||||
5, 5, 6, 0, 0, 112, 16, 16, 16, 248, 4, 5, 5, 6, 0, 0,
|
||||
240, 16, 240, 16, 240, 5, 5, 5, 6, 0, 0, 248, 8, 248, 8, 248,
|
||||
5, 6, 6, 6, 0, 0, 112, 0, 248, 8, 16, 32, 4, 6, 6, 6,
|
||||
0, 0, 144, 144, 144, 144, 16, 32, 5, 5, 5, 6, 0, 0, 32, 160,
|
||||
168, 168, 176, 4, 5, 5, 6, 0, 0, 128, 128, 144, 160, 192, 5, 5,
|
||||
5, 6, 0, 0, 248, 136, 136, 136, 248, 4, 4, 4, 6, 0, 0, 240,
|
||||
144, 16, 32, 5, 5, 5, 6, 0, 0, 248, 136, 8, 16, 32, 5, 6,
|
||||
6, 6, 0, 0, 16, 248, 80, 80, 248, 16, 5, 5, 5, 6, 0, 0,
|
||||
248, 8, 48, 32, 248, 5, 5, 5, 6, 0, 0, 248, 8, 248, 8, 48,
|
||||
5, 5, 5, 6, 0, 0, 192, 8, 8, 16, 224, 5, 8, 8, 6, 0,
|
||||
0, 40, 0, 32, 248, 136, 8, 16, 32, 4, 4, 4, 6, 0, 0, 64,
|
||||
240, 80, 160, 4, 4, 4, 6, 0, 0, 64, 240, 32, 64, 5, 7, 7,
|
||||
6, 0, 0, 40, 0, 248, 136, 8, 16, 96, 5, 8, 8, 6, 0, 0,
|
||||
40, 0, 16, 248, 80, 80, 248, 16, 5, 7, 7, 6, 0, 0, 40, 0,
|
||||
248, 8, 48, 32, 248, 5, 7, 7, 6, 0, 0, 40, 0, 248, 8, 248,
|
||||
8, 48, 2, 2, 2, 6, 2, 2, 192, 192, 5, 1, 1, 6, 0, 2,
|
||||
248, 5, 4, 4, 6, 0, 1, 128, 96, 16, 8, 5, 5, 5, 6, 0,
|
||||
1, 40, 128, 96, 16, 8, 5, 6, 6, 6, 0, 0, 248, 8, 8, 8,
|
||||
8, 8
|
||||
};
|
||||
|
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* With the use of:
|
||||
* u8glib by Oliver Kraus
|
||||
* http://code.google.com/p/u8glib/
|
||||
* https://github.com/olikraus/U8glib_Arduino
|
||||
* License: http://opensource.org/licenses/BSD-3-Clause
|
||||
*/
|
||||
|
||||
@@ -304,10 +304,16 @@ static void _draw_heater_status(int x, int heater) {
|
||||
static void lcd_implementation_status_screen() {
|
||||
u8g.setColorIndex(1); // black on white
|
||||
|
||||
#if HAS_FAN0
|
||||
// Symbols menu graphics, animated fan
|
||||
u8g.drawBitmapP(9, 1, STATUS_SCREENBYTEWIDTH, STATUS_SCREENHEIGHT, (blink % 2) && fanSpeeds[0] ? status_screen0_bmp : status_screen1_bmp);
|
||||
#endif
|
||||
bool blink = lcd_blink();
|
||||
|
||||
// Symbols menu graphics, animated fan
|
||||
u8g.drawBitmapP(9, 1, STATUS_SCREENBYTEWIDTH, STATUS_SCREENHEIGHT,
|
||||
#if HAS_FAN0
|
||||
blink && fanSpeeds[0] ? status_screen0_bmp : status_screen1_bmp
|
||||
#else
|
||||
status_screen0_bmp
|
||||
#endif
|
||||
);
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
// SD Card Symbol
|
||||
@@ -375,18 +381,19 @@ static void lcd_implementation_status_screen() {
|
||||
#endif
|
||||
u8g.setColorIndex(0); // white on black
|
||||
u8g.setPrintPos(2, XYZ_BASELINE);
|
||||
if (blink & 1)
|
||||
lcd_printPGM(PSTR("X"));
|
||||
if (blink)
|
||||
lcd_printPGM(PSTR(MSG_X));
|
||||
else {
|
||||
if (!axis_homed[X_AXIS])
|
||||
lcd_printPGM(PSTR("?"));
|
||||
else
|
||||
else {
|
||||
#if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
|
||||
if (!axis_known_position[X_AXIS])
|
||||
lcd_printPGM(PSTR(" "));
|
||||
else
|
||||
#endif
|
||||
lcd_printPGM(PSTR("X"));
|
||||
lcd_printPGM(PSTR(MSG_X));
|
||||
}
|
||||
}
|
||||
u8g.drawPixel(8, XYZ_BASELINE - 5);
|
||||
u8g.drawPixel(8, XYZ_BASELINE - 3);
|
||||
@@ -394,18 +401,19 @@ static void lcd_implementation_status_screen() {
|
||||
lcd_print(ftostr31ns(current_position[X_AXIS]));
|
||||
|
||||
u8g.setPrintPos(43, XYZ_BASELINE);
|
||||
if (blink & 1)
|
||||
lcd_printPGM(PSTR("Y"));
|
||||
if (blink)
|
||||
lcd_printPGM(PSTR(MSG_Y));
|
||||
else {
|
||||
if (!axis_homed[Y_AXIS])
|
||||
lcd_printPGM(PSTR("?"));
|
||||
else
|
||||
else {
|
||||
#if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
|
||||
if (!axis_known_position[Y_AXIS])
|
||||
lcd_printPGM(PSTR(" "));
|
||||
else
|
||||
#endif
|
||||
lcd_printPGM(PSTR("Y"));
|
||||
lcd_printPGM(PSTR(MSG_Y));
|
||||
}
|
||||
}
|
||||
u8g.drawPixel(49, XYZ_BASELINE - 5);
|
||||
u8g.drawPixel(49, XYZ_BASELINE - 3);
|
||||
@@ -413,18 +421,19 @@ static void lcd_implementation_status_screen() {
|
||||
lcd_print(ftostr31ns(current_position[Y_AXIS]));
|
||||
|
||||
u8g.setPrintPos(83, XYZ_BASELINE);
|
||||
if (blink & 1)
|
||||
lcd_printPGM(PSTR("Z"));
|
||||
if (blink)
|
||||
lcd_printPGM(PSTR(MSG_Z));
|
||||
else {
|
||||
if (!axis_homed[Z_AXIS])
|
||||
lcd_printPGM(PSTR("?"));
|
||||
else
|
||||
else {
|
||||
#if DISABLED(DISABLE_REDUCED_ACCURACY_WARNING)
|
||||
if (!axis_known_position[Z_AXIS])
|
||||
lcd_printPGM(PSTR(" "));
|
||||
else
|
||||
#endif
|
||||
lcd_printPGM(PSTR("Z"));
|
||||
lcd_printPGM(PSTR(MSG_Z));
|
||||
}
|
||||
}
|
||||
u8g.drawPixel(89, XYZ_BASELINE - 5);
|
||||
u8g.drawPixel(89, XYZ_BASELINE - 3);
|
||||
@@ -557,9 +566,11 @@ void lcd_implementation_drawedit(const char* pstr, const char* value) {
|
||||
|
||||
u8g.setPrintPos(0, rowHeight + kHalfChar);
|
||||
lcd_printPGM(pstr);
|
||||
lcd_print(':');
|
||||
u8g.setPrintPos((lcd_width - 1 - vallen) * char_width, rows * rowHeight + kHalfChar);
|
||||
lcd_print(value);
|
||||
if (value != NULL) {
|
||||
lcd_print(':');
|
||||
u8g.setPrintPos((lcd_width - 1 - vallen) * char_width, rows * rowHeight + kHalfChar);
|
||||
lcd_print(value);
|
||||
}
|
||||
}
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -268,10 +269,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
// Felix Foil Heater
|
||||
@@ -691,7 +692,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -902,11 +903,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -688,7 +689,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -899,11 +900,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -232,6 +232,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -271,10 +272,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -361,7 +362,7 @@ const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||
//#define DISABLE_MAX_ENDSTOPS
|
||||
#define DISABLE_MAX_ENDSTOPS
|
||||
//#define DISABLE_MIN_ENDSTOPS
|
||||
|
||||
//===========================================================================
|
||||
@@ -700,7 +701,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -914,11 +915,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -273,10 +274,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -702,7 +703,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -916,11 +917,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -236,6 +236,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -290,10 +291,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -725,7 +726,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -936,11 +937,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -47,28 +47,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 60 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 8 // Degrees Celsius
|
||||
@@ -86,11 +85,11 @@
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -279,10 +280,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -708,7 +709,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -919,11 +920,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -280,10 +281,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//RigidBot, from pid autotune
|
||||
@@ -703,7 +704,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -921,11 +922,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -254,6 +254,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -285,7 +286,7 @@
|
||||
// If this is enabled, find your own PID constants below.
|
||||
#define PIDTEMPBED
|
||||
|
||||
#define BED_LIMIT_SWITCHING
|
||||
//#define BED_LIMIT_SWITCHING
|
||||
|
||||
// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
|
||||
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
|
||||
@@ -293,10 +294,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//12v Heatbed Mk3 12V in parallel
|
||||
@@ -716,7 +717,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -927,11 +928,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 3000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 3000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 70 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX 74 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -289,10 +290,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 206 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//24V 360W silicone heater from NPH on 3mm borosilicate (TAZ 2.2+)
|
||||
@@ -729,7 +730,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -940,11 +941,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -232,6 +232,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -271,10 +272,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -700,7 +701,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -911,11 +912,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -279,10 +280,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -708,7 +709,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -919,11 +920,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -279,10 +280,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -830,7 +831,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -1048,11 +1049,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 120 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -279,10 +280,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -830,7 +831,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -1048,11 +1049,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -279,10 +280,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -834,7 +835,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -1052,11 +1053,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -235,6 +235,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX 125 // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -274,10 +275,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//Kossel Pro heated bed plate with borosilicate glass
|
||||
@@ -827,7 +828,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -1045,11 +1046,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -46,28 +46,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -81,15 +80,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -252,6 +252,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -307,10 +308,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -744,7 +745,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -955,11 +956,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 4 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -282,10 +283,10 @@
|
||||
// to increase the heat up rate. However, if changed, user must be aware of the safety concerns
|
||||
// of drawing too much current from the power supply.
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -711,7 +712,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -922,11 +923,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the l
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
@@ -229,6 +229,7 @@
|
||||
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||
#if ENABLED(PIDTEMP)
|
||||
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD "Temperature" menu to run M303 and apply the result.
|
||||
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||
@@ -269,10 +270,10 @@
|
||||
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
|
||||
//#define PID_BED_DEBUG // Sends debug data to the serial port.
|
||||
|
||||
#define PID_BED_INTEGRAL_DRIVE_MAX MAX_BED_POWER //limit for the integral term
|
||||
|
||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||
@@ -702,7 +703,7 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
// Host Keepalive
|
||||
//
|
||||
// By default Marlin will send a busy status message to the host
|
||||
// every 2 seconds when it can't accept commands.
|
||||
// every 10 seconds when it can't accept commands.
|
||||
//
|
||||
//#define DISABLE_HOST_KEEPALIVE // Enable this option if your host doesn't like keepalive messages.
|
||||
|
||||
@@ -913,11 +914,11 @@ const bool Z_MIN_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the lo
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_SENSOR
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||
|
||||
|
@@ -41,28 +41,27 @@
|
||||
//=============================Thermal Settings ============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
#define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
|
||||
#if ENABLED(BED_LIMIT_SWITCHING)
|
||||
#define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||
#endif
|
||||
#endif
|
||||
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* The solution: Once the temperature reaches the target, start observing.
|
||||
* If the temperature stays too far below the target (hysteresis) for too long (period),
|
||||
* the firmware will halt the machine as a safety precaution.
|
||||
*
|
||||
* If you get false positives for "Thermal Runaway" increase THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 40 // Seconds
|
||||
#define THERMAL_PROTECTION_HYSTERESIS 4 // Degrees Celsius
|
||||
@@ -76,15 +75,15 @@
|
||||
* If you get false positives for "Heating failed" increase WATCH_TEMP_PERIOD and/or decrease WATCH_TEMP_INCREASE
|
||||
* WATCH_TEMP_INCREASE should not be below 2.
|
||||
*/
|
||||
#define WATCH_TEMP_PERIOD 16 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 4 // Degrees Celsius
|
||||
#define WATCH_TEMP_PERIOD 20 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 2 // Degrees Celsius
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
/**
|
||||
* Thermal Protection parameters for the bed
|
||||
* are like the above for the hotends.
|
||||
* WATCH_TEMP_BED_PERIOD and WATCH_TEMP_BED_INCREASE are not imlemented now.
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_BED)
|
||||
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
|
||||
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
|
||||
|
Binary file not shown.
Binary file not shown.
@@ -71,25 +71,8 @@
|
||||
|
||||
#define PROTOCOL_VERSION "1.0"
|
||||
|
||||
#if MB(ULTIMAKER)|| MB(ULTIMAKER_OLD)|| MB(ULTIMAIN_2)
|
||||
#define DEFAULT_MACHINE_NAME "Ultimaker"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin"
|
||||
#elif MB(RUMBA)
|
||||
#define DEFAULT_MACHINE_NAME "Rumba"
|
||||
#elif MB(3DRAG)
|
||||
#define DEFAULT_MACHINE_NAME "3Drag"
|
||||
#define DEFAULT_SOURCE_URL "http://3dprint.elettronicain.it/"
|
||||
#elif MB(K8200)
|
||||
#define DEFAULT_MACHINE_NAME "K8200"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/CONSULitAS/Marlin-K8200"
|
||||
#elif MB(5DPRINT)
|
||||
#define DEFAULT_MACHINE_NAME "Makibox"
|
||||
#elif MB(SAV_MKI)
|
||||
#define DEFAULT_MACHINE_NAME "SAV MkI"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config"
|
||||
#else
|
||||
#ifndef DEFAULT_MACHINE_NAME
|
||||
#define DEFAULT_MACHINE_NAME "3D Printer"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/MarlinFirmware/Marlin"
|
||||
#endif
|
||||
|
||||
#ifdef CUSTOM_MACHINE_NAME
|
||||
@@ -98,6 +81,10 @@
|
||||
#define MACHINE_NAME DEFAULT_MACHINE_NAME
|
||||
#endif
|
||||
|
||||
#ifndef DEFAULT_SOURCE_URL
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/MarlinFirmware/Marlin"
|
||||
#endif
|
||||
|
||||
#ifndef SOURCE_CODE_URL
|
||||
#define SOURCE_CODE_URL DEFAULT_SOURCE_URL
|
||||
#endif
|
||||
@@ -238,11 +225,14 @@
|
||||
#define MSG_T_MINTEMP "MINTEMP triggered"
|
||||
|
||||
// Debug
|
||||
#define MSG_DEBUG_ECHO "DEBUG ECHO ENABLED"
|
||||
#define MSG_DEBUG_INFO "DEBUG INFO ENABLED"
|
||||
#define MSG_DEBUG_ERRORS "DEBUG ERRORS ENABLED"
|
||||
#define MSG_DEBUG_DRYRUN "DEBUG DRYRUN ENABLED"
|
||||
#define MSG_DEBUG_LEVELING "DEBUG LEVELING ENABLED"
|
||||
#define MSG_DEBUG_PREFIX "DEBUG: "
|
||||
#define MSG_DEBUG_OFF "off"
|
||||
#define MSG_DEBUG_ECHO "ECHO"
|
||||
#define MSG_DEBUG_INFO "INFO"
|
||||
#define MSG_DEBUG_ERRORS "ERRORS"
|
||||
#define MSG_DEBUG_DRYRUN "DRYRUN"
|
||||
#define MSG_DEBUG_COMMUNICATION "COMMUNICATION"
|
||||
#define MSG_DEBUG_LEVELING "LEVELING"
|
||||
|
||||
// LCD Menu Messages
|
||||
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART " Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Amortar motors"
|
||||
#define MSG_AUTO_HOME "Levar a l'orichen"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Establir zero"
|
||||
#define MSG_PREHEAT_PLA "Precalentar PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Precalentar PLA "
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Encetan. tarcheta"
|
||||
#define MSG_CNG_SDCARD "Cambiar tarcheta"
|
||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Автостарт"
|
||||
#define MSG_DISABLE_STEPPERS "Изкл. двигатели"
|
||||
#define MSG_AUTO_HOME "Паркиране"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Задай Начало"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Изходна точка"
|
||||
#define MSG_PREHEAT_PLA "Подгряване PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Подгряване PLA"
|
||||
@@ -139,7 +142,7 @@
|
||||
#define MSG_INIT_SDCARD "Иниц. SD-Карта"
|
||||
#define MSG_CNG_SDCARD "Смяна SD-Карта"
|
||||
#define MSG_ZPROBE_OUT "Z-сондата е извадена"
|
||||
#define MSG_POSITION_UNKNOWN "Задайте X/Y преди Z"
|
||||
#define MSG_YX_UNHOMED "Задайте X/Y преди Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Отстояние"
|
||||
#define MSG_BABYSTEP_X "Министъпка X"
|
||||
#define MSG_BABYSTEP_Y "Министъпка Y"
|
||||
|
@@ -43,8 +43,11 @@
|
||||
#define MSG_AUTOSTART "Inici automatic"
|
||||
#define MSG_DISABLE_STEPPERS "Apagar motors"
|
||||
#define MSG_AUTO_HOME "Home global"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Establir origen"
|
||||
#define MSG_PREHEAT_PLA "Preescalfar PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Preescalfar PLA "
|
||||
@@ -139,7 +142,7 @@
|
||||
#define MSG_INIT_SDCARD "Iniciant SD"
|
||||
#define MSG_CNG_SDCARD "Canviar SD"
|
||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y abans Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y abans Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -40,8 +40,11 @@
|
||||
#define MSG_AUTOSTART "\xb1\xb2\xb3\xb4"
|
||||
#define MSG_DISABLE_STEPPERS "\xb5\xb6\xb7\xb8\xb9\xba"
|
||||
#define MSG_AUTO_HOME "\xbb\xbc\xbd"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "\xbe\xbf\xbb\xbc\xbd\xc0\xc1"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "\xbe\xbf\xbc\xbd"
|
||||
#define MSG_PREHEAT_PLA "\xc3\xc4 PLA"
|
||||
#define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " "
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Init. SD card"
|
||||
#define MSG_CNG_SDCARD "Change SD card"
|
||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -47,7 +47,10 @@
|
||||
#define MSG_DISABLE_STEPPERS "Uvolnit motory"
|
||||
#define MSG_AUTO_HOME "Domovska pozice"
|
||||
#define MSG_LEVEL_BED_HOMING "Mereni podlozky"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Nastavit ofsety"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Nastavit pocatek"
|
||||
#define MSG_PREHEAT_PLA "Zahrat PLA"
|
||||
#define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " "
|
||||
@@ -144,7 +147,7 @@
|
||||
#define MSG_INIT_SDCARD "Nacist SD kartu"
|
||||
#define MSG_CNG_SDCARD "Vymenit SD kartu"
|
||||
#define MSG_ZPROBE_OUT "Sonda Z mimo podl"
|
||||
#define MSG_POSITION_UNKNOWN "Domu X/Y pred Z"
|
||||
#define MSG_YX_UNHOMED "Domu X/Y pred Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z ofset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -43,8 +43,11 @@
|
||||
#define MSG_AUTO_HOME "Home" // G28
|
||||
#define MSG_COOLDOWN "Afkøl"
|
||||
#define MSG_DISABLE_STEPPERS "Slå stepper fra"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Sæt home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Sæt origin"
|
||||
#define MSG_SWITCH_PS_ON "Slå strøm til"
|
||||
#define MSG_SWITCH_PS_OFF "Slå strøm fra"
|
||||
@@ -140,7 +143,7 @@
|
||||
#define MSG_FILAMENTCHANGE "Skift filament"
|
||||
#define MSG_INIT_SDCARD "Init. SD card"
|
||||
#define MSG_CNG_SDCARD "Skift SD kort"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y før Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y før Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Motoren Aus" // M84
|
||||
#define MSG_AUTO_HOME "Home" // G28
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Setze Home hier"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Setze Null hier" //"G92 X0 Y0 Z0" commented out in ultralcd.cpp
|
||||
#define MSG_PREHEAT_PLA "Vorwärmen PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Vorwärmen PLA "
|
||||
@@ -137,7 +140,7 @@
|
||||
#define MSG_INIT_SDCARD "SDKarte erkennen"// Manually initialize the SD-card via user interface
|
||||
#define MSG_CNG_SDCARD "SDKarte erkennen"// SD-card changed by user. For machines with no autocarddetect. Both send "M21"
|
||||
#define MSG_ZPROBE_OUT "Sensor ausserhalb"
|
||||
#define MSG_POSITION_UNKNOWN "X/Y vor Z homen."
|
||||
#define MSG_YX_UNHOMED "X/Y vor Z homen."
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -62,11 +62,20 @@
|
||||
#define MSG_AUTO_HOME "Auto home"
|
||||
#endif
|
||||
#ifndef MSG_LEVEL_BED_HOMING
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#endif
|
||||
#ifndef MSG_LEVEL_BED_WAITING
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#endif
|
||||
#ifndef MSG_LEVEL_BED_DONE
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#endif
|
||||
#ifndef MSG_SET_HOME_OFFSETS
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#endif
|
||||
#ifndef MSG_HOME_OFFSETS_APPLIED
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#endif
|
||||
#ifndef MSG_SET_ORIGIN
|
||||
#define MSG_SET_ORIGIN "Set origin"
|
||||
#endif
|
||||
@@ -169,6 +178,9 @@
|
||||
#ifndef MSG_SPEED
|
||||
#define MSG_SPEED "Speed"
|
||||
#endif
|
||||
#ifndef MSG_BED_Z
|
||||
#define MSG_BED_Z "Bed Z"
|
||||
#endif
|
||||
#ifndef MSG_NOZZLE
|
||||
#define MSG_NOZZLE "Nozzle"
|
||||
#endif
|
||||
@@ -415,8 +427,8 @@
|
||||
#ifndef MSG_ZPROBE_OUT
|
||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||
#endif
|
||||
#ifndef MSG_POSITION_UNKNOWN
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
|
||||
#ifndef MSG_YX_UNHOMED
|
||||
#define MSG_YX_UNHOMED "Home X/Y before Z"
|
||||
#endif
|
||||
#ifndef MSG_ZPROBE_ZOFFSET
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Apagar motores"
|
||||
#define MSG_AUTO_HOME "Llevar al origen"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Ajustar offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Establecer cero"
|
||||
#define MSG_PREHEAT_PLA "Precalentar PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Precalentar PLA "
|
||||
@@ -139,7 +142,7 @@
|
||||
#define MSG_INIT_SDCARD "Iniciando tarjeta"
|
||||
#define MSG_CNG_SDCARD "Cambiar tarjeta"
|
||||
#define MSG_ZPROBE_OUT "Sonda Z fuera"
|
||||
#define MSG_POSITION_UNKNOWN "Reiniciar X/Y y Z"
|
||||
#define MSG_YX_UNHOMED "Reiniciar X/Y y Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Offset Z"
|
||||
#define MSG_BABYSTEP_X "Micropaso X"
|
||||
#define MSG_BABYSTEP_Y "Micropaso Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Auto hasiera"
|
||||
#define MSG_DISABLE_STEPPERS "Itzali motoreak"
|
||||
#define MSG_AUTO_HOME "Hasierara joan"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Hasiera ipini"
|
||||
#define MSG_PREHEAT_PLA "Aurreberotu PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Aurreberotu PLA "
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Hasieratu txartela"
|
||||
#define MSG_CNG_SDCARD "Aldatu txartela"
|
||||
#define MSG_ZPROBE_OUT "Z ohe hasiera"
|
||||
#define MSG_POSITION_UNKNOWN "Posizio ezezaguna"
|
||||
#define MSG_YX_UNHOMED "Posizio ezezaguna"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z konpentsatu"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Automaatti"
|
||||
#define MSG_DISABLE_STEPPERS "Vapauta moottorit"
|
||||
#define MSG_AUTO_HOME "Aja referenssiin"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Aseta origo"
|
||||
#define MSG_PREHEAT_PLA "Esilämmitä PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Esilämmitä PLA "
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Init. SD-Card"
|
||||
#define MSG_CNG_SDCARD "Change SD-Card"
|
||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -43,8 +43,11 @@
|
||||
#define MSG_AUTOSTART "Demarrage auto"
|
||||
#define MSG_DISABLE_STEPPERS "Arreter moteurs"
|
||||
#define MSG_AUTO_HOME "Home auto."
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Regler origine"
|
||||
#define MSG_PREHEAT_PLA "Prechauffage PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Prechauff. PLA "
|
||||
@@ -140,7 +143,7 @@
|
||||
#define MSG_INIT_SDCARD "Init. la carte SD"
|
||||
#define MSG_CNG_SDCARD "Changer de carte"
|
||||
#define MSG_ZPROBE_OUT "Z sonde exte. lit"
|
||||
#define MSG_POSITION_UNKNOWN "Rev. dans XY av.Z"
|
||||
#define MSG_YX_UNHOMED "Rev. dans XY av.Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Offset Z"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -142,7 +142,7 @@
|
||||
#define MSG_INIT_SDCARD "Iniciando SD"
|
||||
#define MSG_CNG_SDCARD "Cambiar SD"
|
||||
#define MSG_ZPROBE_OUT "Sonda-Z sen cama"
|
||||
#define MSG_POSITION_UNKNOWN "X/Y antes que Z"
|
||||
#define MSG_YX_UNHOMED "X/Y antes que Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Offset Z"
|
||||
#define MSG_BABYSTEP_X "Micropaso X"
|
||||
#define MSG_BABYSTEP_Y "Micropaso Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Disabilita Motori"
|
||||
#define MSG_AUTO_HOME "Auto Home"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Setta offset home"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Imposta Origine"
|
||||
#define MSG_PREHEAT_PLA "Preriscalda PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Preriscalda PLA "
|
||||
@@ -139,7 +142,7 @@
|
||||
#define MSG_INIT_SDCARD "Iniz. SD-Card"
|
||||
#define MSG_CNG_SDCARD "Cambia SD-Card"
|
||||
#define MSG_ZPROBE_OUT "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y before Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -44,8 +44,11 @@
|
||||
#define MSG_AUTOSTART "\xbc\xde\xc4\xde\xb3\xb6\xb2\xbc" // "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "\xd3\xb0\xc0\xb0\xc3\xde\xdd\xb9\xde\xdd\x20\xb5\xcc" // "Disable steppers"
|
||||
#define MSG_AUTO_HOME "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "Auto home"
|
||||
#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "\xb9\xde\xdd\xc3\xdd\xc6\xb2\xc4\xde\xb3" // "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "\xb7\xbc\xde\xad\xdd\xb5\xcc\xbe\xaf\xc4\xbe\xaf\xc3\xb2" // "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "\xb7\xbc\xde\xad\xdd\xbe\xaf\xc4" // "Set origin"
|
||||
#define MSG_PREHEAT_PLA "PLA \xd6\xc8\xc2" // "Preheat PLA"
|
||||
#define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " "
|
||||
@@ -72,6 +75,7 @@
|
||||
#define MSG_MOVE_1MM " 1mm \xb2\xc4\xde\xb3" // "Move 1mm"
|
||||
#define MSG_MOVE_10MM " 10mm \xb2\xc4\xde\xb3" // "Move 10mm"
|
||||
#define MSG_SPEED "\xbd\xcb\xdf\xb0\xc4\xde" // "Speed"
|
||||
#define MSG_BED_Z "Z\xb5\xcc\xbe\xaf\xc4" // "Bed Z"
|
||||
#define MSG_NOZZLE "\xc9\xbd\xde\xd9" // "Nozzle"
|
||||
#define MSG_BED "\xcd\xde\xaf\xc4\xde" // "Bed"
|
||||
#define MSG_FAN_SPEED "\xcc\xa7\xdd\xbf\xb8\xc4\xde" // "Fan speed"
|
||||
@@ -142,7 +146,7 @@
|
||||
#define MSG_INIT_SDCARD "SD\xb6\xb0\xc4\xde\xbb\xb2\xd6\xd0\xba\xd0" // "Init. SD card"
|
||||
#define MSG_CNG_SDCARD "SD\xb6\xb0\xc4\xde\xba\xb3\xb6\xdd" // "Change SD card"
|
||||
#define MSG_ZPROBE_OUT "Z\xcc\xdf\xdb\xb0\xcc\xde\x20\xcd\xde\xaf\xc4\xde\xb6\xde\xb2" // "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "Home X/Y before Z"
|
||||
#define MSG_YX_UNHOMED "\xb9\xde\xdd\xc3\xdd\xcaXY\xb2\xc4\xde\xb3\xba\xdeZ" // "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z\xb5\xcc\xbe\xaf\xc4" // "Z Offset"
|
||||
#define MSG_BABYSTEP_X "X\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Y\xbc\xde\xb8\x20\xcb\xde\xc4\xde\xb3" // "Babystep Y"
|
||||
|
@@ -48,8 +48,11 @@
|
||||
#define MSG_AUTOSTART "ジドウカイシ" // "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "モーターデンゲン オフ" // "Disable steppers"
|
||||
#define MSG_AUTO_HOME "ゲンテンニイドウ" // "Auto home"
|
||||
#define MSG_LEVEL_BED_HOMING "ゲンテンニイドウ" // "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "ゲンテンニイドウ" // "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "キジュンオフセットセッテイ" // "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "キジュンセット" // "Set origin"
|
||||
#define MSG_PREHEAT_PLA "PLA ヨネツ" // "Preheat PLA"
|
||||
#define MSG_PREHEAT_PLA_N MSG_PREHEAT_PLA " "
|
||||
@@ -76,6 +79,7 @@
|
||||
#define MSG_MOVE_1MM " 1mm イドウ" // "Move 1mm"
|
||||
#define MSG_MOVE_10MM " 10mm イドウ" // "Move 10mm"
|
||||
#define MSG_SPEED "スピード" // "Speed"
|
||||
#define MSG_BED_Z "Zオフセット" // "Bed Z"
|
||||
#define MSG_NOZZLE "ノズル" // "Nozzle"
|
||||
#define MSG_BED "ベッド" // "Bed"
|
||||
#define MSG_FAN_SPEED "ファンソクド" // "Fan speed"
|
||||
@@ -146,7 +150,7 @@
|
||||
#define MSG_INIT_SDCARD "SDカードサイヨミコミ" // "Init. SD card"
|
||||
#define MSG_CNG_SDCARD "SDカードコウカン" // "Change SD card"
|
||||
#define MSG_ZPROBE_OUT "Zプローブ ベッドガイ" // "Z probe out. bed"
|
||||
#define MSG_POSITION_UNKNOWN "ゲンテンハXYイドウゴZ" // "Home X/Y before Z"
|
||||
#define MSG_YX_UNHOMED "ゲンテンハXYイドウゴZ" // "Home X/Y before Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Zオフセット" // "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Xジク ビドウ" // "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Yジク ビドウ" // "Babystep Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Motoren uit"
|
||||
#define MSG_AUTO_HOME "Auto home"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Nulpunt instellen"
|
||||
#define MSG_PREHEAT_PLA "PLA voorverwarmen"
|
||||
#define MSG_PREHEAT_PLA_N "PLA voorverw. "
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Init. SD kaart"
|
||||
#define MSG_CNG_SDCARD "Verv. SD card"
|
||||
#define MSG_ZPROBE_OUT "Z probe uit. bed"
|
||||
#define MSG_POSITION_UNKNOWN "Home X/Y voor Z"
|
||||
#define MSG_YX_UNHOMED "Home X/Y voor Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||
#define MSG_BABYSTEP_X "Babystap X"
|
||||
#define MSG_BABYSTEP_Y "Babystap Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Wylacz silniki"
|
||||
#define MSG_AUTO_HOME "Auto. poz. zerowa"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Ustaw punkt zero"
|
||||
#define MSG_PREHEAT_PLA "Rozgrzej PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Rozgrzej PLA "
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Inicjal. karty SD"
|
||||
#define MSG_CNG_SDCARD "Zmiana karty SD"
|
||||
#define MSG_ZPROBE_OUT "Sonda Z za lozem"
|
||||
#define MSG_POSITION_UNKNOWN "Wroc w XY przed Z"
|
||||
#define MSG_YX_UNHOMED "Wroc w XY przed Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Offset Z"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Autostart"
|
||||
#define MSG_DISABLE_STEPPERS "Desabi. motores"
|
||||
#define MSG_AUTO_HOME "Ir para origen"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Ajustar Jogo"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Ajustar orig."
|
||||
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA"
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Iniciar SD"
|
||||
#define MSG_CNG_SDCARD "Trocar SD"
|
||||
#define MSG_ZPROBE_OUT "Son. fora da mesa"
|
||||
#define MSG_POSITION_UNKNOWN "Pos. Desconhecida"
|
||||
#define MSG_YX_UNHOMED "Pos. Desconhecida"
|
||||
#define MSG_ZPROBE_ZOFFSET "Deslocamento no Z"
|
||||
#define MSG_BABYSTEP_X "Passinho X"
|
||||
#define MSG_BABYSTEP_Y "Passinho Y"
|
||||
|
@@ -43,7 +43,10 @@
|
||||
#define MSG_DISABLE_STEPPERS "Desabi. motores"
|
||||
#define MSG_AUTO_HOME "Ir para origen"
|
||||
#define MSG_LEVEL_BED_HOMING "Indo para origem"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Ajustar Jogo"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Ajustar orig."
|
||||
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA"
|
||||
@@ -138,7 +141,7 @@
|
||||
#define MSG_INIT_SDCARD "Iniciar SD"
|
||||
#define MSG_CNG_SDCARD "Trocar SD"
|
||||
#define MSG_ZPROBE_OUT "Son. fora da mesa"
|
||||
#define MSG_POSITION_UNKNOWN "Pos. Desconhecida"
|
||||
#define MSG_YX_UNHOMED "Pos. Desconhecida"
|
||||
#define MSG_ZPROBE_ZOFFSET "Deslocamento no Z"
|
||||
#define MSG_BABYSTEP_X "Passinho X"
|
||||
#define MSG_BABYSTEP_Y "Passinho Y"
|
||||
|
@@ -43,7 +43,10 @@
|
||||
#define MSG_DISABLE_STEPPERS "Desactivar motores"
|
||||
#define MSG_AUTO_HOME "Ir para origem"
|
||||
#define MSG_LEVEL_BED_HOMING "Indo para origem"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Definir desvio"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Definir origem"
|
||||
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA"
|
||||
@@ -142,7 +145,7 @@
|
||||
#define MSG_INIT_SDCARD "Inici. cartao SD"
|
||||
#define MSG_CNG_SDCARD "Trocar cartao SD"
|
||||
#define MSG_ZPROBE_OUT "Sensor fora/base"
|
||||
#define MSG_POSITION_UNKNOWN "XY antes de Z"
|
||||
#define MSG_YX_UNHOMED "XY antes de Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Desvio Z"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -43,7 +43,10 @@
|
||||
#define MSG_DISABLE_STEPPERS "Desactivar motores"
|
||||
#define MSG_AUTO_HOME "Ir para origem"
|
||||
#define MSG_LEVEL_BED_HOMING "Indo para origem"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Definir desvio"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Definir origem"
|
||||
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA"
|
||||
@@ -142,7 +145,7 @@
|
||||
#define MSG_INIT_SDCARD "Inici. cartão SD"
|
||||
#define MSG_CNG_SDCARD "Trocar cartão SD"
|
||||
#define MSG_ZPROBE_OUT "Sensor fora/base"
|
||||
#define MSG_POSITION_UNKNOWN "XY antes de Z"
|
||||
#define MSG_YX_UNHOMED "XY antes de Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Desvio Z"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -42,8 +42,11 @@
|
||||
#define MSG_AUTOSTART "Автостарт"
|
||||
#define MSG_DISABLE_STEPPERS "Выкл. двигатели"
|
||||
#define MSG_AUTO_HOME "Парковка"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing"
|
||||
#define MSG_LEVEL_BED_HOMING "Homing XYZ"
|
||||
#define MSG_LEVEL_BED_WAITING "Click to Begin"
|
||||
#define MSG_LEVEL_BED_DONE "Leveling Done!"
|
||||
#define MSG_SET_HOME_OFFSETS "Запомнить парковку"
|
||||
#define MSG_HOME_OFFSETS_APPLIED "Offsets applied"
|
||||
#define MSG_SET_ORIGIN "Запомнить ноль"
|
||||
#define MSG_PREHEAT_PLA "Преднагрев PLA"
|
||||
#define MSG_PREHEAT_PLA_N "Греть PLA Сопло "
|
||||
@@ -139,7 +142,7 @@
|
||||
#define MSG_INIT_SDCARD "Иниц. карту"
|
||||
#define MSG_CNG_SDCARD "Сменить карту"
|
||||
#define MSG_ZPROBE_OUT "Z датчик вне стола"
|
||||
#define MSG_POSITION_UNKNOWN "Паркуй X/Y перед Z"
|
||||
#define MSG_YX_UNHOMED "Паркуй X/Y перед Z"
|
||||
#define MSG_ZPROBE_ZOFFSET "Смещение Z"
|
||||
#define MSG_BABYSTEP_X "Babystep X"
|
||||
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||
|
@@ -51,6 +51,10 @@
|
||||
#define ENABLED(b) _CAT(SWITCH_ENABLED_, b)
|
||||
#define DISABLED(b) (!_CAT(SWITCH_ENABLED_, b))
|
||||
|
||||
#define NUMERIC(a) ((a) >= '0' && '9' >= (a))
|
||||
#define NUMERIC_SIGNED(a) (NUMERIC(a) || (a) == '-')
|
||||
#define COUNT(a) (sizeof(a)/sizeof(*a))
|
||||
|
||||
#define PIN_EXISTS(PN) (defined(PN ##_PIN) && PN ##_PIN >= 0)
|
||||
|
||||
#endif //__MACROS_H
|
||||
|
@@ -30,6 +30,7 @@
|
||||
|
||||
void mesh_bed_leveling::reset() {
|
||||
active = 0;
|
||||
z_offset = 0;
|
||||
for (int y = 0; y < MESH_NUM_Y_POINTS; y++)
|
||||
for (int x = 0; x < MESH_NUM_X_POINTS; x++)
|
||||
z_values[y][x] = 0;
|
||||
|
@@ -30,6 +30,7 @@
|
||||
class mesh_bed_leveling {
|
||||
public:
|
||||
uint8_t active;
|
||||
float z_offset;
|
||||
float z_values[MESH_NUM_Y_POINTS][MESH_NUM_X_POINTS];
|
||||
|
||||
mesh_bed_leveling();
|
||||
@@ -70,7 +71,7 @@
|
||||
float z0 = calc_z0(y0,
|
||||
get_y(y_index), z1,
|
||||
get_y(y_index + 1), z2);
|
||||
return z0;
|
||||
return z0 + z_offset;
|
||||
}
|
||||
};
|
||||
|
||||
|
@@ -149,6 +149,10 @@
|
||||
#include "pins_99.h"
|
||||
#elif MB(AJ4P)
|
||||
#include "pins_AJ4P.h"
|
||||
#elif MB(MKS_13)
|
||||
#include "pins_MKS_13.h"
|
||||
#elif MB(SAINSMART_2IN1)
|
||||
#include "pins_SAINSMART_2IN1.h"
|
||||
#else
|
||||
#error Unknown MOTHERBOARD value set in Configuration.h
|
||||
#endif
|
||||
|
@@ -26,6 +26,9 @@
|
||||
|
||||
#include "pins_RAMPS_14.h"
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "3Drag"
|
||||
#define DEFAULT_SOURCE_URL "http://3dprint.elettronicain.it/"
|
||||
|
||||
#undef Z_ENABLE_PIN
|
||||
#define Z_ENABLE_PIN 63
|
||||
|
||||
|
@@ -30,6 +30,8 @@
|
||||
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "Makibox"
|
||||
|
||||
#define LARGE_FLASH true
|
||||
|
||||
#define X_STEP_PIN 0
|
||||
|
@@ -74,10 +74,7 @@
|
||||
#endif
|
||||
#endif // VIKI2/miniVIKI
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
//Filip added pin for Filament sensor analog input
|
||||
#define FILWIDTH_PIN 3
|
||||
#endif
|
||||
#define FILWIDTH_PIN 3 // ANALOG NUMBERING
|
||||
|
||||
/************************************************
|
||||
* Rambo pin assignments old
|
||||
|
@@ -26,3 +26,9 @@
|
||||
*/
|
||||
|
||||
#include "pins_3DRAG.h"
|
||||
|
||||
#undef DEFAULT_MACHINE_NAME
|
||||
#define DEFAULT_MACHINE_NAME "K8200"
|
||||
|
||||
#undef DEFAULT_SOURCE_URL
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/CONSULitAS/Marlin-K8200"
|
||||
|
35
Marlin/pins_MKS_13.h
Normal file
35
Marlin/pins_MKS_13.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Arduino Mega with RAMPS v1.4 adjusted pin assignments
|
||||
*
|
||||
* MKS v1.3 (Extruder, Fan, Bed)
|
||||
* MKS v1.3 (Extruder, Extruder, Fan, Bed)
|
||||
* MKS v1.4 (Extruder, Fan, Bed)
|
||||
* MKS v1.4 (Extruder, Extruder, Fan, Bed)
|
||||
*/
|
||||
|
||||
#include "pins_RAMPS_14_EFB.h"
|
||||
|
||||
#undef HEATER_1_PIN
|
||||
#define HEATER_1_PIN 7 // EXTRUDER 2 (-1 on RAMPS 1.4)
|
@@ -79,9 +79,7 @@
|
||||
#define TEMP_0_PIN 1 // Extruder / Analog pin numbering
|
||||
#define TEMP_BED_PIN 0 // Bed / Analog pin numbering
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#define FILWIDTH_PIN 2
|
||||
#endif
|
||||
#define FILWIDTH_PIN 2 // ANALOG NUMBERING
|
||||
|
||||
#define TEMP_1_PIN -1
|
||||
#define TEMP_2_PIN -1
|
||||
|
@@ -73,9 +73,7 @@
|
||||
#define TEMP_0_PIN 1 // Extruder / Analog pin numbering
|
||||
#define TEMP_BED_PIN 0 // Bed / Analog pin numbering
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#define FILWIDTH_PIN 2
|
||||
#endif
|
||||
#define FILWIDTH_PIN 2 // ANALOG NUMBERING
|
||||
|
||||
#define TEMP_1_PIN -1
|
||||
#define TEMP_2_PIN -1
|
||||
|
@@ -112,6 +112,8 @@
|
||||
#define LED_PIN 13
|
||||
#define FAN_PIN 8
|
||||
|
||||
#define FILWIDTH_PIN 3 // ANALOG NUMBERING
|
||||
|
||||
/**********************************************************
|
||||
Fan Pins
|
||||
Fan_0 8
|
||||
@@ -201,7 +203,3 @@
|
||||
#endif
|
||||
#endif // VIKI2/miniVIKI
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
//Filip added pin for Filament sensor analog input
|
||||
#define FILWIDTH_PIN 3
|
||||
#endif
|
||||
|
@@ -91,11 +91,8 @@
|
||||
#define SDSS 53
|
||||
#define LED_PIN 13
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR) // FMM added for Filament Extruder
|
||||
// define analog pin for the filament width sensor input
|
||||
// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
|
||||
#define FILWIDTH_PIN 5
|
||||
#endif
|
||||
// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
|
||||
#define FILWIDTH_PIN 5 // ANALOG NUMBERING
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
|
||||
// Define a pin to use as the signal pin on Arduino for the Z_PROBE endstop.
|
||||
|
@@ -32,6 +32,8 @@
|
||||
#error RUMBA supports up to 3 extruders. Comment this line to keep going.
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "Rumba"
|
||||
|
||||
#define X_STEP_PIN 17
|
||||
#define X_DIR_PIN 16
|
||||
#define X_ENABLE_PIN 48
|
||||
|
36
Marlin/pins_SAINSMART_2IN1.h
Normal file
36
Marlin/pins_SAINSMART_2IN1.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Sainsmart 2-in-1 pin assignments
|
||||
*/
|
||||
|
||||
#include "pins_RAMPS_14_EFB.h"
|
||||
|
||||
#undef FAN_PIN
|
||||
#define FAN_PIN 7 // PART FAN in front of board next to Extruder heat
|
||||
|
||||
#undef HEATER_0_PIN
|
||||
#define HEATER_0_PIN 9 // EXTRUDER 1
|
||||
|
||||
#undef HEATER_1_PIN
|
||||
#define HEATER_1_PIN 10 // EXTRUDER 2
|
@@ -31,6 +31,9 @@
|
||||
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "SAV MkI"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/fmalpartida/Marlin/tree/SAV-MkI-config"
|
||||
|
||||
#define LARGE_FLASH true
|
||||
|
||||
#define X_STEP_PIN 0
|
||||
|
@@ -28,6 +28,9 @@
|
||||
#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "Ultimaker"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin"
|
||||
|
||||
#define X_STEP_PIN 25
|
||||
#define X_DIR_PIN 23
|
||||
#define X_STOP_PIN 22
|
||||
|
@@ -28,6 +28,9 @@
|
||||
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "Ultimaker"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin"
|
||||
|
||||
#define LARGE_FLASH true
|
||||
|
||||
#define SERVO0_PIN 13 // untested
|
||||
|
@@ -28,6 +28,9 @@
|
||||
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||
#endif
|
||||
|
||||
#define DEFAULT_MACHINE_NAME "Ultimaker"
|
||||
#define DEFAULT_SOURCE_URL "https://github.com/Ultimaker/Marlin"
|
||||
|
||||
#define LARGE_FLASH true
|
||||
|
||||
#define X_STEP_PIN 25
|
||||
|
@@ -147,10 +147,6 @@ uint8_t g_uc_extruder_last_move[EXTRUDERS] = { 0 };
|
||||
static long axis_segment_time[2][3] = { {MAX_FREQ_TIME + 1, 0, 0}, {MAX_FREQ_TIME + 1, 0, 0} };
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
static char meas_sample; //temporary variable to hold filament measurement sample
|
||||
#endif
|
||||
|
||||
#if ENABLED(DUAL_X_CARRIAGE)
|
||||
extern bool extruder_duplication_enabled;
|
||||
#endif
|
||||
@@ -591,7 +587,7 @@ float junction_deviation = 0.1;
|
||||
dz = target[Z_AXIS] - position[Z_AXIS];
|
||||
|
||||
// DRYRUN ignores all temperature constraints and assures that the extruder is instantly satisfied
|
||||
if (marlin_debug_flags & DEBUG_DRYRUN)
|
||||
if (DEBUGGING(DRYRUN))
|
||||
position[E_AXIS] = target[E_AXIS];
|
||||
|
||||
long de = target[E_AXIS] - position[E_AXIS];
|
||||
@@ -855,9 +851,8 @@ float junction_deviation = 0.1;
|
||||
block->nominal_speed = block->millimeters * inverse_second; // (mm/sec) Always > 0
|
||||
block->nominal_rate = ceil(block->step_event_count * inverse_second); // (step/sec) Always > 0
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
//FMM update ring buffer used for delay with filament measurements
|
||||
|
||||
if (extruder == FILAMENT_SENSOR_EXTRUDER_NUM && delay_index2 > -1) { //only for extruder with filament sensor and if ring buffer is initialized
|
||||
|
||||
const int MMD = MAX_MEASUREMENT_DELAY + 1, MMD10 = MMD * 10;
|
||||
@@ -870,7 +865,7 @@ float junction_deviation = 0.1;
|
||||
delay_index1 = constrain(delay_index1, 0, MAX_MEASUREMENT_DELAY); // (already constrained above)
|
||||
|
||||
if (delay_index1 != delay_index2) { // moved index
|
||||
meas_sample = widthFil_to_size_ratio() - 100; // Subtract 100 to reduce magnitude - to store in a signed char
|
||||
int8_t meas_sample = widthFil_to_size_ratio() - 100; // Subtract 100 to reduce magnitude - to store in a signed char
|
||||
while (delay_index1 != delay_index2) {
|
||||
// Increment and loop around buffer
|
||||
if (++delay_index2 >= MMD) delay_index2 -= MMD;
|
||||
|
@@ -85,40 +85,36 @@
|
||||
//#define _useTimer1
|
||||
#define _useTimer3
|
||||
#define _useTimer4
|
||||
#ifndef MOTOR_CURRENT_PWM_XY_PIN
|
||||
//Timer 5 is used for motor current PWM and can't be used for servos.
|
||||
#define _useTimer5
|
||||
//typedef enum { _timer5, _timer1, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
|
||||
typedef enum { _timer5, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
|
||||
#else
|
||||
typedef enum {_timer3, _timer4, _Nbr_16timers } timer16_Sequence_t ;
|
||||
#if !HAS_MOTOR_CURRENT_PWM
|
||||
#define _useTimer5 // Timer 5 is used for motor current PWM and can't be used for servos.
|
||||
#endif
|
||||
|
||||
#elif defined(__AVR_ATmega32U4__)
|
||||
//#define _useTimer1
|
||||
#define _useTimer3
|
||||
//typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
|
||||
typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
|
||||
|
||||
#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
||||
#define _useTimer3
|
||||
//#define _useTimer1
|
||||
//typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t ;
|
||||
typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
|
||||
|
||||
#elif defined(__AVR_ATmega128__) ||defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) ||defined(__AVR_ATmega2561__)
|
||||
#elif defined(__AVR_ATmega128__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega2561__)
|
||||
#define _useTimer3
|
||||
//#define _useTimer1
|
||||
//typedef enum { _timer3, _timer1, _Nbr_16timers } timer16_Sequence_t ;
|
||||
typedef enum { _timer3, _Nbr_16timers } timer16_Sequence_t ;
|
||||
|
||||
#else // everything else
|
||||
//#define _useTimer1
|
||||
//typedef enum { _timer1, _Nbr_16timers } timer16_Sequence_t ;
|
||||
typedef enum { _Nbr_16timers } timer16_Sequence_t ;
|
||||
|
||||
#else
|
||||
// everything else
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
#if ENABLED(_useTimer1)
|
||||
_timer1,
|
||||
#endif
|
||||
#if ENABLED(_useTimer3)
|
||||
_timer3,
|
||||
#endif
|
||||
#if ENABLED(_useTimer4)
|
||||
_timer4,
|
||||
#endif
|
||||
#if ENABLED(_useTimer5)
|
||||
_timer5,
|
||||
#endif
|
||||
_Nbr_16timers
|
||||
} timer16_Sequence_t;
|
||||
|
||||
|
||||
#define Servo_VERSION 2 // software version of this library
|
||||
|
||||
#define MIN_PULSE_WIDTH 544 // the shortest pulse sent to a servo
|
||||
|
@@ -113,7 +113,7 @@ static volatile char endstop_hit_bits = 0; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_
|
||||
bool abort_on_endstop_hit = false;
|
||||
#endif
|
||||
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
#ifndef PWM_MOTOR_CURRENT
|
||||
#define PWM_MOTOR_CURRENT DEFAULT_PWM_MOTOR_CURRENT
|
||||
#endif
|
||||
@@ -471,7 +471,7 @@ inline void update_endstops() {
|
||||
#if ENABLED(Z_MIN_PROBE_ENDSTOP) && DISABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN) && ENABLED(HAS_Z_MIN_PROBE)
|
||||
if (z_probe_is_active) {
|
||||
UPDATE_ENDSTOP(Z, MIN_PROBE);
|
||||
if (TEST_ENDSTOP(Z_MIN_PROBE)) endstop_hit_bits |= _BV(Z_MIN_PROBE);
|
||||
if (TEST_ENDSTOP(Z_MIN_PROBE)) SBI(endstop_hit_bits, Z_MIN_PROBE);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1238,13 +1238,19 @@ void digipot_init() {
|
||||
digipot_current(i, digipot_motor_current[i]);
|
||||
}
|
||||
#endif
|
||||
#ifdef MOTOR_CURRENT_PWM_XY_PIN
|
||||
pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT);
|
||||
pinMode(MOTOR_CURRENT_PWM_Z_PIN, OUTPUT);
|
||||
pinMode(MOTOR_CURRENT_PWM_E_PIN, OUTPUT);
|
||||
digipot_current(0, motor_current_setting[0]);
|
||||
digipot_current(1, motor_current_setting[1]);
|
||||
digipot_current(2, motor_current_setting[2]);
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
|
||||
pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT);
|
||||
digipot_current(0, motor_current_setting[0]);
|
||||
#endif
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
|
||||
pinMode(MOTOR_CURRENT_PWM_Z_PIN, OUTPUT);
|
||||
digipot_current(1, motor_current_setting[1]);
|
||||
#endif
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
|
||||
pinMode(MOTOR_CURRENT_PWM_E_PIN, OUTPUT);
|
||||
digipot_current(2, motor_current_setting[2]);
|
||||
#endif
|
||||
//Set timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
|
||||
TCCR5B = (TCCR5B & ~(_BV(CS50) | _BV(CS51) | _BV(CS52))) | _BV(CS50);
|
||||
#endif
|
||||
@@ -1254,11 +1260,18 @@ void digipot_current(uint8_t driver, int current) {
|
||||
#if HAS_DIGIPOTSS
|
||||
const uint8_t digipot_ch[] = DIGIPOT_CHANNELS;
|
||||
digitalPotWrite(digipot_ch[driver], current);
|
||||
#elif defined(MOTOR_CURRENT_PWM_XY_PIN)
|
||||
#elif HAS_MOTOR_CURRENT_PWM
|
||||
#define _WRITE_CURRENT_PWM(P) analogWrite(P, 255L * current / (MOTOR_CURRENT_PWM_RANGE))
|
||||
switch (driver) {
|
||||
case 0: analogWrite(MOTOR_CURRENT_PWM_XY_PIN, 255L * current / (MOTOR_CURRENT_PWM_RANGE)); break;
|
||||
case 1: analogWrite(MOTOR_CURRENT_PWM_Z_PIN, 255L * current / (MOTOR_CURRENT_PWM_RANGE)); break;
|
||||
case 2: analogWrite(MOTOR_CURRENT_PWM_E_PIN, 255L * current / (MOTOR_CURRENT_PWM_RANGE)); break;
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
|
||||
case 0: _WRITE_CURRENT_PWM(MOTOR_CURRENT_PWM_XY_PIN); break;
|
||||
#endif
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
|
||||
case 1: _WRITE_CURRENT_PWM(MOTOR_CURRENT_PWM_Z_PIN); break;
|
||||
#endif
|
||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
|
||||
case 2: _WRITE_CURRENT_PWM(MOTOR_CURRENT_PWM_E_PIN); break;
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
UNUSED(driver);
|
||||
|
@@ -93,7 +93,7 @@ unsigned char soft_pwm_bed;
|
||||
volatile int babystepsTodo[3] = { 0 };
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
int current_raw_filwidth = 0; //Holds measured filament diameter - one extruder only
|
||||
#endif
|
||||
|
||||
@@ -209,7 +209,7 @@ static void updateTemperaturesFromRawValues();
|
||||
#define SOFT_PWM_SCALE 0
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
static int meas_shift_index; //used to point to a delayed sample in buffer for filament width sensor
|
||||
#endif
|
||||
|
||||
@@ -631,7 +631,7 @@ float get_pid_output(int e) {
|
||||
|
||||
return pid_output;
|
||||
}
|
||||
#endif
|
||||
#endif //PIDTEMPBED
|
||||
|
||||
/**
|
||||
* Manage heating activities for extruder hot-ends and a heated bed
|
||||
@@ -703,7 +703,7 @@ void manage_heater() {
|
||||
#endif
|
||||
|
||||
// Control the extruder rate based on the width sensor
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
if (filament_sensor) {
|
||||
meas_shift_index = delay_index1 - meas_delay_cm;
|
||||
if (meas_shift_index < 0) meas_shift_index += MAX_MEASUREMENT_DELAY + 1; //loop around buffer if needed
|
||||
@@ -715,7 +715,7 @@ void manage_heater() {
|
||||
NOLESS(vm, 0.01);
|
||||
volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM] = vm;
|
||||
}
|
||||
#endif //FILAMENT_SENSOR
|
||||
#endif //FILAMENT_WIDTH_SENSOR
|
||||
|
||||
#if DISABLED(PIDTEMPBED)
|
||||
if (ms < next_bed_check_ms) return;
|
||||
@@ -745,7 +745,7 @@ void manage_heater() {
|
||||
soft_pwm_bed = 0;
|
||||
WRITE_HEATER_BED(LOW);
|
||||
}
|
||||
#else // BED_LIMIT_SWITCHING
|
||||
#else // !PIDTEMPBED && !BED_LIMIT_SWITCHING
|
||||
// Check if temperature is within the correct range
|
||||
if (current_temperature_bed > BED_MINTEMP && current_temperature_bed < BED_MAXTEMP) {
|
||||
soft_pwm_bed = current_temperature_bed < target_temperature_bed ? MAX_BED_POWER >> 1 : 0;
|
||||
@@ -849,7 +849,7 @@ static void updateTemperaturesFromRawValues() {
|
||||
#if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
|
||||
redundant_temperature = analog2temp(redundant_temperature_raw, 1);
|
||||
#endif
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
filament_width_meas = analog2widthFil();
|
||||
#endif
|
||||
|
||||
@@ -864,7 +864,7 @@ static void updateTemperaturesFromRawValues() {
|
||||
}
|
||||
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
|
||||
// Convert raw Filament Width to millimeters
|
||||
float analog2widthFil() {
|
||||
@@ -1003,7 +1003,7 @@ void tp_init() {
|
||||
#if HAS_TEMP_BED
|
||||
ANALOG_SELECT(TEMP_BED_PIN);
|
||||
#endif
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
ANALOG_SELECT(FILWIDTH_PIN);
|
||||
#endif
|
||||
|
||||
@@ -1354,7 +1354,7 @@ ISR(TIMER0_COMPB_vect) {
|
||||
ISR_STATICS(BED);
|
||||
#endif
|
||||
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
static unsigned long raw_filwidth_value = 0;
|
||||
#endif
|
||||
|
||||
@@ -1636,14 +1636,14 @@ ISR(TIMER0_COMPB_vect) {
|
||||
break;
|
||||
|
||||
case Prepare_FILWIDTH:
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
START_ADC(FILWIDTH_PIN);
|
||||
#endif
|
||||
lcd_buttons_update();
|
||||
temp_state = Measure_FILWIDTH;
|
||||
break;
|
||||
case Measure_FILWIDTH:
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
// raw_filwidth_value += ADC; //remove to use an IIR filter approach
|
||||
if (ADC > 102) { //check that ADC is reading a voltage > 0.5 volts, otherwise don't take in the data.
|
||||
raw_filwidth_value -= (raw_filwidth_value >> 7); //multiply raw_filwidth_value by 127/128
|
||||
@@ -1669,7 +1669,7 @@ ISR(TIMER0_COMPB_vect) {
|
||||
if (!temp_meas_ready) set_current_temp_raw();
|
||||
|
||||
// Filament Sensor - can be read any time since IIR filtering is used
|
||||
#if HAS_FILAMENT_SENSOR
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
current_raw_filwidth = raw_filwidth_value >> 10; // Divide to get to 0-16384 range since we used 1/128 IIR filter approach
|
||||
#endif
|
||||
|
||||
|
@@ -53,7 +53,7 @@
|
||||
void tp_init(); //initialize the heating
|
||||
void manage_heater(); //it is critical that this is called periodically.
|
||||
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#if ENABLED(FILAMENT_WIDTH_SENSOR)
|
||||
// For converting raw Filament Width to milimeters
|
||||
float analog2widthFil();
|
||||
|
||||
|
@@ -48,8 +48,6 @@
|
||||
#define ENCODER_DIRECTION_MENUS() ;
|
||||
#endif
|
||||
|
||||
uint8_t blink = 0; // Variable for animation
|
||||
|
||||
int8_t encoderDiff; // updated from interrupt context and added to encoderPosition every LCD update
|
||||
|
||||
bool encoderRateMultiplierEnabled;
|
||||
@@ -254,7 +252,7 @@ static void lcd_status_screen();
|
||||
#endif //!ENCODER_RATE_MULTIPLIER
|
||||
#define END_MENU() \
|
||||
if (encoderLine >= _menuItemNr) { encoderPosition = _menuItemNr * (ENCODER_STEPS_PER_MENU_ITEM) - 1; encoderLine = _menuItemNr - 1; }\
|
||||
if (encoderLine >= currentMenuViewOffset + LCD_HEIGHT) { currentMenuViewOffset = encoderLine - (LCD_HEIGHT) + 1; lcdDrawUpdate = 1; _lineNr = currentMenuViewOffset - 1; _drawLineNr = -1; } \
|
||||
if (encoderLine >= currentMenuViewOffset + LCD_HEIGHT) { currentMenuViewOffset = encoderLine - (LCD_HEIGHT) + 1; lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW; _lineNr = currentMenuViewOffset - 1; _drawLineNr = -1; } \
|
||||
} } while(0)
|
||||
|
||||
/** Used variables to keep track of the menu */
|
||||
@@ -269,7 +267,7 @@ static void lcd_status_screen();
|
||||
uint8_t currentMenuViewOffset; /* scroll offset in the current menu */
|
||||
millis_t next_button_update_ms;
|
||||
uint8_t lastEncoderBits;
|
||||
uint32_t encoderPosition;
|
||||
uint32_t encoderPosition, prevEncoderPosition;
|
||||
#if PIN_EXISTS(SD_DETECT)
|
||||
uint8_t lcd_sd_status;
|
||||
#endif
|
||||
@@ -281,16 +279,23 @@ millis_t next_lcd_update_ms;
|
||||
uint8_t lcd_status_update_delay;
|
||||
bool ignore_click = false;
|
||||
bool wait_for_unclick;
|
||||
uint8_t lcdDrawUpdate = 2; /* Set to none-zero when the LCD needs to draw, decreased after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial) */
|
||||
bool defer_return_to_status = false;
|
||||
|
||||
//prevMenu and prevEncoderPosition are used to store the previous menu location when editing settings.
|
||||
menuFunc_t prevMenu = NULL;
|
||||
uint16_t prevEncoderPosition;
|
||||
//Variables used when editing values.
|
||||
enum LCDHandlerAction {
|
||||
LCD_DRAW_UPDATE_NONE,
|
||||
LCD_DRAW_UPDATE_CALL_REDRAW,
|
||||
LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW,
|
||||
LCD_DRAW_UPDATE_CALL_NO_REDRAW,
|
||||
};
|
||||
|
||||
uint8_t lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; // Set 1 or 2 when the LCD needs to draw, decrements after every draw. Set to 2 in LCD routines so the LCD gets at least 1 full redraw (first redraw is partial)
|
||||
|
||||
// Variables used when editing values.
|
||||
const char* editLabel;
|
||||
void* editValue;
|
||||
int32_t minEditValue, maxEditValue;
|
||||
menuFunc_t callbackFunc;
|
||||
menuFunc_t prevMenu = NULL; // return here after editing (also prevEncoderPosition)
|
||||
menuFunc_t callbackFunc; // call this after editing
|
||||
|
||||
// place-holders for Ki and Kd edits
|
||||
float raw_Ki, raw_Kd;
|
||||
@@ -301,6 +306,7 @@ float raw_Ki, raw_Kd;
|
||||
static void lcd_goto_menu(menuFunc_t menu, const bool feedback = false, const uint32_t encoder = 0) {
|
||||
if (currentMenu != menu) {
|
||||
currentMenu = menu;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW;
|
||||
#if ENABLED(NEWPANEL)
|
||||
encoderPosition = encoder;
|
||||
if (feedback) lcd_quick_feedback();
|
||||
@@ -312,9 +318,20 @@ static void lcd_goto_menu(menuFunc_t menu, const bool feedback = false, const ui
|
||||
}
|
||||
}
|
||||
|
||||
inline void lcd_save_previous_menu() { prevMenu = currentMenu; prevEncoderPosition = encoderPosition; }
|
||||
inline void lcd_save_previous_menu() {
|
||||
prevMenu = currentMenu;
|
||||
#if ENABLED(ULTIPANEL)
|
||||
prevEncoderPosition = encoderPosition;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void lcd_goto_previous_menu() { lcd_goto_menu(prevMenu, true, prevEncoderPosition); }
|
||||
static void lcd_goto_previous_menu() {
|
||||
lcd_goto_menu(prevMenu, true
|
||||
#if ENABLED(ULTIPANEL)
|
||||
, prevEncoderPosition
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -422,7 +439,10 @@ static void lcd_status_screen() {
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
|
||||
static void lcd_return_to_status() { lcd_goto_menu(lcd_status_screen); }
|
||||
static void lcd_return_to_status() {
|
||||
defer_return_to_status = false;
|
||||
lcd_goto_menu(lcd_status_screen);
|
||||
}
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
|
||||
@@ -510,9 +530,9 @@ void lcd_set_home_offsets() {
|
||||
static void _lcd_babystep(const int axis, const char* msg) {
|
||||
ENCODER_DIRECTION_NORMAL();
|
||||
if (encoderPosition != 0) {
|
||||
encoderPosition = 0;
|
||||
lcdDrawUpdate = 1;
|
||||
int distance = (int)encoderPosition * BABYSTEP_MULTIPLICATOR;
|
||||
encoderPosition = 0;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
#if ENABLED(COREXY) || ENABLED(COREXZ)
|
||||
#if ENABLED(BABYSTEP_XY)
|
||||
switch(axis) {
|
||||
@@ -538,7 +558,7 @@ void lcd_set_home_offsets() {
|
||||
babystepsTodo[axis] += distance;
|
||||
#endif
|
||||
}
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(msg, PSTR(""));
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(msg, NULL);
|
||||
if (LCD_CLICKED) lcd_goto_previous_menu();
|
||||
}
|
||||
|
||||
@@ -599,6 +619,11 @@ static void lcd_tune_menu() {
|
||||
//
|
||||
MENU_ITEM_EDIT(int3, MSG_SPEED, &feedrate_multiplier, 10, 999);
|
||||
|
||||
// Manual bed leveling, Bed Z:
|
||||
#if ENABLED(MANUAL_BED_LEVELING)
|
||||
MENU_ITEM_EDIT(float43, MSG_BED_Z, &mbl.z_offset, -1, 1);
|
||||
#endif
|
||||
|
||||
//
|
||||
// Nozzle:
|
||||
// Nozzle [1-4]:
|
||||
@@ -931,7 +956,7 @@ static void _lcd_move(const char* name, AxisEnum axis, int min, int max) {
|
||||
if (max_software_endstops) NOMORE(current_position[axis], max);
|
||||
encoderPosition = 0;
|
||||
line_to_current(axis);
|
||||
lcdDrawUpdate = 1;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
}
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(name, ftostr31(current_position[axis]));
|
||||
if (LCD_CLICKED) lcd_goto_previous_menu();
|
||||
@@ -940,7 +965,7 @@ static void _lcd_move(const char* name, AxisEnum axis, int min, int max) {
|
||||
static float delta_clip_radius_2 = (DELTA_PRINTABLE_RADIUS) * (DELTA_PRINTABLE_RADIUS);
|
||||
static int delta_clip( float a ) { return sqrt(delta_clip_radius_2 - a*a); }
|
||||
static void lcd_move_x() { int clip = delta_clip(current_position[Y_AXIS]); _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, max(X_MIN_POS, -clip), min(X_MAX_POS, clip)); }
|
||||
static void lcd_move_y() { int clip = delta_clip(current_position[X_AXIS]); _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, max(X_MIN_POS, -clip), min(X_MAX_POS, clip)); }
|
||||
static void lcd_move_y() { int clip = delta_clip(current_position[X_AXIS]); _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, max(Y_MIN_POS, -clip), min(Y_MAX_POS, clip)); }
|
||||
#else
|
||||
static void lcd_move_x() { _lcd_move(PSTR(MSG_MOVE_X), X_AXIS, X_MIN_POS, X_MAX_POS); }
|
||||
static void lcd_move_y() { _lcd_move(PSTR(MSG_MOVE_Y), Y_AXIS, Y_MIN_POS, Y_MAX_POS); }
|
||||
@@ -960,7 +985,7 @@ static void lcd_move_e(
|
||||
current_position[E_AXIS] += float((int)encoderPosition) * move_menu_scale;
|
||||
encoderPosition = 0;
|
||||
line_to_current(E_AXIS);
|
||||
lcdDrawUpdate = 1;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
}
|
||||
if (lcdDrawUpdate) {
|
||||
PGM_P pos_label;
|
||||
@@ -1089,7 +1114,7 @@ static void lcd_control_menu() {
|
||||
*
|
||||
*/
|
||||
|
||||
#if ENABLED(PIDTEMP) || ENABLED(PIDTEMPBED)
|
||||
#if ENABLED(PID_AUTOTUNE_MENU)
|
||||
|
||||
#if ENABLED(PIDTEMP)
|
||||
int autotune_temp[EXTRUDERS] = { 150 };
|
||||
@@ -1111,10 +1136,10 @@ static void lcd_control_menu() {
|
||||
autotune_temp[e]
|
||||
#endif
|
||||
);
|
||||
enqueue_and_echo_command_now(cmd);
|
||||
enqueue_and_echo_command(cmd);
|
||||
}
|
||||
|
||||
#endif //PIDTEMP || PIDTEMPBED
|
||||
#endif //PID_AUTOTUNE_MENU
|
||||
|
||||
#if ENABLED(PIDTEMP)
|
||||
|
||||
@@ -1128,10 +1153,17 @@ static void lcd_control_menu() {
|
||||
PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
|
||||
updatePID();
|
||||
}
|
||||
#define _PIDTEMP_FUNCTIONS(eindex) \
|
||||
#define _PIDTEMP_BASE_FUNCTIONS(eindex) \
|
||||
void copy_and_scalePID_i_E ## eindex() { copy_and_scalePID_i(eindex); } \
|
||||
void copy_and_scalePID_d_E ## eindex() { copy_and_scalePID_d(eindex); } \
|
||||
void lcd_autotune_callback_E ## eindex() { _lcd_autotune(eindex); }
|
||||
void copy_and_scalePID_d_E ## eindex() { copy_and_scalePID_d(eindex); }
|
||||
|
||||
#if ENABLED(PID_AUTOTUNE_MENU)
|
||||
#define _PIDTEMP_FUNCTIONS(eindex) \
|
||||
_PIDTEMP_BASE_FUNCTIONS(eindex); \
|
||||
void lcd_autotune_callback_E ## eindex() { _lcd_autotune(eindex); }
|
||||
#else
|
||||
#define _PIDTEMP_FUNCTIONS(eindex) _PIDTEMP_BASE_FUNCTIONS(eindex)
|
||||
#endif
|
||||
|
||||
_PIDTEMP_FUNCTIONS(0);
|
||||
#if ENABLED(PID_PARAMS_PER_EXTRUDER)
|
||||
@@ -1249,9 +1281,13 @@ static void lcd_control_temperature_menu() {
|
||||
#define _PID_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
|
||||
#endif
|
||||
|
||||
#define PID_MENU_ITEMS(ELABEL, eindex) \
|
||||
_PID_MENU_ITEMS(ELABEL, eindex); \
|
||||
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
|
||||
#if ENABLED(PID_AUTOTUNE_MENU)
|
||||
#define PID_MENU_ITEMS(ELABEL, eindex) \
|
||||
_PID_MENU_ITEMS(ELABEL, eindex); \
|
||||
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
|
||||
#else
|
||||
#define PID_MENU_ITEMS(ELABEL, eindex) _PID_MENU_ITEMS(ELABEL, eindex)
|
||||
#endif
|
||||
|
||||
#if ENABLED(PID_PARAMS_PER_EXTRUDER) && EXTRUDERS > 1
|
||||
PID_MENU_ITEMS(MSG_E1, 0);
|
||||
@@ -1333,6 +1369,10 @@ static void lcd_control_motion_menu() {
|
||||
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
|
||||
MENU_ITEM_EDIT(float32, MSG_ZPROBE_ZOFFSET, &zprobe_zoffset, Z_PROBE_OFFSET_RANGE_MIN, Z_PROBE_OFFSET_RANGE_MAX);
|
||||
#endif
|
||||
// Manual bed leveling, Bed Z:
|
||||
#if ENABLED(MANUAL_BED_LEVELING)
|
||||
MENU_ITEM_EDIT(float43, MSG_BED_Z, &mbl.z_offset, -1, 1);
|
||||
#endif
|
||||
MENU_ITEM_EDIT(float5, MSG_ACC, &acceleration, 10, 99000);
|
||||
MENU_ITEM_EDIT(float3, MSG_VXY_JERK, &max_xy_jerk, 1, 990);
|
||||
#if ENABLED(DELTA)
|
||||
@@ -1417,7 +1457,7 @@ static void lcd_control_volumetric_menu() {
|
||||
lcd_contrast &= 0x3F;
|
||||
#endif
|
||||
encoderPosition = 0;
|
||||
lcdDrawUpdate = 1;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
u8g.setContrast(lcd_contrast);
|
||||
}
|
||||
if (lcdDrawUpdate) {
|
||||
@@ -1558,7 +1598,7 @@ static void lcd_control_volumetric_menu() {
|
||||
static void _menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \
|
||||
lcd_save_previous_menu(); \
|
||||
\
|
||||
lcdDrawUpdate = 2; \
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW; \
|
||||
currentMenu = menu_edit_ ## _name; \
|
||||
\
|
||||
editLabel = pstr; \
|
||||
@@ -1640,7 +1680,7 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01)
|
||||
#endif
|
||||
|
||||
void lcd_quick_feedback() {
|
||||
lcdDrawUpdate = 2;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW;
|
||||
next_button_update_ms = millis() + 500;
|
||||
|
||||
#if ENABLED(LCD_USE_I2C_BUZZER)
|
||||
@@ -1705,17 +1745,17 @@ void lcd_init() {
|
||||
lcd_implementation_init();
|
||||
|
||||
#if ENABLED(NEWPANEL)
|
||||
#if BTN_EN1 > 0
|
||||
#if BUTTON_EXISTS(EN1)
|
||||
SET_INPUT(BTN_EN1);
|
||||
WRITE(BTN_EN1, HIGH);
|
||||
#endif
|
||||
|
||||
#if BTN_EN2 > 0
|
||||
#if BUTTON_EXISTS(EN2)
|
||||
SET_INPUT(BTN_EN2);
|
||||
WRITE(BTN_EN2, HIGH);
|
||||
#endif
|
||||
|
||||
#if BTN_ENC > 0
|
||||
#if BUTTON_EXISTS(ENC)
|
||||
SET_INPUT(BTN_ENC);
|
||||
WRITE(BTN_ENC, HIGH);
|
||||
#endif
|
||||
@@ -1787,6 +1827,17 @@ int lcd_strlen_P(const char* s) {
|
||||
return j;
|
||||
}
|
||||
|
||||
bool lcd_blink() {
|
||||
static uint8_t blink = 0;
|
||||
static millis_t next_blink_ms = 0;
|
||||
millis_t ms = millis();
|
||||
if (ms >= next_blink_ms) {
|
||||
blink ^= 0xFF;
|
||||
next_blink_ms = ms + 1000 - LCD_UPDATE_INTERVAL / 2;
|
||||
}
|
||||
return blink != 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the LCD, read encoder buttons, etc.
|
||||
* - Read button states
|
||||
@@ -1794,11 +1845,27 @@ int lcd_strlen_P(const char* s) {
|
||||
* - Act on RepRap World keypad input
|
||||
* - Update the encoder position
|
||||
* - Apply acceleration to the encoder position
|
||||
* - Set lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW on controller events
|
||||
* - Reset the Info Screen timeout if there's any input
|
||||
* - Update status indicators, if any
|
||||
* - Clear the LCD if lcdDrawUpdate == 2
|
||||
*
|
||||
* Warning: This function is called from interrupt context!
|
||||
* Run the current LCD menu handler callback function:
|
||||
* - Call the handler only if lcdDrawUpdate != LCD_DRAW_UPDATE_NONE
|
||||
* - Before calling the handler, LCD_DRAW_UPDATE_CALL_NO_REDRAW => LCD_DRAW_UPDATE_NONE
|
||||
* - Call the menu handler. Menu handlers should do the following:
|
||||
* - If a value changes, set lcdDrawUpdate to LCD_DRAW_UPDATE_CALL_REDRAW
|
||||
* - if (lcdDrawUpdate) { redraw }
|
||||
* - Before exiting the handler set lcdDrawUpdate to:
|
||||
* - LCD_DRAW_UPDATE_CALL_REDRAW or LCD_DRAW_UPDATE_NONE for no callbacks until the next controller event.
|
||||
* - LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW to clear screen, LCD_DRAW_UPDATE_CALL_REDRAW on the next loop.
|
||||
* - LCD_DRAW_UPDATE_CALL_NO_REDRAW for a callback with no forced redraw on the next loop.
|
||||
* - NOTE: For some displays, the menu handler may be called 2 or more times per loop.
|
||||
*
|
||||
* After the menu handler callback runs (or not):
|
||||
* - Clear the LCD if lcdDrawUpdate == LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW
|
||||
* - Update lcdDrawUpdate for the next loop (i.e., move one state down, usually)
|
||||
*
|
||||
* No worries. This function is only called from the main thread.
|
||||
*/
|
||||
void lcd_update() {
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -1811,7 +1878,7 @@ void lcd_update() {
|
||||
|
||||
bool sd_status = IS_SD_INSERTED;
|
||||
if (sd_status != lcd_sd_status && lcd_detected()) {
|
||||
lcdDrawUpdate = 2;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW;
|
||||
lcd_implementation_init( // to maybe revive the LCD if static electricity killed it.
|
||||
#if ENABLED(LCD_PROGRESS_BAR)
|
||||
currentMenu == lcd_status_screen
|
||||
@@ -1890,38 +1957,39 @@ void lcd_update() {
|
||||
encoderDiff = 0;
|
||||
}
|
||||
return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS;
|
||||
lcdDrawUpdate = 1;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
}
|
||||
#endif //ULTIPANEL
|
||||
|
||||
if (currentMenu == lcd_status_screen) {
|
||||
if (!lcd_status_update_delay) {
|
||||
lcdDrawUpdate = 1;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
lcd_status_update_delay = 10; /* redraw the main screen every second. This is easier then trying keep track of all things that change on the screen */
|
||||
}
|
||||
else {
|
||||
lcd_status_update_delay--;
|
||||
}
|
||||
}
|
||||
#if ENABLED(DOGLCD) // Changes due to different driver architecture of the DOGM display
|
||||
if (lcdDrawUpdate) {
|
||||
blink++; // Variable for animation and alive dot
|
||||
u8g.firstPage();
|
||||
do {
|
||||
lcd_setFont(FONT_MENU);
|
||||
u8g.setPrintPos(125, 0);
|
||||
if (blink & 1) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
|
||||
u8g.drawPixel(127, 63); // draw alive dot
|
||||
u8g.setColorIndex(1); // black on white
|
||||
(*currentMenu)();
|
||||
} while (u8g.nextPage());
|
||||
}
|
||||
#else
|
||||
if (lcdDrawUpdate) {
|
||||
blink++; // Variable for animation
|
||||
|
||||
if (lcdDrawUpdate) {
|
||||
|
||||
if (lcdDrawUpdate == LCD_DRAW_UPDATE_CALL_NO_REDRAW) lcdDrawUpdate = LCD_DRAW_UPDATE_NONE;
|
||||
|
||||
#if ENABLED(DOGLCD) // Changes due to different driver architecture of the DOGM display
|
||||
bool blink = lcd_blink();
|
||||
u8g.firstPage();
|
||||
do {
|
||||
lcd_setFont(FONT_MENU);
|
||||
u8g.setPrintPos(125, 0);
|
||||
u8g.setColorIndex(blink ? 1 : 0); // Set color for the alive dot
|
||||
u8g.drawPixel(127, 63); // draw alive dot
|
||||
u8g.setColorIndex(1); // black on white
|
||||
(*currentMenu)();
|
||||
} while (u8g.nextPage());
|
||||
#else
|
||||
(*currentMenu)();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(LCD_HAS_STATUS_INDICATORS)
|
||||
lcd_implementation_update_indicators();
|
||||
@@ -1930,21 +1998,29 @@ void lcd_update() {
|
||||
#if ENABLED(ULTIPANEL)
|
||||
|
||||
// Return to Status Screen after a timeout
|
||||
if (currentMenu != lcd_status_screen &&
|
||||
#if ENABLED(MANUAL_BED_LEVELING)
|
||||
currentMenu != _lcd_level_bed &&
|
||||
currentMenu != _lcd_level_bed_homing &&
|
||||
#endif
|
||||
millis() > return_to_status_ms
|
||||
) {
|
||||
if (defer_return_to_status)
|
||||
return_to_status_ms = ms + LCD_TIMEOUT_TO_STATUS;
|
||||
else if (currentMenu != lcd_status_screen && millis() > return_to_status_ms) {
|
||||
lcd_return_to_status();
|
||||
lcdDrawUpdate = 2;
|
||||
}
|
||||
|
||||
#endif // ULTIPANEL
|
||||
|
||||
if (lcdDrawUpdate == 2) lcd_implementation_clear();
|
||||
if (lcdDrawUpdate) lcdDrawUpdate--;
|
||||
switch (lcdDrawUpdate) {
|
||||
case LCD_DRAW_UPDATE_NONE:
|
||||
// do nothing
|
||||
case LCD_DRAW_UPDATE_CALL_NO_REDRAW:
|
||||
// changes to LCD_DRAW_UPDATE_NONE before call
|
||||
break;
|
||||
case LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW:
|
||||
lcd_implementation_clear();
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_REDRAW;
|
||||
break;
|
||||
case LCD_DRAW_UPDATE_CALL_REDRAW:
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_NONE;
|
||||
break;
|
||||
}
|
||||
|
||||
next_lcd_update_ms = ms + LCD_UPDATE_INTERVAL;
|
||||
}
|
||||
}
|
||||
@@ -1961,7 +2037,7 @@ void lcd_finishstatus(bool persist=false) {
|
||||
expire_status_ms = persist ? 0 : progress_bar_ms + PROGRESS_MSG_EXPIRE;
|
||||
#endif
|
||||
#endif
|
||||
lcdDrawUpdate = 2;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CLEAR_CALL_REDRAW;
|
||||
|
||||
#if ENABLED(FILAMENT_LCD_DISPLAY)
|
||||
previous_lcd_status_ms = millis(); //get status message to show up for a while
|
||||
@@ -2030,6 +2106,19 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
|
||||
#define encrot3 1
|
||||
#endif
|
||||
|
||||
#define GET_BUTTON_STATES(DST) \
|
||||
uint8_t new_##DST = 0; \
|
||||
WRITE(SHIFT_LD, LOW); \
|
||||
WRITE(SHIFT_LD, HIGH); \
|
||||
for (int8_t i = 0; i < 8; i++) { \
|
||||
new_##DST >>= 1; \
|
||||
if (READ(SHIFT_OUT)) SBI(new_##DST, 7); \
|
||||
WRITE(SHIFT_CLK, HIGH); \
|
||||
WRITE(SHIFT_CLK, LOW); \
|
||||
} \
|
||||
DST = ~new_##DST; //invert it, because a pressed switch produces a logical 0
|
||||
|
||||
|
||||
/**
|
||||
* Read encoder buttons from the hardware registers
|
||||
* Warning: This function is called from interrupt context!
|
||||
@@ -2037,67 +2126,47 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
|
||||
void lcd_buttons_update() {
|
||||
#if ENABLED(NEWPANEL)
|
||||
uint8_t newbutton = 0;
|
||||
#if BTN_EN1 > 0
|
||||
if (READ(BTN_EN1) == 0) newbutton |= EN_A;
|
||||
#if BUTTON_EXISTS(EN1)
|
||||
if (BUTTON_PRESSED(EN1)) newbutton |= EN_A;
|
||||
#endif
|
||||
#if BTN_EN2 > 0
|
||||
if (READ(BTN_EN2) == 0) newbutton |= EN_B;
|
||||
#if BUTTON_EXISTS(EN2)
|
||||
if (BUTTON_PRESSED(EN2)) newbutton |= EN_B;
|
||||
#endif
|
||||
#if ENABLED(RIGIDBOT_PANEL) || BTN_ENC > 0
|
||||
#if ENABLED(RIGIDBOT_PANEL) || BUTTON_EXISTS(ENC)
|
||||
millis_t now = millis();
|
||||
#endif
|
||||
#if ENABLED(RIGIDBOT_PANEL)
|
||||
if (now > next_button_update_ms) {
|
||||
if (READ(BTN_UP) == 0) {
|
||||
if (BUTTON_PRESSED(UP)) {
|
||||
encoderDiff = -1 * (ENCODER_STEPS_PER_MENU_ITEM);
|
||||
next_button_update_ms = now + 300;
|
||||
}
|
||||
else if (READ(BTN_DWN) == 0) {
|
||||
else if (BUTTON_PRESSED(DWN)) {
|
||||
encoderDiff = ENCODER_STEPS_PER_MENU_ITEM;
|
||||
next_button_update_ms = now + 300;
|
||||
}
|
||||
else if (READ(BTN_LFT) == 0) {
|
||||
else if (BUTTON_PRESSED(LFT)) {
|
||||
encoderDiff = -1 * (ENCODER_PULSES_PER_STEP);
|
||||
next_button_update_ms = now + 300;
|
||||
}
|
||||
else if (READ(BTN_RT) == 0) {
|
||||
else if (BUTTON_PRESSED(RT)) {
|
||||
encoderDiff = ENCODER_PULSES_PER_STEP;
|
||||
next_button_update_ms = now + 300;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if BTN_ENC > 0
|
||||
if (now > next_button_update_ms && READ(BTN_ENC) == 0) newbutton |= EN_C;
|
||||
#if BUTTON_EXISTS(ENC)
|
||||
if (now > next_button_update_ms && BUTTON_PRESSED(ENC)) newbutton |= EN_C;
|
||||
#endif
|
||||
buttons = newbutton;
|
||||
#if ENABLED(LCD_HAS_SLOW_BUTTONS)
|
||||
buttons |= slow_buttons;
|
||||
#endif
|
||||
#if ENABLED(REPRAPWORLD_KEYPAD)
|
||||
// for the reprapworld_keypad
|
||||
uint8_t newbutton_reprapworld_keypad = 0;
|
||||
WRITE(SHIFT_LD, LOW);
|
||||
WRITE(SHIFT_LD, HIGH);
|
||||
for (int8_t i = 0; i < 8; i++) {
|
||||
newbutton_reprapworld_keypad >>= 1;
|
||||
if (READ(SHIFT_OUT)) SBI(newbutton_reprapworld_keypad, 7);
|
||||
WRITE(SHIFT_CLK, HIGH);
|
||||
WRITE(SHIFT_CLK, LOW);
|
||||
}
|
||||
buttons_reprapworld_keypad = ~newbutton_reprapworld_keypad; //invert it, because a pressed switch produces a logical 0
|
||||
GET_BUTTON_STATES(buttons_reprapworld_keypad);
|
||||
#endif
|
||||
#else //read it from the shift register
|
||||
uint8_t newbutton = 0;
|
||||
WRITE(SHIFT_LD, LOW);
|
||||
WRITE(SHIFT_LD, HIGH);
|
||||
unsigned char tmp_buttons = 0;
|
||||
for (int8_t i = 0; i < 8; i++) {
|
||||
newbutton >>= 1;
|
||||
if (READ(SHIFT_OUT)) SBI(newbutton, 7);
|
||||
WRITE(SHIFT_CLK, HIGH);
|
||||
WRITE(SHIFT_CLK, LOW);
|
||||
}
|
||||
buttons = ~newbutton; //invert it, because a pressed switch produces a logical 0
|
||||
#else
|
||||
GET_BUTTON_STATES(buttons);
|
||||
#endif //!NEWPANEL
|
||||
|
||||
#if ENABLED(REVERSE_MENU_DIRECTION)
|
||||
@@ -2148,7 +2217,7 @@ char *ftostr3(const float& x) { return itostr3((int)x); }
|
||||
// Convert float to rj string with _123, -123, _-12, or __-1 format
|
||||
char *ftostr4sign(const float& x) { return itostr4sign((int)x); }
|
||||
|
||||
// Convert int to string with 12 format
|
||||
// Convert unsigned int to string with 12 format
|
||||
char* itostr2(const uint8_t& x) {
|
||||
//sprintf(conv,"%5.1f",x);
|
||||
int xx = x;
|
||||
@@ -2158,7 +2227,7 @@ char* itostr2(const uint8_t& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with +123.4 format
|
||||
// Convert float to string with +123.4 / -123.4 format
|
||||
char* ftostr31(const float& x) {
|
||||
int xx = abs(x * 10);
|
||||
conv[0] = (x >= 0) ? '+' : '-';
|
||||
@@ -2171,7 +2240,7 @@ char* ftostr31(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with 123.4 format, dropping sign
|
||||
// Convert unsigned float to string with 123.4 format, dropping sign
|
||||
char* ftostr31ns(const float& x) {
|
||||
int xx = abs(x * 10);
|
||||
conv[0] = (xx / 1000) % 10 + '0';
|
||||
@@ -2183,7 +2252,7 @@ char* ftostr31ns(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with 123.45 format
|
||||
// Convert signed float to string with 023.45 / -23.45 format
|
||||
char *ftostr32(const float& x) {
|
||||
long xx = abs(x * 100);
|
||||
conv[0] = x >= 0 ? (xx / 10000) % 10 + '0' : '-';
|
||||
@@ -2196,23 +2265,27 @@ char *ftostr32(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with 1.234 format
|
||||
char* ftostr43(const float& x) {
|
||||
// Convert signed float to string (6 digit) with -1.234 / _0.000 / +1.234 format
|
||||
char* ftostr43(const float& x, char plus/*=' '*/) {
|
||||
long xx = x * 1000;
|
||||
if (xx >= 0)
|
||||
conv[0] = (xx / 1000) % 10 + '0';
|
||||
else
|
||||
if (xx == 0)
|
||||
conv[0] = ' ';
|
||||
else if (xx > 0)
|
||||
conv[0] = plus;
|
||||
else {
|
||||
xx = -xx;
|
||||
conv[0] = '-';
|
||||
xx = abs(xx);
|
||||
conv[1] = '.';
|
||||
conv[2] = (xx / 100) % 10 + '0';
|
||||
conv[3] = (xx / 10) % 10 + '0';
|
||||
conv[4] = (xx) % 10 + '0';
|
||||
conv[5] = 0;
|
||||
}
|
||||
conv[1] = (xx / 1000) % 10 + '0';
|
||||
conv[2] = '.';
|
||||
conv[3] = (xx / 100) % 10 + '0';
|
||||
conv[4] = (xx / 10) % 10 + '0';
|
||||
conv[5] = (xx) % 10 + '0';
|
||||
conv[6] = 0;
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with 1.23 format
|
||||
// Convert unsigned float to string with 1.23 format
|
||||
char* ftostr12ns(const float& x) {
|
||||
long xx = x * 100;
|
||||
xx = abs(xx);
|
||||
@@ -2224,11 +2297,12 @@ char* ftostr12ns(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to space-padded string with -_23.4_ format
|
||||
// Convert signed float to space-padded string with -_23.4_ format
|
||||
char* ftostr32sp(const float& x) {
|
||||
long xx = abs(x * 100);
|
||||
long xx = x * 100;
|
||||
uint8_t dig;
|
||||
if (x < 0) { // negative val = -_0
|
||||
if (xx < 0) { // negative val = -_0
|
||||
xx = -xx;
|
||||
conv[0] = '-';
|
||||
dig = (xx / 1000) % 10;
|
||||
conv[1] = dig ? '0' + dig : ' ';
|
||||
@@ -2269,10 +2343,17 @@ char* ftostr32sp(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert int to lj string with +123.0 format
|
||||
// Convert signed int to lj string with +012.0 / -012.0 format
|
||||
char* itostr31(const int& x) {
|
||||
conv[0] = x >= 0 ? '+' : '-';
|
||||
int xx = abs(x);
|
||||
int xx;
|
||||
if (x >= 0) {
|
||||
conv[0] = '+';
|
||||
xx = x;
|
||||
}
|
||||
else {
|
||||
conv[0] = '-';
|
||||
xx = -x;
|
||||
}
|
||||
conv[1] = (xx / 100) % 10 + '0';
|
||||
conv[2] = (xx / 10) % 10 + '0';
|
||||
conv[3] = xx % 10 + '0';
|
||||
@@ -2282,7 +2363,7 @@ char* itostr31(const int& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert int to rj string with 123 or -12 format
|
||||
// Convert signed int to rj string with 123 or -12 format
|
||||
char* itostr3(const int& x) {
|
||||
int xx = x;
|
||||
if (xx < 0) {
|
||||
@@ -2298,37 +2379,37 @@ char* itostr3(const int& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert int to lj string with 123 format
|
||||
char* itostr3left(const int& xx) {
|
||||
if (xx >= 100) {
|
||||
conv[0] = (xx / 100) % 10 + '0';
|
||||
conv[1] = (xx / 10) % 10 + '0';
|
||||
conv[2] = xx % 10 + '0';
|
||||
// Convert unsigned int to lj string with 123 format
|
||||
char* itostr3left(const int& x) {
|
||||
if (x >= 100) {
|
||||
conv[0] = (x / 100) % 10 + '0';
|
||||
conv[1] = (x / 10) % 10 + '0';
|
||||
conv[2] = x % 10 + '0';
|
||||
conv[3] = 0;
|
||||
}
|
||||
else if (xx >= 10) {
|
||||
conv[0] = (xx / 10) % 10 + '0';
|
||||
conv[1] = xx % 10 + '0';
|
||||
else if (x >= 10) {
|
||||
conv[0] = (x / 10) % 10 + '0';
|
||||
conv[1] = x % 10 + '0';
|
||||
conv[2] = 0;
|
||||
}
|
||||
else {
|
||||
conv[0] = xx % 10 + '0';
|
||||
conv[0] = x % 10 + '0';
|
||||
conv[1] = 0;
|
||||
}
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert int to rj string with 1234 format
|
||||
char* itostr4(const int& xx) {
|
||||
conv[0] = xx >= 1000 ? (xx / 1000) % 10 + '0' : ' ';
|
||||
conv[1] = xx >= 100 ? (xx / 100) % 10 + '0' : ' ';
|
||||
conv[2] = xx >= 10 ? (xx / 10) % 10 + '0' : ' ';
|
||||
conv[3] = xx % 10 + '0';
|
||||
// Convert unsigned int to rj string with 1234 format
|
||||
char* itostr4(const int& x) {
|
||||
conv[0] = x >= 1000 ? (x / 1000) % 10 + '0' : ' ';
|
||||
conv[1] = x >= 100 ? (x / 100) % 10 + '0' : ' ';
|
||||
conv[2] = x >= 10 ? (x / 10) % 10 + '0' : ' ';
|
||||
conv[3] = x % 10 + '0';
|
||||
conv[4] = 0;
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert int to rj string with _123, -123, _-12, or __-1 format
|
||||
// Convert signed int to rj string with _123, -123, _-12, or __-1 format
|
||||
char *itostr4sign(const int& x) {
|
||||
int xx = abs(x);
|
||||
int sign = 0;
|
||||
@@ -2352,7 +2433,7 @@ char *itostr4sign(const int& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to rj string with 12345 format
|
||||
// Convert unsigned float to rj string with 12345 format
|
||||
char* ftostr5(const float& x) {
|
||||
long xx = abs(x);
|
||||
conv[0] = xx >= 10000 ? (xx / 10000) % 10 + '0' : ' ';
|
||||
@@ -2364,7 +2445,7 @@ char* ftostr5(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with +1234.5 format
|
||||
// Convert signed float to string with +1234.5 format
|
||||
char* ftostr51(const float& x) {
|
||||
long xx = abs(x * 10);
|
||||
conv[0] = (x >= 0) ? '+' : '-';
|
||||
@@ -2378,7 +2459,7 @@ char* ftostr51(const float& x) {
|
||||
return conv;
|
||||
}
|
||||
|
||||
// Convert float to string with +123.45 format
|
||||
// Convert signed float to string with +123.45 format
|
||||
char* ftostr52(const float& x) {
|
||||
conv[0] = (x >= 0) ? '+' : '-';
|
||||
long xx = abs(x * 100);
|
||||
@@ -2401,22 +2482,44 @@ char* ftostr52(const float& x) {
|
||||
* - Movement adjusts the Z axis
|
||||
* - Click saves the Z and goes to the next mesh point
|
||||
*/
|
||||
static void _lcd_level_bed() {
|
||||
static void _lcd_level_bed_procedure() {
|
||||
static bool mbl_wait_for_move = false;
|
||||
// Menu handlers may be called in a re-entrant fashion
|
||||
// if they call st_synchronize or plan_buffer_line. So
|
||||
// while waiting for a move we just ignore new input.
|
||||
if (mbl_wait_for_move) {
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW;
|
||||
return;
|
||||
}
|
||||
|
||||
ENCODER_DIRECTION_NORMAL();
|
||||
if ((encoderPosition != 0) && (movesplanned() <= 3)) {
|
||||
|
||||
// Encoder wheel adjusts the Z position
|
||||
if (encoderPosition != 0 && movesplanned() <= 3) {
|
||||
refresh_cmd_timeout();
|
||||
current_position[Z_AXIS] += float((int)encoderPosition) * (MBL_Z_STEP);
|
||||
if (min_software_endstops) NOLESS(current_position[Z_AXIS], Z_MIN_POS);
|
||||
if (max_software_endstops) NOMORE(current_position[Z_AXIS], Z_MAX_POS);
|
||||
encoderPosition = 0;
|
||||
line_to_current(Z_AXIS);
|
||||
lcdDrawUpdate = 2;
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW;
|
||||
}
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR("Z"), ftostr43(current_position[Z_AXIS]));
|
||||
|
||||
// Update on first display, then only on updates to Z position
|
||||
if (lcdDrawUpdate) {
|
||||
float v = current_position[Z_AXIS] - MESH_HOME_SEARCH_Z;
|
||||
lcd_implementation_drawedit(PSTR(MSG_MOVE_Z), ftostr43(v + (v < 0 ? -0.0001 : 0.0001), '+'));
|
||||
}
|
||||
|
||||
// We want subsequent calls, but don't force redraw
|
||||
// Set here so it can be overridden by lcd_return_to_status below
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW;
|
||||
|
||||
// Click sets the current Z and moves to the next position
|
||||
static bool debounce_click = false;
|
||||
if (LCD_CLICKED) {
|
||||
if (!debounce_click) {
|
||||
debounce_click = true;
|
||||
debounce_click = true; // ignore multiple "clicks" in a row
|
||||
int ix = _lcd_level_bed_position % (MESH_NUM_X_POINTS),
|
||||
iy = _lcd_level_bed_position / (MESH_NUM_X_POINTS);
|
||||
if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // Zig zag
|
||||
@@ -2424,10 +2527,21 @@ char* ftostr52(const float& x) {
|
||||
_lcd_level_bed_position++;
|
||||
if (_lcd_level_bed_position == (MESH_NUM_X_POINTS) * (MESH_NUM_Y_POINTS)) {
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
mbl_wait_for_move = true;
|
||||
line_to_current(Z_AXIS);
|
||||
st_synchronize();
|
||||
mbl.active = 1;
|
||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||
mbl_wait_for_move = false;
|
||||
lcd_return_to_status();
|
||||
#if ENABLED(NEWPANEL)
|
||||
lcd_quick_feedback();
|
||||
#endif
|
||||
LCD_ALERTMESSAGEPGM(MSG_LEVEL_BED_DONE);
|
||||
#if HAS_BUZZER
|
||||
buzz(200, 659);
|
||||
buzz(200, 698);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
@@ -2438,7 +2552,6 @@ char* ftostr52(const float& x) {
|
||||
current_position[X_AXIS] = mbl.get_x(ix);
|
||||
current_position[Y_AXIS] = mbl.get_y(iy);
|
||||
line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS);
|
||||
lcdDrawUpdate = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2447,32 +2560,49 @@ char* ftostr52(const float& x) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* MBL Move to mesh starting point
|
||||
*/
|
||||
static void _lcd_level_bed_homing() {
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR("XYZ"), PSTR(MSG_LEVEL_BED_HOMING));
|
||||
if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS]) {
|
||||
static void _lcd_level_bed_homing_done() {
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_WAITING), NULL);
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW;
|
||||
if (LCD_CLICKED) {
|
||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
|
||||
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
|
||||
current_position[X_AXIS] = MESH_MIN_X;
|
||||
current_position[Y_AXIS] = MESH_MIN_Y;
|
||||
line_to_current(manual_feedrate[X_AXIS] <= manual_feedrate[Y_AXIS] ? X_AXIS : Y_AXIS);
|
||||
_lcd_level_bed_position = 0;
|
||||
lcd_goto_menu(_lcd_level_bed);
|
||||
lcd_goto_menu(_lcd_level_bed_procedure, true);
|
||||
}
|
||||
lcdDrawUpdate = 2;
|
||||
}
|
||||
|
||||
/**
|
||||
* MBL Move to mesh starting point
|
||||
*/
|
||||
static void _lcd_level_bed_homing() {
|
||||
if (lcdDrawUpdate) lcd_implementation_drawedit(PSTR(MSG_LEVEL_BED_HOMING), NULL);
|
||||
lcdDrawUpdate = LCD_DRAW_UPDATE_CALL_NO_REDRAW;
|
||||
if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && axis_known_position[Z_AXIS])
|
||||
lcd_goto_menu(_lcd_level_bed_homing_done);
|
||||
}
|
||||
|
||||
/**
|
||||
* MBL Continue Bed Leveling...
|
||||
*/
|
||||
static void _lcd_level_bed_continue() {
|
||||
defer_return_to_status = true;
|
||||
axis_known_position[X_AXIS] = axis_known_position[Y_AXIS] = axis_known_position[Z_AXIS] = false;
|
||||
mbl.reset();
|
||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||
lcd_goto_menu(_lcd_level_bed_homing, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* MBL entry-point
|
||||
*/
|
||||
static void lcd_level_bed() {
|
||||
axis_known_position[X_AXIS] = axis_known_position[Y_AXIS] = axis_known_position[Z_AXIS] = false;
|
||||
mbl.reset();
|
||||
enqueue_and_echo_commands_P(PSTR("G28"));
|
||||
lcdDrawUpdate = 2;
|
||||
lcd_goto_menu(_lcd_level_bed_homing);
|
||||
START_MENU();
|
||||
MENU_ITEM(back, "Cancel", lcd_prepare_menu);
|
||||
MENU_ITEM(submenu, MSG_LEVEL_BED, _lcd_level_bed_continue);
|
||||
END_MENU();
|
||||
}
|
||||
|
||||
#endif // MANUAL_BED_LEVELING
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user