Help. . . All dimensions are doubled!

The official subforum for discussion of the installation and use of the official M2 Dual Extruder upgrade.
Post Reply
User avatar
Tim
Posts: 1204
Joined: Thu Apr 10, 2014 2:19 pm
Location: Poolesville, Maryland
Contact:

Help. . . All dimensions are doubled!

Post by Tim » Sun Aug 17, 2014 2:58 pm

I finally got everything wired up and attempted to run "mydual2.gcode". That didn't get very far as it ran off of the back right side of the plate. Poking around, I discovered that when I jog any value, such as X or Y or Z, by some amount, the actual movement is twice that amount. So where the gcode is supposed to make a move to the middle of the plate, it ends up at the far back and right. The extruders extrude twice as much as they should and everything is a big mess.

I am tempted to suspect that this has to do with my 8-microstep motor drivers. However, I worked my way through the Marlin code, and I can't find any significant difference between the stepper code for my last working firmware (from Ketil) and the current one (the M2_Dual firmware from the MakerGear wiki site). The new code appears to be missing five lines that initialize the microcontroller pins connected to the stepper drivers' MS1 pins to "output", but apparently "output" is the default state for these pins because adding those lines back in doesn't make any difference.

One odd aspect of the stepper motor driver chips is that the older chips (the A4984) uses MS1, MS2 = 1, 1 to encode 8 microsteps, while the newer chip (the AD4982) uses the same pin states to encode 16 microsteps. So changing the "MICROSTEP_MODES" in the Configuration_adv.h file from all "16" to all "8" values has absolutely no effect. It's not clear to me that this has any bearing at all on my problem. Anybody have any ideas?
Last edited by Tim on Sun Aug 17, 2014 3:27 pm, edited 1 time in total.

User avatar
Tim
Posts: 1204
Joined: Thu Apr 10, 2014 2:19 pm
Location: Poolesville, Maryland
Contact:

Re: Help. . . All dimensions are doubled!

Post by Tim » Sun Aug 17, 2014 3:27 pm

Okay, I found the solution.

This solution applies for everyone who has the older RAMBo version 1.0e, dating from around January 2013 or so. These boards have an older stepper motor driver that has half the resolution of RAMBo 1.1 boards. Because of this, all motor movements are twice as coarse.

Adjusting the microstep size makes no difference, because the old stepper motor driver uses the same code for 1/8 steps as the new stepper motor driver uses for 1/16 steps.

The change needs to be made in Configuration.h, line 360:

Code: Select all

#define DEFAULT_AXIS_STEPS_PER_UNIT   {44.44*2,44.44*2,200*2,471.5}  // default steps per unit for Ultimaker
is correct for RAMBo 1.1 and newer, while

Code: Select all

#define DEFAULT_AXIS_STEPS_PER_UNIT   {88.88/2,88.88/2,400/2,471.5/2}  // default steps per unit for Ultimaker
is correct for RAMBo 1.0 and older. (I just copied these lines from different firmware versions. I have no idea why somebody added the additional unnecessary compilcation of the multiply/divide-by-2s.).

Post Reply