Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runtime XY_FREQUENCY_LIMIT adjustment #17583

Merged
merged 11 commits into from
Apr 27, 2020

Conversation

studiodyne
Copy link
Contributor

@studiodyne studiodyne commented Apr 17, 2020

Runtime Frequency Limitation
@thinkyhead : Thks to give time for this job , and make art 👍

TESTED: Give good results for light computation, and with the minimal planner feedrate , its now possible to bypass microves/artifacts without ultra slowdown that stop the machine
History/diffs

  • Fixes and clean up
  • Strategy of 3 stored segments permanently , if 3 segments undersize, then slowdown, because oscillation of the machine need at least 3 impulses to begin
  • Full speed for all current segments that don't need to slowdown
  • Minimum feedrate , to fly over micromoves and artifacts without excessive slowdown feedrate
  • Gcode/Lcd real time settings
  • Bypass of the feature if Frequency = 0
  • en + fr lcd language

@thinkyhead thinkyhead changed the title [FR] XY_FREQUENCY_LIMIT now in REAL TIME (fw based) Real-time XY_FREQUENCY_LIMIT Apr 17, 2020
@thinkyhead
Copy link
Member

"[FR]" is intended for feature requests, not pull requests.

@thinkyhead thinkyhead changed the title Real-time XY_FREQUENCY_LIMIT Runtime XY_FREQUENCY_LIMIT adjustment Apr 17, 2020
@studiodyne studiodyne force-pushed the frequencydyn branch 6 times, most recently from 691fb0e to ee42645 Compare April 17, 2020 17:07
@studiodyne
Copy link
Contributor Author

@thinkyhead
I've choosen M201 F to set , because , accelleration and frequency have the same adn , but , it's my idea

@studiodyne studiodyne force-pushed the frequencydyn branch 5 times, most recently from 5194245 to 8bd9521 Compare April 21, 2020 17:03
@thinkyhead thinkyhead force-pushed the frequencydyn branch 13 times, most recently from 5ff4151 to e6a7af8 Compare April 21, 2020 21:54
@studiodyne studiodyne force-pushed the frequencydyn branch 2 times, most recently from ad38ee9 to fe17ebc Compare April 24, 2020 06:31
@studiodyne studiodyne force-pushed the frequencydyn branch 2 times, most recently from 5f5475e to 78f8deb Compare April 25, 2020 07:26
@thinkyhead thinkyhead merged commit 5ae45ba into MarlinFirmware:bugfix-2.0.x Apr 27, 2020
@studiodyne studiodyne deleted the frequencydyn branch April 27, 2020 11:38
@Evg33
Copy link
Contributor

Evg33 commented Apr 28, 2020

SKR1.4T
config:

#define XY_FREQUENCY_LIMIT      10 // (Hz) Maximum frequency of small zigzag infill moves. Set with M201 F<hertz>.
#ifdef XY_FREQUENCY_LIMIT
  #define XY_FREQUENCY_MIN_PERCENT 5 // (percent) Minimum FR percentage to apply. Set with M201 G<min%>.
#endif

Faliled compilation with LCD Menu:


In file included from Marlin\src\lcd\menu\menu_advanced.cpp:31:
Marlin\src\lcd\menu\menu_advanced.cpp: In function 'void menu_advanced_acceleration()':
Marlin\src\lcd\menu\menu_advanced.cpp:415:86: error: 'refresh_frequency_limit' was not declared in this scope
  415 |       EDIT_ITEM(uint16_3, MSG_XY_FREQUENCY_LIMIT, &planner.xy_freq_limit_hz, 0, 100, refresh_frequency_limit(), true);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~
Marlin\src\lcd\menu\menu.h:383:39: note: in definition of macro '_MENU_INNER_P'
  383 |     MenuItem_##TYPE::action(plabel, ##V);                     \
      |                                       ^
