Traumflug

Results 424 comments of Traumflug

``` static const axes_uint32_t PROGMEM temporal_const_P = { (uint32_t)((double)F_CPU * F_CPU * 1000 / ((double)(STEPS_PER_M_X) * ACCELERATION)), ... } ``` Unless I'm mistaken, you apply the same acceleration to each...

@Wurstnase > Accelerate other axis by a factor of delta[axis]/delta_total \* constant of fast axis. I see. You want to derivate the other axes from the fastest one, similar to...

Learned something today, from the [Lambrechts paper](http://www.dct.tue.nl/New/Lambrechts/DCT_2003_18.pdf) (the same I linked above already). This is from page 26: ![integrator chain](https://cloud.githubusercontent.com/assets/318581/17383177/dcb7c30a-59d4-11e6-95ca-eed64a4924e1.png) To the left is a "generator", which outputs 1, 0...

2 ms = 32'000 clocks on the slowest controller. Perhaps 10'000 clocks taking the time for step generation and G-code parsing into account. One 32-bit division = 600 clocks, IIRC....

To keep my head from exploding I started writing a wiki article: http://www.reprap-diy.com/printer_controller_trajectory_planning

> should we close it? Closing? For my part I just warmed up with the topic. Closing can be done when acceleration with ACC_TEMPORAL is working for all axes and...

> I think you mean millisecond Thanks, fixed. BTW., feel invited to edit this wiki yourself. > The key feature of that article is that a formula is proposed which...

> Also, the very first interrupt will occur at 0! So setting up the capture-compare-register at init to 0xffffffff solves this. Excellent catch! > I made some measurements and it...

Lookahead for ACCELERATION_TEMPORAL by overlapping movements, please. This way we get rid of these instant direction/speed changes and get support for quadratic Bezier movements for (almost) free.

> You will need to fix the negative c_candidate some other way than just "step immediately". Those spikes likely represent lost steps because your stepper cannot react that quickly. While...