Thursday 23 January 2014

Withdrawal symptoms

I am starting to suffer from "withdrawal symptoms", the Morgan parts are sitting there, looking at me, and I can't progress...  At least the Kapton tape and thermistors have shipped, but will not be here any time soon. 

Quentin should be sorting out his backlog of Morgan printed parts orders this week so I expect the printed parts towards the end of the month, at least then I'll be able to progress.  In the mean time the stepper driver boards should be here soon, and I have started looking at the Morgan software.

Quentin reported that the Arduino runs out of steam to when he tried to up the number of delta calculations per second.  Currently the software is configured for 200 calcs per second on my hardware.  I have committed to look at improving that, but ideally I need moving steppers to test (the problem manifests as loss of quality and steppers actually slowing down when it runs into trouble).

Being new to RepRap but an old hand at embedded software (I used to write embedded software for a living) I feel this is one area where I can add value.

The Morgan software builds on top of the Cartesian calculations for the other RepRap machines - the x and y movements are translated into theta and psi angles by inserting an extra calculation cycle.  The maths is fairly standard, there is a lot of squaring, some square roots, and a few arctan functions being performed every time.  Everything is done in floating point maths (which is slower than integer maths in a processor).

Staying within the current scheme (it is possible to completely overhaul the maths and not do the Cartesian to angle conversion), the first step would be to optimise the equations for speed.  If more speed is needed, convert the whole lot to integer maths, but the gains vs. effort might not be worth it.

The next post will be slightly technical on the first things I'm trying.

No comments:

Post a Comment