2016-03-25 01:19:46 -05:00
/**
2016-03-24 13:01:20 -05:00
* Marlin 3 D Printer Firmware
2019-06-27 23:57:50 -05:00
* Copyright ( c ) 2019 MarlinFirmware [ https : //github.com/MarlinFirmware/Marlin]
2016-03-24 13:01:20 -05:00
*
* Based on Sprinter and grbl .
2019-06-27 23:57:50 -05:00
* Copyright ( c ) 2011 Camiel Gubbels / Erik van der Zalm
2016-03-24 13:01:20 -05:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*
*/
2019-07-04 22:44:12 -05:00
# pragma once
2016-03-24 13:01:20 -05:00
2015-01-25 20:40:00 -06:00
/**
* RUMBA pin assignments
*/
# ifndef __AVR_ATmega2560__
2018-11-08 21:57:15 -06:00
# error "Oops! Select 'Arduino / Genuino Mega or Mega 2560' in 'Tools > Board.'"
2015-01-25 20:40:00 -06:00
# endif
2017-04-06 17:15:09 -05:00
# if HOTENDS > 3 || E_STEPPERS > 3
# error "RUMBA supports up to 3 hotends / E-steppers. Comment out this line to continue."
2015-02-24 06:46:11 -06:00
# endif
2018-11-25 19:56:06 -06:00
# ifndef BOARD_NAME
# define BOARD_NAME "Rumba"
# endif
2019-07-09 21:29:14 -05:00
# ifndef DEFAULT_MACHINE_NAME
# define DEFAULT_MACHINE_NAME BOARD_NAME
# endif
2016-04-02 20:53:05 -05:00
2016-10-08 15:27:04 -05:00
//
// Servos
//
2018-11-25 19:56:06 -06:00
# define SERVO0_PIN 5
2016-10-08 15:27:04 -05:00
2016-08-22 17:05:22 -05:00
//
// Limit Switches
//
# define X_MIN_PIN 37
# define X_MAX_PIN 36
# define Y_MIN_PIN 35
# define Y_MAX_PIN 34
# define Z_MIN_PIN 33
# define Z_MAX_PIN 32
//
// Z Probe (when not Z_MIN_PIN)
//
# ifndef Z_MIN_PROBE_PIN
# define Z_MIN_PROBE_PIN 32
# endif
//
// Steppers
//
2015-01-25 20:40:00 -06:00
# define X_STEP_PIN 17
# define X_DIR_PIN 16
# define X_ENABLE_PIN 48
# define Y_STEP_PIN 54
# define Y_DIR_PIN 47
# define Y_ENABLE_PIN 55
# define Z_STEP_PIN 57
# define Z_DIR_PIN 56
# define Z_ENABLE_PIN 62
2019-01-19 20:19:14 -06:00
# ifndef E0_STEP_PIN
# define E0_STEP_PIN 23
# define E0_DIR_PIN 22
# define E0_ENABLE_PIN 24
# endif
2015-01-25 20:40:00 -06:00
2019-01-19 20:19:14 -06:00
# ifndef E1_STEP_PIN
# define E1_STEP_PIN 26
# define E1_DIR_PIN 25
# define E1_ENABLE_PIN 27
# endif
2015-01-25 20:40:00 -06:00
2019-01-19 20:19:14 -06:00
# if E1_STEP_PIN != 29
# define E2_STEP_PIN 29
# define E2_DIR_PIN 28
# define E2_ENABLE_PIN 39
# endif
2015-01-25 20:40:00 -06:00
2016-08-22 17:05:22 -05:00
//
// Temperature Sensors
//
2018-11-25 19:56:06 -06:00
# ifndef TEMP_0_PIN
# if TEMP_SENSOR_0 == -1
# define TEMP_0_PIN 6 // Analog Input (connector *K1* on RUMBA thermocouple ADD ON is used)
# else
# define TEMP_0_PIN 15 // Analog Input (default connector for thermistor *T0* on rumba board is used)
# endif
2015-01-25 20:40:00 -06:00
# endif
2018-11-25 19:56:06 -06:00
# ifndef TEMP_1_PIN
# if TEMP_SENSOR_1 == -1
# define TEMP_1_PIN 5 // Analog Input (connector *K2* on RUMBA thermocouple ADD ON is used)
# else
# define TEMP_1_PIN 14 // Analog Input (default connector for thermistor *T1* on rumba board is used)
# endif
2015-01-25 20:40:00 -06:00
# endif
2016-06-28 18:27:22 -05:00
# if TEMP_SENSOR_2 == -1
2017-05-20 19:30:36 -05:00
# define TEMP_2_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_BED is defined as thermocouple)
2016-10-08 15:27:04 -05:00
# else
# define TEMP_2_PIN 13 // Analog Input (default connector for thermistor *T2* on rumba board is used)
# endif
2018-11-25 19:56:06 -06:00
// Optional for extruder 4 or chamber:
2016-10-08 15:27:04 -05:00
//#define TEMP_X_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
2018-02-24 00:38:58 -06:00
//#define TEMP_CHAMBER_PIN 12 // Analog Input (default connector for thermistor *T3* on rumba board is used)
2016-10-08 15:27:04 -05:00
# if TEMP_SENSOR_BED == -1
2017-05-20 19:30:36 -05:00
# define TEMP_BED_PIN 7 // Analog Input (connector *K3* on RUMBA thermocouple ADD ON is used <-- this can't be used when TEMP_SENSOR_2 is defined as thermocouple)
2016-06-28 18:27:22 -05:00
# else
2016-10-08 15:27:04 -05:00
# define TEMP_BED_PIN 11 // Analog Input (default connector for thermistor *THB* on rumba board is used)
2015-01-25 20:40:00 -06:00
# endif
2016-08-22 17:05:22 -05:00
//
// Heaters / Fans
//
# define HEATER_0_PIN 2
# define HEATER_1_PIN 3
# define HEATER_2_PIN 6
# define HEATER_3_PIN 8
# define HEATER_BED_PIN 9
2018-06-07 16:46:13 -05:00
# ifndef FAN_PIN
# define FAN_PIN 7
# endif
2016-08-22 17:05:22 -05:00
# define FAN1_PIN 8
2016-10-08 15:27:04 -05:00
//
// Misc. Functions
//
# define LED_PIN 13
# define PS_ON_PIN 45
# define KILL_PIN 46
2017-04-07 13:52:21 -05:00
# define CASE_LIGHT_PIN 45
2016-10-08 15:27:04 -05:00
2017-04-07 13:52:21 -05:00
//
// M3/M4/M5 - Spindle/Laser Control
//
2017-09-06 06:28:32 -05:00
# ifndef SPINDLE_LASER_PWM_PIN
2019-07-11 04:51:47 -05:00
# define SPINDLE_LASER_PWM_PIN 4 // Hardware PWM. Pin 4 interrupts OC0* and OC1* always in use?
2017-09-06 06:28:32 -05:00
# endif
2019-04-08 17:52:33 -05:00
# ifndef SPINDLE_LASER_ENA_PIN
2019-07-11 04:51:47 -05:00
# define SPINDLE_LASER_ENA_PIN 14 // Pullup!
2017-09-06 06:28:32 -05:00
# endif
# ifndef SPINDLE_DIR_PIN
2018-11-25 19:56:06 -06:00
# define SPINDLE_DIR_PIN 15
2017-09-06 06:28:32 -05:00
# endif
2018-04-25 23:00:44 -05:00
//
// LCD / Controller
//
2019-03-16 23:43:06 -05:00
# if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
2018-11-25 19:56:06 -06:00
# define LCD_PINS_DC 38 // Set as output on init
# define LCD_PINS_RS 41 // Pull low for 1s to init
2018-04-25 23:00:44 -05:00
// DOGM SPI LCD Support
# define DOGLCD_CS 19
# define DOGLCD_MOSI 42
# define DOGLCD_SCK 18
# define DOGLCD_A0 LCD_PINS_DC
2019-05-04 17:59:36 -05:00
# elif ENABLED(FYSETC_MINI_12864)
# define DOGLCD_CS 42
# define DOGLCD_A0 19
# define DOGLCD_MOSI 51
# define DOGLCD_SCK 52
//#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
// results in LCD soft SPI mode 3, SD soft SPI mode 0
# define LCD_RESET_PIN 18 // Must be high or open for LCD to operate normally.
# if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
# ifndef RGB_LED_R_PIN
# define RGB_LED_R_PIN 41
# endif
# ifndef RGB_LED_G_PIN
# define RGB_LED_G_PIN 38
# endif
# ifndef RGB_LED_B_PIN
# define RGB_LED_B_PIN 40
# endif
# elif ENABLED(FYSETC_MINI_12864_2_1)
# define NEOPIXEL_PIN 25
# endif
2018-04-25 23:00:44 -05:00
# else
# define LCD_PINS_RS 19
# define LCD_PINS_ENABLE 42
# define LCD_PINS_D4 18
# define LCD_PINS_D5 38
# define LCD_PINS_D6 41
# endif
2019-01-19 20:19:14 -06:00
# define LCD_PINS_D7 40
//
// Beeper, SD Card, Encoder
//
# define BEEPER_PIN 44
# if ENABLED(SDSUPPORT)
# define SDPOWER -1
# define SDSS 53
# define SD_DETECT_PIN 49
# endif
# if ENABLED(NEWPANEL)
# define BTN_EN1 11
# define BTN_EN2 12
# define BTN_ENC 43
# endif