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

  • First as it seems your drivers enable with inverted signal like IO_OUTPUT_INVERTED used for Y, that is why all motors without this do nothing.

    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.
  • Hi again,

    I've finally managed to get my printer with an ultratronics board working with V2 firmware. The problem I have now is print skewing. At slow speeds (40%) the print is reasonable but at faster speeds (65%) it's skewing towards 0,0 and at 100% it's a mess starting loops all over the place. Acceleration is 1000mm/s, print and travel speed is 100mm/s.

    I've tried different settings like lowering the stepper frequency to 80000 and changing the prepare frequency and block frequency but it has not made any difference. Slow direction change is 1 and small segment size is .4. The motors are closed loop (so not losing steps) and the drivers are external. It seems the travel moves are he biggest problem, the faster the print the longer the distance of travel the further they are from where they should be when the print move starts.

    I have now bought a new motherboard (BTT Octopus 1.1) and set that up on the printer with V2 firmware. But I have exactly the same skewing problem with this motherboard as with the Ultratronics board. It seems to me like a driver timing issue. I've been running V1 firmware with the Ultratronics board for about 8 years and haven't had any skewing issues. Is it possible to use some of the stepper settings from V1 in V2 firmware?

    Any suggestions?

    Thank you.
  • What motor drivers are you using? With TMC disable hybrid speed and stealth mode to give them more power. Recently had a printer somtimes loosing steps without. Also disable always check endstops in eeprom in case it comes from end stops, also in that case it would skey away from end-stop.
  • I've just replaced my x and y axis closed loop stepper drivers with these:  https://www.omc-stepperonline.com/closed-loop-stepper-driver-0-8-0a-24-48vdc-for-nema-17-23-24-stepper-motor-cl57t

    That immediately fixed the problem of skewing. V2 firmware is now working great on the BTT Octopus board. I haven't tried it with the Ultratronics board.

    Finally I'm trying to set up the "door open"  feature as in V1 firmware. It was easy to set up with the config tool in V1 but I'm not sure how to do it with V2 and the Octopus board. The pin I want to use is "ORIG_E4_DIAG_PIN PG15 //  Diag 7

    What do I need to do in Configuration_io.h and Configuration.h to get it to work?

    Thank you
  • Seems same as in V1. Set in Configuration.h these values

    #define DOOR_PIN -1
    #define DOOR_PULLUP 1
    #define DOOR_INVERTING 1

    depending on sensor and polarity. This will disable active tool (actually wonding why) but you can disable it in Commands.cpp around line 144
    #if defined(DOOR_PIN) && DOOR_PIN > -1
    if (Printer::updateDoorOpen()) {
    Tool* tool = Tool::getActiveTool();
    if (tool) {
    tool->shutdown();
    }
    }
    #endif

    just remove the shutdown line.

    It will stop taking commands until you close the door.


Sign In or Register to comment.