Merge remote-tracking branch 'upstream/MK3' into flashair_display_ip
This commit is contained in:
commit
dfd60a843d
10 changed files with 255 additions and 230 deletions
|
@ -285,7 +285,9 @@
|
||||||
#define LIN_ADVANCE
|
#define LIN_ADVANCE
|
||||||
|
|
||||||
#ifdef LIN_ADVANCE
|
#ifdef LIN_ADVANCE
|
||||||
#define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed
|
#define LA_K_DEF 0 // Default K factor (Unit: mm compression per 1mm/s extruder speed)
|
||||||
|
#define LA_K_MAX 10 // Maximum acceptable K factor (exclusive, see notes in planner.cpp:plan_buffer_line)
|
||||||
|
#define LA_LA10_MIN LA_K_MAX // Lin. Advance 1.0 threshold value (inclusive)
|
||||||
//#define LA_NOCOMPAT // Disable Linear Advance 1.0 compatibility
|
//#define LA_NOCOMPAT // Disable Linear Advance 1.0 compatibility
|
||||||
//#define LA_LIVE_K // Allow adjusting K in the Tune menu
|
//#define LA_LIVE_K // Allow adjusting K in the Tune menu
|
||||||
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
|
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
|
||||||
|
|
|
@ -238,8 +238,8 @@ void get_coordinates();
|
||||||
void prepare_move();
|
void prepare_move();
|
||||||
void kill(const char *full_screen_message = NULL, unsigned char id = 0);
|
void kill(const char *full_screen_message = NULL, unsigned char id = 0);
|
||||||
void Stop();
|
void Stop();
|
||||||
|
|
||||||
bool IsStopped();
|
bool IsStopped();
|
||||||
|
void finishAndDisableSteppers();
|
||||||
|
|
||||||
//put an ASCII command at the end of the current buffer.
|
//put an ASCII command at the end of the current buffer.
|
||||||
void enquecommand(const char *cmd, bool from_progmem = false);
|
void enquecommand(const char *cmd, bool from_progmem = false);
|
||||||
|
|
|
@ -2066,15 +2066,16 @@ static float probe_pt(float x, float y, float z_before) {
|
||||||
inline void gcode_M900() {
|
inline void gcode_M900() {
|
||||||
float newK = code_seen('K') ? code_value_float() : -2;
|
float newK = code_seen('K') ? code_value_float() : -2;
|
||||||
#ifdef LA_NOCOMPAT
|
#ifdef LA_NOCOMPAT
|
||||||
if (newK >= 0 && newK < 10)
|
if (newK >= 0 && newK < LA_K_MAX)
|
||||||
extruder_advance_K = newK;
|
extruder_advance_K = newK;
|
||||||
else
|
else
|
||||||
SERIAL_ECHOLNPGM("K out of allowed range!");
|
SERIAL_ECHOLNPGM("K out of allowed range!");
|
||||||
#else
|
#else
|
||||||
if (newK == 0)
|
if (newK == 0)
|
||||||
|
{
|
||||||
extruder_advance_K = 0;
|
extruder_advance_K = 0;
|
||||||
else if (newK == -1)
|
|
||||||
la10c_reset();
|
la10c_reset();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
newK = la10c_value(newK);
|
newK = la10c_value(newK);
|
||||||
|
@ -4864,11 +4865,6 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
|
||||||
case_G80:
|
case_G80:
|
||||||
{
|
{
|
||||||
mesh_bed_leveling_flag = true;
|
mesh_bed_leveling_flag = true;
|
||||||
#ifndef LA_NOCOMPAT
|
|
||||||
// When printing via USB there's no clear boundary between prints. Abuse MBL to indicate
|
|
||||||
// the beginning of a new print, allowing a new autodetected setting just after G80.
|
|
||||||
la10c_reset();
|
|
||||||
#endif
|
|
||||||
#ifndef PINDA_THERMISTOR
|
#ifndef PINDA_THERMISTOR
|
||||||
static bool run = false; // thermistor-less PINDA temperature compensation is running
|
static bool run = false; // thermistor-less PINDA temperature compensation is running
|
||||||
#endif // ndef PINDA_THERMISTOR
|
#endif // ndef PINDA_THERMISTOR
|
||||||
|
@ -9728,6 +9724,24 @@ void Stop()
|
||||||
|
|
||||||
bool IsStopped() { return Stopped; };
|
bool IsStopped() { return Stopped; };
|
||||||
|
|
||||||
|
void finishAndDisableSteppers()
|
||||||
|
{
|
||||||
|
st_synchronize();
|
||||||
|
disable_x();
|
||||||
|
disable_y();
|
||||||
|
disable_z();
|
||||||
|
disable_e0();
|
||||||
|
disable_e1();
|
||||||
|
disable_e2();
|
||||||
|
|
||||||
|
#ifndef LA_NOCOMPAT
|
||||||
|
// Steppers are disabled both when a print is stopped and also via M84 (which is additionally
|
||||||
|
// checked-for to indicate a complete file), so abuse this function to reset the LA detection
|
||||||
|
// state for the next print.
|
||||||
|
la10c_reset();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FAST_PWM_FAN
|
#ifdef FAST_PWM_FAN
|
||||||
void setPwmFrequency(uint8_t pin, int val)
|
void setPwmFrequency(uint8_t pin, int val)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "la10compat.h"
|
#include "la10compat.h"
|
||||||
#include "Marlin.h"
|
#include "Marlin.h"
|
||||||
|
#include <float.h>
|
||||||
|
|
||||||
|
|
||||||
static LA10C_MODE la10c_mode = LA10C_UNKNOWN; // Current LA compatibility mode
|
static LA10C_MODE la10c_mode = LA10C_UNKNOWN; // Current LA compatibility mode
|
||||||
|
@ -38,7 +39,9 @@ void la10c_mode_change(LA10C_MODE mode)
|
||||||
static float la10c_convert(float k)
|
static float la10c_convert(float k)
|
||||||
{
|
{
|
||||||
float new_K = k * 0.004 - 0.05;
|
float new_K = k * 0.004 - 0.05;
|
||||||
return (new_K < 0? 0: new_K);
|
return new_K < 0? 0:
|
||||||
|
new_K > (LA_K_MAX - FLT_EPSILON)? (LA_K_MAX - FLT_EPSILON):
|
||||||
|
new_K;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,11 +55,11 @@ float la10c_value(float k)
|
||||||
else if(k < 0)
|
else if(k < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
la10c_mode_change(k < 10? LA10C_LA15: LA10C_LA10);
|
la10c_mode_change(k < LA_LA10_MIN? LA10C_LA15: LA10C_LA10);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(la10c_mode == LA10C_LA15)
|
if(la10c_mode == LA10C_LA15)
|
||||||
return (k >= 0 && k < 10? k: -1);
|
return (k >= 0 && k < LA_K_MAX? k: -1);
|
||||||
else
|
else
|
||||||
return (k >= 0? la10c_convert(k): -1);
|
return (k >= 0? la10c_convert(k): -1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,7 @@ float extrude_min_temp=EXTRUDE_MINTEMP;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef LIN_ADVANCE
|
#ifdef LIN_ADVANCE
|
||||||
float extruder_advance_K = LIN_ADVANCE_K;
|
float extruder_advance_K = LA_K_DEF;
|
||||||
float position_float[NUM_AXIS];
|
float position_float[NUM_AXIS];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1356,17 +1356,6 @@ float st_get_position_mm(uint8_t axis)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void finishAndDisableSteppers()
|
|
||||||
{
|
|
||||||
st_synchronize();
|
|
||||||
disable_x();
|
|
||||||
disable_y();
|
|
||||||
disable_z();
|
|
||||||
disable_e0();
|
|
||||||
disable_e1();
|
|
||||||
disable_e2();
|
|
||||||
}
|
|
||||||
|
|
||||||
void quickStop()
|
void quickStop()
|
||||||
{
|
{
|
||||||
DISABLE_STEPPER_DRIVER_INTERRUPT();
|
DISABLE_STEPPER_DRIVER_INTERRUPT();
|
||||||
|
|
|
@ -69,8 +69,6 @@ void invert_z_endstop(bool endstop_invert);
|
||||||
|
|
||||||
void checkStepperErrors(); //Print errors detected by the stepper
|
void checkStepperErrors(); //Print errors detected by the stepper
|
||||||
|
|
||||||
void finishAndDisableSteppers();
|
|
||||||
|
|
||||||
extern block_t *current_block; // A pointer to the block currently being traced
|
extern block_t *current_block; // A pointer to the block currently being traced
|
||||||
extern bool x_min_endstop;
|
extern bool x_min_endstop;
|
||||||
extern bool x_max_endstop;
|
extern bool x_max_endstop;
|
||||||
|
|
|
@ -51,6 +51,10 @@
|
||||||
#include "adc.h"
|
#include "adc.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#ifndef LA_NOCOMPAT
|
||||||
|
#include "la10compat.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
int scrollstuff = 0;
|
int scrollstuff = 0;
|
||||||
char longFilenameOLD[LONG_FILENAME_LENGTH];
|
char longFilenameOLD[LONG_FILENAME_LENGTH];
|
||||||
|
|
10
PF-build.sh
10
PF-build.sh
|
@ -56,7 +56,7 @@
|
||||||
# Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE
|
# Some may argue that this is only used by a script, BUT as soon someone accidentally or on purpose starts Arduino IDE
|
||||||
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
# it will use the default Arduino IDE folders and so can corrupt the build environment.
|
||||||
#
|
#
|
||||||
# Version: 1.0.6-Build_13
|
# Version: 1.0.6-Build_16
|
||||||
# Change log:
|
# Change log:
|
||||||
# 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt'
|
# 12 Jan 2019, 3d-gussner, Fixed "compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections" in 'platform.txt'
|
||||||
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
# 16 Jan 2019, 3d-gussner, Build_2, Added development check to modify 'Configuration.h' to prevent unwanted LCD messages that Firmware is unknown
|
||||||
|
@ -118,6 +118,10 @@
|
||||||
# 15 Dec 2019, 3d-gussner, Prepare for switch to Prusa3d/PF-build-env repository
|
# 15 Dec 2019, 3d-gussner, Prepare for switch to Prusa3d/PF-build-env repository
|
||||||
# 15 Dec 2019, 3d-gussner, Fix Audrino user preferences for the chosen board.
|
# 15 Dec 2019, 3d-gussner, Fix Audrino user preferences for the chosen board.
|
||||||
# 17 Dec 2019, 3d-gussner, Fix "timer0_fract = 0" warning by using Arduino_boards v1.0.3
|
# 17 Dec 2019, 3d-gussner, Fix "timer0_fract = 0" warning by using Arduino_boards v1.0.3
|
||||||
|
# 28 Apr 2020, 3d-gussner, Added RC3 detection
|
||||||
|
# 03 May 2020, deliopoulos, Accept all RCx as RC versions
|
||||||
|
# 05 May 2020, 3d-gussner, Make a copy of `not_tran.txt`and `not_used.txt` as `not_tran_$VARIANT.txt`and `not_used_$VARIANT.txt`
|
||||||
|
# After compiling All multilanguage vairants it makes it easier to find missing or unused transltions.
|
||||||
#### Start check if OSTYPE is supported
|
#### Start check if OSTYPE is supported
|
||||||
OS_FOUND=$( command -v uname)
|
OS_FOUND=$( command -v uname)
|
||||||
|
|
||||||
|
@ -527,7 +531,7 @@ do
|
||||||
# Check development status
|
# Check development status
|
||||||
DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2)
|
DEV_CHECK=$(grep --max-count=1 "\bFW_VERSION\b" $SCRIPT_PATH/Firmware/Configuration.h | sed -e's/ */ /g'|cut -d '"' -f2|sed 's/\.//g'|cut -d '-' -f2)
|
||||||
if [ -z "$DEV_STATUS_SELECTED" ] ; then
|
if [ -z "$DEV_STATUS_SELECTED" ] ; then
|
||||||
if [[ "$DEV_CHECK" == "RC1" || "$DEV_CHECK" == "RC2" ]] ; then
|
if [[ "$DEV_CHECK" == *"RC"* ]] ; then
|
||||||
DEV_STATUS="RC"
|
DEV_STATUS="RC"
|
||||||
elif [[ "$DEV_CHECK" == "ALPHA" ]]; then
|
elif [[ "$DEV_CHECK" == "ALPHA" ]]; then
|
||||||
DEV_STATUS="ALPHA"
|
DEV_STATUS="ALPHA"
|
||||||
|
@ -682,6 +686,8 @@ do
|
||||||
./lang-build.sh || exit 32
|
./lang-build.sh || exit 32
|
||||||
# Combine compiled firmware with languages
|
# Combine compiled firmware with languages
|
||||||
./fw-build.sh || exit 33
|
./fw-build.sh || exit 33
|
||||||
|
cp not_tran.txt not_tran_$VARIANT.txt
|
||||||
|
cp not_used.txt not_used_$VARIANT.txt
|
||||||
echo "$(tput sgr 0)"
|
echo "$(tput sgr 0)"
|
||||||
# Check if the motherboard is an EINSY and if so only one hex file will generated
|
# Check if the motherboard is an EINSY and if so only one hex file will generated
|
||||||
MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3)
|
MOTHERBOARD=$(grep --max-count=1 "\bMOTHERBOARD\b" $SCRIPT_PATH/Firmware/variants/$VARIANT.h | sed -e's/ */ /g' |cut -d ' ' -f3)
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
# Prusa Firmware MK3
|
||||||
|
|
||||||
|
This repository contains the source code and the development versions of the firmware running on the [Original Prusa i3](https://prusa3d.com/) MK3S/MK3/MK2.5S/MK2.5 line of printers.
|
||||||
|
|
||||||
|
The latest official builds can be downloaded from [Prusa Drivers](https://www.prusa3d.com/drivers/). Pre-built development releases are also [available here](https://github.com/prusa3d/Prusa-Firmware/releases).
|
||||||
|
|
||||||
|
The firmware for the Original Prusa i3 printers is proudly based on [Marlin 1.0.x](https://github.com/MarlinFirmware/Marlin/) by Scott Lahteine (@thinkyhead) et al. and is distributed under the terms of the [GNU GPL 3 license](LICENSE).
|
||||||
|
|
||||||
|
|
||||||
# Table of contents
|
# Table of contents
|
||||||
|
|
||||||
<!--ts-->
|
<!--ts-->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue