Skip to content

Commit

Permalink
Add Artillery Ruby (STM32F401RCT6)
Browse files Browse the repository at this point in the history
  • Loading branch information
thisiskeithb committed Oct 27, 2021
1 parent 65dfc40 commit 651b93f
Show file tree
Hide file tree
Showing 12 changed files with 1,559 additions and 0 deletions.
1 change: 1 addition & 0 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,7 @@
#define BOARD_INDEX_REV03 4234 // Index PnP Controller REV03 (STM32F407VET6/VGT6)
#define BOARD_MKS_ROBIN_NANO_V1_3_F4 4235 // MKS Robin Nano V1.3 and MKS Robin Nano-S V1.3 (STM32F407VET6)
#define BOARD_MKS_EAGLE 4236 // MKS Eagle (STM32F407VET6)
#define BOARD_ARTILLERY_RUBY 4237 // Artillery Ruby (STM32F401RCT6)

//
// ARM Cortex M7
Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/pins/pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,8 @@
#include "stm32f4/pins_MKS_ROBIN_NANO_V1_3_F4.h" // STM32F4 env:mks_robin_nano_v1_3_f4
#elif MB(MKS_EAGLE)
#include "stm32f4/pins_MKS_EAGLE.h" // STM32F4 env:mks_eagle
#elif MB(ARTILLERY_RUBY)
#include "stm32f4/pins_ARTILLERY_RUBY.h" // STM32F4 env:ARTILLERY_RUBY

//
// ARM Cortex M7
Expand Down
173 changes: 173 additions & 0 deletions Marlin/src/pins/stm32f4/pins_ARTILLERY_RUBY.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* 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/>.
*
*/
#pragma once

#if NOT_TARGET(STM32F4)
#error "Oops! Select an STM32F4 board in 'Tools > Board.'"
#elif HOTENDS > 1 || E_STEPPERS > 1
#error "Artillery X supports up to 1 hotends / E-steppers."
#endif

#define BOARD_INFO_NAME "Artillery Ruby"

#define FLASH_EEPROM_EMULATION
//#define I2C_EEPROM
//#define E2END 0xFFF // 4KB

#define HAL_TIMER_RATE F_CPU

//
// Limit Switches
//
#if (X_HOME_DIR == 1)
#define X_MIN_PIN -1
#define X_MAX_PIN PA2
#else
#define X_MIN_PIN PA2
#define X_MAX_PIN -1
#endif
#if (Y_HOME_DIR == 1)
#define Y_MIN_PIN -1
#define Y_MAX_PIN PA1
#else
#define Y_MIN_PIN PA1
#define Y_MAX_PIN -1
#endif
#if (Z_HOME_DIR == 1)
#define Z_MIN_PIN PC2
#define Z_MAX_PIN PA0
#else
#define Z_MIN_PIN PA0
#define Z_MAX_PIN PC2
#endif

//
// Steppers
//
#define X_STEP_PIN PB14
#define X_DIR_PIN PB13
#define X_ENABLE_PIN PB15

#define Y_STEP_PIN PB10
#define Y_DIR_PIN PB2
#define Y_ENABLE_PIN PB12

#define Z_STEP_PIN PB0
#define Z_DIR_PIN PC5
#define Z_ENABLE_PIN PB1

#define E0_STEP_PIN PA7
#define E0_DIR_PIN PA6
#define E0_ENABLE_PIN PC4

#define E1_STEP_PIN PA4
#define E1_DIR_PIN PA3
#define E1_ENABLE_PIN PA5

//
// Temperature Sensors
//
#define TEMP_0_PIN PC0
#define TEMP_BED_PIN PC1

//
// Heaters / Fans
//
#define HEATER_0_PIN PC9
#define HEATER_BED_PIN PA8

#define FAN_PIN PC8
#define FAN1_PIN PC7
#define FAN2_PIN PC6

//
// Servos
//
#define SERVO0_PIN PC3

//
// SPI
//
#define SCK_PIN PC10
#define MISO_PIN PC11
#define MOSI_PIN PC12

//
// LCD / Controller
//
#if HAS_WIRED_LCD
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
#define LCD_PINS_DC PB8 // Set as output on init
#define LCD_PINS_RS PB9 // Pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS PC15
#define DOGLCD_MOSI PB6
#define DOGLCD_SCK PB5
#define DOGLCD_A0 LCD_PINS_DC
#elif ENABLED(FYSETC_MINI_12864)
#define DOGLCD_CS PB6
#define DOGLCD_A0 PC15

//#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 PB5 // 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 PB9
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN PB8
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN PB7
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN PB9
#endif

#define DEFAULT_LCD_CONTRAST 255
#else
#define LCD_PINS_RS PC15
#define LCD_PINS_ENABLE PB6
#define LCD_PINS_D4 PB5
#define LCD_PINS_D5 PB9
#define LCD_PINS_D6 PB8
#endif

#define LCD_PINS_D7 PB7

//
// Beeper, SD Card, Encoder
//
#define BEEPER_PIN PC13

#if ENABLED(SDSUPPORT)
#define SDSS PA15
#define SD_DETECT_PIN PD2
#endif

#define BTN_EN1 PB4
#define BTN_EN2 PB3
#define BTN_ENC PC14
#endif
60 changes: 60 additions & 0 deletions buildroot/share/PlatformIO/boards/marlin_Artillery_Ruby.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"build": {
"core": "stm32",
"cpu": "cortex-m4",
"extra_flags": "-DSTM32F401xx",
"f_cpu": "84000000L",
"hwids": [
[
"0x0483",
"0xDF11"
]
],
"mcu": "stm32f401rct6",
"variant": "MARLIN_ARTILLERY_RUBY"
},
"debug": {
"jlink_device": "STM32F401RC",
"openocd_target": "stm32f4x",
"svd_path": "STM32F40x.svd",
"tools": {
"stlink": {
"server": {
"arguments": [
"-f",
"scripts/interface/stlink.cfg",
"-c",
"transport select hla_swd",
"-f",
"scripts/target/stm32f4x.cfg",
"-c",
"reset_config none"
],
"executable": "bin/openocd",
"package": "tool-openocd"
}
}
}
},
"frameworks": [
"arduino",
"stm32cube"
],
"name": "STM32F401RC (64k RAM. 256k Flash)",
"upload": {
"disable_flushing": false,
"maximum_ram_size": 65536,
"maximum_size": 262144,
"protocol": "dfu",
"protocols": [
"stlink",
"dfu",
"jlink"
],
"require_upload_port": true,
"use_1200bps_touch": false,
"wait_for_upload_port": false
},
"url": "https://www.st.com/en/evaluation-tools/steval-3dp001v1.html",
"vendor": "Generic"
}
10 changes: 10 additions & 0 deletions buildroot/share/PlatformIO/scripts/artillery_ruby.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Import("env")
from os.path import join

env.AddPostAction(
"$BUILD_DIR/${PROGNAME}.elf",
env.VerboseAction(" ".join([
"$OBJCOPY", "-O", "ihex", "-R", ".eeprom",
"$BUILD_DIR/${PROGNAME}.elf", "$BUILD_DIR/${PROGNAME}.hex"
]), "Building $BUILD_DIR/${PROGNAME}.hex")
)
Loading

0 comments on commit 651b93f

Please sign in to comment.