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

Best Performance Settings for Arduino Due #340

Open
cocktailyogi opened this issue Dec 6, 2014 · 3 comments
Open

Best Performance Settings for Arduino Due #340

cocktailyogi opened this issue Dec 6, 2014 · 3 comments
Labels

Comments

@cocktailyogi
Copy link

Hi,

I am using Repetier 0.92 on Arduino Due within a delta printer with Ramps-FDv2 and StpperDrivers DRV8825. My goal is to achieve steprates higher than 30000 Hz.

It works quiete good, but I want more speed per axis. By configuring the configuration.h I realised, that many parameters seem to be taken over from 8bit-AVR. The Arduino due has more performance, but I do not know best parameters. Are there already measurmements available or should I do some? I am taking about following settings:

DELTA_SEGMENTS_PER_SECOND_PRINT
DELTA_SEGMENTS_PER_SECOND_MOVE
DELTASEGMENTS_PER_PRINTLINE
STEP_DOUBLER_FREQUENCY
ALLOW_QUADSTEPPING
MAX_HALFSTEP_INTERVAL
PRINTLINE_CACHE_SIZE
LOW_TICKS_PER_MOVE

I know, that default settings work, but I want optimal performance and to understand, what these settings do.

Yogi

@repetier
Copy link
Owner

repetier commented Dec 6, 2014

First you should take of the high performence by setting STEP_DOUBLER_FREQUENCY to 90000 so you get 90khz wothout even doing double stepping trick, while avrs limit is 40khz with quad stepping.

I also set DELTA_SEGMENTS_PER_SECOND_PRINT = DELTA_SEGMENTS_PER_SECOND_MOVE = 600 which is 3 times more then i've done with AVR.

The we take into account that we have 96kb ram and not 8kb :-)
PRINTLINE_CACHE_SIZE 32
DELTASEGMENTS_PER_PRINTLINE 100

now it is very unlikely that we run out of buffer while achieving higher linearity of print head with much higher stepper speeds!

@cocktailyogi
Copy link
Author

Thy, I will test this seettings. But what means:
LOW_TICKS_PER_MOVE ?

@repetier
Copy link
Owner

repetier commented Dec 6, 2014

/** \brief Cycles per move, if move cache is low.

This value must be high enough, that the buffer has time to fill up. The problem only occurs at the beginning of a print or
if you are printing many very short segments at high speed. Higher delays here allow higher values in PATH_PLANNER_CHECK_SEGMENTS.
*/
#define LOW_TICKS_PER_MOVE 250000

Essentially it means the moves will get slowed down compared to wanted speed if they take not enough time and buffer is not full enough. They take only effect, when MOVE_CACHE_LOW 10 lines or less are stored. This is to allow the buffer to get full and not empty because we are having a botteneck with refilling the queue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants