So far I still have no success. The only thing working is the 2 temperature readings from both extruders and the heating of both extruders ....
To avoid misunderstandings on the hardware side, here is what is used:
- Ultratronics Pro V1.0 rev e (defined as 409 in Configuration.h)
- RAPS128 drivers for X, Y and A (A is connected to the E2 motor on the Ultratronics)
- A4988 for Z (2 motors parallel) and Extruder1 & Extruder2
- No heated bed so the connector HB and T0 are not used
- Heater Extruder1 (X) is connected to connector E0 on Ultratronics
- Heater Extruder2 (A) is connected to connector E1 on Ultratronics
- Thermistors from extruders are connected to T1 and T2 on Ultratronics
- Makerbot electronic endstop clones
- Z endstop connected to Z- on Ultratronics
- Y endstop connected to Y- on Ultratronics
- X endstop connected to X- on Ultratronics
- A endstop connected to X+ on Ultratronics
- SD card as Eeprom
- E3D hotend cooling fans are directly connected to 12V on Ultratronics
- For each hotend a part cooling fan connected to Fan1 & Fan2 connectors on Ultratronics
- Titan extruders with 0.9?? steppers
i started off the Configuration.h and Configuration_io.h files from the Dual_X example.
What is working:
-Heating extruder 1 & 2
-Temperature reading from both extruders on T1 and T2
-Endstop readings with M119 if not activated respond as "L" in Repetier Host and if activated they respond as "H"
-Cooling fan connected to Fan 1 connector on Ultratronics
What is not working:
-no movement of any motors
I see TMC drivers defined but I didn't find anything about RAPS128 drivers so maybe the error is there? And if so, How can I tell the firmware to use RAPS128 drivers?
I put a piece of code concerning the motors from Configuration.h and Configuration_io.h below.
Kind regards,
K.
here is a snippet from Configuration.h:
// Array to call motor related commands like microstepping/current if supported.
// Id's start at 0 and depend on position in this array.
#define NUM_MOTORS 6
#define MOTORS </div>
{ &XMotor, &YMotor, &ZMotor, &AMotor, &E1Motor, &E2Motor }
#define MOTOR_NAMES </div>
{ PSTR("X left"), PSTR("Y"), PSTR("Z"), PSTR("X right"), PSTR("E0"), PSTR("E1") }
// Some common settings for trinamic driver settings
/**
Chopper timing is an array with
{toff, hend, hstrt}
See TMC datasheets for more details. There are some predefined values to get you started:
CHOPPER_TIMING_DEFAULT_12V = { 3, -1, 1 }
CHOPPER_TIMING_DEFAULT_19V = { 4, 1, 1 }
CHOPPER_TIMING_DEFAULT_24V = { 4, 2, 1 }
CHOPPER_TIMING_DEFAULT_36V = { 5, 2, 4 }
CHOPPER_TIMING_PRUSAMK3_24V = { 3, -2, 6 }
/
#define TMC_CHOPPER_TIMING CHOPPER_TIMING_DEFAULT_12V
// true = interpolate to 256 microsteps for smoother motion
#define TMC_INTERPOLATE true
// Current used when motor stands still
#define TMC_HOLD_MULTIPLIER 0.5
// Reduce current on over temperature warnings by x milli ampere, 0 = disable
#define TMC_CURRENT_STEP_DOWN 50
// Define which data should be stored to eeprom
#define STORE_MOTOR_MICROSTEPPING 1
#define STORE_MOTOR_CURRENT 1
#define STORE_MOTOR_HYBRID_TRESHOLD 1
#define STORE_MOTOR_STEALTH 1
#define STORE_MOTOR_STALL_SENSITIVITY 1
// x axis extruders are 62mm width, distance after homing 503mm
#define X_MAX_LENGTH 300 //376
#define Y_MAX_LENGTH 300 //385
#if STACKER_SHORT
#define Z_MAX_LENGTH 300
#else
define Z_MAX_LENGTH 610
#endif
#define A_MAX_LENGTH 300 //450
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define A_MIN_POS X_MIN_POS
#define BED_X_MIN 0
#define BED_X_MAX DUAL_X_RIGHT_OFFSET - DUAL_X_MIN_DISTANCE
#define BED_Y_MIN Y_MIN_POS
#define BED_Y_MAX (Y_MIN_POS + Y_MAX_LENGTH)
// Park position used when pausing from firmware side
#if PRINTER_TYPE == PRINTER_TYPE_DELTA
#define PARK_POSITION_X (0)
#define PARK_POSITION_Y (70)
#else
#define PARK_POSITION_X (X_MIN_POS)
#define PARK_POSITION_Y (Y_MIN_POS + Y_MAX_LENGTH)
#endif
#define PARK_POSITION_Z_RAISE 0
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 800
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 800
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 10
#define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_A 800
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 1200
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1200
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 10
#define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_A 1200
#ifdef RAPS128_XY
#define XAXIS_STEPS_PER_MM 146.1 * 4.0
#define AAXIS_STEPS_PER_MM 146.1 4.0
#define YAXIS_STEPS_PER_MM 146.1 * 4.0
#else
#define XAXIS_STEPS_PER_MM 1280 //146.1
#define AAXIS_STEPS_PER_MM 1280 //146.1
#define YAXIS_STEPS_PER_MM 1280 //146.1
#endif
#define ZAXIS_STEPS_PER_MM 200 //404.18
#define MAX_FEEDRATE_X 400
#define MAX_FEEDRATE_Y 250
#define MAX_FEEDRATE_Z 8
#define MAX_FEEDRATE_A 400
And from Configuration_io.h/ Define motor pins here. Each motor needs a setp, dir and enable pin. /
ENDSTOP_NONE(endstopNone)
#ifdef RAPS128_XY
// X Motor left
IO_OUTPUT(IOX1Step, ORIG_X_STEP_PIN)
IO_OUTPUT_INVERTED(IOX1Dir, ORIG_X_DIR_PIN)
IO_OUTPUT(IOX1Enable, ORIG_X_ENABLE_PIN)
// X Motor right
IO_OUTPUT(IOAStep, ORIG_E2_STEP_PIN)
IO_OUTPUT(IOADir, ORIG_E2_DIR_PIN)
IO_OUTPUT(IOAEnable, ORIG_E2_ENABLE_PIN)
// Y Motor
IO_OUTPUT(IOY1Step, ORIG_Y_STEP_PIN)
IO_OUTPUT(IOY1Dir, ORIG_Y_DIR_PIN)
IO_OUTPUT(IOY1Enable, ORIG_Y_ENABLE_PIN)
#else
// X Motor left
IO_OUTPUT(IOX1Step, ORIG_X_STEP_PIN)
IO_OUTPUT(IOX1Dir, ORIG_X_DIR_PIN)
IO_OUTPUT_INVERTED(IOX1Enable, ORIG_X_ENABLE_PIN) // Enable inverted RAPS128 driver
// X Motor right
IO_OUTPUT(IOAStep, ORIG_E2_STEP_PIN)
IO_OUTPUT_INVERTED(IOADir, ORIG_E2_DIR_PIN)
IO_OUTPUT_INVERTED(IOAEnable, ORIG_E2_ENABLE_PIN) // Enable inverted RAPS128 driver
// 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) // Enable inverted RAPS128 driver
#endif
// Z Motor
IO_OUTPUT(IOZ1Step, ORIG_Z_STEP_PIN)
IO_OUTPUT_INVERTED(IOZ1Dir, ORIG_Z_DIR_PIN)
IO_OUTPUT(IOZ1Enable, ORIG_Z_ENABLE_PIN) // Enable not inverted A4988 driver
// IO_OUTPUT_INVERTED(IOZ1EnableT, ORIG_Z_ENABLE_PIN)
// IO_OUTPUT_LOG(IOZ1Enable, IOZ1EnableT, true)
// E0 Motor
IO_OUTPUT(IOE1Step, ORIG_E0_STEP_PIN)
IO_OUTPUT_INVERTED(IOE1Dir, ORIG_E0_DIR_PIN) // Dir inverted Titan extruder
IO_OUTPUT(IOE1Enable, ORIG_E0_ENABLE_PIN) // Enable not inverted A4988 driver
// E1 Motor
IO_OUTPUT(IOE2Step, ORIG_E1_STEP_PIN)
IO_OUTPUT_INVERTED(IOE2Dir, ORIG_E1_DIR_PIN) // Dir inverted Titan extruder
IO_OUTPUT(IOE2Enable, ORIG_E1_ENABLE_PIN) // Enable not inverted A4988 driver