Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Creality Board 452 Support #20378

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Marlin/src/HAL/STM32F1/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@
#else
#error "LCD_SERIAL_PORT must be -1 or from 1 to 3. Please update your configuration."
#endif

#define SERIAL_GET_TX_BUFFER_FREE LCD_SERIAL.availableForWrite
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this change necessary in this commmit? It seems unrelated to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could go in either commit really but will be beneficial for any serial display on this board so i dropped it here.

#endif

// Set interrupt grouping for this MCU
Expand Down
9 changes: 5 additions & 4 deletions Marlin/src/core/boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -329,10 +329,11 @@
#define BOARD_CHITU3D_V6 4036 // Chitu3D TronXY X5SA V5 Board
#define BOARD_CREALITY_V4 4037 // Creality v4.x (STM32F103RE)
#define BOARD_CREALITY_V427 4038 // Creality v4.2.7 (STM32F103RE)
#define BOARD_TRIGORILLA_PRO 4039 // Trigorilla Pro (STM32F103ZET6)
#define BOARD_FLY_MINI 4040 // FLY MINI (STM32F103RCT6)
#define BOARD_FLSUN_HISPEED 4041 // FLSUN HiSpeedV1 (STM32F103VET6)
#define BOARD_BEAST 4042 // STM32F103RET6 Libmaple-based controller
#define BOARD_CREALITY_V452 4039 // Creality v4.5.2 (STM32F103RE)
#define BOARD_TRIGORILLA_PRO 4040 // Trigorilla Pro (STM32F103ZET6)
#define BOARD_FLY_MINI 4041 // FLY MINI (STM32F103RCT6)
#define BOARD_FLSUN_HISPEED 4042 // FLSUN HiSpeedV1 (STM32F103VET6)
#define BOARD_BEAST 4043 // STM32F103RET6 Libmaple-based controller

//
// ARM Cortex-M4F
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 @@ -530,6 +530,8 @@
#include "stm32f1/pins_CREALITY_V4.h" // STM32F1 env:STM32F103RET6_creality
#elif MB(CREALITY_V427)
#include "stm32f1/pins_CREALITY_V427.h" // STM32F1 env:STM32F103RET6_creality
#elif MB(CREALITY_V452)
#include "stm32f1/pins_CREALITY_V452.h" // STM32F1 env:STM32F103RET6_creality
#elif MB(TRIGORILLA_PRO)
#include "stm32f1/pins_TRIGORILLA_PRO.h" // STM32F1 env:trigorilla_pro
#elif MB(FLY_MINI)
Expand Down
4 changes: 2 additions & 2 deletions Marlin/src/pins/stm32f1/pins_CREALITY_V4.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
*/

/**
* CREALITY (STM32F103) board pin assignments
* Creality 4.2.x (STM32F103RET6) board pin assignments
*/

#if NOT_TARGET(__STM32F1__)
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 1 || E_STEPPERS > 1
#error "Creality V4 only supports one hotend / E-stepper. Comment out this line to continue."
#error "Creality_V4 only supports one hotend / E-stepper. Comment out this line to continue."
#endif

#ifndef BOARD_INFO_NAME
Expand Down
113 changes: 113 additions & 0 deletions Marlin/src/pins/stm32f1/pins_CREALITY_V452.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
/**
* Marlin 3D Printer Firmware
* Copyright (C) 2020 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/>.
*
*/

/**
* Creality v4.5.2 (STM32F103RET6) board pin assignments
*/

#if NOT_TARGET(__STM32F1__)
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 1 || E_STEPPERS > 1
#error "CREALITY_V452 supports up to 1 hotends / E-steppers. Comment out this line to continue."
#endif

#define BOARD_NAME "Creality v4.5.2"
#define DEFAULT_MACHINE_NAME "Creality3D"

#define BOARD_NO_NATIVE_USB

//
// EEPROM
//
#if NO_EEPROM_SELECTED
#define IIC_BL24CXX_EEPROM // EEPROM on I2C-0
//#define SDCARD_EEPROM_EMULATION
#endif

#if ENABLED(IIC_BL24CXX_EEPROM)
#define IIC_EEPROM_SDA PA11
#define IIC_EEPROM_SCL PA12
#define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
#elif ENABLED(SDCARD_EEPROM_EMULATION)
#define MARLIN_EEPROM_SIZE 0x800 // 2Kb
#endif

//
// Limit Switches
//
#define X_MIN_PIN PC4
// #define X_MAX_PIN PA7
sjasonsmith marked this conversation as resolved.
Show resolved Hide resolved
#define Y_MIN_PIN PC5
#define Z_MIN_PIN PA4
#define PROBE_TARE_PIN PA5

//
// Steppers
//
#define X_ENABLE_PIN PC3
#define X_STEP_PIN PB8
#define X_DIR_PIN PB7

#define Y_ENABLE_PIN PC3
#define Y_STEP_PIN PB6
#define Y_DIR_PIN PB5

#define Z_ENABLE_PIN PC3
#define Z_STEP_PIN PB4
#define Z_DIR_PIN PB3

#define E0_ENABLE_PIN PC3
#define E0_STEP_PIN PC2
#define E0_DIR_PIN PB9


//
// Release PB4 (Z_STEP_PIN) from JTAG NRST role
//
#define DISABLE_DEBUG

//
// Temperature Sensors
//
#define TEMP_0_PIN PB1 // TH1
#define TEMP_BED_PIN PB0 // TB1

//
// Heaters / Fans

#define HEATER_0_PIN PA1 // HEATER1
#define HEATER_BED_PIN PA2 // HOT BED

#define FAN_PIN PA0 // FAN
#define FAN_SOFT_PWM

/* SD card detect */
#define SD_DETECT_PIN PC7
#define NO_SD_HOST_DRIVE // SD is only seen by the printer

#define SDIO_SUPPORT // Extra added by Creality
#define SDIO_CLOCK 6000000 // In original source code overridden by Creality in sdio.h

#define CASE_LIGHT_PIN PA6

#define FIL_RUNOUT_PIN PA7
#define PROBE_ENABLE_PIN PC6 // Optoswitch to Enable Z Probe