Add Ultiboard2 electronics. With PWM current settings. For the few people that have this new board as experiment in their UM-Original.
This commit is contained in:
parent
89a304fd98
commit
380144c20f
|
@ -2778,6 +2778,15 @@ void process_commands()
|
||||||
if(code_seen('B')) digipot_current(4,code_value());
|
if(code_seen('B')) digipot_current(4,code_value());
|
||||||
if(code_seen('S')) for(int i=0;i<=4;i++) digipot_current(i,code_value());
|
if(code_seen('S')) for(int i=0;i<=4;i++) digipot_current(i,code_value());
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN
|
||||||
|
if(code_seen('X')) digipot_current(0, code_value());
|
||||||
|
#endif
|
||||||
|
#ifdef MOTOR_CURRENT_PWM_Z_PIN
|
||||||
|
if(code_seen('Z')) digipot_current(1, code_value());
|
||||||
|
#endif
|
||||||
|
#ifdef MOTOR_CURRENT_PWM_E_PIN
|
||||||
|
if(code_seen('E')) digipot_current(2, code_value());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 908: // M908 Control digital trimpot directly.
|
case 908: // M908 Control digital trimpot directly.
|
||||||
|
|
|
@ -1295,6 +1295,89 @@
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MOTHERBOARD == 72
|
||||||
|
#define KNOWN_BOARD
|
||||||
|
/*****************************************************************
|
||||||
|
* Ultiboard v2.0 pin assignment
|
||||||
|
******************************************************************/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 25
|
||||||
|
#define X_DIR_PIN 23
|
||||||
|
#define X_STOP_PIN 22
|
||||||
|
#define X_ENABLE_PIN 27
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 32
|
||||||
|
#define Y_DIR_PIN 33
|
||||||
|
#define Y_STOP_PIN 26
|
||||||
|
#define Y_ENABLE_PIN 31
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 35
|
||||||
|
#define Z_DIR_PIN 36
|
||||||
|
#define Z_STOP_PIN 29
|
||||||
|
#define Z_ENABLE_PIN 34
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 4
|
||||||
|
#define TEMP_BED_PIN 10
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 2
|
||||||
|
#define TEMP_0_PIN 8
|
||||||
|
|
||||||
|
#define HEATER_1_PIN 3
|
||||||
|
#define TEMP_1_PIN 9
|
||||||
|
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 42
|
||||||
|
#define E0_DIR_PIN 43
|
||||||
|
#define E0_ENABLE_PIN 37
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 49
|
||||||
|
#define E1_DIR_PIN 47
|
||||||
|
#define E1_ENABLE_PIN 48
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 8
|
||||||
|
#define FAN_PIN 7
|
||||||
|
#define PS_ON_PIN 12
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
#define SAFETY_TRIGGERED_PIN 28 //PIN to detect the safety circuit has triggered
|
||||||
|
#define MAIN_VOLTAGE_MEASURE_PIN 14 //Analogue PIN to measure the main voltage, with a 100k - 4k7 resitor divider.
|
||||||
|
|
||||||
|
#define MOTOR_CURRENT_PWM_XY_PIN 44
|
||||||
|
#define MOTOR_CURRENT_PWM_Z_PIN 45
|
||||||
|
#define MOTOR_CURRENT_PWM_E_PIN 46
|
||||||
|
//Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
|
||||||
|
#define MOTOR_CURRENT_PWM_RANGE 2000
|
||||||
|
|
||||||
|
//arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 18
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 20
|
||||||
|
#define LCD_PINS_ENABLE 15
|
||||||
|
#define LCD_PINS_D4 14
|
||||||
|
#define LCD_PINS_D5 21
|
||||||
|
#define LCD_PINS_D6 5
|
||||||
|
#define LCD_PINS_D7 6
|
||||||
|
|
||||||
|
//buttons are directly attached
|
||||||
|
#define BTN_EN1 40
|
||||||
|
#define BTN_EN2 41
|
||||||
|
#define BTN_ENC 19 //the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT 39
|
||||||
|
|
||||||
|
#endif//MOTHERBOARD == 72
|
||||||
|
|
||||||
/****************************************************************************************
|
/****************************************************************************************
|
||||||
* RUMBA pin assignment
|
* RUMBA pin assignment
|
||||||
|
|
|
@ -72,6 +72,9 @@ static volatile bool endstop_z_hit=false;
|
||||||
#ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
|
#ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
|
||||||
bool abort_on_endstop_hit = false;
|
bool abort_on_endstop_hit = false;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN
|
||||||
|
int motor_current_setting[3] = DEFAULT_PWM_MOTOR_CURRENT;
|
||||||
|
#endif
|
||||||
|
|
||||||
static bool old_x_min_endstop=false;
|
static bool old_x_min_endstop=false;
|
||||||
static bool old_x_max_endstop=false;
|
static bool old_x_max_endstop=false;
|
||||||
|
@ -1198,6 +1201,16 @@ void digipot_init() //Initialize Digipot Motor Current
|
||||||
//digitalPotWrite(digipot_ch[i], digipot_motor_current[i]);
|
//digitalPotWrite(digipot_ch[i], digipot_motor_current[i]);
|
||||||
digipot_current(i,digipot_motor_current[i]);
|
digipot_current(i,digipot_motor_current[i]);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN
|
||||||
|
pinMode(MOTOR_CURRENT_PWM_XY_PIN, OUTPUT);
|
||||||
|
pinMode(MOTOR_CURRENT_PWM_Z_PIN, OUTPUT);
|
||||||
|
pinMode(MOTOR_CURRENT_PWM_E_PIN, OUTPUT);
|
||||||
|
digipot_current(0, motor_current_setting[0]);
|
||||||
|
digipot_current(1, motor_current_setting[1]);
|
||||||
|
digipot_current(2, motor_current_setting[2]);
|
||||||
|
//Set timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
|
||||||
|
TCCR5B = (TCCR5B & ~(_BV(CS50) | _BV(CS51) | _BV(CS52))) | _BV(CS50);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void digipot_current(uint8_t driver, int current)
|
void digipot_current(uint8_t driver, int current)
|
||||||
|
@ -1206,6 +1219,11 @@ void digipot_current(uint8_t driver, int current)
|
||||||
const uint8_t digipot_ch[] = DIGIPOT_CHANNELS;
|
const uint8_t digipot_ch[] = DIGIPOT_CHANNELS;
|
||||||
digitalPotWrite(digipot_ch[driver], current);
|
digitalPotWrite(digipot_ch[driver], current);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MOTOR_CURRENT_PWM_XY_PIN
|
||||||
|
if (driver == 0) analogWrite(MOTOR_CURRENT_PWM_XY_PIN, (long)current * 255L / (long)MOTOR_CURRENT_PWM_RANGE);
|
||||||
|
if (driver == 1) analogWrite(MOTOR_CURRENT_PWM_Z_PIN, (long)current * 255L / (long)MOTOR_CURRENT_PWM_RANGE);
|
||||||
|
if (driver == 2) analogWrite(MOTOR_CURRENT_PWM_E_PIN, (long)current * 255L / (long)MOTOR_CURRENT_PWM_RANGE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void microstep_init()
|
void microstep_init()
|
||||||
|
|
Loading…
Reference in a new issue