diff --git a/.travis.yml b/.travis.yml index 5638542e76..85cee21999 100644 --- a/.travis.yml +++ b/.travis.yml @@ -106,7 +106,7 @@ script: - opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING - build_marlin # - # ...with AUTO_BED_LEVELING_LINEAR, Z_MIN_PROBE_REPEATABILITY_TEST, & DEBUG_LEVELING_FEATURE + # ...with AUTO_BED_LEVELING_LINEAR, Z_MIN_PROBE_REPEATABILITY_TEST, and DEBUG_LEVELING_FEATURE # - opt_enable AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE - opt_set ABL_GRID_POINTS_X 16 @@ -119,9 +119,9 @@ script: - opt_enable Z_PROBE_SLED - build_marlin # - # ...with AUTO_BED_LEVELING_LINEAR & DEBUG_LEVELING_FEATURE + # ...with AUTO_BED_LEVELING_LINEAR, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, and EEPROM_CHITCHAT # - - opt_enable AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE + - opt_enable AUTO_BED_LEVELING_LINEAR DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT - build_marlin # # Test a Servo Probe @@ -130,9 +130,10 @@ script: - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE - build_marlin # - # ...with AUTO_BED_LEVELING_3POINT & DEBUG_LEVELING_FEATURE + # ...with AUTO_BED_LEVELING_3POINT, DEBUG_LEVELING_FEATURE, EEPROM_SETTINGS, EEPROM_CHITCHAT, EXTENDED_CAPABILITIES_REPORT, and AUTO_REPORT_TEMPERATURES # - - opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE + - opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT + - opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES - build_marlin # # Test MESH_BED_LEVELING feature, with LCD diff --git a/Marlin/Conditionals_post.h b/Marlin/Conditionals_post.h index 5dc5abc482..ff997ce109 100644 --- a/Marlin/Conditionals_post.h +++ b/Marlin/Conditionals_post.h @@ -28,12 +28,6 @@ #ifndef CONDITIONALS_POST_H #define CONDITIONALS_POST_H - #if ENABLED(EMERGENCY_PARSER) - #define EMERGENCY_PARSER_CAPABILITIES " EMERGENCY_CODES:M108,M112,M410" - #else - #define EMERGENCY_PARSER_CAPABILITIES "" - #endif - /** * Axis lengths and center */ diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 8868dcf641..f750c42fac 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index 0a65a7478d..680d551f8c 100755 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -175,7 +175,7 @@ * M112 - Emergency stop. * M113 - Get or set the timeout interval for Host Keepalive "busy" messages. (Requires HOST_KEEPALIVE_FEATURE) * M114 - Report current position. - * M115 - Report capabilities. + * M115 - Report capabilities. (Extended capabilities requires EXTENDED_CAPABILITIES_REPORT) * M117 - Display a message on the controller screen. (Requires an LCD) * M119 - Report endstops status. * M120 - Enable endstops detection. @@ -188,6 +188,7 @@ * M145 - Set heatup values for materials on the LCD. H B F for S (0=PLA, 1=ABS) * M149 - Set temperature units. (Requires TEMPERATURE_UNITS_SUPPORT) * M150 - Set BlinkM Color R U B. Values 0-255. (Requires BLINKM) + * M155 - Auto-report temperatures with interval of S. (Requires AUTO_REPORT_TEMPERATURES) * M163 - Set a single proportion for a mixing extruder. (Requires MIXING_EXTRUDER) * M164 - Save the mix as a virtual extruder. (Requires MIXING_EXTRUDER and MIXING_VIRTUAL_TOOLS) * M165 - Set the proportions for a mixing extruder. Use parameters ABCDHI to set the mixing factors. (Requires MIXING_EXTRUDER) @@ -214,6 +215,8 @@ * M226 - Wait until a pin is in a given state: "M226 P S" * M240 - Trigger a camera to take a photograph. (Requires CHDK or PHOTOGRAPH_PIN) * M250 - Set LCD contrast: "M250 C" (0-63). (Requires LCD support) + * M260 - i2c Send Data (Requires EXPERIMENTAL_I2CBUS) + * M261 - i2c Request Data (Requires EXPERIMENTAL_I2CBUS) * M280 - Set servo position absolute: "M280 P S". (Requires servos) * M300 - Play beep sound S P * M301 - Set PID parameters P I and D. (Requires PIDTEMP) @@ -865,11 +868,20 @@ void setup_homepin(void) { #if HAS_CASE_LIGHT void setup_case_light() { - #if ENABLED(CASE_LIGHT_DEFAULT_ON) - OUT_WRITE(CASE_LIGHT_PIN, HIGH); - #else - OUT_WRITE(CASE_LIGHT_PIN, LOW); - #endif + digitalWrite(CASE_LIGHT_PIN, + #if ENABLED(CASE_LIGHT_DEFAULT_ON) + 255 + #else + 0 + #endif + ); + analogWrite(CASE_LIGHT_PIN, + #if ENABLED(CASE_LIGHT_DEFAULT_ON) + 255 + #else + 0 + #endif + ); } #endif @@ -5141,6 +5153,31 @@ inline void gcode_M105() { SERIAL_EOL; } +#if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED) + + static uint8_t auto_report_temp_interval; + static millis_t next_temp_report_ms; + + /** + * M155: Set temperature auto-report interval. M155 S + */ + inline void gcode_M155() { + if (code_seen('S')) { + auto_report_temp_interval = code_value_byte(); + NOMORE(auto_report_temp_interval, 60); + next_temp_report_ms = millis() + 1000UL * auto_report_temp_interval; + } + } + + inline void auto_report_temperatures() { + if (auto_report_temp_interval && ELAPSED(millis(), next_temp_report_ms)) { + next_temp_report_ms = millis() + 1000UL * auto_report_temp_interval; + print_heaterstates(); + } + } + +#endif // AUTO_REPORT_TEMPERATURES + #if FAN_COUNT > 0 /** @@ -5751,7 +5788,71 @@ inline void gcode_M114() { report_current_position(); } * M115: Capabilities string */ inline void gcode_M115() { - SERIAL_PROTOCOLPGM(MSG_M115_REPORT); + SERIAL_PROTOCOLLNPGM(MSG_M115_REPORT); + + #if ENABLED(EXTENDED_CAPABILITIES_REPORT) + + // EEPROM (M500, M501) + SERIAL_PROTOCOLPGM("Cap:"); + #if ENABLED(EEPROM_SETTINGS) + SERIAL_PROTOCOLLNPGM("EEPROM:1"); + #else + SERIAL_PROTOCOLLNPGM("EEPROM:0"); + #endif + + // AUTOREPORT_TEMP (M155) + SERIAL_PROTOCOLPGM("Cap:"); + #if ENABLED(AUTO_REPORT_TEMPERATURES) + SERIAL_PROTOCOLLNPGM("AUTOREPORT_TEMP:1"); + #else + SERIAL_PROTOCOLLNPGM("AUTOREPORT_TEMP:0"); + #endif + + // PROGRESS (M530 S L, M531 , M532 X L) + SERIAL_PROTOCOLPGM("Cap:"); + SERIAL_PROTOCOLPGM("PROGRESS:0"); + + // AUTOLEVEL (G29) + SERIAL_PROTOCOLPGM("Cap:"); + #if HAS_ABL + SERIAL_PROTOCOLLNPGM("AUTOLEVEL:1"); + #else + SERIAL_PROTOCOLLNPGM("AUTOLEVEL:0"); + #endif + + // Z_PROBE (G30) + SERIAL_PROTOCOLPGM("Cap:"); + #if HAS_BED_PROBE + SERIAL_PROTOCOLLNPGM("Z_PROBE:1"); + #else + SERIAL_PROTOCOLLNPGM("Z_PROBE:0"); + #endif + + // SOFTWARE_POWER (G30) + SERIAL_PROTOCOLPGM("Cap:"); + #if HAS_POWER_SWITCH + SERIAL_PROTOCOLLNPGM("SOFTWARE_POWER:1"); + #else + SERIAL_PROTOCOLLNPGM("SOFTWARE_POWER:0"); + #endif + + // TOGGLE_LIGHTS (M355) + SERIAL_PROTOCOLPGM("Cap:"); + #if HAS_CASE_LIGHT + SERIAL_PROTOCOLLNPGM("TOGGLE_LIGHTS:1"); + #else + SERIAL_PROTOCOLLNPGM("TOGGLE_LIGHTS:0"); + #endif + + // EMERGENCY_PARSER (M108, M112, M410) + SERIAL_PROTOCOLPGM("Cap:"); + #if ENABLED(EMERGENCY_PARSER) + SERIAL_PROTOCOLLNPGM("EMERGENCY_PARSER:1"); + #else + SERIAL_PROTOCOLLNPGM("EMERGENCY_PARSER:0"); + #endif + + #endif // EXTENDED_CAPABILITIES_REPORT } /** @@ -5791,59 +5892,6 @@ inline void gcode_M121() { endstops.enable_globally(false); } #endif // BLINKM -#if ENABLED(EXPERIMENTAL_I2CBUS) - - /** - * M155: Send data to a I2C slave device - * - * This is a PoC, the formating and arguments for the GCODE will - * change to be more compatible, the current proposal is: - * - * M155 A ; Sets the I2C slave address the data will be sent to - * - * M155 B - * M155 B - * M155 B - * - * M155 S1 ; Send the buffered data and reset the buffer - * M155 R1 ; Reset the buffer without sending data - * - */ - inline void gcode_M155() { - // Set the target address - if (code_seen('A')) i2c.address(code_value_byte()); - - // Add a new byte to the buffer - if (code_seen('B')) i2c.addbyte(code_value_byte()); - - // Flush the buffer to the bus - if (code_seen('S')) i2c.send(); - - // Reset and rewind the buffer - else if (code_seen('R')) i2c.reset(); - } - - /** - * M156: Request X bytes from I2C slave device - * - * Usage: M156 A B - */ - inline void gcode_M156() { - if (code_seen('A')) i2c.address(code_value_byte()); - - uint8_t bytes = code_seen('B') ? code_value_byte() : 1; - - if (i2c.addr && bytes && bytes <= TWIBUS_BUFFER_SIZE) { - i2c.relay(bytes); - } - else { - SERIAL_ERROR_START; - SERIAL_ERRORLN("Bad i2c request"); - } - } - -#endif // EXPERIMENTAL_I2CBUS - /** * M200: Set filament diameter and set E axis units to cubic units * @@ -6190,6 +6238,59 @@ inline void gcode_M226() { } // code_seen('P') } +#if ENABLED(EXPERIMENTAL_I2CBUS) + + /** + * M260: Send data to a I2C slave device + * + * This is a PoC, the formating and arguments for the GCODE will + * change to be more compatible, the current proposal is: + * + * M260 A ; Sets the I2C slave address the data will be sent to + * + * M260 B + * M260 B + * M260 B + * + * M260 S1 ; Send the buffered data and reset the buffer + * M260 R1 ; Reset the buffer without sending data + * + */ + inline void gcode_M260() { + // Set the target address + if (code_seen('A')) i2c.address(code_value_byte()); + + // Add a new byte to the buffer + if (code_seen('B')) i2c.addbyte(code_value_byte()); + + // Flush the buffer to the bus + if (code_seen('S')) i2c.send(); + + // Reset and rewind the buffer + else if (code_seen('R')) i2c.reset(); + } + + /** + * M261: Request X bytes from I2C slave device + * + * Usage: M261 A B + */ + inline void gcode_M261() { + if (code_seen('A')) i2c.address(code_value_byte()); + + uint8_t bytes = code_seen('B') ? code_value_byte() : 1; + + if (i2c.addr && bytes && bytes <= TWIBUS_BUFFER_SIZE) { + i2c.relay(bytes); + } + else { + SERIAL_ERROR_START; + SERIAL_ERRORLN("Bad i2c request"); + } + } + +#endif // EXPERIMENTAL_I2CBUS + #if HAS_SERVOS /** @@ -7099,33 +7200,30 @@ inline void gcode_M907() { #endif // HAS_MICROSTEPS #if HAS_CASE_LIGHT + /** - * M355: Turn case lights on/off - * - * S change state on/off or sets PWM + * M355: Turn case lights on/off and set brightness * + * S Turn case light on or off + * P Set case light brightness (PWM pin required) */ inline void gcode_M355() { + static bool case_light_on + #if ENABLED(CASE_LIGHT_DEFAULT_ON) + = true + #else + ; + #endif + static uint8_t case_light_brightness = 255; + if (code_seen('P')) case_light_brightness = code_value_byte(); if (code_seen('S')) { - SERIAL_ECHO_START; - SERIAL_ECHOPGM("Case lights "); - byte light_pwm = code_value_byte(); - switch (light_pwm) { - case 0: // Disable lights - SERIAL_ECHOPGM("off"); - break; - case 1: // Enable lights - light_pwm = 255; - SERIAL_ECHOPGM("on"); - break; - default: // Enable lights PWM - SERIAL_ECHOPAIR("set to: ", (int)map(light_pwm, 0, 255, 0, 100)); - SERIAL_CHAR('%'); - break; - } - analogWrite(CASE_LIGHT_PIN, light_pwm); - SERIAL_EOL; + case_light_on = code_value_bool(); + digitalWrite(CASE_LIGHT_PIN, case_light_on ? HIGH : LOW); + analogWrite(CASE_LIGHT_PIN, case_light_on ? case_light_brightness : 0); } + SERIAL_ECHO_START; + SERIAL_ECHOPGM("Case lights "); + case_light_on ? SERIAL_ECHOLNPGM("on") : SERIAL_ECHOLNPGM("off"); } #endif // HAS_CASE_LIGHT @@ -7846,6 +7944,12 @@ void process_next_command() { KEEPALIVE_STATE(NOT_BUSY); return; // "ok" already printed + #if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED) + case 155: // M155: Set temperature auto-report interval + gcode_M155(); + break; + #endif + case 109: // M109: Wait for hotend temperature to reach target gcode_M109(); break; @@ -7956,18 +8060,6 @@ void process_next_command() { #endif // BLINKM - #if ENABLED(EXPERIMENTAL_I2CBUS) - - case 155: // M155: Send data to an i2c slave - gcode_M155(); - break; - - case 156: // M156: Request data from an i2c slave - gcode_M156(); - break; - - #endif //EXPERIMENTAL_I2CBUS - #if ENABLED(MIXING_EXTRUDER) case 163: // M163: Set a component weight for mixing extruder gcode_M163(); @@ -8090,6 +8182,18 @@ void process_next_command() { break; #endif // HAS_LCD_CONTRAST + #if ENABLED(EXPERIMENTAL_I2CBUS) + + case 260: // M260: Send data to an i2c slave + gcode_M260(); + break; + + case 261: // M261: Request data from an i2c slave + gcode_M261(); + break; + + #endif // EXPERIMENTAL_I2CBUS + #if ENABLED(PREVENT_COLD_EXTRUSION) case 302: // M302: Allow cold extrudes (set the minimum extrude temperature) gcode_M302(); @@ -9669,7 +9773,13 @@ void idle( #endif ) { lcd_update(); + host_keepalive(); + + #if ENABLED(AUTO_REPORT_TEMPERATURES) && (HAS_TEMP_HOTEND || HAS_TEMP_BED) + auto_report_temperatures(); + #endif + manage_inactivity( #if ENABLED(FILAMENT_CHANGE_FEATURE) no_stepper_sleep diff --git a/Marlin/example_configurations/Cartesio/Configuration_adv.h b/Marlin/example_configurations/Cartesio/Configuration_adv.h index 6b12048bb7..886cdd38ff 100644 --- a/Marlin/example_configurations/Cartesio/Configuration_adv.h +++ b/Marlin/example_configurations/Cartesio/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index 51f0736aed..70d4d434ea 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index dda0b99dcd..a749bcde05 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index 67cbab039d..cddfc6edeb 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index b2742b50bf..aa1ddf4584 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -814,22 +814,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -843,4 +843,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/K8400/Configuration_adv.h b/Marlin/example_configurations/K8400/Configuration_adv.h index 39bba6ef8c..d785efb7ac 100644 --- a/Marlin/example_configurations/K8400/Configuration_adv.h +++ b/Marlin/example_configurations/K8400/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 80cb06442a..6a2e56f3ae 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 5309c0d8f5..3aac74fe18 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 63c8e26ee6..176c73edf3 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -816,22 +816,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -845,4 +845,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index dda0b99dcd..a749bcde05 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 6eb99f1160..f0370b5d7d 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -810,22 +810,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -839,4 +839,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index a3ef0aff05..d897d4662d 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -810,22 +810,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -839,4 +839,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index a3ef0aff05..d897d4662d 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -810,22 +810,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -839,4 +839,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index 86da659166..8805a3b4ca 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -815,22 +815,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -844,4 +844,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 7694e1eae8..ea41189778 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -810,22 +810,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -839,4 +839,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index d1b096de12..9a5213329e 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index b8a2536419..0d1575c084 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -808,22 +808,22 @@ * * ; Example #1 * ; This macro send the string "Marlin" to the slave device with address 0x63 (99) - * ; It uses multiple M155 commands with one B arg - * M155 A99 ; Target slave address - * M155 B77 ; M - * M155 B97 ; a - * M155 B114 ; r - * M155 B108 ; l - * M155 B105 ; i - * M155 B110 ; n - * M155 S1 ; Send the current buffer + * ; It uses multiple M260 commands with one B arg + * M260 A99 ; Target slave address + * M260 B77 ; M + * M260 B97 ; a + * M260 B114 ; r + * M260 B108 ; l + * M260 B105 ; i + * M260 B110 ; n + * M260 S1 ; Send the current buffer * * ; Example #2 * ; Request 6 bytes from slave device with address 0x63 (99) - * M156 A99 B5 + * M261 A99 B5 * * ; Example #3 - * ; Example serial output of a M156 request + * ; Example serial output of a M261 request * echo:i2c-reply: from:99 bytes:5 data:hello */ @@ -837,4 +837,14 @@ */ //#define PINS_DEBUGGING +/** + * Auto-report temperatures with M155 S + */ +//#define AUTO_REPORT_TEMPERATURES + +/** + * Include capabilities in M115 output + */ +//#define EXTENDED_CAPABILITIES_REPORT + #endif // CONFIGURATION_ADV_H diff --git a/Marlin/language.h b/Marlin/language.h index 87a0d08c31..4254f44938 100644 --- a/Marlin/language.h +++ b/Marlin/language.h @@ -129,7 +129,7 @@ #define MSG_INVALID_EXTRUDER "Invalid extruder" #define MSG_INVALID_SOLENOID "Invalid solenoid" #define MSG_ERR_NO_THERMISTORS "No thermistors - no temperature" -#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID EMERGENCY_PARSER_CAPABILITIES "\n" +#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID #define MSG_COUNT_X " Count X: " #define MSG_COUNT_A " Count A: " #define MSG_ERR_KILLED "Printer halted. kill() called!" diff --git a/Marlin/twibus.cpp b/Marlin/twibus.cpp index 0352e1b9c8..c5abdb2a9a 100644 --- a/Marlin/twibus.cpp +++ b/Marlin/twibus.cpp @@ -77,8 +77,6 @@ void TWIBus::addstring(char str[]) { } void TWIBus::send() { - if (!this->addr) return; - #if ENABLED(DEBUG_TWIBUS) debug(PSTR("send"), this->addr); #endif diff --git a/Marlin/twibus.h b/Marlin/twibus.h index bd2d8a5d46..dd1cc12673 100644 --- a/Marlin/twibus.h +++ b/Marlin/twibus.h @@ -43,11 +43,11 @@ typedef void (*twiRequestFunc_t)(); * an experimental feature and it's inner workings as well as public facing * interface are prune to change in the future. * - * The two main consumers of this class are M155 and M156, where M155 allows + * The two main consumers of this class are M260 and M261, where M260 allows * Marlin to send a I2C packet to a device (please be aware that no repeated * starts are possible), this can be done in caching method by calling multiple - * times M155 B or a one liner M155, have a look at - * the gcode_M155() function for more information. M156 allows Marlin to + * times M260 B or a one liner M260, have a look at + * the gcode_M260() function for more information. M261 allows Marlin to * request data from a device, the received data is then relayed into the serial * line for host interpretation. *