Guðni Már Gilbert
f1e127ace4
Initialise status line message in setup()
...
Fixes #3581
2022-09-17 08:53:36 +00:00
3d-gussner
404c622301
Finish German translation
...
increase 2nd langusge size to 0x3500 13567bytes to fit mmu2 translations 🤞
2022-09-17 10:35:30 +02:00
3d-gussner
ec22e5faeb
Shorten message to 20 chars
...
add 01234567890123456789 ruler
2022-09-17 10:34:24 +02:00
3d-gussner
539cdbfeea
Lower MSG_ rows
2022-09-17 08:48:56 +02:00
3d-gussner
78fdf33f67
Update Firmware.pot and Firmware_de.po
...
Started German translation Part 1
Updated c= r= for German translations being longer than 8 rows
2022-09-16 20:42:50 +02:00
3d-gussner
8480c1cb7a
Added //#define FARM_CONNECT_MESSAGE
2022-09-16 19:33:22 +02:00
3d-gussner
88b58cdcd5
Update messages missing c= r=
...
Change MMU2 KEEPALIVE_STATE to IN_PROCESS
2022-09-16 19:24:11 +02:00
3d-gussner
f4f09e4062
update mmu2 messages c= r= values
2022-09-16 19:18:23 +02:00
3d-gussner
0f8d84082a
Update button menu documentation as there are 1/2/3 options
2022-09-16 19:11:11 +02:00
3d-gussner
9d959f5d12
Prepare progress messages for translation
...
Remove duplicate messages
2022-09-16 19:08:06 +02:00
3d-gussner
89a03c1f0d
MMU2/lang: Update translatable strings to match our extraction macros
2022-09-16 19:02:04 +02:00
3d-gussner
50b6044703
Use origin message on serial
2022-09-16 18:17:50 +02:00
3d-gussner
3f6b05cc35
Remove PAT9125 stats as these aren't different to IR stats
2022-09-16 18:04:21 +02:00
3d-gussner
2ba863d8a5
Reuse MSG_IR_0x_OR_..
...
fix lowercase
remove todos
2022-09-16 17:23:38 +02:00
3d-gussner
edad625cf7
RIP Bondtech long live the Extruder
2022-09-16 16:31:27 +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
f18493f361
Save some space due to shorter MMU error texts
...
applies https://github.com/prusa3d/Prusa-Error-Codes/pull/62
2022-09-16 12:12:08 +02:00
D.R.racer
2d98cae8bd
Fixup MK3_MMU2 branch after rebase onto MK3
2022-09-16 11:08:03 +02:00
Guðni Már Gilbert
16713aa25a
Optimisation: scopeState is already set by SendReadRegister
...
Saves 2 bytes of flash
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
e9f5a95d4b
PFW-1362 Make sure FINDA runout is impossible with MMU disabled
...
Since mmu_loop() is called in the main loop() function
when the MMU is disabled, we need to utilise the
MMU protocol layer to prevent FINDA runout from happening
if MMU is disabled.
We also need to keep in mind we probably can't trigger
a FINDA runout in the middle of a Q0 query.
So my solution now is to wait for the "Finished" state
and check if the FINDA is off during printing.
When "Finished" state appears, the FINDA value should be up
to date.
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
94119744ad
PFW-1362 Change isSpoolJoinEnabled to return bool
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
65a0036dbe
PFW-1362 Optimise debug message
...
Saves 20 bytes of flash :)
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
998ed87f25
PFW-1362 Use PROGMEM messages
...
The main purpose of these two messages is just to see if SpoolJoin is enabled or not.
"On" and "Off" are descriptive enough.
Saves 16 bytes of flash
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
63b4abb66d
PFW-1362 SpoolJoin needs to known what the previous slot was
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
1010f23959
Fix an issue where findaPressed is never set
...
This caused instant FINDA runout when the print starts. Now fixed :)
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
b292a5bf4e
PFW-1362 temporarily don't use SpoolJoin in Tcodes
...
I think in the current implementation, this will cause more harm than good.
But we can improve SpoolJoin later
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
7dcfc1484e
PFW-1362 temporary debug messages
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
8610636906
PFW-1362 Add a log when FINDA filament runout is triggered
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
c5bb34f226
PFW-1362 Show if SpoolJoin is enabled or disabled at bootup
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
fb27a7d72b
PFW-1362 Remove "NA" EEPROM status
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
166ecbc7d8
PFW-1362 Fsensor is not required for Spooljoin
...
Since the Fsensor is not required to use SpoolJoin,
it makes little sense to me that we need the fsensor
to "enable" SpoolJoin
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
d51026d8f7
PFW-1362 Rename settings for consistency
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
7c95f87867
PFW-1362 Fsensor status is not required for SpoolJoin
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
715af8fcc2
Rename files to SpoolJoin
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
afc67332c7
PFW-1362 Initial commit
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
2276217cbb
Optimisation: Remove forceMenuExpire variable
...
During first layer calibration we have the live Z baby step menu
on the LCD and the user can tune their Z offset live.
Once the first layer calibration is done, we want to exit the menu
immediately. For this purpose it is much more efficient to
call lcd_return_to_status(). There is no visual difference
on the LCD for the user.
Change in memory footprint:
Flash: -34 bytes
SRAM: -1 byte
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
e39d1458a1
Fix lost changes during rebase
2022-09-16 10:23:47 +02:00
3d-gussner
fae420f1e2
Fix MMU_ALWAYS_CUT enabled in variants
2022-09-16 10:23:47 +02:00
3d-gussner
8e9a49082b
Set Cutter OFF if 0xff
2022-09-16 10:23:47 +02:00
3d-gussner
b3ec36228d
Update doxygen documentation for M704-M709
2022-09-16 10:23:47 +02:00
D.R.racer
2e7258d7a8
Include fix protocol from MMU PR#199
2022-09-16 10:23:47 +02:00
D.R.racer
4d3a5433ad
Implement read/write registers for M707/M708
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
04a1a67b05
PFW-1386 Address TODO
...
We want to move the Z-axis after the XY move is done.
raise_z cannot be used here because it relies
on current_position[] for all axis.
It is actually 10 bytes cheaper to use the previous method
because syncing current_position with lastpos is surprisingly expensive
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
27ff01cf91
Shorter code
...
Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
db1b0ea9ac
Optimisation: Set lastpos using memcpy directly
...
Verified the change by running the M600 gcode. All axis move as expected.
Change in memory:
Flash: -64 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
f984072eab
Remove unused #define
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
f49b88c1a1
Optimisation: lcd_commands "M702 C" should be "M702"
...
Change in memory:
Flash: -2 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
0c1052b0da
Optimisation: mmu_M600_load_filament
...
Don't render full screen for Loading Filament X
this is already done in load_filament_to_nozzle
so no need to do it twice
Change in memory:
Flash: -54 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
bf9ba3c003
Optimisation: setTargetedHotend serial message
...
Change in memory:
Flash: -130 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
635ae2bf20
M600: Small optimisation in if statements
...
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
f297131792
M600: lcd_change_fil_state does not need to be global
...
Refactor lcd_alright() to save flash
Change in memory:
Flash: -98 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
2216ba9fbf
M600: Ask for which slot to use when loading
...
This fixes an issue where the assumed slot to use is unknown and
the printer will hang on loading filament 100.
Another good thing is this is an old user feature request which
we have in our 3.12 milestone.
Change in memory:
Flash: +14 bytes
SRAM: -1 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
3e86bbb93f
M600: Don't unload if filament is unknown
...
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
05bf5de518
Fix calibrate_z_auto crashing Z-axis
...
Steps to reproduce:
1. Run M45 Z after booting the printer up
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
03b8a6e464
Use raise_z in more places
...
Change in memory:
Flash: -474 bytes
SRAM: 0 bytes
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
4758ac3f1b
PFW-1399 Don't show cut filament menu if setting is not enabled
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
55d2eaf8c0
M706: Only cut filament if the setting is enabled
2022-09-16 10:23:47 +02:00
Guðni Már Gilbert
66994d010d
Fix a few cases where rebase overwrote stuff
2022-09-16 10:23:47 +02:00
D.R.racer
0537908d8c
Fixup 2
2022-09-16 10:23:47 +02:00
D.R.racer
37b50477cd
Fixup after rebase onto MK3
2022-09-16 10:23:47 +02:00
D.R.racer
18423685b6
Cleanup ExpectsResponse usage
2022-09-16 10:22:39 +02:00
D.R.racer
d5377c1781
Remove extra "scopeState = ScopeState::FINDAReqSent"
...
saves ~20B in total
2022-09-16 10:22:39 +02:00
D.R.racer
e205d0ee2f
Autoretry Idle scope: transf. into Finished, should stay in Processing
2022-09-16 10:22:39 +02:00
D.R.racer
78cbea08e6
Fix pgm_read* usage
2022-09-16 10:22:39 +02:00
D.R.racer
6c0d3b0b78
Optimize MMU protocol logic
2022-09-16 10:22:39 +02:00
D.R.racer
05ad1dc2f6
Refactoring of protocol logic to lower RAM consumption
...
Should also place the statistics request to the right spot in the state machine.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
dfddf3eaa5
Initial commit for MMU statistics
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
2616df66af
PFW-1386 st_get_position_mm() is more accurate when using endstops (not homed printer)
...
If the endstops kick in, then st_get_position_mm shows the actual travel distance. current_position[Z-AXIS] does not get updated correctly thus we cannot use it when unhomed.
current_position[Z-AXIS] is later set to Z_MAX_POS,
we cannot use that either to calculate the travel distance
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
f409426bdc
PFW-1386 Refactor raise_z
...
Removed the "plan" parameter.
We were incorrectly returning from the function if the printer was homed,
but plan = false. This would leave current_position with an incorrect value
If the printer is homed => finish the move and return the travel distance
If the printer is not homed => rely on end stop to prevent damage,
return travel distance even if the endstop stopped the move.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
4a1479b5bc
PFW-1386 Clamp Z-axis when homed
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
fa6e30389a
PFW-1386 Add a TODO
...
When recovering the Z-axis in M600, we'd like the Z move to
happen after the XY move.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
0a90c7ffda
PFW-1386 Use Marlin 2 unload sequence for single material
...
The current unload sequence does not give good results.
The Marlin 2 sequence looks good on my end. This can be later
used to improve M600
Added all the constants from Marlin 2
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
ff91b4670d
PFW-1386 Use same code for Z-lift in M600 as in M701/M702
...
This reduces flash usage by 128 bytes!
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
099c3a1f1f
PFW-1386 fixup
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
38952f1f33
PFW-1386 Optimisation: st_synchronize is not needed after raise_z_above
...
Saves 16 bytes of flash
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
214b6a9220
PFW-1386 M701, M702: Move Z-axis using relative position
...
* Created a new function raise_z() which will move the Z axis by some
X millimeters. If plan = false, the function will return the
actual travel distance since the move is blocking.
* raise_z_above() is refactored to call raise_z()
Now the M701 and M702 will move the Z-axis relatively, and also
when done, revert the Z axis position when done.
This is a similar behavior as in Marlin 2.
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
217b537961
PFW-1386 Remove old debug message to save space
...
Saves 34 bytes of flash
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
bb0bbfb45f
PFW-1386 Minor correction to M707 and M708 useage example
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
d78c575399
PFW-1386 Address should accept hexidecimal values
...
Now these are equal:
M707 A255 C1
M707 A0xFF C1
Both address inputs are interpreted as FF
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
ba7dae5c79
PFW-1386 I don't see a reason for these lines
...
So I'm removing them
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
3192a95e78
PFW-1386 Optimise default value assign z_target
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
20c865c2d4
PFW-1386 Implement 'U' parameter for M702
...
Similar to 'L' in M701, this does not apply to the MMU
The U parameter controls how much mm the extruder will unload
Default value is 80mm
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
7e9166976f
PFW-1386 Implement 'L' parameter for M701
...
It is only used when the MMU is disabled. With the MMU we use a defined ramming sequence.
When the MMU is disabled I borrowed the usages from Marlin 2.
The L parameter only defines the length for the "fast" load length.
Default value is 70mm, same as M600
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
94dd4aec73
PFW-1386 M701 now loads to nozzle with MMU
2022-09-16 10:22:39 +02:00
Guðni Már Gilbert
8462b38446
PFW-1386 Create a common function for M704 to M706
...
Saves 36 bytes of flash
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
d6564d3617
PFW-1386 if automatic = false, raising Z-axis is done via gcode
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
32ec1587b9
PFW-1386 Implement changes to M702
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
9b0d89213b
PFW-1386 Raising Z-axis during M701 is now done via Gcode
...
If the Z-parameter is not issued, then default behavior will raise
the Z-axis by MIN_Z_FOR_LOAD
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
5bb36546b4
PFW-1386 Implement changes to M701
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
fb087fc535
PFW-1386 Add M707 and M708
...
WriteRegister and ReadRegister function will create new compiler
warnings due to unused parameters, we can ignore it for now.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
3664d29b21
PFW-1386 Add M709
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
de0539b630
PFW-1386 Implement M704, M705, and M706
2022-09-16 10:22:38 +02:00
D.R.racer
70532333dc
Optimize filament sensor implementation
...
- remove virtual methods (we only have one fsensor implementation at a time)
- comment out some of the debugging texts
- remove volatile and replace them with proper synchronized access to relevant variables
2022-09-16 10:22:38 +02:00
D.R.racer
2662e09f1e
Another message remove from RAM
2022-09-16 10:22:38 +02:00
D.R.racer
0e036b9d8a
Save some more RAM in protocol_logic
2022-09-16 10:22:38 +02:00
D.R.racer
022aa53b2d
Remove active_extruder completely
...
we only use 1 extruder + saves ~800B
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
0889109760
Fix corrupted chars in "Engaging Idler" message
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
bac3168ca4
Optimise power_on and power_off
...
eeprom_update_byte only updates the EEPROM if the value is different
Saves 40 bytes of flash memory
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
0d64cfa2e5
extruder variable should be one byte
...
Saves 1 byte of SRAM and 132 bytes of flash
2022-09-16 10:22:38 +02:00
D.R.racer
87a4f58e66
PFW-1363 Change MMU Error parking position
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
703c463a49
Optimize unload
...
Toolchange during print is now much quieter.
Excessive E-motor movement during print is now gone
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
47e57646ea
Optimize load
...
Don't start moving the E-motor immediately
Instead of starting the E-motor move when the load to extruder starts,
we can start when we are loading to the fsensor. At that stage
the MMU has changed from a fast load to a slow load.
2022-09-16 10:22:38 +02:00
D.R.racer
2f0ceabce5
Upgrade protocol to v2.1 - read/write registers + CRC
2022-09-16 10:22:38 +02:00
D.R.racer
f18721bee3
Fix unintentional typo
2022-09-16 10:22:38 +02:00
D.R.racer
6d6f9583ea
Initialize retryAttempts in constructor
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
485ed4a213
Fix issue where logs show two corrupted chars
...
Issue only appears when LANG_MODE = 1
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
938fac4058
Remove old comment, button is acknowledged now
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
f717aa161c
Remove TODO in ActivatePlannedRequest
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
b9d9308f9f
Support 3x Retry in Idle state machine
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
ab32769487
Send button from current state machine
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
4f30cf0ba3
Add missing ProtocolError
2022-09-16 10:22:38 +02:00
Alex Voinea
bc85a41059
Fix xflash flashing
2022-09-16 10:22:38 +02:00
D.R.racer
53e2d68183
Retry up to 6x in case of incorrect MMU FW version
...
Because it looks like the communication drop outs are caused by some electrical issues and we can loose even a byte from the version response, which is deadly for future operation.
2022-09-16 10:22:38 +02:00
D.R.racer
6e5fcb5838
Tune a few MMU progress codes' texts to fit on the LCD
2022-09-16 10:22:38 +02:00
D.R.racer
14b2befb7d
Switch from Start Seq into Idle immediately + disable FS autoload on MMU
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
400fec5d9f
Reset CustomMsg when Command in progress is None
...
When a Progress report is started, we set the CustomMsg to MMUProgress.
But there was an issue where, once the reported "Progress" action was done.
We did not reset the CustomMsg to Status. So if we are printing from the
SD card, the file name is not displayed on the LCD.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
5b184d885c
Add LCD_BUTTON_TIMEOUT to enum
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
e59651a279
Remove description in header file
...
The description are more detailed in the ultralcd.cpp file
No need to document the function in two places :)
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
2fc8b50f11
Fix lcd_show_multiscreen_message_yes_no_and_wait_P after rebase
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
be3f9376ba
Add missing break
2022-09-16 10:22:38 +02:00
D.R.racer
09cb9c6ecd
Fixup after rebase + discussion
2022-09-16 10:22:38 +02:00
D.R.racer
1d2acb5bd6
Bump MMU FW version to 2.0.19 to match/enforce the necessary compatibility level
2022-09-16 10:22:38 +02:00
D.R.racer
fa176c69db
Fix protocol error recovery
...
Communication timeout and Protocol Errors are now distinguished.
In case of a Protocol Error, the printer waits for heartBeatTimeout to allow filling up the input UART buffer (we expect the MMU still produces some bytes).
Once the timeout elapsed, the input UART buffer is cleared and a new Start Sequence is initiated.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
6bf2aebf04
Fix typo
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
80c640deb9
PFW-1373
...
Fix the unload procedure when the user has paused a print
then stopped the print after the temperature has reached below 175°C
Now the E-motor will move as expected
2022-09-16 10:22:38 +02:00
VintagePC
ba52430e1d
Magic numbers are bad...
2022-09-16 10:22:38 +02:00
VintagePC
69c39e2281
An attempt at fixing the retry. Discussion needed.
2022-09-16 10:22:38 +02:00
D.R.racer
c412f062c8
Perform 3xRetry automatically
...
This is a draft PR showing the potential 3x retry implementation on the printer's side.
It is much less code and looks more reliable than the same functionality in the MMU FW.
Still, more work needs to be done:
- [ ] Button is sent to the MMU even before returning from the parking position
- [ ] Then the button is sent again
- [ ] Then the printer runs out of retryAttempts
We need to find a better spot to check for "automatic" retry and issuing of the buttons
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
999320f671
Limit build number to uint8_t ( #49 )
...
Currently the MMU only sends one byte so there is no need
in storing the version with two bytes
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
6b7a018f9b
PFW-1354 Fix slow button processing ( #37 )
...
* Fix MK3S buttons being processed too slowly
After a button is selected on the MK3S MMU error screen, we need to process it before asking for another MMU Query.
Because the MMU Query will make the Error screen return and overwrite the status screen
* Add back CheckUserInput for ButtonPushed event
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
d420b20bd9
Add a missing break
...
I don't see any difference in behaviour but this should be more correct
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
3520020b24
* Correct the unload length on the MK3S side
...
* Pull all numbers into global constants
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
6eb2767dd2
PFW-1334 Distinguish between a retry unload and U0 unload
...
U0 unload uses the ramming sequence, while the retry unload does not because the MMU starts unloading much sooner
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
9a52bb5d04
Add MMU2_UNLOAD_TO_FINDA_FEED_RATE
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
59d19a8330
PFW-1334 Move E-motor on FSENSOR error retry
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
b8432e6bf2
Partial fix for PFW-1334
...
When a FSENSOR error happens, the first step for the MK3S should be to stop any loading by stopping the E-motor.
From this point, the buttons should determine what the MK3S does next.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
2aa6cfc1ab
Optimise mmu_cut_filament_menu ( #40 )
...
preheat_or_continue should be used here to reduce copying code
2022-09-16 10:22:38 +02:00
VintagePC
8eb054e789
Fix trying to use serial before it's intiialized
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
ace5130d9f
PFW-1375 MMU error reported by MK3S does not appear on LCD
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
7d3a50450d
PFW-1340 Hide Done button for two errors
...
* FSENSOR_DIDNT_TRIGGER
* FSENSOR_DIDNT_GO_OFF
The Done button does not Move the E-motor because it
expects the user to have manually resolved the problem
Also if the filament is in the gears, we cannot pull the filament out.
In this case the Retry button is more suited as it will unload the filament.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
4dd689ba9a
Fix PFW-1357 ( #35 )
...
lcd_encoder_diff would be set to 0 if lcd_update_enable(true)
is called outside ReportErrorHookMonitor
This would put enc_dif out of sync with lcd_encoder_diff and could cause false rotation triggering
2022-09-16 10:22:38 +02:00
vintagepc
d7d6885765
PFW-1351 Cooldown timeout ( #33 )
...
* PFW-1351 WIP
* Fix bug with cooldown timing due to bad bitfield.
* Use default safety timer value for timeout
2022-09-16 10:22:38 +02:00
D.R.racer
d1b216da0d
Disable fsensor newVolt debug reporting
2022-09-16 10:22:38 +02:00
D.R.racer
f94c2cba46
Fix rendering temp. + toolchange on MMU error screen
2022-09-16 10:22:38 +02:00
D.R.racer
a004273e8f
Avoid drawing MMU Error screen while MMU moves manually
2022-09-16 10:22:38 +02:00
D.R.racer
98adcbaff2
Bump required MMU FW version to 2.0.18
2022-09-16 10:22:38 +02:00
D.R.racer
dab26fe50b
Report detected MMU version in the Support menu
...
It was just subtly broken, all the functionality had already been implemented.
2022-09-16 10:22:38 +02:00
D.R.racer
121d43f896
Add a Try-Load-to-Bondtech operation
...
PFW-1347
2022-09-16 10:22:38 +02:00
VintagePC
0e96169bb3
remove logspam
2022-09-16 10:22:38 +02:00
VintagePC
4ea53ad4bf
fix bug I introduced
2022-09-16 10:22:38 +02:00
VintagePC
c07a5f396d
Fix button enum
2022-09-16 10:22:38 +02:00
VintagePC
d9676eff25
Fixed buged temperature resume.
2022-09-16 10:22:38 +02:00
VintagePC
f9bedc3c94
Button handling WIP
2022-09-16 10:22:38 +02:00
VintagePC
9a20c85a5d
First pass, improving the error recovery.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
1e391f303c
PFW-1344 Fullscreen message Loading Filament
...
When loading a filament through the LCD,
show a full screen message:
Loading Filament N
Where N can range from 0 to 5.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
8aa16a6429
Write documentation for lcdui_print_extruder
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
8fd1653b84
PFW-1343 initial commit
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
ed04c24ba0
Implement 'Filament not loaded' option for M600 with MMU
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
caf98936e3
Minor cleanup
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
b9c23cd6b8
Add Unloading message to LCD
...
Also made mmu_M600_load_filament static to limit its scope
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
d5cdb412ba
Introduce a way to read the previous tool used
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
2d02877686
Disable automatic in M600
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
e39bc3f12d
During Tx, temporarily allow cold extrusion
...
This prevents a FSENSOR DIDNT TRIGGER error
and allows the bondtech gears to grab the filament.
2022-09-16 10:22:38 +02:00
D.R.racer
45a5e719a2
Disable filRunout when MMU.Enabled()
...
It turned out the runout is caused by the ramming sequence in the G-code, which is interpreted before the actual MMU command gets into processing.
The frequency of these errors/runouts differed one machine from another and was really hard to track down.
Therefore - once the MMU is enabled (active and running) we'll disable filament runout handling caused by the printer's filament sensor.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
a1881b4a07
Disable filament runout when MMU is unloading
2022-09-16 10:22:38 +02:00
VintagePC
762080ab1a
Fix some partking and recovery bugs
2022-09-16 10:22:38 +02:00
D.R.racer
8b6941d493
Temporarily disable runout
...
There are still printers which suffer from spurious runouts for no reason.
For testing purposes, runout will be disabled until the real cause is found.
2022-09-16 10:22:38 +02:00
D.R.racer
01f926f074
Fix build MK25S
2022-09-16 10:22:38 +02:00
VintagePC
f155c7664d
Add missing CheckUserInput calls, fix bad array entry for FW_update
2022-09-16 10:22:38 +02:00
VintagePC
e8088b0161
Allow reset if the EEPROM is set to "on"
2022-09-16 10:22:38 +02:00
VintagePC
888a37450b
Fix wrong return
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
Guðni Már Gilbert
204b43dce4
PFW-1336
...
The following situation is now fixed, steps:
1. Load filament through LCD
2. Load to nozzle through LCD
3. Before filament reaches Fsensor => turn off the printer
4. Wait a few seconds and then turn the printer on again
5. Start a print through the SD card
6. Printer will unload and then re-load the filament
Previously in step 6, the printer would start a print without any
filament loaded.
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
46184a9447
Update printer name if M862.3 is called but not M862.2
2022-09-16 10:22:38 +02:00
D.R.racer
236098dbca
Make init MMU error screens send buttons (Idle mode)
2022-09-16 10:22:38 +02:00
D.R.racer
b880559ba7
Reset MMU upon start + fix reporting its start errors
2022-09-16 10:22:38 +02:00
D.R.racer
1ff7459743
Re-enable filament runout + add debug msgs
...
Needs a fix on the MMU side (report FeedToBondtech::DisengageIdler)
2022-09-16 10:22:38 +02:00
D.R.racer
b6b265e371
Hack around old MMU FW's msgs
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
c1134e7e68
Cleanup: Remove an old comment
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
bd932b3b10
Cleanup: Fix two compiler warnings
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
cfc56af95c
Cleanup: fix parameter comments
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
268c96334b
Cleanup: Pull out PrusaErrorCodeIndex
...
Saves 8 bytes of flash
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
d49e858cf7
PFW-1323 Fix MMU error screen doesn't disappear when error resolved on the MMU
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
7b91e73c8b
Fix issue where error screen updates too slowly in manage_response
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
98d07e6a09
Call lcd_set_custom_characters_nextpage
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
5ced30d8ca
Cleanup: Add comments and reduce code size slightly
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
352a22c22e
Cleanup: Remove unused callback
...
Remove unused callback in lcd_show_multiscreen_message_with_choices_and_wait_P
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
ecb4d08049
PFW-1318 Rewrite the implementation to be non-blocking
2022-09-16 10:22:38 +02:00
Guðni Már Gilbert
dc87bbae11
Fix compile error
2022-09-16 10:22:38 +02:00
D.R.racer
0e75a03c8c
Reuse FSensor runout blocking impl. throughout the whole FW
2022-09-16 10:22:38 +02:00
D.R.racer
eed816d9de
Fix build
2022-09-16 10:22:38 +02:00
D.R.racer
d7270e0b80
Fix lang build
2022-09-16 10:22:38 +02:00
D.R.racer
f04d83fc4c
Update printer's type (MMU/non-MMU) at runtime
...
+ reformat utils.cpp
2022-09-16 10:22:38 +02:00
D.R.racer
5082da78d2
Convert button on LCD into button for MMU
...
- Dependent on current MMU error being processed
- Includes rename of LEFT_BUTTON_CHOICE -> LCD_LEFT_BUTTON_CHOICE (and right, middle as well) to avoid confusion with MMU buttons' ordering
2022-09-16 10:22:38 +02:00
D.R.racer
a0e9a302b8
Suppress communication drop-out < 8s (MMU in bootloader)
...
PFW-1327
2022-09-16 10:22:38 +02:00
D.R.racer
ba8332cd3e
Fix MK25 build
2022-09-16 10:22:38 +02:00
D.R.racer
d628525a94
Fix build MK25S
2022-09-16 10:22:38 +02:00
D.R.racer
f3f2086f29
Fix compilation MK3
2022-09-16 10:22:38 +02:00
D.R.racer
0bd3dfdcf7
This starts to print ;)
...
Temporarily disabled filament runout as this breaks ToolChange operation
yet for unknown reason.
2022-09-16 10:22:38 +02:00
D.R.racer
456ddbb538
Handle the new MMU states (slow load to fsensor)
2022-09-16 10:22:38 +02:00
D.R.racer
5f9ca6a6f3
Reorder errors list according to Prusa-Error-Codes #61
2022-09-16 10:22:37 +02:00
D.R.racer
8a92865969
Update MK3S to match MMU PR#168
...
- new progress and error codes
- remove #error from mmu2_power.cpp as it makes no sense
- remove temporary error translation code
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
33650c6e56
Remove redundant call to lcd_update_enable
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
f1803357b0
Fix default selection after changes in PFW-1312
...
The Yes and No are reverted. Before PFW-132 Yes is 1 and No is 0
Now they are Yes is 0, and No is 1
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
45edc69cc4
Add back menu it confirm if extrusion has correct color after loading to nozzle via LCD
...
I've added the call to this message via the menu function to ensure it
only appears when interacting with the LCD
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
1c26875e0e
PFW-1318 Implement callback to render status line
...
To render the thermometer and degree symbols
the CGRAM table will instead swap out
the feedrate and clock symbol when
lcd_set_custom_characters_nextpage()
is called.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
452f39dc4b
fixup
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
3b0fba14ac
Remove unused parameter nlines to simplify things
...
This allows us to remove one overload
of lcd_display_message_fullscreen_P
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
e817a2d321
Don't block OnMMUProgressMsg while waiting for fsensor to trigger
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
0aa3a5855e
Add TODO to prompt user if extruder is extruding correct color
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
1c25041134
Add the load to nozzle sequence once the MK3S takes control and MMU has disengaged idler.
...
Also removed ProgressCode::FeedingToNozzle from switch-case since it is not used for this purpose at the moment.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
3e77f9f3a1
Reduce grinding when loading to the fsensor
...
- We need to take into account additional 35mm move by the MMU.
- While the fsensor is not triggered, reduce the extruder movement each step from 20mm to 5mm. This should help reduce the variance in the filaments position before we run the final load to nozzle sequence.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
450ce0fc64
Improve load to nozzle sequence
...
- Fixed a bug where the feed rate was 60x higher than intended
- Adjusted the sequence via trial and error. The sequence where the filament has not exited the nozzle is 35mm shorter than the previous implementation
- I reduced the feed rate slightly (by 1mm/s) on the fast load sequence
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
50cd6e77cc
Initial commit for loading filament to the nozzle
2022-09-16 10:22:37 +02:00
D.R.racer
87ed42ba9b
Fix FW update needed button order
2022-09-16 10:22:37 +02:00
D.R.racer
108f439bb7
Make sure the MMU error title never overflows on the LCD
2022-09-16 10:22:37 +02:00
D.R.racer
68b007c759
Fix compile-time conversion MMU2 ErrorCode -> Prusa-Error-Code
...
and hide some of the implementation details into mmu2_error_converter.cpp
which makes the code in mmu_reporting.cpp much easier to read.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
138a0d21c7
Change default selection parameter from bool to uint8_t
...
This allows us make any of the three button choices the default selection
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
89e2bc4d6b
Change name of variable 'yes' to be more descriptive
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
c1ec80817c
Update the error menu after merging new changes
...
Will test this tomorrow
2022-09-16 10:22:37 +02:00
D.R.racer
c28354bf92
Update error codes + constexpr FindErrorIndex
...
Beware - requires avr-gcc 7.3!
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
6e1cf7e98c
Fixup
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
031c588802
Make all choice menus return consistent values
...
Such that left = 0, middle = 1, and right = 2
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
37bfd8ecd1
Checkpoint
...
- combined lcd_show_three_choices_prompt_P and lcd_show_two_choices_prompt_P into one function called lcd_show_choices_prompt_P
- Removed third_col parameter
- Added an enum to make the button selection result more readable
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
8dbb883971
Add helper macros to parse nibbles
...
Also made the button operations and nibbles constant since they should not be modified.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
e6a3fa5e40
Remove unused includes after I moved the MMU error screen
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
83fefe10c1
Checkpoint:
...
- Rename lcd_show_multiscreen_message_two_choices_and_wait_P to lcd_show_multiscreen_message_with_choices_and_wait_P
- Move MMU error screen from ReportError() to ReportErrorHook()
- Fix the menu selection to work for menus with either two choices or three choices
- The buttons shown on the MMU error menu are now determined by the definition of btnOperation[]
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
96ff291f59
Implement PFW-1312 in MMU code
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
734e176445
Don't disable LCD updates in menu_item_function_P
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
ffe8c7c31a
Update lcd_show_multiscreen_message_two_choices_and_wait_P
...
to support 3 choices
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
39df6440ce
Allow LCD to be updated in manage_response loop
...
Also removed one TODO which David mentioned is not needed anymore
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
74ea9a7e43
Remove class LcdUpdateDisabler
...
Calling lcd_update_enable directly gives us more control
This also save a bit of flash memory
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
1ba314d95b
Print the MMU progress into status screen
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
15fbb93a8c
add that downwards facing >> character
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
b59c9da9ee
Move extruder when loading filament to fsensor
...
When the fsensor see filament, stop the extruder
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
96540d6e2d
Fix return value of WhereIsFilament()
...
getFilamentPresent returns the state of the IO pin of the sensor.
So we should use AT_FSENSOR instead of IN_NOZZLE
since the fsensor does not know if the filament is actually in the nozzle.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
11290c1123
Add a read function for mmu_print_saved
...
and remove the old extern value which is not used anymore
I had to remove "MMU2::" from mmu2_protocol_logic.cpp, otherwise the build failed.
2022-09-16 10:22:37 +02:00
Guðni Már Gilbert
dcebad21c8
Add missing spaces to ErrorCode messages
...
Such that:
MMU2:E=32766ErrorTitleTextDescription
Becomes:
MMU2:E=32766 ErrorTitle TextDescription
Also simplified the process of combining ErrorTitle and TextDescription
into the msg buffer by using snprintf. This is saver since we only
use dstSize in one place instead of two.
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert
6fab95f145
Fix PROGMEM read in ErrorCode message
...
This could cause the printer to crash. The Serial Stream would show
a garbled string.
Also included in this commit:
* The buffer size is increased from 64 bytes to 192 bytes. We need to
take into account the length of the ErrorTitle and ErrorDescription.
* Fix overwrite in ErrorCode message buffer.
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert
52f7fb8c51
Add missing space in ProgressCode message
...
Such that:
MMU2:P=123EngageIdler
Becomes:
MMU2:P=123 EngageIdler
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert
2142cb0849
Fix overwrite in ProgressCode message buffer
...
When snprintf() if called we need to read the return value to see how
many bytes were written. Then when we call strncpy_P() through
TranslateProgress(), we need to tell the code to start writing
at byte 'len', or &msg[len]. Also we need to update the byte size
which strncpy_P() is allowed to write (64 - len).
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert
4b71466526
Fix PROGMEM read in ProgressCode message
...
This could cause the printer to crash. The Serial Stream would show
a garbled string and the same corruption would appear on the Status
Screen's status line.
2022-09-16 10:21:53 +02:00
Guðni Már Gilbert
d6044387d9
Fix crash in manage_response
...
The watchdog needs to be kicked in the for(;;) loop.
This is usually done by calling manage_heater before
manage_inactivity.
2022-09-16 10:21:53 +02:00
Alex Voinea
c0a6d1343a
Increase RX buffer size
2022-09-16 10:21:53 +02:00
Alex Voinea
c201a5791a
Implement MMU hw reset
2022-09-16 10:21:53 +02:00
Alex Voinea
cc177ec5ad
Remove old mmu.cpp
2022-09-16 10:21:53 +02:00
D.R.racer
b27f690556
Add ProgressCodes -> text converter
2022-09-16 10:21:53 +02:00
D.R.racer
9140ebba55
Add MMU FW version variables
...
hardcoded for now, but API ready
2022-09-16 10:21:53 +02:00
D.R.racer
22287fec5d
Add original M600 MMU handling
...
seems to be almost unrelated to MMU function at all,
so returning it almost intact.
2022-09-16 10:21:53 +02:00
D.R.racer
87d9f9aba7
Introduce MMU errors + their texts
2022-09-16 10:21:53 +02:00