BTT SKR V2.0 / Stepper Driver Anti-Reverse Protection (#21503)
This commit is contained in:
		
				
					committed by
					
						 Scott Lahteine
						Scott Lahteine
					
				
			
			
				
	
			
			
			
						parent
						
							8a8aeba17c
						
					
				
				
					commit
					4da3f45f41
				
			| @@ -3387,6 +3387,15 @@ | |||||||
|   #define POWER_MONITOR_VOLTAGE_OFFSET  0         // Offset (in volts) applied to the calculated voltage |   #define POWER_MONITOR_VOLTAGE_OFFSET  0         // Offset (in volts) applied to the calculated voltage | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Stepper Driver Anti-SNAFU Protection | ||||||
|  |  * | ||||||
|  |  * If the SAFE_POWER_PIN is defined for your board, Marlin will check | ||||||
|  |  * that stepper drivers are properly plugged in before applying power. | ||||||
|  |  * Disable protection if your stepper drivers don't support the feature. | ||||||
|  |  */ | ||||||
|  | //#define DISABLE_DRIVER_SAFE_POWER_PROTECT | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * CNC Coordinate Systems |  * CNC Coordinate Systems | ||||||
|  * |  * | ||||||
|   | |||||||
| @@ -232,6 +232,10 @@ | |||||||
|   #include "lcd/extui/lib/dgus/DGUSScreenHandler.h" |   #include "lcd/extui/lib/dgus/DGUSScreenHandler.h" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if HAS_DRIVER_SAFE_POWER_PROTECT | ||||||
|  |   #include "feature/stepper_driver_safety.h" | ||||||
|  | #endif | ||||||
|  |  | ||||||
| PGMSTR(M112_KILL_STR, "M112 Shutdown"); | PGMSTR(M112_KILL_STR, "M112 Shutdown"); | ||||||
|  |  | ||||||
| MarlinState marlin_state = MF_INITIALIZING; | MarlinState marlin_state = MF_INITIALIZING; | ||||||
| @@ -1223,6 +1227,15 @@ void setup() { | |||||||
|     SETUP_RUN(ui.reset_status());     // Load welcome message early. (Retained if no errors exist.) |     SETUP_RUN(ui.reset_status());     // Load welcome message early. (Retained if no errors exist.) | ||||||
|   #endif |   #endif | ||||||
|  |  | ||||||
|  |   #if PIN_EXISTS(SAFE_POWER) | ||||||
|  |     #if HAS_DRIVER_SAFE_POWER_PROTECT | ||||||
|  |       SETUP_RUN(stepper_driver_backward_check()); | ||||||
|  |     #else | ||||||
|  |       SETUP_LOG("SAFE_POWER"); | ||||||
|  |       OUT_WRITE(SAFE_POWER_PIN, HIGH); | ||||||
|  |     #endif | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|   #if ENABLED(PROBE_TARE) |   #if ENABLED(PROBE_TARE) | ||||||
|     SETUP_RUN(probe.tare_init()); |     SETUP_RUN(probe.tare_init()); | ||||||
|   #endif |   #endif | ||||||
| @@ -1467,6 +1480,10 @@ void setup() { | |||||||
|     SETUP_RUN(test_tmc_connection(true, true, true, true)); |     SETUP_RUN(test_tmc_connection(true, true, true, true)); | ||||||
|   #endif |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_DRIVER_SAFE_POWER_PROTECT | ||||||
|  |     SETUP_RUN(stepper_driver_backward_report()); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|   #if HAS_PRUSA_MMU2 |   #if HAS_PRUSA_MMU2 | ||||||
|     SETUP_RUN(mmu2.init()); |     SETUP_RUN(mmu2.init()); | ||||||
|   #endif |   #endif | ||||||
|   | |||||||
| @@ -363,25 +363,26 @@ | |||||||
| #define BOARD_BLACK_STM32F407VE       4204  // BLACK_STM32F407VE | #define BOARD_BLACK_STM32F407VE       4204  // BLACK_STM32F407VE | ||||||
| #define BOARD_BLACK_STM32F407ZE       4205  // BLACK_STM32F407ZE | #define BOARD_BLACK_STM32F407ZE       4205  // BLACK_STM32F407ZE | ||||||
| #define BOARD_STEVAL_3DP001V1         4206  // STEVAL-3DP001V1 3D PRINTER BOARD | #define BOARD_STEVAL_3DP001V1         4206  // STEVAL-3DP001V1 3D PRINTER BOARD | ||||||
| #define BOARD_BTT_SKR_PRO_V1_1        4207  // BigTreeTech SKR Pro v1.1 (STM32F407ZG) | #define BOARD_BTT_SKR_PRO_V1_1        4207  // BigTreeTech SKR Pro v1.1 (STM32F407ZGT6) | ||||||
| #define BOARD_BTT_SKR_PRO_V1_2        4208  // BigTreeTech SKR Pro v1.2 (STM32F407ZG) | #define BOARD_BTT_SKR_PRO_V1_2        4208  // BigTreeTech SKR Pro v1.2 (STM32F407ZGT6) | ||||||
| #define BOARD_BTT_BTT002_V1_0         4209  // BigTreeTech BTT002 v1.0 (STM32F407VG) | #define BOARD_BTT_BTT002_V1_0         4209  // BigTreeTech BTT002 v1.0 (STM32F407VGT6) | ||||||
| #define BOARD_BTT_E3_RRF              4210  // BigTreeTech E3 RRF (STM32F407VGT6) | #define BOARD_BTT_E3_RRF              4210  // BigTreeTech E3 RRF (STM32F407VGT6) | ||||||
| #define BOARD_BTT_GTR_V1_0            4211  // BigTreeTech GTR v1.0 (STM32F407IGT) | #define BOARD_BTT_SKR_V2_0            4211  // BigTreeTech SKR v2.0 (STM32F407VGT6) | ||||||
| #define BOARD_LERDGE_K                4212  // Lerdge K (STM32F407ZG) | #define BOARD_BTT_GTR_V1_0            4212  // BigTreeTech GTR v1.0 (STM32F407IGT) | ||||||
| #define BOARD_LERDGE_S                4213  // Lerdge S (STM32F407VE) | #define BOARD_LERDGE_K                4213  // Lerdge K (STM32F407ZG) | ||||||
| #define BOARD_LERDGE_X                4214  // Lerdge X (STM32F407VE) | #define BOARD_LERDGE_S                4214  // Lerdge S (STM32F407VE) | ||||||
| #define BOARD_VAKE403D                4215  // VAkE 403D (STM32F446VET6) | #define BOARD_LERDGE_X                4215  // Lerdge X (STM32F407VE) | ||||||
| #define BOARD_FYSETC_S6               4216  // FYSETC S6 (STM32F446VET6) | #define BOARD_VAKE403D                4216  // VAkE 403D (STM32F446VET6) | ||||||
| #define BOARD_FYSETC_S6_V2_0          4217  // FYSETC S6 v2.0 (STM32F446VET6) | #define BOARD_FYSETC_S6               4217  // FYSETC S6 (STM32F446VET6) | ||||||
| #define BOARD_FYSETC_SPIDER           4218  // FYSETC Spider (STM32F446VET6) | #define BOARD_FYSETC_S6_V2_0          4218  // FYSETC S6 v2.0 (STM32F446VET6) | ||||||
| #define BOARD_FLYF407ZG               4219  // FLYF407ZG (STM32F407ZG) | #define BOARD_FYSETC_SPIDER           4219  // FYSETC Spider (STM32F446VET6) | ||||||
| #define BOARD_MKS_ROBIN2              4220  // MKS_ROBIN2 (STM32F407ZE) | #define BOARD_FLYF407ZG               4220  // FLYF407ZG (STM32F407ZG) | ||||||
| #define BOARD_MKS_ROBIN_PRO_V2        4221  // MKS Robin Pro V2 (STM32F407VE) | #define BOARD_MKS_ROBIN2              4221  // MKS_ROBIN2 (STM32F407ZE) | ||||||
| #define BOARD_MKS_ROBIN_NANO_V3       4222  // MKS Robin Nano V3 (STM32F407VG) | #define BOARD_MKS_ROBIN_PRO_V2        4222  // MKS Robin Pro V2 (STM32F407VE) | ||||||
| #define BOARD_ANET_ET4                4223  // ANET ET4 V1.x (STM32F407VGT6) | #define BOARD_MKS_ROBIN_NANO_V3       4223  // MKS Robin Nano V3 (STM32F407VG) | ||||||
| #define BOARD_ANET_ET4P               4224  // ANET ET4P V1.x (STM32F407VGT6) | #define BOARD_ANET_ET4                4224  // ANET ET4 V1.x (STM32F407VGT6) | ||||||
| #define BOARD_FYSETC_CHEETAH_V20      4225  // FYSETC Cheetah V2.0 | #define BOARD_ANET_ET4P               4225 // ANET ET4P V1.x (STM32F407VGT6) | ||||||
|  | #define BOARD_FYSETC_CHEETAH_V20      4226  // FYSETC Cheetah V2.0 | ||||||
|  |  | ||||||
| // | // | ||||||
| // ARM Cortex M7 | // ARM Cortex M7 | ||||||
|   | |||||||
							
								
								
									
										171
									
								
								Marlin/src/feature/stepper_driver_safety.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								Marlin/src/feature/stepper_driver_safety.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | |||||||
|  | /** | ||||||
|  |  * 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 <https://www.gnu.org/licenses/>. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | #include "../inc/MarlinConfig.h" | ||||||
|  | #include "../lcd/marlinui.h" | ||||||
|  |  | ||||||
|  | #if HAS_DRIVER_SAFE_POWER_PROTECT | ||||||
|  |  | ||||||
|  | #include "stepper_driver_safety.h" | ||||||
|  |  | ||||||
|  | static uint32_t axis_plug_backward = 0; | ||||||
|  |  | ||||||
|  | void stepper_driver_backward_error(PGM_P str) { | ||||||
|  |   SERIAL_ERROR_START(); | ||||||
|  |   SERIAL_ECHOPGM_P(str); | ||||||
|  |   SERIAL_ECHOLNPGM(" driver is backward!"); | ||||||
|  |   ui.status_printf_P(2, PSTR(S_FMT S_FMT), str, GET_TEXT(MSG_DRIVER_BACKWARD)); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void stepper_driver_backward_check() { | ||||||
|  |  | ||||||
|  |   OUT_WRITE(SAFE_POWER_PIN, LOW); | ||||||
|  |  | ||||||
|  |   #define TEST_BACKWARD(AXIS, BIT) do { \ | ||||||
|  |       SET_INPUT(AXIS##_ENABLE_PIN); \ | ||||||
|  |       OUT_WRITE(AXIS##_STEP_PIN, false); \ | ||||||
|  |       delay(20); \ | ||||||
|  |       if (READ(AXIS##_ENABLE_PIN) == false) { \ | ||||||
|  |         SBI(axis_plug_backward, BIT); \ | ||||||
|  |         stepper_driver_backward_error(PSTR(STRINGIFY(AXIS))); \ | ||||||
|  |       } \ | ||||||
|  |     }while(0) | ||||||
|  |  | ||||||
|  |   #if HAS_X_ENABLE | ||||||
|  |     TEST_BACKWARD(X, 0); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_X2_ENABLE | ||||||
|  |     TEST_BACKWARD(X2, 1); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_Y_ENABLE | ||||||
|  |     TEST_BACKWARD(Y, 2); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Y2_ENABLE | ||||||
|  |     TEST_BACKWARD(Y2, 3); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_Z_ENABLE | ||||||
|  |     TEST_BACKWARD(Z, 4); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Z2_ENABLE | ||||||
|  |     TEST_BACKWARD(Z2, 5); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Z3_ENABLE | ||||||
|  |     TEST_BACKWARD(Z3, 6); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Z4_ENABLE | ||||||
|  |     TEST_BACKWARD(Z4, 7); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_E0_ENABLE | ||||||
|  |     TEST_BACKWARD(E0, 8); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E1_ENABLE | ||||||
|  |     TEST_BACKWARD(E1, 9); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E2_ENABLE | ||||||
|  |     TEST_BACKWARD(E2, 10); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E3_ENABLE | ||||||
|  |     TEST_BACKWARD(E3, 11); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E4_ENABLE | ||||||
|  |     TEST_BACKWARD(E4, 12); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E5_ENABLE | ||||||
|  |     TEST_BACKWARD(E5, 13); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E6_ENABLE | ||||||
|  |     TEST_BACKWARD(E6, 14); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E7_ENABLE | ||||||
|  |     TEST_BACKWARD(E7, 15); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   if (!axis_plug_backward) | ||||||
|  |     WRITE(SAFE_POWER_PIN, HIGH); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | void stepper_driver_backward_report() { | ||||||
|  |   if (!axis_plug_backward) return; | ||||||
|  |  | ||||||
|  |   auto _report_if_backward = [](PGM_P axis, uint8_t bit) { | ||||||
|  |     if (TEST(axis_plug_backward, bit)) | ||||||
|  |       stepper_driver_backward_error(axis); | ||||||
|  |   }; | ||||||
|  |  | ||||||
|  |   #define REPORT_BACKWARD(axis, bit) _report_if_backward(PSTR(STRINGIFY(axis)), bit) | ||||||
|  |  | ||||||
|  |   #if HAS_X_ENABLE | ||||||
|  |     REPORT_BACKWARD(X, 0); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_X2_ENABLE | ||||||
|  |     REPORT_BACKWARD(X2, 1); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_Y_ENABLE | ||||||
|  |     REPORT_BACKWARD(Y, 2); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Y2_ENABLE | ||||||
|  |     REPORT_BACKWARD(Y2, 3); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_Z_ENABLE | ||||||
|  |     REPORT_BACKWARD(Z, 4); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Z2_ENABLE | ||||||
|  |     REPORT_BACKWARD(Z2, 5); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Z3_ENABLE | ||||||
|  |     REPORT_BACKWARD(Z3, 6); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_Z4_ENABLE | ||||||
|  |     REPORT_BACKWARD(Z4, 7); | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   #if HAS_E0_ENABLE | ||||||
|  |     REPORT_BACKWARD(E0, 8); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E1_ENABLE | ||||||
|  |     REPORT_BACKWARD(E1, 9); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E2_ENABLE | ||||||
|  |     REPORT_BACKWARD(E2, 10); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E3_ENABLE | ||||||
|  |     REPORT_BACKWARD(E3, 11); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E4_ENABLE | ||||||
|  |     REPORT_BACKWARD(E4, 12); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E5_ENABLE | ||||||
|  |     REPORT_BACKWARD(E5, 13); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E6_ENABLE | ||||||
|  |     REPORT_BACKWARD(E6, 14); | ||||||
|  |   #endif | ||||||
|  |   #if HAS_E7_ENABLE | ||||||
|  |     REPORT_BACKWARD(E7, 15); | ||||||
|  |   #endif | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #endif // HAS_DRIVER_SAFE_POWER_PROTECT | ||||||
							
								
								
									
										28
									
								
								Marlin/src/feature/stepper_driver_safety.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Marlin/src/feature/stepper_driver_safety.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | /** | ||||||
|  |  * 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 <https://www.gnu.org/licenses/>. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #include "../inc/MarlinConfigPre.h" | ||||||
|  |  | ||||||
|  | void stepper_driver_backward_check(); | ||||||
|  | void stepper_driver_backward_report(); | ||||||
| @@ -3042,3 +3042,7 @@ | |||||||
| #if BUTTONS_EXIST(EN1, EN2, ENC) | #if BUTTONS_EXIST(EN1, EN2, ENC) | ||||||
|   #define HAS_ROTARY_ENCODER 1 |   #define HAS_ROTARY_ENCODER 1 | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if PIN_EXISTS(SAFE_POWER) && DISABLED(DISABLE_DRIVER_SAFE_POWER_PROTECT) | ||||||
|  |   #define HAS_DRIVER_SAFE_POWER_PROTECT 1 | ||||||
|  | #endif | ||||||
|   | |||||||
| @@ -706,6 +706,8 @@ namespace Language_en { | |||||||
|   PROGMEM Language_Str MSG_BOTTOM_RIGHT                    = _UxGT("Bottom Right"); |   PROGMEM Language_Str MSG_BOTTOM_RIGHT                    = _UxGT("Bottom Right"); | ||||||
|   PROGMEM Language_Str MSG_CALIBRATION_COMPLETED           = _UxGT("Calibration Completed"); |   PROGMEM Language_Str MSG_CALIBRATION_COMPLETED           = _UxGT("Calibration Completed"); | ||||||
|   PROGMEM Language_Str MSG_CALIBRATION_FAILED              = _UxGT("Calibration Failed"); |   PROGMEM Language_Str MSG_CALIBRATION_FAILED              = _UxGT("Calibration Failed"); | ||||||
|  |  | ||||||
|  |   PROGMEM Language_Str MSG_DRIVER_BACKWARD                 = _UxGT(" driver backward"); | ||||||
| } | } | ||||||
|  |  | ||||||
| #if FAN_COUNT == 1 | #if FAN_COUNT == 1 | ||||||
|   | |||||||
| @@ -596,6 +596,8 @@ | |||||||
|   #include "stm32f4/pins_BTT_BTT002_V1_0.h"     // STM32F4                                env:BIGTREE_BTT002 |   #include "stm32f4/pins_BTT_BTT002_V1_0.h"     // STM32F4                                env:BIGTREE_BTT002 | ||||||
| #elif MB(BTT_E3_RRF) | #elif MB(BTT_E3_RRF) | ||||||
|   #include "stm32f4/pins_BTT_E3_RRF.h"          // STM32F4                                env:BIGTREE_E3_RRF |   #include "stm32f4/pins_BTT_E3_RRF.h"          // STM32F4                                env:BIGTREE_E3_RRF | ||||||
|  | #elif MB(BTT_SKR_V2_0) | ||||||
|  |   #include "stm32f4/pins_BTT_SKR_V2_0.h"        // STM32F4                                env:BIGTREE_SKR_2 | ||||||
| #elif MB(LERDGE_K) | #elif MB(LERDGE_K) | ||||||
|   #include "stm32f4/pins_LERDGE_K.h"            // STM32F4                                env:LERDGEK env:LERDGEK_usb_flash_drive |   #include "stm32f4/pins_LERDGE_K.h"            // STM32F4                                env:LERDGEK env:LERDGEK_usb_flash_drive | ||||||
| #elif MB(LERDGE_S) | #elif MB(LERDGE_S) | ||||||
|   | |||||||
							
								
								
									
										495
									
								
								Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										495
									
								
								Marlin/src/pins/stm32f4/pins_BTT_SKR_V2_0.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,495 @@ | |||||||
|  | /** | ||||||
|  |  * 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 <https://www.gnu.org/licenses/>. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include "env_validate.h" | ||||||
|  |  | ||||||
|  | #define BOARD_INFO_NAME "BTT SKR V2.0" | ||||||
|  |  | ||||||
|  | // Use one of these or SDCard-based Emulation will be used | ||||||
|  | #if NO_EEPROM_SELECTED | ||||||
|  |   //#define SRAM_EEPROM_EMULATION                 // Use BackSRAM-based EEPROM emulation | ||||||
|  |   #define FLASH_EEPROM_EMULATION                  // Use Flash-based EEPROM emulation | ||||||
|  | #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 | ||||||
|  |  | ||||||
|  | // USB Flash Drive support | ||||||
|  | #define HAS_OTG_USB_HOST_SUPPORT | ||||||
|  |  | ||||||
|  | // Avoid conflict with TIMER_TONE | ||||||
|  | #define STEP_TIMER                            10 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Servos | ||||||
|  | // | ||||||
|  | #define SERVO0_PIN                          PE5 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Trinamic Stallguard pins | ||||||
|  | // | ||||||
|  | #define X_DIAG_PIN                          PC1   // X-STOP | ||||||
|  | #define Y_DIAG_PIN                          PC3   // Y-STOP | ||||||
|  | #define Z_DIAG_PIN                          PC0   // Z-STOP | ||||||
|  | #define E0_DIAG_PIN                         PC2   // E0DET | ||||||
|  | #define E1_DIAG_PIN                         PA0   // E1DET | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Limit Switches | ||||||
|  | // | ||||||
|  | #ifdef X_STALL_SENSITIVITY | ||||||
|  |   #define X_STOP_PIN                  X_DIAG_PIN | ||||||
|  |   #if X_HOME_DIR < 0 | ||||||
|  |     #define X_MAX_PIN                       PC2   // E0DET | ||||||
|  |   #else | ||||||
|  |     #define X_MIN_PIN                       PC2   // E0DET | ||||||
|  |   #endif | ||||||
|  | #elif ENABLED(X_DUAL_ENDSTOPS) | ||||||
|  |   #ifndef X_MIN_PIN | ||||||
|  |     #define X_MIN_PIN                       PC1   // X-STOP | ||||||
|  |   #endif | ||||||
|  |   #ifndef X_MAX_PIN | ||||||
|  |     #define X_MAX_PIN                       PC2   // E0DET | ||||||
|  |   #endif | ||||||
|  | #else | ||||||
|  |   #define X_STOP_PIN                        PC1   // X-STOP | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifdef Y_STALL_SENSITIVITY | ||||||
|  |   #define Y_STOP_PIN                  Y_DIAG_PIN | ||||||
|  |   #if Y_HOME_DIR < 0 | ||||||
|  |     #define Y_MAX_PIN                       PA0   // E1DET | ||||||
|  |   #else | ||||||
|  |     #define Y_MIN_PIN                       PA0   // E1DET | ||||||
|  |   #endif | ||||||
|  | #elif ENABLED(Y_DUAL_ENDSTOPS) | ||||||
|  |   #ifndef Y_MIN_PIN | ||||||
|  |     #define Y_MIN_PIN                       PC3   // Y-STOP | ||||||
|  |   #endif | ||||||
|  |   #ifndef Y_MAX_PIN | ||||||
|  |     #define Y_MAX_PIN                       PA0   // E1DET | ||||||
|  |   #endif | ||||||
|  | #else | ||||||
|  |   #define Y_STOP_PIN                        PC3   // Y-STOP | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #ifdef Z_STALL_SENSITIVITY | ||||||
|  |   #define Z_STOP_PIN                  Z_DIAG_PIN | ||||||
|  |   #if Z_HOME_DIR < 0 | ||||||
|  |     #define Z_MAX_PIN                       PC15  // PWRDET | ||||||
|  |   #else | ||||||
|  |     #define Z_MIN_PIN                       PC15  // PWRDET | ||||||
|  |   #endif | ||||||
|  | #elif ENABLED(Z_MULTI_ENDSTOPS) | ||||||
|  |   #ifndef Z_MIN_PIN | ||||||
|  |     #define Z_MIN_PIN                       PC0   // Z-STOP | ||||||
|  |   #endif | ||||||
|  |   #ifndef Z_MAX_PIN | ||||||
|  |     #define Z_MAX_PIN                       PC15  // PWRDET | ||||||
|  |   #endif | ||||||
|  | #else | ||||||
|  |   #ifndef Z_STOP_PIN | ||||||
|  |     #define Z_STOP_PIN                      PC0   // Z-STOP | ||||||
|  |   #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Z Probe (when not Z_MIN_PIN) | ||||||
|  | // | ||||||
|  | #ifndef Z_MIN_PROBE_PIN | ||||||
|  |   #define Z_MIN_PROBE_PIN                   PE4 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Filament Runout Sensor | ||||||
|  | // | ||||||
|  | #define FIL_RUNOUT_PIN                      PC2   // E0DET | ||||||
|  | #define FIL_RUNOUT2_PIN                     PA0   // E1DET | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Power Supply Control | ||||||
|  | // | ||||||
|  | #ifndef PS_ON_PIN | ||||||
|  |   #define PS_ON_PIN                         PE8   // PS-ON | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Power Loss Detection | ||||||
|  | // | ||||||
|  | #ifndef POWER_LOSS_PIN | ||||||
|  |   #define POWER_LOSS_PIN                    PC15  // PWRDET | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // NeoPixel LED | ||||||
|  | // | ||||||
|  | #ifndef NEOPIXEL_PIN | ||||||
|  |   #define NEOPIXEL_PIN                      PE6 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Control pin of driver/heater/fan power supply | ||||||
|  | // | ||||||
|  | #define SAFE_POWER_PIN                      PC13 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Steppers | ||||||
|  | // | ||||||
|  | #define X_STEP_PIN                          PE2 | ||||||
|  | #define X_DIR_PIN                           PE1 | ||||||
|  | #define X_ENABLE_PIN                        PE3 | ||||||
|  | #ifndef X_CS_PIN | ||||||
|  |   #define X_CS_PIN                          PE0 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define Y_STEP_PIN                          PD5 | ||||||
|  | #define Y_DIR_PIN                           PD4 | ||||||
|  | #define Y_ENABLE_PIN                        PD6 | ||||||
|  | #ifndef Y_CS_PIN | ||||||
|  |   #define Y_CS_PIN                          PD3 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define Z_STEP_PIN                          PA15 | ||||||
|  | #define Z_DIR_PIN                           PA8 | ||||||
|  | #define Z_ENABLE_PIN                        PD1 | ||||||
|  | #ifndef Z_CS_PIN | ||||||
|  |   #define Z_CS_PIN                          PD0 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define E0_STEP_PIN                         PD15 | ||||||
|  | #define E0_DIR_PIN                          PD14 | ||||||
|  | #define E0_ENABLE_PIN                       PC7 | ||||||
|  | #ifndef E0_CS_PIN | ||||||
|  |   #define E0_CS_PIN                         PC6 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #define E1_STEP_PIN                         PD11 | ||||||
|  | #define E1_DIR_PIN                          PD10 | ||||||
|  | #define E1_ENABLE_PIN                       PD13 | ||||||
|  | #ifndef E1_CS_PIN | ||||||
|  |   #define E1_CS_PIN                         PD12 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Temperature Sensors | ||||||
|  | // | ||||||
|  | #define TEMP_BED_PIN                        PA1   // TB | ||||||
|  | #define TEMP_0_PIN                          PA2   // TH0 | ||||||
|  | #define TEMP_1_PIN                          PA3   // TH1 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Heaters / Fans | ||||||
|  | // | ||||||
|  | #define HEATER_0_PIN                        PB3   // Heater0 | ||||||
|  | #define HEATER_1_PIN                        PB4   // Heater1 | ||||||
|  | #define HEATER_BED_PIN                      PD7   // Hotbed | ||||||
|  | #define FAN_PIN                             PB7   // Fan0 | ||||||
|  | #define FAN1_PIN                            PB6   // Fan1 | ||||||
|  | #define FAN2_PIN                            PB5   // Fan2 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Software SPI pins for TMC2130 stepper drivers | ||||||
|  | // | ||||||
|  | #if ENABLED(TMC_USE_SW_SPI) | ||||||
|  |   #ifndef TMC_SW_MOSI | ||||||
|  |     #define TMC_SW_MOSI                     PE14 | ||||||
|  |   #endif | ||||||
|  |   #ifndef TMC_SW_MISO | ||||||
|  |     #define TMC_SW_MISO                     PA14 | ||||||
|  |   #endif | ||||||
|  |   #ifndef TMC_SW_SCK | ||||||
|  |     #define TMC_SW_SCK                      PE15 | ||||||
|  |   #endif | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #if HAS_TMC_UART | ||||||
|  |   /** | ||||||
|  |    * TMC2208/TMC2209 stepper drivers | ||||||
|  |    * | ||||||
|  |    * Hardware serial communication ports. | ||||||
|  |    * If undefined software serial is used according to the pins below | ||||||
|  |    */ | ||||||
|  |   //#define X_HARDWARE_SERIAL  Serial1 | ||||||
|  |   //#define X2_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define Y_HARDWARE_SERIAL  Serial1 | ||||||
|  |   //#define Y2_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define Z_HARDWARE_SERIAL  Serial1 | ||||||
|  |   //#define Z2_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define E0_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define E1_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define E2_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define E3_HARDWARE_SERIAL Serial1 | ||||||
|  |   //#define E4_HARDWARE_SERIAL Serial1 | ||||||
|  |  | ||||||
|  |   // | ||||||
|  |   // Software serial | ||||||
|  |   // | ||||||
|  |   #define X_SERIAL_TX_PIN                   PE0 | ||||||
|  |   #define X_SERIAL_RX_PIN                   PE0 | ||||||
|  |  | ||||||
|  |   #define Y_SERIAL_TX_PIN                   PD3 | ||||||
|  |   #define Y_SERIAL_RX_PIN                   PD3 | ||||||
|  |  | ||||||
|  |   #define Z_SERIAL_TX_PIN                   PD0 | ||||||
|  |   #define Z_SERIAL_RX_PIN                   PD0 | ||||||
|  |  | ||||||
|  |   #define E0_SERIAL_TX_PIN                  PC6 | ||||||
|  |   #define E0_SERIAL_RX_PIN                  PC6 | ||||||
|  |  | ||||||
|  |   #define E1_SERIAL_TX_PIN                  PD12 | ||||||
|  |   #define E1_SERIAL_RX_PIN                  PD12 | ||||||
|  |  | ||||||
|  |   // Reduce baud rate to improve software serial reliability | ||||||
|  |   #define TMC_BAUD_RATE                    19200 | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // SD Connection | ||||||
|  | // | ||||||
|  | #ifndef SDCARD_CONNECTION | ||||||
|  |   #define SDCARD_CONNECTION LCD | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *               -----                                             ----- | ||||||
|  |  *           NC | 1 2 | GND                                    5V | 1 2 | GND | ||||||
|  |  *        RESET | 3 4 | PC4 (SD_DETECT)             (LCD_D7) PE13 | 3 4 | PE12 (LCD_D6) | ||||||
|  |  *   (MOSI) PA7 | 5 6   PB2 (BTN_EN2)               (LCD_D5) PE11 | 5 6   PE10 (LCD_D4) | ||||||
|  |  *  (SD_SS) PA4 | 7 8 | PE7 (BTN_EN1)               (LCD_RS)  PE9 | 7 8 | PB1  (LCD_EN) | ||||||
|  |  *    (SCK) PA5 | 9 10| PA6 (MISO)                 (BTN_ENC)  PB0 | 9 10| PC5  (BEEPER) | ||||||
|  |  *               -----                                             ----- | ||||||
|  |  *               EXP2                                              EXP1 | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #define EXP1_03_PIN                         PE13 | ||||||
|  | #define EXP1_04_PIN                         PE12 | ||||||
|  | #define EXP1_05_PIN                         PE11 | ||||||
|  | #define EXP1_06_PIN                         PE10 | ||||||
|  | #define EXP1_07_PIN                         PE9 | ||||||
|  | #define EXP1_08_PIN                         PB1 | ||||||
|  | #define EXP1_09_PIN                         PB0 | ||||||
|  | #define EXP1_10_PIN                         PC5 | ||||||
|  |  | ||||||
|  | #define EXP2_03_PIN                         -1 | ||||||
|  | #define EXP2_04_PIN                         PC4 | ||||||
|  | #define EXP2_05_PIN                         PA7 | ||||||
|  | #define EXP2_06_PIN                         PB2 | ||||||
|  | #define EXP2_07_PIN                         PA4 | ||||||
|  | #define EXP2_08_PIN                         PE7 | ||||||
|  | #define EXP2_09_PIN                         PA5 | ||||||
|  | #define EXP2_10_PIN                         PA6 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // Onboard SD card | ||||||
|  | // Must use soft SPI because Marlin's default hardware SPI is tied to LCD's EXP2 | ||||||
|  | // | ||||||
|  | #if SD_CONNECTION_IS(ONBOARD) | ||||||
|  |  | ||||||
|  |   #define SDIO_SUPPORT                            // Use SDIO for onboard SD | ||||||
|  |   #define SDIO_D0_PIN                       PC8 | ||||||
|  |   #define SDIO_D1_PIN                       PC9 | ||||||
|  |   #define SDIO_D2_PIN                       PC10 | ||||||
|  |   #define SDIO_D3_PIN                       PC11 | ||||||
|  |   #define SDIO_CK_PIN                       PC12 | ||||||
|  |   #define SDIO_CMD_PIN                      PD2 | ||||||
|  |  | ||||||
|  | #elif SD_CONNECTION_IS(LCD) | ||||||
|  |  | ||||||
|  |   #define CUSTOM_SPI_PINS | ||||||
|  |   #define SDSS                              PA4 | ||||||
|  |   #define SD_SS_PIN                         SDSS | ||||||
|  |   #define SD_SCK_PIN                        PA5 | ||||||
|  |   #define SD_MISO_PIN                       PA6 | ||||||
|  |   #define SD_MOSI_PIN                       PA7 | ||||||
|  |   #define SD_DETECT_PIN                     PC4 | ||||||
|  |  | ||||||
|  | #elif SD_CONNECTION_IS(CUSTOM_CABLE) | ||||||
|  |   #error "CUSTOM_CABLE is not a supported SDCARD_CONNECTION for this board" | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | #if ENABLED(BTT_MOTOR_EXPANSION) | ||||||
|  |   /** | ||||||
|  |    *               _____                                      _____ | ||||||
|  |    *           NC | · · | GND                             NC | · · | GND | ||||||
|  |    *           NC | · · | PF12 (M1EN)            (M2EN)  PG7 | · · | PG6  (M3EN) | ||||||
|  |    * (M1STP) PB15 | · ·   PF11 (M1DIR)           (M1RX)  PG3 | · ·   PG2  (M1DIAG) | ||||||
|  |    * (M2DIR) PB12 | · · | PG10 (M2STP)           (M2RX) PD10 | · · | PD11 (M2DIAG) | ||||||
|  |    * (M3DIR) PB13 | · · | PB14 (M3STP)           (M3RX)  PA8 | · · | PG4  (M3DIAG) | ||||||
|  |    *               -----                                      ----- | ||||||
|  |    *               EXP2                                       EXP1 | ||||||
|  |    */ | ||||||
|  |  | ||||||
|  |   // M1 on Driver Expansion Module | ||||||
|  |   #define E3_STEP_PIN                EXP2_05_PIN | ||||||
|  |   #define E3_DIR_PIN                 EXP2_06_PIN | ||||||
|  |   #define E3_ENABLE_PIN              EXP2_04_PIN | ||||||
|  |   #define E3_DIAG_PIN                EXP1_06_PIN | ||||||
|  |   #define E3_CS_PIN                  EXP1_05_PIN | ||||||
|  |   #if HAS_TMC_UART | ||||||
|  |     #define E3_SERIAL_TX_PIN         EXP1_05_PIN | ||||||
|  |     #define E3_SERIAL_RX_PIN         EXP1_05_PIN | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   // M2 on Driver Expansion Module | ||||||
|  |   #define E4_STEP_PIN                EXP2_08_PIN | ||||||
|  |   #define E4_DIR_PIN                 EXP2_07_PIN | ||||||
|  |   #define E4_ENABLE_PIN              EXP1_03_PIN | ||||||
|  |   #define E4_DIAG_PIN                EXP1_08_PIN | ||||||
|  |   #define E4_CS_PIN                  EXP1_07_PIN | ||||||
|  |   #if HAS_TMC_UART | ||||||
|  |     #define E4_SERIAL_TX_PIN         EXP1_07_PIN | ||||||
|  |     #define E4_SERIAL_RX_PIN         EXP1_07_PIN | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  |   // M3 on Driver Expansion Module | ||||||
|  |   #define E5_STEP_PIN                EXP2_10_PIN | ||||||
|  |   #define E5_DIR_PIN                 EXP2_09_PIN | ||||||
|  |   #define E5_ENABLE_PIN              EXP1_04_PIN | ||||||
|  |   #define E5_DIAG_PIN                EXP1_10_PIN | ||||||
|  |   #define E5_CS_PIN                  EXP1_09_PIN | ||||||
|  |   #if HAS_TMC_UART | ||||||
|  |     #define E5_SERIAL_TX_PIN         EXP1_09_PIN | ||||||
|  |     #define E5_SERIAL_RX_PIN         EXP1_09_PIN | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  | #endif // BTT_MOTOR_EXPANSION | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // LCDs and Controllers | ||||||
|  | // | ||||||
|  | #if IS_TFTGLCD_PANEL | ||||||
|  |  | ||||||
|  |   #if ENABLED(TFTGLCD_PANEL_SPI) | ||||||
|  |     #define TFTGLCD_CS               EXP2_08_PIN | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  | #elif HAS_WIRED_LCD | ||||||
|  |  | ||||||
|  |   #define BEEPER_PIN                 EXP1_10_PIN | ||||||
|  |   #define BTN_ENC                    EXP1_09_PIN | ||||||
|  |  | ||||||
|  |   #if ENABLED(CR10_STOCKDISPLAY) | ||||||
|  |  | ||||||
|  |     #define LCD_PINS_RS              EXP1_04_PIN | ||||||
|  |  | ||||||
|  |     #define BTN_EN1                  EXP1_08_PIN | ||||||
|  |     #define BTN_EN2                  EXP1_06_PIN | ||||||
|  |  | ||||||
|  |     #define LCD_PINS_ENABLE          EXP1_03_PIN | ||||||
|  |     #define LCD_PINS_D4              EXP1_05_PIN | ||||||
|  |  | ||||||
|  |     // CR10_STOCKDISPLAY default timing is too fast | ||||||
|  |     #undef BOARD_ST7920_DELAY_1 | ||||||
|  |     #undef BOARD_ST7920_DELAY_2 | ||||||
|  |     #undef BOARD_ST7920_DELAY_3 | ||||||
|  |  | ||||||
|  |   #elif ENABLED(MKS_MINI_12864) | ||||||
|  |  | ||||||
|  |     #define DOGLCD_A0                EXP1_04_PIN | ||||||
|  |     #define DOGLCD_CS                EXP1_05_PIN | ||||||
|  |     #define BTN_EN1                  EXP2_08_PIN | ||||||
|  |     #define BTN_EN2                  EXP2_06_PIN | ||||||
|  |  | ||||||
|  |   #else | ||||||
|  |  | ||||||
|  |     #define LCD_PINS_RS              EXP1_07_PIN | ||||||
|  |  | ||||||
|  |     #define BTN_EN1                  EXP2_08_PIN | ||||||
|  |     #define BTN_EN2                  EXP2_06_PIN | ||||||
|  |  | ||||||
|  |     #define LCD_PINS_ENABLE          EXP1_08_PIN | ||||||
|  |     #define LCD_PINS_D4              EXP1_06_PIN | ||||||
|  |  | ||||||
|  |     #if ENABLED(FYSETC_MINI_12864) | ||||||
|  |       #define DOGLCD_CS              EXP1_08_PIN | ||||||
|  |       #define DOGLCD_A0              EXP1_07_PIN | ||||||
|  |       //#define LCD_BACKLIGHT_PIN           -1 | ||||||
|  |       #define LCD_RESET_PIN          EXP1_06_PIN  // 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      EXP1_05_PIN | ||||||
|  |         #endif | ||||||
|  |         #ifndef RGB_LED_G_PIN | ||||||
|  |           #define RGB_LED_G_PIN      EXP1_04_PIN | ||||||
|  |         #endif | ||||||
|  |         #ifndef RGB_LED_B_PIN | ||||||
|  |           #define RGB_LED_B_PIN      EXP1_03_PIN | ||||||
|  |         #endif | ||||||
|  |       #elif ENABLED(FYSETC_MINI_12864_2_1) | ||||||
|  |         #define NEOPIXEL_PIN         EXP1_05_PIN | ||||||
|  |       #endif | ||||||
|  |     #endif // !FYSETC_MINI_12864 | ||||||
|  |  | ||||||
|  |     #if IS_ULTIPANEL | ||||||
|  |       #define LCD_PINS_D5            EXP1_05_PIN | ||||||
|  |       #define LCD_PINS_D6            EXP1_04_PIN | ||||||
|  |       #define LCD_PINS_D7            EXP1_03_PIN | ||||||
|  |  | ||||||
|  |       #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) | ||||||
|  |         #define BTN_ENC_EN           LCD_PINS_D7  // Detect the presence of the encoder | ||||||
|  |       #endif | ||||||
|  |  | ||||||
|  |     #endif | ||||||
|  |  | ||||||
|  |   #endif | ||||||
|  |  | ||||||
|  | #endif // HAS_WIRED_LCD | ||||||
|  |  | ||||||
|  | // Alter timing for graphical display | ||||||
|  | #if HAS_MARLINUI_U8GLIB | ||||||
|  |   #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 | ||||||
|  |  | ||||||
|  | // | ||||||
|  | // WIFI | ||||||
|  | // | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  *                      ------- | ||||||
|  |  *            GND | 9  |       | 8 | 3.3V | ||||||
|  |  *  (ESP-CS) PB12 | 10 |       | 7 | PB15 (ESP-MOSI) | ||||||
|  |  *           3.3V | 11 |       | 6 | PB14 (ESP-MISO) | ||||||
|  |  * (ESP-IO0) PB10 | 12 |       | 5 | PB13 (ESP-CLK) | ||||||
|  |  * (ESP-IO4) PB11 | 13 |       | 4 | NC | ||||||
|  |  *             NC | 14 |       | 3 | 3.3V (ESP-EN) | ||||||
|  |  *  (ESP-RX)  PD8 | 15 |       | 2 | NC | ||||||
|  |  *  (ESP-TX)  PD9 | 16 |       | 1 | PC14 (ESP-RST) | ||||||
|  |  *                      ------- | ||||||
|  |  *                       WIFI | ||||||
|  |  */ | ||||||
|  | #define ESP_WIFI_MODULE_COM                    3  // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this | ||||||
|  | #define ESP_WIFI_MODULE_BAUDRATE        BAUDRATE  // Must use same BAUDRATE as SERIAL_PORT & SERIAL_PORT_2 | ||||||
|  | #define ESP_WIFI_MODULE_RESET_PIN           PC14 | ||||||
|  | #define ESP_WIFI_MODULE_GPIO0_PIN           PB10 | ||||||
|  | #define ESP_WIFI_MODULE_GPIO4_PIN           PB11 | ||||||
| @@ -134,6 +134,7 @@ HAS_FILAMENT_SENSOR     = src_filter=+<src/feature/runout.cpp> +<src/gcode/featu | |||||||
| (EXT|MANUAL)_SOLENOID.* = src_filter=+<src/feature/solenoid.cpp> +<src/gcode/control/M380_M381.cpp> | (EXT|MANUAL)_SOLENOID.* = src_filter=+<src/feature/solenoid.cpp> +<src/gcode/control/M380_M381.cpp> | ||||||
| MK2_MULTIPLEXER         = src_filter=+<src/feature/snmm.cpp> | MK2_MULTIPLEXER         = src_filter=+<src/feature/snmm.cpp> | ||||||
| HAS_CUTTER              = src_filter=+<src/feature/spindle_laser.cpp> +<src/gcode/control/M3-M5.cpp> | HAS_CUTTER              = src_filter=+<src/feature/spindle_laser.cpp> +<src/gcode/control/M3-M5.cpp> | ||||||
|  | HAS_DRIVER_SAFE_POWER_PROTECT = src_filter=+<src/feature/stepper_driver_safety.cpp> | ||||||
| EXPERIMENTAL_I2CBUS     = src_filter=+<src/feature/twibus.cpp> +<src/gcode/feature/i2c> | EXPERIMENTAL_I2CBUS     = src_filter=+<src/feature/twibus.cpp> +<src/gcode/feature/i2c> | ||||||
| MECHANICAL_GANTRY_CAL.+ = src_filter=+<src/gcode/calibrate/G34.cpp> | MECHANICAL_GANTRY_CAL.+ = src_filter=+<src/gcode/calibrate/G34.cpp> | ||||||
| Z_MULTI_ENDSTOPS        = src_filter=+<src/gcode/calibrate/G34_M422.cpp> | Z_MULTI_ENDSTOPS        = src_filter=+<src/gcode/calibrate/G34_M422.cpp> | ||||||
|   | |||||||
| @@ -225,6 +225,26 @@ build_flags       = ${common_stm32.build_flags} | |||||||
| extra_scripts     = ${common.extra_scripts} | extra_scripts     = ${common.extra_scripts} | ||||||
|   pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py |   pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Bigtreetech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Flash Drive Support | ||||||
|  | # | ||||||
|  | [env:BIGTREE_SKR_2] | ||||||
|  | platform             = ${common_stm32.platform} | ||||||
|  | platform_packages    = ${stm_flash_drive.platform_packages} | ||||||
|  | extends              = common_stm32 | ||||||
|  | board                = genericSTM32F407VGT6 | ||||||
|  | board_build.core     = stm32 | ||||||
|  | board_build.variant  = MARLIN_F4x7Vx | ||||||
|  | board_build.ldscript = ldscript.ld | ||||||
|  | board_build.offset   = 0x8000 | ||||||
|  | board_upload.offset_address = 0x08008000 | ||||||
|  | extra_scripts     = ${common.extra_scripts} | ||||||
|  |   pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py | ||||||
|  |   buildroot/share/PlatformIO/scripts/stm32_bootloader.py | ||||||
|  | build_flags       = ${stm_flash_drive.build_flags} | ||||||
|  |   -DUSE_USBHOST_HS -DUSE_USB_HS_IN_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 | ||||||
|  |   -DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED | ||||||
|  |  | ||||||
| # | # | ||||||
| # Lerdge base | # Lerdge base | ||||||
| # | # | ||||||
|   | |||||||
| @@ -136,6 +136,7 @@ default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared> | |||||||
|   -<src/feature/snmm.cpp> |   -<src/feature/snmm.cpp> | ||||||
|   -<src/feature/solenoid.cpp> -<src/gcode/control/M380_M381.cpp> |   -<src/feature/solenoid.cpp> -<src/gcode/control/M380_M381.cpp> | ||||||
|   -<src/feature/spindle_laser.cpp> -<src/gcode/control/M3-M5.cpp> |   -<src/feature/spindle_laser.cpp> -<src/gcode/control/M3-M5.cpp> | ||||||
|  |   -<src/feature/stepper_driver_safety.cpp> | ||||||
|   -<src/feature/tmc_util.cpp> -<src/module/stepper/trinamic.cpp> |   -<src/feature/tmc_util.cpp> -<src/module/stepper/trinamic.cpp> | ||||||
|   -<src/feature/tramming.cpp> |   -<src/feature/tramming.cpp> | ||||||
|   -<src/feature/twibus.cpp> |   -<src/feature/twibus.cpp> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user