Commit Graph

143 Commits

Author SHA1 Message Date
Yuri D'Elia d1ff728e4f TM: future-proofing for incompatible model upgrades
Introduce a model version. This is initialized at "1" and doesn't
require any upgrade/downgrade checks since it's currently
retro-compatible.
2023-02-17 15:01:59 +01:00
Yuri D'Elia 38b1e64687 TM: Allocate new eeprom parameters for PTC handling 2023-02-17 15:01:59 +01:00
D.R.racer 9b64d122dc Disable MMU2S by default
On printers without the MMU no error screen should occur and no attempts of communication with the MMU should be performed -> EEPROM_MMU_ENABLED should default to 0.

PFW-1418
2023-02-17 12:53:07 +01:00
Guðni Már Gilbert 99761bdff7 optimisation: re-use adjust_bed_reset()
Move the code into eeprom.cpp since we're only working with EEPROM

Change in memory:
Flash: -42 bytes
SRAM: 0 bytes
2023-02-08 08:01:55 +01:00
Guðni Már Gilbert b28aa6f42a PFW-1471 Rename 'Toolchange count' to 'Material changes'
Added the string to our message so it can be translated

Change in memory:
Flash: -10 bytes
SRAM: 0 bytes
2023-02-06 08:33:40 +01:00
3d-gussner ba3ee0b4c6 Fix few values 2023-01-02 15:11:01 +01:00
3d-gussner 20634a3852 Update calibration status v2 documentation 2023-01-02 15:11:01 +01:00
Yuri D'Elia 9a018230ce Replace calibration state with a new calibration bitmap
- Move calibration status/declarations to util.h
- Allows to query the status of each step independently without assuming
  any order
- Allows to extend the calibration with new steps transparently
2022-12-30 14:14:01 +01:00
Yuri D'Elia 2552fee4c7 eeprom: Fix EEPROM_HEAT_BED_ON_LOAD_FILAMENT debug offset in docs 2022-12-30 14:14:01 +01:00
Yuri D'Elia 0c042440ee eeprom: Document new calibration state 2022-12-12 18:25:17 +01:00
Panayiotis-git c75c81ce4f Do not heat the bed, on load/unload
If during a paused print, the preheat is canceled, keep the bed target temperature
Display bed temperatures only if bed is also heated
Remove not needed variables nTargetOld and nTargetBedOld from the mFilamentItem function
Define new Setting "HeatBedOnLoad" [Yes/No]
2022-12-04 19:26:34 +02:00
Alex Voinea ef83fefce1 More optimization 2022-11-18 14:50:07 +01:00
Alex Voinea 8f4ac82273 eeprom_init_default also returns the read/default value 2022-11-18 14:50:07 +01:00
Alex Voinea b317786110 More configuration store savings
flash: -94B
RAM: 0B
2022-11-18 14:50:07 +01:00
Alex Voinea 5305dbd299 Sheet name initialization improvements
The code looks better, but it takes a bit more flash. I prefer it like this
flash: +20B
ram: 0B
2022-11-18 14:50:07 +01:00
Alex Voinea 771f833a44 Implement eeprom dword functions 2022-11-18 14:50:07 +01:00
Alex Voinea ca943cceec Split the increment function into increment and add
No size difference since the compiler did a good job optimizing the inc argument (always 1 before).
2022-11-18 14:50:07 +01:00
D.R.racer 455c29e78b Optimize EEPROM usage/functions 2022-11-18 14:50:07 +01:00
Guðni Már Gilbert 0af7d28074 PFW-1397 Allocate EEPROM memory for toolchange counter 2022-11-08 13:49:40 +01:00
3d-gussner eaaf1d6872 Rename Sheets
- `Satin 1` to `Satin  `
- `Satin 2` to `NylonPA`
2022-10-18 10:20:01 +02:00
Tomáš Jozífek 233174cf86 Fill the doc for the EEPROM value at 0x0DA1 - active_sheet 2022-10-07 11:59:57 +02:00
3d-gussner bab83704a1 Fix Typo 0X0 to 0x0 2022-10-06 13:23:16 +02:00
3d-gussner 1a8f18318c Add Temp Model eeprom documentation 2022-09-28 18:15:23 +02:00
3d-gussner 302e4b679c replace tab with spaces 2022-09-28 17:37:46 +02:00
3d-gussner 37cde856e9 Rename Auto_deplete to Spool_join
Fix some missing MSG_ c= r=
2022-09-16 16:25:47 +02:00
D.R.racer 09cb9c6ecd Fixup after rebase + discussion 2022-09-16 10:22:38 +02:00
VintagePC 73c486cc2f - Fix DisableMMU button on FW incompat
5823c14
- Implement eeprom var, fix reset
2022-09-16 10:22:38 +02:00
Alex Voinea 340bc87110 Checkpoint: jam detection 2022-09-16 10:20:32 +02:00
Alex Voinea d2bfe422f1 Separate runout and enabled settings 2022-09-16 10:17:04 +02:00
Alex Voinea b27c8b50e0 Fix power panic handling 2022-08-24 20:19:26 +03:00
Alex Voinea 05bd1ba57f Multi-segment pause resume initial 2022-08-24 20:19:26 +03:00
Yuri D'Elia 6832ec7648 Allow to save/restore temperature model settings
This currently bypasses the ConfigurationStore, which doesn't fit the
malin model nicely.

temp_model is using it's own private copy directly.

