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:
		@@ -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()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user