1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-26 05:17:17 +00:00

Elegoo Neptune boards

Co-Authored-By: Michael <89716126+mlee12382@users.noreply.github.com>
This commit is contained in:
Scott Lahteine 2022-10-17 22:29:33 -05:00
parent aa44542f76
commit 9d15ec20b4
11 changed files with 578 additions and 3 deletions

View File

@ -471,6 +471,10 @@
#define BOARD_MELLOW_FLY_E3_V2 5250 // Mellow Fly E3 V2 (STM32F407VG)
#define BOARD_BLACKBEEZMINI_V1 5251 // BlackBeezMini V1 (STM32F401CCU6)
#define BOARD_XTLW_CLIMBER_8TH 5252 // XTLW Climber-8th (STM32F407VGT6)
#define BOARD_ZNP_ROBIN_NANO_V1_3 5253 // Elegoo Neptune 2 v1.3 board
#define BOARD_MKS_NEPTUNE_X 5254 // Elegoo Neptune X
#define BOARD_ZNP_ROBIN_NANO 5255 // Elegoo Neptune 2 v1.2 board
#define BOARD_MKS_NEPTUNE_3 5256 // Elegoo Neptune 3
//
// Other ARM Cortex-M4

View File

@ -19,13 +19,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* Based on WEEDO 62A pin configuration
* Copyright (c) 2019 WEEDO3D Perron
* ATmega2560
*/
#pragma once
#include "env_validate.h"

View File

@ -841,6 +841,14 @@
#include "stm32f4/pins_BLACKBEEZMINI.h" // STM32F4 env:BLACKBEEZMINI_V1
#elif MB(XTLW_CLIMBER_8TH)
#include "stm32f4/pins_XTLW_CLIMBER_8TH.h" // STM32F4 env:XTLW_CLIMBER_8TH
#elif MB(ZNP_ROBIN_NANO_V1_3)
#include "stm32f4/pins_MKS_ROBIN_NANO_V1_3_F4.h" // STM32F4 env:znp_robin_nano_v1_3
#elif MB(MKS_NEPTUNE_X)
#include "stm32f4/pins_MKS_NEPTUNE_X.h" // STM32F4 env:mks_neptune_x
#elif MB(ZNP_ROBIN_NANO)
#include "stm32f1/pins_MKS_ROBIN_NANO.h" // STM32F1 env:znp_robin_nano35
#elif MB(MKS_NEPTUNE_3)
#include "stm32f4/pins_MKS_NEPTUNE_3.h" // STM32F4 env:mks_neptune_3
//
// Other ARM Cortex-M4

View File

@ -19,6 +19,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* Pxmalion Core i3 - https://github.com/Pxmalion

View File

@ -19,6 +19,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* Creality CREALITY_CR4NTXXC10 (STM32F401RET6) board pin assignments

View File

@ -0,0 +1,143 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2024 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/>.
*
*/
#pragma once
//
// MKS Neptune 3
//
// Avoid conflict with TIMER_TONE
#define ALLOW_STM32F4
#include "env_validate.h"
#define BOARD_INFO_NAME "MKS Neptune 3"
//
// Release PB4 (Z_DIR_PIN) from JTAG NRST role
//
//#define DISABLE_DEBUG
// Use one of these or SDCard-based Emulation will be used
//#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
//#define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
#define I2C_EEPROM
#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
#define I2C_SCL_PIN PB6
#define I2C_SDA_PIN PB7
#endif
//
// Servos
//
#define SERVO0_PIN PA8 // BLTOUCH
//
// Limit Switches
//
//#define ZNP_TEST
#ifdef ZNP_TEST
#define X_DIAG_PIN PC14 // Z+
#else
#define X_DIAG_PIN PA13 // X-
#endif
#define Y_DIAG_PIN PB8
#define Z_DIAG_PIN PC13
#define X_STOP_PIN X_DIAG_PIN
#define Y_STOP_PIN Y_DIAG_PIN
#define Z_STOP_PIN Z_DIAG_PIN
//
// Z Probe (when not Z_MIN_PIN)
//
#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN PC14 // PB9
#endif
//
// Steppers
//
#define X_ENABLE_PIN PD2
#define X_STEP_PIN PC12
#define X_DIR_PIN PB3
#define Y_ENABLE_PIN PC10
#define Y_STEP_PIN PC11
#define Y_DIR_PIN PA15
#define Z_ENABLE_PIN PC8
#define Z_STEP_PIN PC7
#define Z_DIR_PIN PC9
#define E0_ENABLE_PIN PC6
#define E0_STEP_PIN PB10
#define E0_DIR_PIN PB1
#define E1_ENABLE_PIN PC5
#define E1_STEP_PIN PC4
#define E1_DIR_PIN PA4
//
// Temperature Sensors
//
#define TEMP_0_PIN PC1 // TH1
#define TEMP_1_PIN PC2 // TH2
#define TEMP_BED_PIN PC0 // TB1
//
// Heaters / Fans
//
#define HEATER_0_PIN PA6 // HEATER1
#define HEATER_BED_PIN PA5 // HOT BED
#define FAN_PIN PB0 // FAN
//#define FAN1_PIN PA7 // FAN1
#if NEED_TOUCH_PINS
#define TOUCH_CS_PIN PA7 // SPI2_NSS
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
#endif
//
// SD Support
//
#ifndef SDCARD_CONNECTION
#define SDCARD_CONNECTION ONBOARD
#endif
#if SD_CONNECTION_IS(ONBOARD)
#define ENABLE_SPI3
#define SD_SS_PIN -1
#define SDSS PB12
#define SD_SCK_PIN PB13
#define SD_MISO_PIN PB14
#define SD_MOSI_PIN PB15
#define SD_SPI_SPEED SPI_HALF_SPEED
#if ENABLED(NO_SD_HOST_DRIVE)
// Detect pin doesn't work when NO_SD_HOST_DRIVE disabled
#define SD_DETECT_PIN PC3
#endif
#endif