Marlin\src\lcd\menu\menu.h:437:54: note: in expansion of macro '_MENU_ITEM_P'
  437 | #define MENU_ITEM_P(TYPE, PLABEL, V...)              _MENU_ITEM_P(TYPE, false, PLABEL, ##V)
      |                                                      ^~~~~~~~~~~~
Marlin\src\lcd\menu\menu.h:463:55: note: in expansion of macro 'MENU_ITEM_P'
  463 | #define EDIT_ITEM_P(TYPE, PLABEL, V...)               MENU_ITEM_P(TYPE, PLABEL, ##V)
      |                                                       ^~~~~~~~~~~
Marlin\src\lcd\menu\menu.h:464:55: note: in expansion of macro 'EDIT_ITEM_P'
  464 | #define EDIT_ITEM(TYPE, LABEL, V...)                  EDIT_ITEM_P(TYPE, GET_TEXT(LABEL), ##V)
      |                                                       ^~~~~~~~~~~
Marlin\src\lcd\menu\menu_advanced.cpp:415:7: note: in expansion of macro 'EDIT_ITEM'
  415 |       EDIT_ITEM(uint16_3, MSG_XY_FREQUENCY_LIMIT, &planner.xy_freq_limit_hz, 0, 100, refresh_frequency_limit(), true);
      |       ^~~~~~~~~
Marlin\src\lcd\menu\menu_advanced.cpp:415:86: error: 'refresh_frequency_limit' was not declared in this scope
  415 |       EDIT_ITEM(uint16_3, MSG_XY_FREQUENCY_LIMIT, &planner.xy_freq_limit_hz, 0, 100, refresh_frequency_limit(), true);
      |                                                                                      ^~~~~~~~~~~~~~~~~~~~~~~
Marlin\src\lcd\menu\menu.h:388:58: note: in definition of macro '_MENU_INNER_P'
  388 |       (encoderLine == _thisItemNr, _lcdLineNr, plabel, ##V);  \
      |                                                          ^
Marlin\src\lcd\menu\menu.h:437:54: note: in expansion of macro '_MENU_ITEM_P'
  437 | #define MENU_ITEM_P(TYPE, PLABEL, V...)              _MENU_ITEM_P(TYPE, false, PLABEL, ##V)
      |                                                      ^~~~~~~~~~~~
Marlin\src\lcd\menu\menu.h:463:55: note: in expansion of macro 'MENU_ITEM_P'
  463 | #define EDIT_ITEM_P(TYPE, PLABEL, V...)               MENU_ITEM_P(TYPE, PLABEL, ##V)
      |                                                       ^~~~~~~~~~~
Marlin\src\lcd\menu\menu.h:464:55: note: in expansion of macro 'EDIT_ITEM_P'
  464 | #define EDIT_ITEM(TYPE, LABEL, V...)                  EDIT_ITEM_P(TYPE, GET_TEXT(LABEL), ##V)
      |                                                       ^~~~~~~~~~~
Marlin\src\lcd\menu\menu_advanced.cpp:415:7: note: in expansion of macro 'EDIT_ITEM'
  415 |       EDIT_ITEM(uint16_3, MSG_XY_FREQUENCY_LIMIT, &planner.xy_freq_limit_hz, 0, 100, refresh_frequency_limit(), true);
      |       ^~~~~~~~~
Marlin\src\lcd\menu\menu_advanced.cpp:416:24: error: 'ROUND' was not declared in this scope; did you mean 'LROUND'?
  416 |       editable.uint8 = ROUND(planner.xy_freq_min_speed_factor * 255 * 100); // percent to u8
      |                        ^~~~~
      |                        LROUND
*** [.pio\build\LPC1769\src\src\lcd\menu\menu_advanced.cpp.o] Error 1
======================================================== [FAILED] 

jmp0x0000 pushed a commit to jmp0x0000/Marlin that referenced this pull request Aug 7, 2020
njibhu pushed a commit to njibhu/Marlin that referenced this pull request Aug 24, 2020
HairingX pushed a commit to HairingX/Marlin that referenced this pull request Jun 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants