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
Alex Voinea
74fad4f8f6
Implement fsensor raii event suppression
2022-09-16 10:21:53 +02:00
D.R.racer
1211ad9360
Report state of fsensor into the MMU code
2022-09-16 10:21:53 +02:00
D.R.racer
825eed97d4
Fix build after rebase
2022-09-16 10:21:53 +02:00
D.R.racer
4fa4b3b2fc
Refactor Tx/Tc/T? commands
2022-09-16 10:21:53 +02:00
D.R.racer
4732859a98
Avoid exposing internal variables of fsensor
...
makes the code a bit shorter as well, because the compiler can be sure
that the variables are not accessed from the outside of the
fsensor.cpp compilation unit.
2022-09-16 10:21:53 +02:00
D.R.racer
db0374896f
Implement mmu2 serial interface
2022-09-16 10:21:53 +02:00
D.R.racer
208e620660
Return ir_sensor_detected + related functionality
2022-09-16 10:21:53 +02:00
D.R.racer
5870bbc524
Prune most of TODO from mmu2.cpp
...
+ refactor sound.h for better readability
2022-09-16 10:21:53 +02:00
D.R.racer
2e293e90a0
MMU2 interface overhaul
...
First port of the new MMU2-printer interface into 8bit FW.
2022-09-16 10:21:53 +02:00
Alex Voinea
c27e4623c5
Fix build (??)
2022-09-16 10:20:32 +02:00
Alex Voinea
329745368e
Improve PAT9125 UI implementation
2022-09-16 10:20:32 +02:00
Alex Voinea
340bc87110
Checkpoint: jam detection
2022-09-16 10:20:32 +02:00
Alex Voinea
65b2881b06
PAT9125 first prototype
2022-09-16 10:17:33 +02:00
Alex Voinea
c5c4c21124
Update Sensor info menu documentation
2022-09-16 10:17:04 +02:00
Alex Voinea
bdfd3305cb
Cleanup pat9125.h
2022-09-16 10:17:04 +02:00
Alex Voinea
c46b97ec2d
Add base code for PAT9125_sensor
2022-09-16 10:17:04 +02:00
Alex Voinea
90b78616b7
Fix reinit on error
2022-09-16 10:17:04 +02:00
Alex Voinea
fba6d44f33
fsensor event blanking
2022-09-16 10:17:04 +02:00
Alex Voinea
52b44ad178
fsensor add deinit
2022-09-16 10:17:04 +02:00
Alex Voinea
ea23e6d924
Fix MK2 build?
2022-09-16 10:17:04 +02:00
Alex Voinea
bbe1b1145e
Correct ifdefs for all IR sensor types
2022-09-16 10:17:04 +02:00
Alex Voinea
a256370c39
Remove original marlin fsensor code
2022-09-16 10:17:04 +02:00
Alex Voinea
f9ff929bbe
Enable fsensor when preparing for shipping
2022-09-16 10:17:04 +02:00
Alex Voinea
d2bfe422f1
Separate runout and enabled settings
2022-09-16 10:17:04 +02:00
Alex Voinea
b741707c0e
Fsensor error state
2022-09-16 10:17:04 +02:00
Alex Voinea
cfe8444fe3
Revert menu hack
2022-09-16 10:17:04 +02:00
Alex Voinea
5484882758
Checkpoint after a lot of removal
2022-09-16 10:17:04 +02:00
Alex Voinea
8fae5e708e
Remove unused fsensor variables
2022-09-16 10:09:20 +02:00
Alex Voinea
fc49ba115a
Move more IR sensor analog stuff to Filament_sensor.h
2022-09-16 10:09:20 +02:00
Alex Voinea
b52022f6c6
More dead code removal
2022-09-16 10:08:39 +02:00
Alex Voinea
241c4cc86c
Remove dead code
2022-09-16 10:08:39 +02:00
Alex Voinea
6663f719f6
Remove old fsensor_init()
2022-09-16 10:08:39 +02:00
Alex Voinea
43db24e4fe
IR_sensor_analog voltage readings
2022-09-16 10:08:39 +02:00
Alex Voinea
7224b5c2b6
Remove OQ and add fancy autoload interaction
2022-09-16 10:08:39 +02:00
Alex Voinea
d84e6bda63
Remove old fsensor init
2022-09-16 10:07:49 +02:00
Alex Voinea
338f1f7615
IR volt debugging
2022-09-16 10:07:49 +02:00
Alex Voinea
f03922f7cf
Fix repeated autoload menu
2022-09-16 10:07:49 +02:00
Alex Voinea
45e43137a5
Filament sensor refactoring initial
2022-09-16 10:07:49 +02:00
Alex Voinea
ce0d8f2f12
Correct sensor orientation for old pat9125 init
2022-09-16 10:06:26 +02:00
Alex Voinea
4f08caaa2b
Shorter TWI timeout
2022-09-16 10:06:26 +02:00
Alex Voinea
47e610a2c6
Add disable() to swi2c as well
2022-09-16 10:06:26 +02:00