View File

@ -0,0 +1,52 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2024 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/>.
*
*/
#pragma once
#define ALLOW_STM32DUINO
#include "env_validate.h"
#if HOTENDS > 2 || E_STEPPERS > 2
#error "MKS Neptune X supports up to 2 hotends / E steppers."
#endif
#define BOARD_INFO_NAME "MKS Neptune X"
//
// Software SPI pins for TMC2130 stepper drivers
// This board only supports SW SPI for stepper drivers
//
#if HAS_TMC_SPI && DISABLED(TMC_USE_SW_SPI)
#warning "TMC_USE_SW_SPI is required for MKS Neptune X with TMC drivers."
#endif
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI PD14
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO PD1
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK PD0
#endif
#endif
#include "pins_MKS_NEPTUNE_X_common.h"

View File

@ -0,0 +1,309 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2024 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/>.
*
*/
#pragma once
//
// MKS Neptune X
//
#define HAS_OTG_USB_HOST_SUPPORT // USB Flash Drive support
// Avoid conflict with TIMER_TONE
#define STEP_TIMER 10
// Use one of these or SDCard-based Emulation will be used
//#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
//#define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
#define I2C_EEPROM
#define MARLIN_EEPROM_SIZE 0x1000 // 4K
#define I2C_SCL_PIN PB6
#define I2C_SDA_PIN PB7
#endif
//
// Release PB4 (Z_DIR_PIN) from JTAG NRST role
//
//#define DISABLE_DEBUG
//
// Servos
//
#define SERVO0_PIN PA8 // Enable BLTOUCH
//
// Limit Switches
//
#define X_DIAG_PIN PA15
#define Y_DIAG_PIN PC15
#define Z_DIAG_PIN PC14
#define E0_DIAG_PIN PC4
#define E1_DIAG_PIN PE7
#define X_STOP_PIN X_DIAG_PIN
#define Y_STOP_PIN Y_DIAG_PIN
#define Z_MIN_PIN Z_DIAG_PIN
#define Z_MAX_PIN E0_DIAG_PIN
//
// Steppers
//
#define X_ENABLE_PIN PE4
#define X_STEP_PIN PE3
#define X_DIR_PIN PE2
#define Y_ENABLE_PIN PE1
#define Y_STEP_PIN PE0
#define Y_DIR_PIN PB9
#define Z_ENABLE_PIN PB8
#define Z_STEP_PIN PB5
#define Z_DIR_PIN PB4
#define E0_ENABLE_PIN PB3
#define E0_STEP_PIN PD6
#define E0_DIR_PIN PD3
#define E1_ENABLE_PIN PA3
#define E1_STEP_PIN PA6
#define E1_DIR_PIN PA1
#if HAS_TMC_UART
//
// Software serial
// No Hardware serial for steppers
//
#define X_SERIAL_TX_PIN PD5
#define X_SERIAL_RX_PIN X_SERIAL_TX_PIN
#define Y_SERIAL_TX_PIN PD7
#define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN
#define Z_SERIAL_TX_PIN PD4
#define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN
#define E0_SERIAL_TX_PIN PD9
#define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN
#define E1_SERIAL_TX_PIN PD8
#define E1_SERIAL_RX_PIN E1_SERIAL_TX_PIN
// Reduce baud rate to improve software serial reliability
#define TMC_BAUD_RATE 19200
#endif
//
// Temperature Sensors
//
#define TEMP_0_PIN PC1 // TH1
#define TEMP_1_PIN PA2 // TH2
#define TEMP_BED_PIN PC0 // TB1
#if HOTENDS == 1 && !REDUNDANT_TEMP_MATCH(SOURCE, E1)
#if TEMP_SENSOR_PROBE
#define TEMP_PROBE_PIN TEMP_1_PIN
#elif TEMP_SENSOR_CHAMBER
#define TEMP_CHAMBER_PIN TEMP_1_PIN
#endif
#endif
//
// Heaters / Fans
//
#define HEATER_0_PIN PC3 // HEATER1
#define HEATER_1_PIN PB0 // HEATER2
#define HEATER_BED_PIN PA0 // HOT BED
#define FAN_PIN PC14 // FAN
#define FAN1_PIN PB1 // FAN1
//
// Thermocouples
//
//#define TEMP_0_CS_PIN HEATER_0_PIN // TC1 - CS1
//#define TEMP_0_CS_PIN HEATER_1_PIN // TC2 - CS2
//
// Misc. Functions
//
#if HAS_TFT_LVGL_UI
#define MT_DET_1_PIN PA4 // MT_DET
#define MT_DET_2_PIN PE6
#define MT_DET_PIN_STATE LOW
#endif
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN PA4
#endif
#ifndef FIL_RUNOUT2_PIN
#define FIL_RUNOUT2_PIN PE6
#endif
#ifndef POWER_LOSS_PIN
#define POWER_LOSS_PIN PA2 // PW_DET
#endif
//#define SUICIDE_PIN PB2
//#define LED_PIN PB2
//#define KILL_PIN PA2
//#define KILL_PIN_STATE LOW
//
// Power Supply Control
//
#if ENABLED(MKS_PWC)
#if ENABLED(TFT_LVGL_UI)
#if ENABLED(PSU_CONTROL)
#error "PSU_CONTROL is incompatible with MKS_PWC plus TFT_LVGL_UI."
#endif
#undef MKS_PWC
#define SUICIDE_PIN PB2
#define SUICIDE_PIN_STATE LOW
#else
#define PS_ON_PIN PB2 // PW_OFF
#endif
#define KILL_PIN PA13 // PW_DET
#define KILL_PIN_STATE HIGH
#endif
// Random Info
#define USB_SERIAL -1 // USB Serial
#define WIFI_SERIAL 3 // USART3
#define MKS_WIFI_MODULE_SERIAL 1 // USART1
#define MKS_WIFI_MODULE_SPI 2 // SPI2
#ifndef SDCARD_CONNECTION
#define SDCARD_CONNECTION ONBOARD
#endif
// MKS WIFI MODULE
#if ENABLED(MKS_WIFI_MODULE)
#define WIFI_IO0_PIN PC13
#define WIFI_IO1_PIN PC7
#define WIFI_RESET_PIN PE9
#endif
// MKS TEST
#if ENABLED(MKS_TEST)
#define MKS_TEST_POWER_LOSS_PIN PA13 // PW_DET
#define MKS_TEST_PS_ON_PIN PB2 // PW_OFF
#endif
//
// TFT with FSMC interface
//
#if HAS_FSMC_TFT
/**
* Note: MKS Robin TFT screens use various TFT controllers.
* If the screen stays white, disable 'TFT_RESET_PIN'
* to let the bootloader init the screen.
*/
#define TFT_RESET_PIN PC6 // FSMC_RST
#define TFT_BACKLIGHT_PIN PD13
#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
#define DOGLCD_SCK -1
#define TOUCH_CS_PIN PA7 // SPI2_NSS
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
#define FSMC_CS_PIN PD7
#define FSMC_RS_PIN PD11
#define FSMC_DMA_DEV DMA2
#define FSMC_DMA_CHANNEL DMA_CH5
#define TFT_CS_PIN FSMC_CS_PIN
#define TFT_RS_PIN FSMC_RS_PIN
#define TOUCH_BUTTONS_HW_SPI
#define TOUCH_BUTTONS_HW_SPI_DEVICE 2
#define TFT_BUFFER_SIZE 14400
#endif
//
// Onboard SD card
//
// detect pin doesn't work when ONBOARD and NO_SD_HOST_DRIVE disabled
#if SD_CONNECTION_IS(ONBOARD)
#define ENABLE_SPI3
#define SD_SS_PIN -1
#define SDSS PC9
#define SD_SCK_PIN PC10
#define SD_MISO_PIN PC11
#define SD_MOSI_PIN PC12
#define SD_DETECT_PIN PD12
#endif
#define SPI_FLASH
#if ENABLED(SPI_FLASH)
#define HAS_SPI_FLASH 1
#define SPI_DEVICE 2
#define SPI_FLASH_SIZE 0x1000000
#define SPI_FLASH_CS_PIN PB12
#define SPI_FLASH_MOSI_PIN PC3
#define SPI_FLASH_MISO_PIN PC2
#define SPI_FLASH_SCK_PIN PB13
#endif
//
// LCD / Controller
//
#define BEEPER_PIN PC5
//
// TFT with FSMC interface
//
#if HAS_FSMC_TFT
/**
* Note: MKS Robin TFT screens use various TFT controllers.
* If the screen stays white, disable 'TFT_RESET_PIN'
* to let the bootloader init the screen.
*/
#define TFT_RESET_PIN PC6 // FSMC_RST
#define TFT_BACKLIGHT_PIN PD13
#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
#define DOGLCD_SCK -1
#define TOUCH_CS_PIN PA7 // SPI2_NSS
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
#define FSMC_CS_PIN PD7
#define FSMC_RS_PIN PD11
#define FSMC_DMA_DEV DMA2
#define FSMC_DMA_CHANNEL DMA_CH5
#define TFT_CS_PIN FSMC_CS_PIN
#define TFT_RS_PIN FSMC_RS_PIN
#define TOUCH_BUTTONS_HW_SPI
#define TOUCH_BUTTONS_HW_SPI_DEVICE 2
#define TFT_BUFFER_SIZE 14400
#endif

