Improve and extend RUMBA32 (#18249)

This commit is contained in:
Chris Barr 2020-06-12 10:58:20 +09:30 committed by GitHub
parent ea20c77df9
commit c12111e2cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 132 additions and 60 deletions

View file

@ -324,20 +324,21 @@
#define BOARD_BEAST 4200 // STM32F4xxVxT6 Libmaple-based STM32F4 controller #define BOARD_BEAST 4200 // STM32F4xxVxT6 Libmaple-based STM32F4 controller
#define BOARD_GENERIC_STM32F4 4201 // STM32 STM32GENERIC-based STM32F4 controller #define BOARD_GENERIC_STM32F4 4201 // STM32 STM32GENERIC-based STM32F4 controller
#define BOARD_ARMED 4202 // Arm'ed STM32F4-based controller #define BOARD_ARMED 4202 // Arm'ed STM32F4-based controller
#define BOARD_RUMBA32_AUS3D 4203 // RUMBA32 STM32F446VET6 based controller from Aus3D #define BOARD_RUMBA32_V1_0 4203 // RUMBA32 STM32F446VET6 based controller from Aus3D
#define BOARD_RUMBA32_MKS 4204 // RUMBA32 STM32F446VET6 based controller from Makerbase #define BOARD_RUMBA32_V1_1 4204 // RUMBA32 STM32F446VET6 based controller from Aus3D
#define BOARD_BLACK_STM32F407VE 4205 // BLACK_STM32F407VE #define BOARD_RUMBA32_MKS 4205 // RUMBA32 STM32F446VET6 based controller from Makerbase
#define BOARD_BLACK_STM32F407ZE 4206 // BLACK_STM32F407ZE #define BOARD_BLACK_STM32F407VE 4206 // BLACK_STM32F407VE
#define BOARD_STEVAL_3DP001V1 4207 // STEVAL-3DP001V1 3D PRINTER BOARD #define BOARD_BLACK_STM32F407ZE 4207 // BLACK_STM32F407ZE
#define BOARD_BTT_SKR_PRO_V1_1 4208 // BigTreeTech SKR Pro v1.1 (STM32F407ZG) #define BOARD_STEVAL_3DP001V1 4208 // STEVAL-3DP001V1 3D PRINTER BOARD
#define BOARD_BTT_BTT002_V1_0 4209 // BigTreeTech BTT002 v1.0 (STM32F407VG) #define BOARD_BTT_SKR_PRO_V1_1 4209 // BigTreeTech SKR Pro v1.1 (STM32F407ZG)
#define BOARD_BTT_GTR_V1_0 4210 // BigTreeTech GTR v1.0 (STM32F407IGT) #define BOARD_BTT_BTT002_V1_0 4210 // BigTreeTech BTT002 v1.0 (STM32F407VG)
#define BOARD_LERDGE_K 4211 // Lerdge K (STM32F407ZG) #define BOARD_BTT_GTR_V1_0 4211 // BigTreeTech GTR v1.0 (STM32F407IGT)
#define BOARD_LERDGE_X 4212 // Lerdge X (STM32F407VE) #define BOARD_LERDGE_K 4212 // Lerdge K (STM32F407ZG)
#define BOARD_VAKE403D 4213 // VAkE 403D (STM32F446VET6) #define BOARD_LERDGE_X 4213 // Lerdge X (STM32F407VE)
#define BOARD_FYSETC_S6 4214 // FYSETC S6 board #define BOARD_VAKE403D 4214 // VAkE 403D (STM32F446VET6)
#define BOARD_FLYF407ZG 4215 // FLYF407ZG board (STM32F407ZG) #define BOARD_FYSETC_S6 4215 // FYSETC S6 board
#define BOARD_MKS_ROBIN2 4216 // MKS_ROBIN2 (STM32F407ZE) #define BOARD_FLYF407ZG 4216 // FLYF407ZG board (STM32F407ZG)
#define BOARD_MKS_ROBIN2 4217 // MKS_ROBIN2 (STM32F407ZE)
// //
// ARM Cortex M7 // ARM Cortex M7

View file

@ -562,7 +562,9 @@
#include "stm32f4/pins_GENERIC_STM32F4.h" // STM32F4 env:STM32F4 #include "stm32f4/pins_GENERIC_STM32F4.h" // STM32F4 env:STM32F4
#elif MB(ARMED) #elif MB(ARMED)
#include "stm32f4/pins_ARMED.h" // STM32F4 env:ARMED #include "stm32f4/pins_ARMED.h" // STM32F4 env:ARMED
#elif MB(RUMBA32_AUS3D) #elif MB(RUMBA32_V1_0)
#include "stm32f4/pins_RUMBA32_AUS3D.h" // STM32F4 env:rumba32_f446ve
#elif MB(RUMBA32_V1_1)
#include "stm32f4/pins_RUMBA32_AUS3D.h" // STM32F4 env:rumba32_f446ve #include "stm32f4/pins_RUMBA32_AUS3D.h" // STM32F4 env:rumba32_f446ve
#elif MB(RUMBA32_MKS) #elif MB(RUMBA32_MKS)
#include "stm32f4/pins_RUMBA32_MKS.h" // STM32F4 env:rumba32_mks #include "stm32f4/pins_RUMBA32_MKS.h" // STM32F4 env:rumba32_mks
@ -651,6 +653,7 @@
#define BOARD_BIGTREE_SKR_MINI_E3 -1016 #define BOARD_BIGTREE_SKR_MINI_E3 -1016
#define BOARD_BIGTREE_SKR_E3_DIP -1017 #define BOARD_BIGTREE_SKR_E3_DIP -1017
#define BOARD_RUMBA32 -1018 #define BOARD_RUMBA32 -1018
#define BOARD_RUMBA32_AUS3D -1019
#if MB(MKS_13) #if MB(MKS_13)
#error "BOARD_MKS_13 has been renamed BOARD_MKS_GEN_13. Please update your configuration." #error "BOARD_MKS_13 has been renamed BOARD_MKS_GEN_13. Please update your configuration."
@ -691,7 +694,9 @@
#elif MB(STEVAL) #elif MB(STEVAL)
#error "BOARD_STEVAL has been renamed BOARD_STEVAL_3DP001V1. Please update your configuration." #error "BOARD_STEVAL has been renamed BOARD_STEVAL_3DP001V1. Please update your configuration."
#elif MB(RUMBA32) #elif MB(RUMBA32)
#error "BOARD_RUMBA32 is now BOARD_RUMBA32_MKS or BOARD_RUMBA32_AUS3D. Please update your configuration." #error "BOARD_RUMBA32 is now BOARD_RUMBA32_MKS or BOARD_RUMBA32_V1_0. Please update your configuration."
#elif MB(RUMBA32_AUS3D)
#error "BOARD_RUMBA32_AUS3D is now BOARD_RUMBA32_V1_0. Please update your configuration."
#else #else
#error "Unknown MOTHERBOARD value set in Configuration.h" #error "Unknown MOTHERBOARD value set in Configuration.h"
#endif #endif
@ -715,6 +720,7 @@
#undef BOARD_BIGTREE_SKR_MINI_V1_1 #undef BOARD_BIGTREE_SKR_MINI_V1_1
#undef BOARD_BIGTREE_SKR_E3_DIP #undef BOARD_BIGTREE_SKR_E3_DIP
#undef BOARD_RUMBA32 #undef BOARD_RUMBA32
#undef BOARD_RUMBA32_AUS3D
#endif #endif

View file

@ -22,21 +22,57 @@
#pragma once #pragma once
/** /**
* Pin assignments for the MKS RUMBA32 * Pin assignments for the RUMBA32
* *
* https://aus3d.com.au/rumba32 * https://aus3d.com.au/rumba32
* https://github.com/Aus3D/RUMBA32 * https://github.com/Aus3D/RUMBA32
*
* The MKS and Aus3D versions have the same pinout but the MKS version
* has some added resistors and LEDs. The resistors needed for the
* TMC2208/9 UART interface are among the additions. Also added were
* connectors and resistors dedicated to the TMC2130 sensorless homing
* interface.
*/ */
#define BOARD_INFO_NAME "Aus3D RUMBA32" #define BOARD_INFO_NAME "RUMBA32"
#define RUMBA32_V1_0 #if NO_EEPROM_SELECTED
//#define I2C_EEPROM #if MB(RUMBA32_V1_0)
#define FLASH_EEPROM_EMULATION
#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
#elif MB(RUMBA32_V1_1)
#define I2C_EEPROM
#define MARLIN_EEPROM_SIZE 0x2000 // 8KB (24LC64T-I/OT)
#endif
#endif
#if ENABLED(FLASH_EEPROM_EMULATION)
// Decrease delays and flash wear by spreading writes across the
// 128 kB sector allocated for EEPROM emulation.
#define FLASH_EEPROM_LEVELING
#endif
#include "pins_RUMBA32_common.h" #include "pins_RUMBA32_common.h"
#if MB(RUMBA32_V1_1)
#define SERVO0_PIN PA15
#undef BTN_PIN
#if HAS_TMC_UART
//
// TMC2208/TMC2209 stepper drivers - Software Serial is used according to below pins
//
#define X_SERIAL_TX_PIN PA14
#define X_SERIAL_RX_PIN PC14
#define Y_SERIAL_TX_PIN PA13
#define Y_SERIAL_RX_PIN PE4
#define Z_SERIAL_TX_PIN PB10
#define Z_SERIAL_RX_PIN PE0
#define E0_SERIAL_TX_PIN PD11
#define E0_SERIAL_RX_PIN PC13
#define E1_SERIAL_TX_PIN PB3
#define E1_SERIAL_RX_PIN PD5
#define E2_SERIAL_TX_PIN PB4
#define E2_SERIAL_RX_PIN PD1
#endif
#endif

View file

@ -35,27 +35,21 @@
#define BOARD_INFO_NAME "MKS RUMBA32" #define BOARD_INFO_NAME "MKS RUMBA32"
#define RUMBA32_V1_0 #if NO_EEPROM_SELECTED
#define FLASH_EEPROM_EMULATION
#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
#endif
#if ENABLED(FLASH_EEPROM_EMULATION)
// Decrease delays and flash wear by spreading writes across the
// 128 kB sector allocated for EEPROM emulation.
#define FLASH_EEPROM_LEVELING
#endif
#define ENABLE_SPI1 #define ENABLE_SPI1
//#define I2C_EEPROM
#include "pins_RUMBA32_common.h" #include "pins_RUMBA32_common.h"
//
// Software SPI pins for TMC2130 stepper drivers
//
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI PA7
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO PA6
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK PA5
#endif
#endif
#if HAS_TMC_UART #if HAS_TMC_UART
/** /**
* TMC2208/TMC2209 stepper drivers * TMC2208/TMC2209 stepper drivers
@ -96,14 +90,3 @@
#define E2_SERIAL_TX_PIN PD12 #define E2_SERIAL_TX_PIN PD12
#define E2_SERIAL_RX_PIN PD1 #define E2_SERIAL_RX_PIN PD1
#endif #endif
//
// LCD / Controller
//
// Alter timing for graphical display
#if HAS_GRAPHICAL_LCD
#define BOARD_ST7920_DELAY_1 DELAY_NS(96)
#define BOARD_ST7920_DELAY_2 DELAY_NS(48)
#define BOARD_ST7920_DELAY_3 DELAY_NS(600)
#endif

View file

@ -23,6 +23,7 @@
/** /**
* Common pin assignments for all RUMBA32 boards * Common pin assignments for all RUMBA32 boards
*
*/ */
#ifndef STM32F4 #ifndef STM32F4
@ -31,11 +32,21 @@
#error "RUMBA32 boards support up to 3 hotends / E-steppers." #error "RUMBA32 boards support up to 3 hotends / E-steppers."
#endif #endif
#define RUMBA32_V1_0
#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
//#define I2C_EEPROM // Use soft PWM for fans - PWM is not working properly when paired with STM32 Arduino Core v1.7.0
#define MARLIN_EEPROM_SIZE 0x1000 // 4KB // This can be removed when Core version is updated and PWM behaviour is fixed.
#define FAN_SOFT_PWM
//
// Configure Timers
// TIM6 is used for TONE
// TIM7 is used for SERVO
// TIMER_SERIAL defaults to TIM7 so we'll override it here
//
#define STEP_TIMER 10
#define TEMP_TIMER 14
#define TIMER_SERIAL TIM9
// //
// Limit Switches // Limit Switches
@ -80,6 +91,18 @@
#define E2_ENABLE_PIN PD0 #define E2_ENABLE_PIN PD0
#define E2_CS_PIN PD1 #define E2_CS_PIN PD1
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI PA7
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO PA6
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK PA5
#endif
#endif
// //
// Temperature Sensors // Temperature Sensors
// //
@ -101,7 +124,7 @@
#define FAN1_PIN PA8 #define FAN1_PIN PA8
// //
// I2C // SPI
// //
#define SCK_PIN PA5 #define SCK_PIN PA5
#define MISO_PIN PA6 #define MISO_PIN PA6
@ -143,4 +166,17 @@
#define LCD_PINS_D7 PE15 #define LCD_PINS_D7 PE15
#endif #endif
// Alter timing for graphical display
#if HAS_GRAPHICAL_LCD
#ifndef BOARD_ST7920_DELAY_1
#define BOARD_ST7920_DELAY_1 DELAY_NS(96)
#endif
#ifndef BOARD_ST7920_DELAY_2
#define BOARD_ST7920_DELAY_2 DELAY_NS(48)
#endif
#ifndef BOARD_ST7920_DELAY_3
#define BOARD_ST7920_DELAY_3 DELAY_NS(600)
#endif
#endif
#endif #endif

View file

@ -8,14 +8,24 @@ set -e
# Build examples # Build examples
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_RUMBA32_AUS3D opt_set MOTHERBOARD BOARD_RUMBA32_V1_0
opt_set SERIAL_PORT -1 opt_set SERIAL_PORT -1
opt_disable PIDTEMP opt_disable PIDTEMP
opt_enable PIDTEMPBED opt_enable PIDTEMPBED
opt_set TEMP_SENSOR_BED 1 opt_set TEMP_SENSOR_BED 1
opt_disable THERMAL_PROTECTION_BED opt_disable THERMAL_PROTECTION_BED
opt_set X_DRIVER_TYPE TMC2130 opt_set X_DRIVER_TYPE TMC2130
exec_test $1 $2 "rumba32_f446ve with TMC2130, PID Bed, and bed thermal protection disabled" exec_test $1 $2 "rumba32_f446ve V1.0 with TMC2130, PID Bed, and bed thermal protection disabled"
# Build examples
restore_configs
opt_set MOTHERBOARD BOARD_RUMBA32_V1_1
opt_set SERIAL_PORT -1
opt_enable PIDTEMPBED EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
opt_set TEMP_SENSOR_BED 1
opt_set X_DRIVER_TYPE TMC2130
opt_set Y_DRIVER_TYPE TMC2208
exec_test $1 $2 "rumba32_f446ve V1.1 with TMC2130, TMC2208, PID Bed, EEPROM settings, and graphic LCD controller"
# cleanup # cleanup
restore_configs restore_configs