From f93de6c662618707d82ed1ed6d7ee62077c9965e Mon Sep 17 00:00:00 2001 From: 3d-gussner <3d.gussner@gmail.com> Date: Mon, 11 Nov 2024 15:47:38 +0100 Subject: [PATCH] EEPROM_FILAMENTUSED is in centimeter and not meter Fix few things --- Firmware/Marlin_main.cpp | 7 +++---- Firmware/eeprom.h | 2 +- Firmware/ultralcd.cpp | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 95fb93f730..ad9860012b 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5253,7 +5253,6 @@ void process_commands() */ case 78: { - // @todo useful for maintenance notifications const char *_m_fil; const char *_m_time; uint32_t _cm = 0; @@ -5262,8 +5261,8 @@ void process_commands() if (printJobOngoing()) { _m_fil = _O(MSG_FILAMENT_USED); _m_time = _O(MSG_PRINT_TIME); - _cm = ((uint32_t)total_filament_used) / (1000); - _min = (print_job_timer.duration() / 60); + _cm = (uint32_t)total_filament_used / 1000; + _min = print_job_timer.duration() / 60; } else { if (code_seen('S')) { eeprom_update_dword_notify((uint32_t *)EEPROM_FILAMENTUSED, code_value()); @@ -9179,7 +9178,7 @@ void setPwmFrequency(uint8_t pin, int val) #endif //FAST_PWM_FAN void save_statistics() { - uint32_t _previous_filament = eeprom_init_default_dword((uint32_t *)EEPROM_FILAMENTUSED, 0); //_previous_filament unit: meter + uint32_t _previous_filament = eeprom_init_default_dword((uint32_t *)EEPROM_FILAMENTUSED, 0); //_previous_filament unit: centimeter uint32_t _previous_time = eeprom_init_default_dword((uint32_t *)EEPROM_TOTALTIME, 0); //_previous_time unit: min uint32_t time_minutes = print_job_timer.duration() / 60; diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 6e65716e16..3adc221e2c 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -108,7 +108,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | ^ | ^ | ^ | fah 250 | ^ | needs XYZ calibration | ^ | ^ | ^ | ^ | ^ | 00h 0 | ^ | Unknown (legacy) | ^ | ^ | 0x0FF5 4085 | uint16 | _EEPROM_FREE_NR12_ | ??? | ff ffh 65535 | _Free EEPROM space_ | _free space_ | D3 Ax0ff5 C2 -| 0x0FF1 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00 00 00 00h 0 __S/P__| Filament used in meters | ??? | D3 Ax0ff1 C4 +| 0x0FF1 4081 | uint32 | EEPROM_FILAMENTUSED | ??? | 00 00 00 00h 0 __S/P__| Filament used in cenitmeters | ??? | D3 Ax0ff1 C4 | 0x0FED 4077 | uint32 | EEPROM_TOTALTIME | ??? | 00 00 00 00h 0 __S/P__| Total print time in minutes | ??? | D3 Ax0fed C4 | 0x0FE5 4069 | float | EEPROM_BED_CALIBRATION_CENTER | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fe5 C8 | 0x0FDD 4061 | float | EEPROM_BED_CALIBRATION_VEC_X | ??? | ff ff ff ffh | ??? | ??? | D3 Ax0fdd C8 diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f9a2b4fcce..86127c4bed 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2367,7 +2367,7 @@ void lcd_menu_statistics() } else { - uint32_t _filament = eeprom_read_dword((uint32_t *)EEPROM_FILAMENTUSED); // in meters + uint32_t _filament = eeprom_read_dword((uint32_t *)EEPROM_FILAMENTUSED); // in centimeters uint32_t _time = eeprom_read_dword((uint32_t *)EEPROM_TOTALTIME); // in minutes uint8_t _hours, _minutes; uint32_t _days;