Upgrade to Firmware V2 on Ultratronics Board
Hi There
I've been try to upgrade my Ultratronics board to V2 firmware mostly following the procedure used by "lmcbmai" a few years ago. I've had some success. The Y axis homes and works , the extruder works, the heaters and thermistors work but I can't get the X and Z axis to move at all. If I try to home the X axis it enables and gives a slight "buzz" but that's all. I have 2 Z motors and they do nothing. I use external stepper drivers. I can't think of what else to try.
Here is how I have set them up
// X Motor
IO_OUTPUT(IOX1Step, ORIG_X_STEP_PIN)
IO_OUTPUT(IOX1Dir, ORIG_X_DIR_PIN)
IO_OUTPUT_INVERTED(IOX1Enable, ORIG_X_ENABLE_PIN)
// Y Motor
IO_OUTPUT(IOY1Step, ORIG_Y_STEP_PIN)
IO_OUTPUT_INVERTED(IOY1Dir, ORIG_Y_DIR_PIN)
IO_OUTPUT_INVERTED(IOY1Enable, ORIG_Y_ENABLE_PIN)
/*// Z Motor
IO_OUTPUT(IOZ1Step, ORIG_Z_STEP_PIN)
IO_OUTPUT_INVERTED(IOZ1Dir, ORIG_Z_DIR_PIN)
IO_OUTPUT(IOZ1Enable, ORIG_Z_ENABLE_PIN)
*/
// Z Motor 1
IO_OUTPUT(IOZ1Step, ORIG_Z_STEP_PIN)
IO_OUTPUT_INVERTED(IOZ1Dir, ORIG_Z_DIR_PIN)
IO_OUTPUT(IOZ1Enable, ORIG_Z_ENABLE_PIN)
// Z Motor 2
IO_OUTPUT(IOZ2Step, ORIG_E2_STEP_PIN)
IO_OUTPUT_INVERTED(IOZ2Dir, ORIG_E2_DIR_PIN)
IO_OUTPUT(IOZ2Enable, ORIG_E2_ENABLE_PIN)
// E0 Motor
IO_OUTPUT(IOE1Step, ORIG_E0_STEP_PIN)
IO_OUTPUT_INVERTED(IOE1Dir, ORIG_E0_DIR_PIN)
IO_OUTPUT_INVERTED(IOE1Enable, ORIG_E0_ENABLE_PIN)
// Define all stepper motors used
STEPPER_SIMPLE(XMotor, IOX1Step, IOX1Dir, IOX1Enable, endstopXMin, endstopNone)
STEPPER_SIMPLE(YMotor, IOY1Step, IOY1Dir, IOY1Enable, endstopNone, endstopXMax)
STEPPER_SIMPLE(Z1Motor, IOZ1Step, IOZ1Dir, IOZ1Enable, endstopZMin, endstopNone)
STEPPER_SIMPLE(Z2Motor, IOE2Step, IOE2Dir, IOE2Enable, endstopZMin, endstopNone)
STEPPER_MIRROR2(ZMotor, Z1Motor, Z2Motor, endstopNone, endstopNone);
STEPPER_SIMPLE(E1Motor, IOE1Step, IOE1Dir, IOE1Enable, endstopNone, endstopNone)
//STEPPER_OBSERVEABLE(E1Motor, E1MotorBase)
//STEPPER_SIMPLE(E2MotorBase, IOE2Step, IOE2Dir, IOE2Enable, endstopNone, endstopNone)
//STEPPER_OBSERVEABLE(E2Motor, E2MotorBase)
//STEPPER_SIMPLE(AL1Motor, IOAL1Step, IOAL1Dir, IOAL1Enable, endstopNone, endstopNone)
//STEPPER_SIMPLE(AL2Motor, IOAL2Step, IOAL2Dir, IOAL2Enable, endstopNone, endstopNone)
// Define your endstops inputs
IO_INPUT(IOEndstopXMin, ORIG_X_MIN_PIN)
// IO_INPUT_INVERTED(IOEndstopXMin, ORIG_X_MIN_PIN)
IO_INPUT(IOEndstopYMax, ORIG_Y_MAX_PIN)
IO_INPUT_PULLUP(IOEndstopZMin, ORIG_Z_MIN_PIN)
/ Define our endstops solutions
// You need to define all min and max endstops for all
// axes except E even if you have none!
ENDSTOP_SWITCH_HW(endstopXMin, IOEndstopXMin, X_AXIS, false)
ENDSTOP_NONE(endstopXMax)
ENDSTOP_NONE(endstopYMin)
ENDSTOP_SWITCH_HW(endstopYMax, IOEndstopYMax, Y_AXIS, true)
ENDSTOP_SWITCH_HW(endstopZMin, IOEndstopZMin, Z_AXIS, false)
ENDSTOP_NONE(endstopZMax)
Thank you
Comments
X motor is hard to say since it buzzes so meaning it sends steps and just looses steps. So either frequency is too high, current too low. Check steps per mm and microstepping settiing. Then try to move it slowly.
depending on sensor and polarity. This will disable active tool (actually wonding why) but you can disable it in Commands.cpp around line 144
just remove the shutdown line.
It will stop taking commands until you close the door.