View File

@ -19,6 +19,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* BOARD_TRONXY_CXY_446_V10
@ -26,8 +27,6 @@
* CXY-V6-191121 / CXY-446-V10-220413
*/
#pragma once
#include "env_validate.h"
#if EXTRUDERS > 2 || E_STEPPERS > 2 || NUM_RUNOUT_SENSORS > 2

View File

@ -231,6 +231,13 @@ build_flags = ${env:STM32F103RE_btt.build_flags}
-DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC
build_unflags = ${env:STM32F103RE_btt.build_unflags} -DUSBD_USE_CDC
#
# ZNP Robin Nano V1.2
#
[env:znp_robin_nano35]
extends = mks_robin_nano_v1v2
board_build.encrypt_mks = elegoo.bin
#
# Mingda MPX_ARM_MINI
#

View File

@ -640,6 +640,50 @@ board_build.rename = Robin_nano35.bin
debug_tool = jlink
upload_protocol = jlink
#
# MKS Neptune X
#
[env:mks_neptune_x]
extends = stm32_variant
board = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_F4x7Vx
board_build.offset = 0xC000
board_upload.offset_address = 0x0800C000
board_build.rename = elegoo.bin
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags} ${stm_flash_drive.build_flags}
-DHAL_PCD_MODULE_ENABLED -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
-DUSE_USBHOST_HS
-DUSBD_IRQ_PRIO=5
-DUSBD_IRQ_SUBPRIO=6
-DUSE_USB_HS_IN_FS
-DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
-DSTM32_FLASH_SIZE=512
-DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2
debug_tool = jlink
upload_protocol = jlink
#
# MKS Neptune 3
#
[env:mks_neptune_3]
extends = stm32_variant
board = marlin_STM32F407VGT6_CCM
board_build.variant = MARLIN_F4x7Vx
board_build.offset = 0xC000
board_upload.offset_address = 0x0800C000
board_build.rename = ZNP_ROBIN_NANO.bin
platform_packages = ${stm_flash_drive.platform_packages}
build_flags = ${stm32_variant.build_flags}
-DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
-DSTM32_FLASH_SIZE=512
-DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2
-DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
build_unflags = ${stm32_variant.build_unflags}
-DUSBCON -DUSBD_USE_CDC
debug_tool = jlink
upload_protocol = jlink
#
# BOARD_MKS_ROBIN_NANO_V1_3_F4
# - MKS Robin Nano V1.3 (STM32F407VET6, 5 Pololu Plug)
@ -665,6 +709,13 @@ build_flags = ${mks_robin_nano_v1_3_f4_common.build_flags}
-DTIMER_SERVO=TIM2 -DTIMER_TONE=TIM3 -DSS_TIMER=4
-DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
#
# Elegoo Neptune 2
#
[env:znp_robin_nano_v1_3]
extends = mks_robin_nano_v1_3_f4
board_build.rename = elegoo.bin
#
# Artillery Ruby
#