Commit e31f6b71 authored by MagoKimbra's avatar MagoKimbra

Update v4.2.82

Add DONDOLO bowden dual extruder
parent b671d4f3
### Version 4.2.82
* Add DONDOLO_DUAL_MOTOR for DONDOLO bowden and dual extruder
### Version 4.2.81
* Fix serial protocol for Repetier Host
* Bug fix
......
......@@ -114,7 +114,7 @@
* *
***********************************************************************/
//#define HOTEND_WATTS (12.0*12.0/6.7) // P=I^2/R
//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R
//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R
/***********************************************************************/
......@@ -484,6 +484,8 @@
***********************************************************************
* *
* Setting for multiextruder DONDOLO 1.0b by Gianni Franci *
* Enable DONDOLO SINGLE MOTOR for original DONDOLO by Gianni Franci *
* Enable DONDOLO DUAL MOTOR for bowden and dual EXTRUDER *
* http://www.thingiverse.com/thing:673816 *
* For function set NUM_SERVOS +1 if you use for endstop or probe *
* Set DONDOLO SERVO INDEX for servo you use for DONDOLO *
......@@ -492,7 +494,9 @@
* Remember set HOTEND OFFSET X Y Z *
* *
***********************************************************************/
//#define DONDOLO
//#define DONDOLO_SINGLE_MOTOR
//#define DONDOLO_DUAL_MOTOR
#define DONDOLO_SERVO_INDEX 0
#define DONDOLO_SERVOPOS_E0 120
#define DONDOLO_SERVOPOS_E1 10
......
......@@ -24,7 +24,7 @@
#define CONFIGURATION_VERSION_H
#define FIRMWARE_NAME "MK"
#define SHORT_BUILD_VERSION "4.2.81_dev"
#define SHORT_BUILD_VERSION "4.2.82_dev"
#define BUILD_VERSION FIRMWARE_NAME "_" SHORT_BUILD_VERSION
#define STRING_DISTRIBUTION_DATE __DATE__ " " __TIME__ // build date and time
// It might also be appropriate to define a location where additional information can be found
......
......@@ -582,7 +582,7 @@ bool enqueue_and_echo_command(const char* cmd, bool say_ok/*=false*/) {
servo[3].detach();
#endif
#if ENABLED(DONDOLO)
#if HAS(DONDOLO)
servo[DONDOLO_SERVO_INDEX].attach(0);
servo[DONDOLO_SERVO_INDEX].write(DONDOLO_SERVOPOS_E0);
delay_ms(DONDOLO_SERVO_DELAY);
......@@ -591,7 +591,7 @@ bool enqueue_and_echo_command(const char* cmd, bool say_ok/*=false*/) {
// Set position of Servo Endstops that are defined
#if HAS(SERVO_ENDSTOPS)
#if ENABLED(DONDOLO)
#if HAS(DONDOLO)
for (int i = 0; i < 3; i++) {
if (servo_endstop_id[i] >= 0 && servo_endstop_id[i] != DONDOLO_SERVO_INDEX)
servo[servo_endstop_id[i]].write(servo_endstop_angle[i][1]);
......@@ -1926,6 +1926,8 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio
static void deploy_z_probe() {
if (DEBUGGING(INFO)) DEBUG_POS("deploy_z_probe", current_position);
if (endstops.z_probe_enabled) return;
#if HAS(SERVO_ENDSTOPS)
......@@ -1961,6 +1963,8 @@ inline void do_blocking_move_to_z(float z) { do_blocking_move_to(current_positio
static void retract_z_probe() {
if (DEBUGGING(INFO)) DEBUG_POS("retract_z_probe", current_position);
if (!endstops.z_probe_enabled) return;
#if HAS(SERVO_ENDSTOPS)
......@@ -6134,7 +6138,7 @@ inline void gcode_M226() {
inline void gcode_M280() {
int servo_index = code_seen('P') ? code_value_short() : -1;
int servo_position = 0;
#if ENABLED(DONDOLO)
#if HAS(DONDOLO)
if (code_seen('S')) {
servo_position = code_value_short();
if (servo_index >= 0 && servo_index < NUM_SERVOS && servo_index != DONDOLO_SERVO_INDEX) {
......@@ -7588,7 +7592,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
old_color = active_extruder = target_extruder;
active_driver = 0;
ECHO_LMV(DB, SERIAL_ACTIVE_COLOR, (int)active_extruder);
#elif ENABLED(DONDOLO)
#elif HAS(DONDOLO)
st_synchronize();
servo[DONDOLO_SERVO_INDEX].attach(0);
if (target_extruder == 0) {
......@@ -7600,8 +7604,12 @@ inline void gcode_T(uint8_t tmp_extruder) {
delay_ms(DONDOLO_SERVO_DELAY);
servo[DONDOLO_SERVO_INDEX].detach();
previous_extruder = active_extruder;
active_extruder = target_extruder;
active_driver = 0;
#if ENABLED(DONDOLO_SINGLE_MOTOR)
active_extruder = target_extruder;
active_driver = 0;
#elif ENABLED(DONDOLO_DUAL_MOTOR)
active_driver = active_extruder = target_extruder;
#endif
set_stepper_direction(true);
ECHO_LMV(DB, SERIAL_ACTIVE_DRIVER, (int)active_driver);
ECHO_LMV(DB, SERIAL_ACTIVE_EXTRUDER, (int)active_extruder);
......
......@@ -267,12 +267,16 @@
/**
* DONDOLO
*/
#if ENABLED(DONDOLO)
#if ENABLED(DONDOLO_SINGLE_MOTOR)
#undef SINGLENOZZLE
#undef ADVANCE
#undef DRIVER_EXTRUDERS
#define DRIVER_EXTRUDERS 1
#endif
#if ENABLED(DONDOLO_DUAL_MOTOR)
#undef SINGLENOZZLE
#undef ADVANCE
#endif
/**
* SINGLENOZZLE
......@@ -289,7 +293,7 @@
/**
* DRIVER_EXTRUDERS
*/
#if DISABLED(MKR4) && DISABLED(NPR2) && DISABLED(DONDOLO) && DISABLED(COLOR_MIXING_EXTRUDER)
#if DISABLED(MKR4) && DISABLED(NPR2) && DISABLED(DONDOLO_SINGLE_MOTOR) && DISABLED(COLOR_MIXING_EXTRUDER)
#undef DRIVER_EXTRUDERS
#define DRIVER_EXTRUDERS EXTRUDERS // This defines the number of Driver extruder
#endif
......@@ -749,6 +753,8 @@
#define HAS_MOTOR_CURRENT_PWM_XY (PIN_EXISTS(MOTOR_CURRENT_PWM_XY))
#define HAS_SDSUPPORT (ENABLED(SDSUPPORT))
#define HAS_DONDOLO (ENABLED(DONDOLO_SINGLE_MOTOR) || ENABLED(DONDOLO_DUAL_MOTOR))
#define HAS_DIGIPOTSS (PIN_EXISTS(DIGIPOTSS))
#define HAS_TEMP_HOTEND (HAS_TEMP_0 || ENABLED(HEATER_0_USES_MAX6675))
......
......@@ -42,6 +42,9 @@
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Disable steppers"
#define MSG_AUTO_HOME "Auto home"
#define MSG_AUTO_HOME_X "Home X"
#define MSG_AUTO_HOME_Y "Home Y"
#define MSG_AUTO_HOME_Z "Home Z"
#define MSG_MBL_SETTING "Manual Bed Leveling"
#define MSG_MBL_BUTTON " Press the button "
#define MSG_MBL_INTRO " Leveling bed... "
......
......@@ -701,6 +701,16 @@ static void lcd_tune_fixstep() {
#endif
#endif // !THERMAL_PROTECTION_HOTENDS
#if ENABLED(THERMAL_PROTECTION_BED)
#if TEMP_SENSOR_BED != 0
void watch_temp_callback_bed() { start_watching_bed(); }
#endif
#else
#if TEMP_SENSOR_BED != 0
void watch_temp_callback_bed() {}
#endif
#endif
/**
*
* "Tune" submenu
......@@ -749,7 +759,7 @@ static void lcd_tune_menu() {
// Bed:
//
#if TEMP_SENSOR_BED != 0
MENU_MULTIPLIER_ITEM_EDIT(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15);
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_BED, &target_temperature_bed, 0, BED_MAXTEMP - 15, watch_temp_callback_bed);
#endif
//
......@@ -827,6 +837,11 @@ static void lcd_tune_menu() {
}
#endif // EASY_LOAD
/**
*
* "Prepare" submenu items
*
*/
void _lcd_preheat(int endnum, const float temph, const float tempb, const int fan) {
if (temph > 0) setTargetHotend(temph, endnum);
#if TEMP_SENSOR_BED != 0
......@@ -980,6 +995,9 @@ static void lcd_prepare_menu() {
// Auto Home
//
MENU_ITEM(gcode, MSG_AUTO_HOME, PSTR("G28"));
MENU_ITEM(gcode, MSG_AUTO_HOME_X, PSTR("G28 X"));
MENU_ITEM(gcode, MSG_AUTO_HOME_Y, PSTR("G28 Y"));
MENU_ITEM(gcode, MSG_AUTO_HOME_Z, PSTR("G28 Z"));
//
// Set Home Offsets
......
......@@ -237,7 +237,7 @@
#define REV_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE( INVERT_E0_DIR); E1_DIR_WRITE( INVERT_E1_DIR); } else if(current_block->active_driver == 1) { E1_DIR_WRITE( INVERT_E1_DIR); } else { E0_DIR_WRITE( INVERT_E0_DIR); }}
#endif
#else
#if ENABLED(DONDOLO)
#if ENABLED(DONDOLO_SINGLE_MOTOR)
#define E_STEP_WRITE(v) E0_STEP_WRITE(v)
#define NORM_E_DIR() { switch(active_extruder) { case 1: E0_DIR_WRITE( INVERT_E0_DIR); break; case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; }}
#define REV_E_DIR() { switch(active_extruder) { case 1: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; }}
......
......@@ -1750,8 +1750,16 @@
#error DEPENDENCY ERROR: You have to set E_MIN_PIN to a valid pin if you enable NPR2
#endif
#if ENABLED(DONDOLO) && NUM_SERVOS < 1
#error DEPENDENCY ERROR: You must set NUM_SERVOS > 0 for DONDOLO
#if (ENABLED(DONDOLO_SINGLE_MOTOR) || ENABLED(DONDOLO_DUAL_MOTOR)) && HASNT(SERVOS)
#error DEPENDENCY ERROR: You must enabled ENABLE_SERVOS and set NUM_SERVOS > 0 for DONDOLO MULTI EXTRUDER
#endif
#if ENABLED(DONDOLO_SINGLE_MOTOR) && ENABLED(DONDOLO_DUAL_MOTOR)
#error DEPENDENCY ERROR: You must enabled only one for DONDOLO_SINGLE_MOTOR and DONDOLO_DUAL_MOTOR
#endif
#if (ENABLED(DONDOLO_SINGLE_MOTOR) || ENABLED(DONDOLO_DUAL_MOTOR)) && EXTRUDERS != 2
#error DEPENDENCY ERROR: You must set EXTRUDERS = 2 for DONDOLO
#endif
#if ENABLED(LASERBEAM) && (!PIN_EXISTS(LASER_PWR) || !PIN_EXISTS(LASER_TTL))
......
<img align="right" src="Documentation/Logo/MarlinKimbra%20Logo%20GitHub.png" />
# MarlinKimbra 3D Printer Firmware for Arduino
## Version 4.2.81 dev
## Version 4.2.82 dev
### Special thanks
* all Marlin8bit-developers.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment