26

Re: Solidoodle3 firmware unveiled

Does MAX_POS override HOME_POS?  I thought the min and max served as software endstops.  When it hits an endstop switch during homing, it should set the coordinate for that position according to the HOME_POS value for that axis.  I would think that setting the MAX_POS higher would make sure that it doesn't stop before it gets to the endstop because it thinks it has already reached max.

27

Re: Solidoodle3 firmware unveiled

IanJohnson wrote:

Does MAX_POS override HOME_POS?  I thought the min and max served as software endstops.  When it hits an endstop switch during homing, it should set the coordinate for that position according to the HOME_POS value for that axis.  I would think that setting the MAX_POS higher would make sure that it doesn't stop before it gets to the endstop because it thinks it has already reached max.

I saw the home pos redefined when using the straight SD3 mods as posted. X and Y were shifted.

28

Re: Solidoodle3 firmware unveiled

IanJohnson wrote:

Does MAX_POS override HOME_POS?  I thought the min and max served as software endstops.  When it hits an endstop switch during homing, it should set the coordinate for that position according to the HOME_POS value for that axis.  I would think that setting the MAX_POS higher would make sure that it doesn't stop before it gets to the endstop because it thinks it has already reached max.

The home command already travels to 1.5*MAX_POS, so if you are using the proper firmware homing, having underestimated values will not stop the axes before reaching the endstops. What I didn't get, are you only seeing the axes shifted in Repetier, or is the print shifted as well?

29 (edited by adrian 2013-03-08 09:07:31)

Re: Solidoodle3 firmware unveiled

The actual print is shifted

30

Re: Solidoodle3 firmware unveiled

Ok I found the problem. The Marlin version which the official firmware is based on is a bit different. In our current version, the MAX_POS redefines HOME_POS because MANUAL_*_HOME_POS is never actually used unless the previous

#define MANUAL_HOME_POSITIONS

is defined (which is not in our case). This was not happening in the older version of the firmware. Actually this is a harmless bug in our firmware: we are defining the MANUAL_HOME_POS values but not enabling them.

Now, I still don't understand why one would want to set the MAX_POS to 250 instead of 200 (maybe it is really for "manual" homing, where you travel far in X and Y, in which case Ian is correct, the firmware might stop the movement before the endstop is reached, but nobody really uses that anymore), but defining MANUAL_HOME_POSITIONS should make the new firmware work with "Solidoodle" values.

Adrian, if you have some time could you please check this, if it's not too much trouble? Thanks!

However, I suggest keeping our firmware as it is, with the correct limits, as I see no reason to change it.

31 (edited by adrian 2013-03-08 13:02:14)

Re: Solidoodle3 firmware unveiled

Rincewind wrote:

but defining MANUAL_HOME_POSITIONS should make the new firmware work with "Solidoodle" values.

Adrian, if you have some time could you please check this, if it's not too much trouble? Thanks!

Ok, uncommented MANUAL_HOME_POSITIONS and reset MAX_* to 250 and yes this fixes behavior back to 'whats expected'. Prints are back at the right co-ordinates. Good find!

Might want to add this to your previous post Rincewind! smile