-
-
Notifications
You must be signed in to change notification settings - Fork 19.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
507401a
commit d36620b
Showing
24 changed files
with
3,107 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,256 @@ | ||
/** | ||
* Marlin 3D Printer Firmware | ||
* Copyright (c) 2023 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 <https://www.gnu.org/licenses/>. | ||
* | ||
*/ | ||
|
||
// Source: | ||
|
||
/** | ||
* HOW TO COMPILE | ||
* | ||
* PlatformIO - Use the STM32F401RE environment (or the "Auto Build Marlin" extension). | ||
*/ | ||
|
||
#pragma once | ||
|
||
#if NOT_TARGET(STM32F4) | ||
#error "Oops! Select an STM32F1 board in 'Tools > Board.'" | ||
#endif | ||
|
||
#ifndef BOARD_INFO_NAME | ||
#define BOARD_INFO_NAME "STM32F401RET6" | ||
#endif | ||
|
||
#ifndef DEFAULT_MACHINE_NAME | ||
#define DEFAULT_MACHINE_NAME "Ender-5 S1" | ||
#endif | ||
|
||
#define IIC_BL24CXX_EEPROM // EEPROM on I2C-0 used only for display settings | ||
#if ENABLED(IIC_BL24CXX_EEPROM) | ||
#define IIC_EEPROM_SDA PA11 | ||
#define IIC_EEPROM_SCL PA12 | ||
#define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16) | ||
#else | ||
#define SDCARD_EEPROM_EMULATION // SD EEPROM until all EEPROM is BL24CXX | ||
#define MARLIN_EEPROM_SIZE 0x800 // 2Kb | ||
#endif | ||
|
||
// SPI | ||
//#define SPI_EEPROM // EEPROM on SPI-0 | ||
//#define SPI_CHAN_EEPROM1 ? | ||
//#define SPI_EEPROM1_CS ? | ||
|
||
// 2K EEPROM | ||
//#define SPI_EEPROM2_CS ? | ||
|
||
// 32Mb FLASH | ||
//#define SPI_FLASH_CS ? | ||
|
||
// | ||
// Limit Switches | ||
// | ||
#define X_STOP_PIN PA5 | ||
#define Y_STOP_PIN PA6 | ||
|
||
|
||
#if ENABLED(BLTOUCH) | ||
#define Z_MAX_PIN PA15 //ROCK_20220730 | ||
#define Z_MIN_PIN PC14 | ||
#define SERVO0_PIN PC13 // BLTouch OUT | ||
//#define Z_STOP_PIN_NADD PA15 // Added z-axis limit switch | ||
#elif ENABLED(PROBE_ACTIVATION_SWITCH) | ||
//#define Z_MIN_PIN PC15 | ||
#define PROBE_TARE_PIN PC14 | ||
#define PROBE_ACTIVATION_SWITCH_PIN PB2 | ||
#else | ||
#define Z_MIN_PIN PA15 | ||
#endif | ||
#define Z_MIN_PIN PC14 | ||
#define SERVO0_PIN PC13 // BLTouch OUT | ||
|
||
// | ||
// Filament runout | ||
// | ||
#if ENABLED(FILAMENT_RUNOUT_SENSOR) | ||
#define FIL_RUNOUT_PIN PC15 | ||
#endif | ||
|
||
// | ||
// Steppers Motor drive chip power control | ||
// | ||
#define X_ENABLE_PIN PC3 | ||
#define X_STEP_PIN PC2 | ||
#define X_DIR_PIN PB9 | ||
|
||
#define Y_ENABLE_PIN PC3 | ||
#define Y_STEP_PIN PB8 | ||
#define Y_DIR_PIN PB7 | ||
|
||
#define Z_ENABLE_PIN PC3 | ||
#define Z_STEP_PIN PB6 | ||
#define Z_DIR_PIN PB5 | ||
|
||
#define E0_ENABLE_PIN PC3 | ||
#define E0_STEP_PIN PB4 | ||
#define E0_DIR_PIN PB3 | ||
|
||
// | ||
// Temperature Sensors | ||
// | ||
#ifndef TEMP_0_PIN | ||
#define TEMP_0_PIN PC5 // E1_THERMISTOR PA0 -> PT100 | ||
#endif | ||
#define TEMP_BED_PIN PC4 // BED_THERMISTOR_1 | ||
|
||
// | ||
// Heaters / Fans | ||
// | ||
#define HEATER_0_PIN PA1 // E1_HEAT_PWM | ||
#define HEATER_BED_PIN PA7 // BED_HEAT_1 FET | ||
|
||
#define FAN_PIN PA0 // Part cooling fan FET | ||
//#define FAN1_PIN PE11 // Extruder fan FET | ||
//#define FAN2_PIN PE1 // Controller fan FET | ||
|
||
#ifndef E0_AUTO_FAN_PIN | ||
#define E0_AUTO_FAN_PIN PA1 // FAN1_PIN | ||
#endif | ||
|
||
// | ||
// SD Card | ||
// | ||
#define SD_DETECT_PIN PC7 | ||
#define SDCARD_CONNECTION ONBOARD | ||
#define ONBOARD_SPI_DEVICE 1 | ||
#define ONBOARD_SD_CS_PIN PC12 // SDSS | ||
#define SDIO_SUPPORT | ||
#define NO_SD_HOST_DRIVE // This board's SD is only seen by the printer | ||
|
||
// SPI 2 | ||
#if ENABLED(RET6_12864_LCD) | ||
|
||
#define LCD_PINS_RS PB12 | ||
#define LCD_PINS_ENABLE PB15 | ||
#define LCD_PINS_D4 PB13 | ||
#define BTN_EN2 PB14 | ||
#endif | ||
|
||
//#define LED_CONTROL_PIN PA7 | ||
|
||
// | ||
// WiFI Reset | ||
// | ||
#ifdef MENU_RESET_WIFI | ||
#define RESET_WIFI_PIN PB12 | ||
#endif | ||
|
||
// | ||
// Backpower | ||
// | ||
#ifndef BACKPOWER_CTRL_PIN | ||
#define BACKPOWER_CTRL_PIN PA4 // Pull down on the electricity, When the ADC detects that the 24V power supply is below 20V, Save the continued call data first, PA4 = 1 | ||
#endif | ||
|
||
#ifndef CHECK_24V_PIN | ||
#define POWER_DETECTION_PIN PB0 // Detect ADC input pin of 24V power supply | ||
#endif | ||
|
||
/** | ||
* Logical pin vs. port/pin cross reference | ||
* | ||
* PA0 54 // E1_THERMISTOR PA9 0 // TX | ||
* PA1 55 // E2_THERMISTOR PA10 1 // RX | ||
* PA2 56 // E3_THERMISTOR PD3 2 // CTS | ||
* PA3 53 // BED_THERMISTOR_3 PD4 3 // RTS | ||
* PA4 16 // SPI_CS PD5 4 // TX | ||
* PA5 17 // SPI_SCK PD6 5 // RX | ||
* PA6 18 // SPI_MISO PB5 6 // WIFI_WAKEUP | ||
* PA7 19 // SPI_MOSI PE11 7 // WIFI_RESET | ||
* PA8 43 // V_STOP PE12 8 // WIFI_BOOT | ||
* PA9 0 // TX PE1 9 // STATUS_LED | ||
* PA10 1 // RX PB12 10 // SPI_CS | ||
* PA11 30 // OTG_DM PB15 11 // SPI_MOSI | ||
* PA12 31 // OTG_DP PB14 12 // SPI_MISO | ||
* PA13 20 // JTAG_TMS/SWDIO PB13 13 // SPI_SCK | ||
* PA14 21 // JTAG_TCK/SWCLK PB7 14 // SDA | ||
* PA15 25 // SD_CARD_DETECT PB6 15 // SCL | ||
* PB0 49 // E2_HEAT_PWM PA4 16 // SPI_CS | ||
* PB1 50 // E3_HEAT_PWM PA5 17 // SPI_SCK | ||
* PB3 22 // JTAG_TDO/SWO PA6 18 // SPI_MISO | ||
* PB4 37 // USER4 PA7 19 // SPI_MOSI | ||
* PB5 6 // WIFI_WAKEUP PA13 20 // JTAG_TMS/SWDIO | ||
* PB6 15 // SCL PA14 21 // JTAG_TCK/SWCLK | ||
* PB7 14 // SDA PB3 22 // JTAG_TDO/SWO | ||
* PB8 77 // E3_PWM PC8 23 // SDIO_D0 | ||
* PB9 35 // USER1 PC9 24 // SDIO_D1 | ||
* PB10 64 // Y_PWM PA15 25 // SD_CARD_DETECT | ||
* PB12 10 // SPI_CS PC10 26 // SDIO_D2 | ||
* PB13 13 // SPI_SCK PC11 27 // SDIO_D3 | ||
* PB14 12 // SPI_MISO PC12 28 // SDIO_CK | ||
* PB15 11 // SPI_MOSI PD2 29 // SDIO_CMD | ||
* PC0 68 // Z_DIR PA11 30 // OTG_DM | ||
* PC1 33 // IR_ON PA12 31 // OTG_DP | ||
* PC2 51 // BED_THERMISTOR_1 PD1 32 // IR_OUT | ||
* PC3 52 // BED_THERMISTOR_2 PC1 33 // IR_ON | ||
* PC4 57 // E1_FAN PD7 34 // USER3 | ||
* PC5 58 // E2_FAN PB9 35 // USER1 | ||
* PC6 67 // Z_PWM PE0 36 // USER2 | ||
* PC7 48 // E1_HEAT_PWM PB4 37 // USER4 | ||
* PC8 23 // SDIO_D0 PE7 38 // USER_BUTTON | ||
* PC9 24 // SDIO_D1 PD8 39 // X_STOP | ||
* PC10 26 // SDIO_D2 PD9 40 // Y_STOP | ||
* PC11 27 // SDIO_D3 PD10 41 // Z_STOP | ||
* PC12 28 // SDIO_CK PD11 42 // U_STOP | ||
* PC13 70 // E1_DIR PA8 43 // V_STOP | ||
* PC14 69 // E1_RESET PD0 44 // W_STOP | ||
* PC15 66 // Z_RESET PD13 45 // BED_HEAT_2 | ||
* PD0 44 // W_STOP PD14 46 // BED_HEAT_1 | ||
* PD1 32 // IR_OUT PD15 47 // BED_HEAT_3 | ||
* PD2 29 // SDIO_CMD PC7 48 // E1_HEAT_PWM | ||
* PD3 2 // CTS PB0 49 // E2_HEAT_PWM | ||
* PD4 3 // RTS PB1 50 // E3_HEAT_PWM | ||
* PD5 4 // TX PC2 51 // BED_THERMISTOR_1 | ||
* PD6 5 // RX PC3 52 // BED_THERMISTOR_2 | ||
* PD7 34 // USER3 PA3 53 // BED_THERMISTOR_3 | ||
* PD8 39 // X_STOP PA0 54 // E1_THERMISTOR | ||
* PD9 40 // Y_STOP PA1 55 // E2_THERMISTOR | ||
* PD10 41 // Z_STOP PA2 56 // E3_THERMISTOR | ||
* PD11 42 // U_STOP PC4 57 // E1_FAN | ||
* PD12 71 // E1_PWM PC5 58 // E2_FAN | ||
* PD13 45 // BED_HEAT_2 PE8 59 // E3_FAN | ||
* PD14 46 // BED_HEAT_1 PE13 60 // X_RESET | ||
* PD15 47 // BED_HEAT_3 PE14 61 // X_PWM | ||
* PE0 36 // USER2 PE15 62 // X_DIR | ||
* PE1 9 // STATUS_LED PE10 63 // Y_RESET | ||
* PE2 76 // E3_DIR PB10 64 // Y_PWM | ||
* PE3 75 // E3_RESET PE9 65 // Y_DIR | ||
* PE4 72 // E2_RESET PC15 66 // Z_RESET | ||
* PE5 73 // E2_PWM PC6 67 // Z_PWM | ||
* PE6 74 // E2_DIR PC0 68 // Z_DIR | ||
* PE7 38 // USER_BUTTON PC14 69 // E1_RESET | ||
* PE8 59 // E3_FAN PC13 70 // E1_DIR | ||
* PE9 65 // Y_DIR PD12 71 // E1_PWM | ||
* PE10 63 // Y_RESET PE4 72 // E2_RESET | ||
* PE11 7 // WIFI_RESET PE5 73 // E2_PWM | ||
* PE12 8 // WIFI_BOOT PE6 74 // E2_DIR | ||
* PE13 60 // X_RESET PE3 75 // E3_RESET | ||
* PE14 61 // X_PWM PE2 76 // E3_DIR | ||
* PE15 62 // X_DIR PB8 77 // E3_PWM | ||
*/ |
65 changes: 65 additions & 0 deletions
65
buildroot/share/PlatformIO/boards/marlin_CREALITY_STM32F401RE.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
{ | ||
"build": { | ||
"core": "stm32", | ||
"cpu": "cortex-m4", | ||
"extra_flags": "-DSTM32F401xx", | ||
"f_cpu": "84000000L", | ||
"hwids": [ | ||
[ | ||
"0x1EAF", | ||
"0x0003" | ||
], | ||
[ | ||
"0x0483", | ||
"0x3748" | ||
] | ||
], | ||
"ldscript": "ldscript.ld", | ||
"mcu": "stm32f401ret6", | ||
"variant": "MARLIN_CREALITY_STM32F401RE" | ||
}, | ||
"debug": { | ||
"jlink_device": "STM32F401RE", | ||
"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": "STM32F401RE (64k RAM. 512k Flash)", | ||
"upload": { | ||
"disable_flushing": false, | ||
"maximum_ram_size": 65536, | ||
"maximum_size": 514288, | ||
"protocol": "stlink", | ||
"protocols": [ | ||
"stlink", | ||
"dfu", | ||
"jlink" | ||
], | ||
"require_upload_port": true, | ||
"use_1200bps_touch": false, | ||
"wait_for_upload_port": false | ||
}, | ||
"url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f401re.html", | ||
"vendor": "Generic" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# | ||
# CREALITY_F401RE.py | ||
# | ||
import os,sys,shutil,marlin | ||
Import("env") | ||
|
||
from SCons.Script import DefaultEnvironment | ||
board = DefaultEnvironment().BoardConfig() | ||
|
||
# | ||
# Copy the firmware.bin file to build.firmware, no encryption | ||
# | ||
def noencrypt(source, target, env): | ||
firmware = os.path.join(target[0].dir.path, board.get("build.firmware")) | ||
shutil.copy(target[0].path, firmware) | ||
|
||
# | ||
# For build.offset define LD_FLASH_OFFSET, used by ldscript.ld | ||
# | ||
if 'offset' in board.get("build").keys(): | ||
LD_FLASH_OFFSET = board.get("build.offset") | ||
marlin.relocate_vtab(LD_FLASH_OFFSET) | ||
|
||
# Flash size | ||
maximum_flash_size = int(board.get("upload.maximum_size") / 1024) | ||
marlin.replace_define('STM32_FLASH_SIZE', maximum_flash_size) | ||
|
||
# Get upload.maximum_ram_size (defined by /buildroot/share/PlatformIO/boards/VARIOUS.json) | ||
maximum_ram_size = board.get("upload.maximum_ram_size") | ||
|
||
for i, flag in enumerate(env["LINKFLAGS"]): | ||
if "-Wl,--defsym=LD_FLASH_OFFSET" in flag: | ||
env["LINKFLAGS"][i] = "-Wl,--defsym=LD_FLASH_OFFSET=" + LD_FLASH_OFFSET | ||
if "-Wl,--defsym=LD_MAX_DATA_SIZE" in flag: | ||
env["LINKFLAGS"][i] = "-Wl,--defsym=LD_MAX_DATA_SIZE=" + str(maximum_ram_size - 40) | ||
|
||
# | ||
# Only copy the file if there's no encrypt | ||
# | ||
board_keys = board.get("build").keys() | ||
if 'firmware' in board_keys and ('encrypt' not in board_keys or board.get("build.encrypt") == 'No'): | ||
import marlin | ||
marlin.add_post_action(noencrypt) |
Oops, something went wrong.