Alex Voinea
ea7b395852
Remove useless parantheses
...
Found these a few months ago when I was trying some other optimization. Don't want to make a PR just for this, so I'll just slide it here in this existing PR.
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
d175dba669
optimisation: use expired_cont is specific places
...
!variable.running() || variable.expired()
is equal to
variable.expired_cont()
The latter required less flash memory
Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
00ffab8f62
optimisation: combine if statements in Sensors menu
...
FINDA status is always 0 or 1
Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
7ff514621c
cleanup: remove unused global variable
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
69b4696114
use lcd_puts_P instead of lcd_printf_P
...
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
66bb9bcfe4
optimisation: lcd_temp_cal_show_result
...
result is boolean so always update the EEPROM
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
bd796a2cb3
optimisation: more lcd_putc_at
...
Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
70dadc4202
M115: Extruder count is always 1
...
Change in memory:
Flash: -8 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
62cbc829f6
optimisation: use new eeprom methods in check_printer_version()
...
Change in memory:
Flash: -48 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
cd8a22d6b3
optimisation: utils: don't initialise global variables
...
They will be set by fCheckModeInit() by reading from EEPROM
Change in memory:
Flash: -2 bytes
SRAM: -1 byte
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
7a8dfdae53
optimisation: use new EEPROM init method for fCheckModeInit
...
Change in memory:
Flash: -90 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
6aafbe69a8
cleanup: remove unused function declaration
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
6e02a082e2
cleanup: make heating_status_counter static
...
Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
ab934f8ba5
optimisation: make clock_interval static and 1 byte
...
Change in memory:
Flash: -16 bytes
SRAM: -1 byte
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
66e629ba74
cleanup: remove unused variable FSensorStateMenu
2023-04-15 13:45:09 +00:00
Guðni Már Gilbert
3cd97a5e8f
optimsation: draw cursor and set position with one function
...
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert
2120d17912
optimisation: simplify T-code response for single material
...
Extruder is always 0
Change in memory:
Flash: -12 bytes
SRAM: 0 bytes
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert
420f745bed
optimisation: mmu: combine if statements
...
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert
4d90ecbcc4
cleanup: remove ctype include
...
We don't use any function from this header
No change in code size
2023-04-15 13:45:08 +00:00
Guðni Már Gilbert
3dda8b5c00
optimise fan check selftest code
...
Tested on MK3S+
Change in memory:
Flash: -174 bytes
SRAM: 0 bytes
2023-04-15 11:11:16 +00:00
Guðni Már Gilbert
d6c81dab62
Fix manual fan check menu
...
lcd_encoder was not being updated
we need to call manage_inactivity
Tested on MK3S+
Change in memory:
Flash: +6 bytes
SRAM: 0 bytes
2023-04-15 10:59:58 +00:00
Guðni Már Gilbert
95acdba5fa
Fix lcd_update() FW crashes
...
Change in memory:
Flash: +10 bytes
SRAM: 0 bytes
2023-04-14 21:31:12 +00:00
Guðni Már Gilbert
f34c1ffeac
Fix an issue where visualisation is overwritten by SD file name
...
We should let EndReport set the custom message type state to Status
This will ensure the SD file name is shown correctly AFTER we've shown
the visualisation
Currently the visualisation is cut off in the middle by ReportProgressHook
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-04-14 09:32:41 +02:00
Guðni Már Gilbert
4b3dc65598
Don't always set MSG_WELCOME at end of toolchange
...
This should only be set when NOT printing
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-04-14 09:32:41 +02:00
Alex Voinea
41b8279805
Fix eeprom table addresses
2023-04-13 11:34:18 +02:00
Alex Voinea
af4a3f3328
Reorder eeprom reads
...
Saves 4B of flash
2023-04-13 11:15:17 +02:00
Alex Voinea
f333d36e47
Use a different location as a kill message pending flag
...
The old implementation would fail if the message was in progmem at address 0xffff or 0x0000 (both unlikely). It would also fail if the eeprom was initialized to some other random value, which could have been dangerous when displayed as a full screen message.
2023-04-13 10:57:00 +02:00
Alex Voinea
4b65d49512
Move kill check earlier during startup
2023-04-13 10:57:00 +02:00
Alex Voinea
2aca89d6dc
Update eeprom documentation
2023-04-13 10:57:00 +02:00
Alex Voinea
f388d8abb6
postponed kill() message with softReset
2023-04-13 10:57:00 +02:00
Alex Voinea
82343184e7
Merge pull request #4036 from gudnimg/optimise-mmu-silent-mode
...
optimisation: MMU silent mode toggling & init
2023-04-13 10:54:21 +02:00
Alex Voinea
193bce7f20
Merge pull request #4037 from gudnimg/optimisation-tmc2130-stuff
...
Optimisation: Disable M351 when using TMC2130 and code related to it
2023-04-13 10:54:08 +02:00
Scott Mudge
3cd125c566
MeatPack gcode compression support
2023-04-13 10:50:15 +02:00
3d-gussner
3b9d1b8980
Merge pull request #4138 from gudnimg/menu-fixes-gudni
...
Fix broken editing menu
2023-04-13 10:16:19 +02:00
Alex Voinea
e4bedf0523
Merge pull request #4133 from gudnimg/xyzcal-opt
...
Reduce XYZ cal code size
2023-04-12 21:35:58 +02:00
Alex Voinea
6c6f98fb03
Merge pull request #4134 from gudnimg/tmc2130_home_exit-opt
...
tmc2130: simplify parsing axis mask
2023-04-12 21:35:46 +02:00
Alex Voinea
c16e7733e9
Merge pull request #4141 from gudnimg/double-feedback-xyz-cal-menu
...
menu: Fix an issue with feedback double triggering in XYZ cal menu on knob click
2023-04-12 21:29:24 +02:00
Guðni Már Gilbert
225999b79d
Remove redundant colon characters
...
The Edit menu already applies a colon to the label string
no need to render it twice.
Change in memory:
Flash: -4 bytes
SRAM: 0 bytes
2023-04-12 17:37:57 +00:00
Guðni Már Gilbert
b91941f354
Fix broken editing menu
...
- currentValue must be initialised when entering the menu
- Consume lcd_encoder value when editing an item
Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-04-12 17:37:56 +00:00
Guðni Már Gilbert
53e3193252
Fix bug with uint8_t not shown correctly on LCD
...
Change in memory:
Flash: +8 bytes
SRAM: 0 bytes
2023-04-12 17:37:23 +00:00
Guðni Már Gilbert
2fc810289a
Fix an issue with feedback double triggering in XYZ cal menu
...
The feedback is produced due to the user clicking the knob
the menu_goto call should therefore not trigger additional feedback when
switching between menus.
No change in memory
2023-04-12 16:46:33 +00:00
Alex Voinea
d688f6ec6f
Menu item code: optimize return
2023-04-10 15:29:58 +02:00
Guðni Már Gilbert
b735c3d040
optimisation: extract common code into SETTINGS_FANS_CHECK
...
Implement it as a function instead of preprocessor macro
this allows us to control inlining
Change in memory:
Flash: -34 bytes
SRAM: 0 bytes
2023-04-10 13:24:39 +02:00
Alex Voinea
9a1eb7b239
Prevent rendering of the remaining menu items if the menu is clicked
...
Also prevent clicking
2023-04-10 13:02:22 +02:00
Alex Voinea
d3d201730e
Do not return early if the menu item is clicked
...
Just let the menu draw till the end even if an item is clicked. The worst this can do is waste some clock cycles
flash: -1222B
ram: 0B
2023-04-10 13:02:22 +02:00
Alex Voinea
bfdef3af9f
Fix menu items optimizations when extracting to functions.
...
Properly increment menu_item when the menu item is clicked so that you don't get multiple menu items clicked if in view (when the menu code is deduplicated to functions)
2023-04-10 13:02:22 +02:00
Alex Voinea
339c080b19
tmc2130: optimize mask when iterating over axes
...
Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-09 17:49:28 +02:00
Guðni Már Gilbert
c4b4cbfc7b
Make the function static
2023-04-09 13:40:10 +00:00
Alex Voinea
afd4f1d5bc
Iterate over axis bits
2023-04-09 15:17:01 +02:00
Guðni Már Gilbert
4e31bb94ef
tmc2130: simplify parsing axis mask
...
There is no need to check if every axis bit with each for-loop
iteration. We just need to check if a given axit bit is set.
Change in memory:
Flash: -6 bytes
SRAM: 0 bytes
2023-04-09 13:12:22 +00:00
Guðni Már Gilbert
e70344dc94
Reduce XYZ cal code size
...
Change in memory:
Flash: -120 bytes
SRAM: 0 bytes
2023-04-09 12:23:42 +00:00
Guðni Már Gilbert
902780a929
Disable M351 when using TMC2130 and code related to it
...
Change in memory (MK3S+ multilang build)
Flash: -250 bytes
SRAM: 0 bytes
2023-04-07 21:07:26 +02:00
Alex Voinea
449e83c7ff
Fix filament autoloading
2023-04-07 10:36:44 +02:00
Alex Voinea
2a3e4cac75
Fix toggle menu items rendering
2023-04-07 09:35:31 +02:00
Alex Voinea
49096f14c3
SD menu do not consume click in _scrolling state
2023-04-07 09:11:49 +02:00
Alex Voinea
10ba758bf7
Fix menu encoder rotation
2023-04-06 21:35:30 +02:00
Alex Voinea
373fab883d
Fix fsensor runout conditions
...
And also reorder autoload and runout conditions
2023-04-06 10:37:29 +02:00
D.R.racer
dfe6ea6470
Fixup after rebase
2023-04-06 07:44:16 +02:00
D.R.racer
c16db4e607
Remove lcd_encoder clamp check
...
as proposed by @leptun
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert
6d2a66c1e8
match menu_goto's encoder type to lcd_encoder type
...
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert
4ca7f8ce2d
cleanup: drop lcd_encoder in _menu_edit_P
...
Taken from PR 3985 by adding currentValue infrastructure
Change in memory:
Flash: 0 bytes
SRAM: 0 bytes
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert
062ea1cf25
optimisation: make lcd_encoder two bytes (int16_t)
...
lcd_encoder was int32_t (4 bytes) because of the menu code
when editing through the menus, the menus only accept
int16_t so it doesnt make sense to use int32_t.
Change in memory:
Flash: -892 bytes
SRAM: -2 bytes
2023-04-06 07:44:16 +02:00
Guðni Már Gilbert
c754c8dd5f
Remove menu code in favor of simplicity
...
This change needs to be approved of course due to it affecting UI
The affect UI is only one menu
lcd_settings_linearity_correction_menu
I doubt many users are using this menu except very advanced users.
I propose we delete the variant of menu_draw_P which was used for
uint8_t but renders them as floats.
Instead treat
uint8_t same as int16_t i.e. just render integers.
Keeping it simple :) Solve our fanSpeed problem.
Change in memory:
Flash: -140 bytes
SRAM: -2 bytes
2023-04-06 06:05:59 +02:00
Guðni Már Gilbert
876ea6c228
Change block buffer fan speed to one byte
...
It's only assigned to variables which are uint8_t
Change in memory:
Flash: -10 bytes
SRAM: -16 bytes
2023-04-06 06:05:59 +02:00
Guðni Már Gilbert
2ced00f21c
Convert fanSpeed and saved_fan_speed to uint8_t
...
These variables only range from 0 to 255
For the menus we currently need to convert fanSpeed to int16_t.
Change in memory:
Flash: -160 bytes
SRAM: -2 bytes
2023-04-06 06:05:59 +02:00
Guðni Már Gilbert
76a8c80ef0
Fix issue with size being wrong at runtime
...
Change in memory:
Flash: +40 bytes
SRAM: 0 bytes
2023-04-05 17:52:48 +02:00
Guðni Már Gilbert
7ad137e570
Add preheat_cmd into PROGMEM
...
Change in memory:
Flash: -30 bytes
SRAM: 0 bytes
2023-04-05 17:52:48 +02:00
Guðni Már Gilbert
5ef00fb78a
Reduce code size in first layer calibration
...
Pull out common enqueuing loop into one function
Change in memory:
Flash: -70 bytes
SRAM: 0 bytes
2023-04-05 17:52:48 +02:00
Guðni Már Gilbert
5b04812017
Eliminate subtraction in print time statistic
...
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-05 11:16:54 +02:00
Guðni Már Gilbert
ee39cb4e90
remove one global variable
2023-04-05 11:16:54 +02:00
Guðni Már Gilbert
768319f1e7
optimisation: cleanup print statistics
...
Change in memory:
Flash: -104 bytes
SRAM: 0 bytes
2023-04-05 11:16:54 +02:00
Guðni Már Gilbert
b9717b03e7
Make bFilament variables static and move to top of file
2023-04-05 11:16:14 +02:00
Guðni Már Gilbert
68d902c4e1
Take FilamentAction as parameter
...
Change in memory:
Flash: -28 bytes
SRAM: 0 bytes
2023-04-05 11:16:14 +02:00
Guðni Már Gilbert
210bbe9764
Remove dead code
2023-04-05 11:16:14 +02:00
Guðni Már Gilbert
301b2e4384
Optimisation: Move filAutoLoad to ultralcd
...
We can reuse preheat_or_continue() function
Change in memory:
Flash: -22 bytes
SRAM: 0 bytes
2023-04-05 11:16:14 +02:00
Alex Voinea
1b9379b328
PSU_DELTA alternative
2023-04-05 11:12:17 +02:00
Guðni Már Gilbert
ffc34edf4c
Pull in changes from PR 4080
...
Additionally make lcd_encoder_bits static
since it's not used outside the ISR context
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert
a7e9ccfb57
Major refactoring
...
Fixes all the issues I've found so far.
Roughly 60B of flash saved. Need to double check that later.
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert
d89e6de040
Update lcd_encoder in lcd_update
...
This fixes the spurious feedback when rotating the knob
because lcd_update is called much often than the interval
at which the lcd rendering is updated
Change in memory
Flash: -88 bytes
SRAM: -9 bytes
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert
67c206ea5c
Remove menu_back_if_clicked_fb
...
Since feedback is always produced on knob click
we can use menu_back_if_clicked instead
Change in memory:
Flash: -18 bytes
SRAM: 0 bytes
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert
0cac7612db
optimisation: Always make sound when knob is clicked or rotated
...
This commit adds the ability for firmware to make sounds when the
knob is clicked or rotated, when LCD updates are disabled.
The improvement here is the sound is being made with one line of code
whether or not LCD updates are enabled or disabled.
Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-04-05 10:30:59 +02:00
Guðni Már Gilbert
7de725f840
G80: Change 'correction' data type to int8_t
...
Valid values range from -100 to 100. Storing this value as four bytes
(int32_t) is not efficient.
Instead we can store G80 user input temporarily as int32_t and check
if the value is within the allowed range. If it is, then we convert the
int32_t (4 bytes) to int8_t (1 byte).
Change in memory:
Flash: -78 bytes
SRAM: 0 bytes
2023-04-05 10:13:27 +02:00
Guðni Már Gilbert
956efde822
G80: Re-implement optimisation from user espr14
...
Original Pull Request:
https://github.com/prusa3d/Prusa-Firmware/pull/3061
Change in memory:
Flash: -292 bytes
SRAM: 0 bytes
2023-04-05 10:13:27 +02:00
D.R.racer
7f921b4071
Limit some of the float formatting to fit 30 bytes buffer in enquecommandf_P
2023-04-05 09:10:39 +02:00
Guðni Már Gilbert
b9ce7637df
Rename enquecommandf() into enquecommandf_P()
2023-04-05 09:10:39 +02:00
Guðni Már Gilbert
7e119f733f
Implement variant of enquecommand which accepts format string
...
This eliminates many local buffers
Change in memory:
Flash: -450 bytes
SRAM: 0 bytes
2023-04-05 09:10:39 +02:00
Guðni Már Gilbert
687c14808a
optimisation: MMU silent mode toggling & init
...
Change in memory:
Flash: -16 bytes
SRAM: -2 bytes
2023-04-04 17:07:55 +00:00
3d-gussner
4cf46893fc
Revert "Fix a few ambiguous overloaded calls"
...
This reverts commit b7c42e83cf .
2023-04-04 16:12:41 +02:00
Guðni Már Gilbert
46852e9941
M862: determine decimal through math rather than checking for null byte/pointer.
...
This way doesn't add any more flash memory.
Calculating the string length or checking for a null byte
will end up increasing flash consumption overall.
2023-04-04 15:22:21 +02:00
Guðni Már Gilbert
478627b6bc
Simplify parsing M862
...
This gets rid of float conversion.
We just need to check the 6th character when M862 is detected. This
character gives us the digit after the dot.
Change in memory:
Flash: -20 bytes
SRAM: 0 bytes
2023-04-04 15:22:21 +02:00
Guðni Már Gilbert
b9fecab239
Reduce calls to __divsf3 when calculating feedrate
...
For non-time critical code it is more effcient to call a function
rather inlining each division operation.
Change in memory:
Flash: -122 bytes
SRAM: 0 bytes
2023-04-04 15:16:56 +02:00
Guðni Már Gilbert
65750b9a4c
accel is uint32_t, drop float in comparsion
...
Change in memory:
Flash: -24 bytes
SRAM: 0 bytes
2023-04-04 15:11:29 +02:00
Guðni Már Gilbert
c0e21563e7
planner: optimise acceleration limits
...
Rename acceleration_st to acceleration_steps_per_s2 to be same as Marlin 2
Store the accelerator in local variable accel
while we are performing the limit checks.
When limit checks are done we can assign
the block it's acceleration. Especially
block->acceleration_steps_per_s2 is now only written to once, instead of direcly in the limit checks.
Change in memory:
Flash: -118 bytes
SRAM: 0 bytes
2023-04-04 15:11:29 +02:00
3d-gussner
a1234b3670
Merge pull request #4122 from leptun/mmu2_fix_ptfe_check_distance
...
Fix MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH for MMU2
2023-04-04 15:04:58 +02:00
Guðni Már Gilbert
b7c42e83cf
Fix a few ambiguous overloaded calls
...
Noticed this when exploring another optimisation
By specification exactly which overloaded function to use
we save some memory
Seems to have something to do with doing arithmetic in the function argument
Change in memory:
Flash: -156 bytes
SRAM: 0 bytes
2023-04-04 15:03:48 +02:00
3d-gussner
3b049a1b91
Merge pull request #4111 from gudnimg/E-cool-gudni
...
Fix clicking noise during Toolchange when E-cool mode is enabled
2023-04-04 15:03:37 +02:00
3d-gussner
eb3421f0f2
Merge pull request #4021 from gudnimg/cleanup_crashdet_detected
...
cleanup: remove unnecessary LCD update in `crashdet_detected()`
2023-04-04 14:58:30 +02:00
3d-gussner
91ad87b5a7
Merge pull request #4096 from gudnimg/msg-btn-more-translation
...
Remove `MSG_BTN_MORE` from translation list
2023-04-04 14:57:30 +02:00
Guðni Már Gilbert
3e4592b7fd
Don't duplicate silent mode menu
...
Create a common function for the menu
This saves a lot of memory and 50 lines of code!
Change in memory:
Flash: -110 bytes
SRAM: 0 bytes
2023-04-04 14:47:45 +02:00
Alex Voinea
ebf8b16df5
Fix MMU2_CHECK_FILAMENT_PRESENCE_EXTRUSION_LENGTH for MMU2
2023-04-02 11:35:17 +02:00