But maybe we should change this in the future.
2022-07-25 17:30:22 +02:00
Yuri D'Elia e37435b53f Merge remote-tracking branch 'upstream/MK3_3.11.1' into mk311_sync 2022-07-04 16:14:23 +02:00
Yuri D'Elia 64f646a8a4 Add notices about Sheet::bed_temp and Sheet::pinda_temp being unused
There is a potential for 2*8 bytes of extra sparse eeprom space, plus a
few bytes saved if we remove the update calls, so add a notice that
these values are currently only written-to, but never actually used.
2022-05-11 11:15:36 +02:00
Alex Voinea a6331d22c8 Remove ancient SNMM code in the MK3 branch 2022-02-15 15:58:33 +01:00
3d-gussner 8d0af30aa7 Update doxygen documentation 2022-02-07 19:41:14 +01:00
DRracer 6188870c2e
Merge pull request #3157 from wavexx/improve_d2
Add extra debugging functions & crash analysis
2021-06-22 07:37:30 +02:00
metacollin 8a7dd08116 Fixed C++ bug 2021-06-21 07:05:17 +02:00
Yuri D'Elia e28301f391 Report crash also in MK2.5, fix stack_error abuse
Rename EEPROM_CRASH_ACKNOWLEDGED to EEPROM_FW_CRASH_FLAG.

Use EEPROM_FW_CRASH_FLAG to always set the last crash reason, which
simplifies handling between the online/offline variants.

Make stack_error safe, by setting the flag and restarting immediately,
so that the error can be shown after restart.
2021-06-12 14:41:54 +02:00
Yuri D'Elia c089ac5341 Implement EMERGENCY_DUMP for offline analysis
If EMERGENCY_DUMP is defined, crash and dump using the new xflash dump
functionality instead of just continuing with an error message.

When an emergency crash is stored, the first restart after a crash
displays a message that debug data is available and to contact support
to submit the crash for analysis.
2021-06-08 16:42:43 +02:00
Panayiotis-git 3c63ddaafd Fix the eeprom address documentation 2021-05-22 17:09:55 +03:00
Marek Bel aa45091400
Scale extruder motor current linearly with speed. (#2813)
Scale extruder motor current linearly with speed.

49% less heating when running at low speed and standstill, 4% more torque at maximum extrusion rate (15mm^3/s), 15% more torque in high speed movements (un/retractions).

StealthChop mode is used for low speeds (below 900mm/min)
spreadCycle is used above. Transition speed is well above maximum extrusion rate of 15mm^3/s (275mm/min) so mode transition is not expected to be visible on printed surface.

StealthChop is expected to improve printed surface quality (less artifacts).

Warning you can burn extruder motor if it is not the same impedance as original Prusa i3 Extruder stepper motor. There is no current feedback in low speed so lower impedance motor can be burned by over current.

Even there is no direct current feedback, there is no risk for original motor thermal runaway, as motor resistance increases with temperature, current decreases.

Standstill peak phase current is expected to be 500 mA and linearly increase with speed to 970 mA at 900mm/min where spreadCycle constant current regulation takes over and keeps peak current at 805 mA to maximum speed possible.

As motor heating increases with current squared, lowering low speed current from 700mA to 500mA decreases heating 49% in thate mode, where motor spends most of the time.

Enable E-motor cool mode in farm mode only (and experimental menu) - the experimental menu is visible AND the EEPROM_ECOOL variable has a value of the universal answer to all problems of the universe - i.e. two conditions must be met at the start of the FW to enable the E-cool mode. If the user enables the experimental menu, sets the E-cool mode and disables the menu afterwards, on the next start of the FW the E-cool mode will be DISABLED. This is still subject to discussion how much obscure (security through obscurity) we'd like this option to have .

Additional stuff:
* Add serial debug msg to verify if E-cool mode is on
* Avoid access to E-cool mode switch on machines without TMC2130
* Do not allow only M907 E in case of E-cool mode+warn the user on the serial line that the command was skipped

Co-authored-by: D.R.racer <drracer@drracer.eu>
2021-04-23 16:06:28 +02:00
DRracer 98643825dc
Merge pull request #3055 from awenelo/add-satin-sheet
Add satin sheets
2021-04-22 07:13:32 +02:00
Voinea Dragos 7356cd0811 EEPROM_JOB_ID 2021-04-09 08:09:51 +02:00
awenelo 9b21ebd376 Fix numbering for custum sheet hex values 2021-03-07 12:14:03 -05:00
awenelo 09b3632d43 Final changes + cleanup 2021-03-07 09:44:33 -05:00
awenelo 53a3772f09 Add satin sheet 2021-03-04 10:14:29 -05:00
3d-gussner d0d4298249 Update EEPROM documentation for Service prep 2021-02-28 18:18:06 +01:00
D.R.racer c3bea4d71c Make a special welcome message for shipping/service prep
Another request from our Service dept. - the user shall be prevented
from skipping the intro wizard, because otherwise some preset/calibrated
features will look like not done - especially live-z calibration.

And since there are users, who send a machine to service to perform 1st
layer calibration only, they must not omit the Z-calibration at the
start after shipping.
2021-02-17 12:53:56 +01:00
Yuri D'Elia 186ce0f4b3 Handle acceleration settings in UVLO/power panic
Acceleration settings need to be saved in UVLO, since these are often
changed/set during a print. This is especially important for travel and
retract acceleration, which is usually set once per-print.

Saving and restoring is not 100% correct.

We save the current front-end value, which might ahead of the backend
when UVLO is triggered. Print acceleration, likely the most significant,
should be saved in the block buffer to be accurate.

Acceleration needs to be restored after the UVLO Z repositioning is
performed, using an M204 command. This is correct, however we don't save
the _temporary_ max acceleration limits set via M201, which could be
higher than the saved limits (via M500). This could result in lower
clamped values compared to the original print.

Maximum acceleration/jerk/feedrate limits should _all_ be saved in UVLO
in the future.
2021-02-03 11:28:51 +01:00