✨ "Rutilea" ESP32 board (#22880)
This commit is contained in:
		
							parent
							
								
									6f59d8171f
								
							
						
					
					
						commit
						8562f0ec44
					
				| @ -64,13 +64,10 @@ uint32_t i2s_port_data = 0; | ||||
| #define I2S_EXIT_CRITICAL()   portEXIT_CRITICAL(&i2s_spinlock[i2s_num]) | ||||
| 
 | ||||
| static inline void gpio_matrix_out_check(uint32_t gpio, uint32_t signal_idx, bool out_inv, bool oen_inv) { | ||||
|   //if pin = -1, do not need to configure
 | ||||
|   if (gpio != -1) { | ||||
|   PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO); | ||||
|   gpio_set_direction((gpio_num_t)gpio, (gpio_mode_t)GPIO_MODE_DEF_OUTPUT); | ||||
|   gpio_matrix_out(gpio, signal_idx, out_inv, oen_inv); | ||||
| } | ||||
| } | ||||
| 
 | ||||
| static esp_err_t i2s_reset_fifo(i2s_port_t i2s_num) { | ||||
|   I2S_ENTER_CRITICAL(); | ||||
| @ -256,13 +253,7 @@ int i2s_init() { | ||||
| 
 | ||||
|   I2S0.fifo_conf.dscr_en = 0; | ||||
| 
 | ||||
|   I2S0.conf_chan.tx_chan_mod = ( | ||||
|     #if ENABLED(I2S_STEPPER_SPLIT_STREAM) | ||||
|       4 | ||||
|     #else | ||||
|       0 | ||||
|     #endif | ||||
|   ); | ||||
|   I2S0.conf_chan.tx_chan_mod = TERN(I2S_STEPPER_SPLIT_STREAM, 4, 0); | ||||
|   I2S0.fifo_conf.tx_fifo_mod = 0; | ||||
|   I2S0.conf.tx_mono = 0; | ||||
| 
 | ||||
| @ -313,9 +304,16 @@ int i2s_init() { | ||||
|   xTaskCreatePinnedToCore(stepperTask, "StepperTask", 10000, nullptr, 1, nullptr, CONFIG_ARDUINO_RUNNING_CORE); // run I2S stepper task on same core as rest of Marlin
 | ||||
| 
 | ||||
|   // Route the i2s pins to the appropriate GPIO
 | ||||
|   // If a pin is not defined, no need to configure
 | ||||
|   #if defined(I2S_DATA) && I2S_DATA >= 0 | ||||
|     gpio_matrix_out_check(I2S_DATA, I2S0O_DATA_OUT23_IDX, 0, 0); | ||||
|   #endif | ||||
|   #if defined(I2S_BCK) && I2S_BCK >= 0 | ||||
|     gpio_matrix_out_check(I2S_BCK, I2S0O_BCK_OUT_IDX, 0, 0); | ||||
|   #endif | ||||
|   #if defined(I2S_WS) && I2S_WS >= 0 | ||||
|     gpio_matrix_out_check(I2S_WS, I2S0O_WS_OUT_IDX, 0, 0); | ||||
|   #endif | ||||
| 
 | ||||
|   // Start the I2S peripheral
 | ||||
|   return i2s_start(I2S_NUM_0); | ||||
|  | ||||
| @ -425,9 +425,10 @@ | ||||
| #define BOARD_MRR_ESPA                6001  // MRR ESPA based on ESP32 (native pins only)
 | ||||
| #define BOARD_MRR_ESPE                6002  // MRR ESPE based on ESP32 (with I2S stepper stream)
 | ||||
| #define BOARD_E4D_BOX                 6003  // E4d@BOX
 | ||||
| #define BOARD_FYSETC_E4               6004  // FYSETC E4
 | ||||
| #define BOARD_PANDA_ZHU               6005  // Panda_ZHU
 | ||||
| #define BOARD_PANDA_M4                6006  // Panda_M4
 | ||||
| #define BOARD_RESP32_CUSTOM           6004  // Rutilea ESP32 custom board
 | ||||
| #define BOARD_FYSETC_E4               6005  // FYSETC E4
 | ||||
| #define BOARD_PANDA_ZHU               6006  // Panda_ZHU
 | ||||
| #define BOARD_PANDA_M4                6007  // Panda_M4
 | ||||
| 
 | ||||
| //
 | ||||
| // SAMD51 ARM Cortex M4
 | ||||
|  | ||||
							
								
								
									
										89
									
								
								Marlin/src/pins/esp32/pins_ESPA_common.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								Marlin/src/pins/esp32/pins_ESPA_common.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,89 @@ | ||||
| /**
 | ||||
|  * 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 | ||||
| 
 | ||||
| /**
 | ||||
|  * ESPA-like pin assignments | ||||
|  * Supports 4 stepper drivers, heated bed, single hotend. | ||||
|  */ | ||||
| 
 | ||||
| #include "env_validate.h" | ||||
| 
 | ||||
| #ifndef DEFAULT_MACHINE_NAME | ||||
|   #define DEFAULT_MACHINE_NAME  BOARD_INFO_NAME | ||||
| #endif | ||||
| 
 | ||||
| //
 | ||||
| // Disable I2S stepper stream, by default
 | ||||
| //
 | ||||
| #undef I2S_STEPPER_STREAM | ||||
| #undef I2S_WS | ||||
| #undef I2S_BCK | ||||
| #undef I2S_DATA | ||||
| 
 | ||||
| //
 | ||||
| // Limit Switches
 | ||||
| //
 | ||||
| #define X_STOP_PIN                            34 | ||||
| #define Y_STOP_PIN                            35 | ||||
| #define Z_STOP_PIN                            15 | ||||
| 
 | ||||
| //
 | ||||
| // Steppers
 | ||||
| //
 | ||||
| #define X_STEP_PIN                            27 | ||||
| #define X_DIR_PIN                             26 | ||||
| #define X_ENABLE_PIN                          25 | ||||
| 
 | ||||
| #define Y_STEP_PIN                            33 | ||||
| #define Y_DIR_PIN                             32 | ||||
| #define Y_ENABLE_PIN                X_ENABLE_PIN | ||||
| 
 | ||||
| #define Z_STEP_PIN                            14 | ||||
| #define Z_DIR_PIN                             12 | ||||
| #define Z_ENABLE_PIN                X_ENABLE_PIN | ||||
| 
 | ||||
| #define E0_STEP_PIN                           16 | ||||
| #define E0_DIR_PIN                            17 | ||||
| #define E0_ENABLE_PIN               X_ENABLE_PIN | ||||
| 
 | ||||
| //
 | ||||
| // Temperature Sensors
 | ||||
| //
 | ||||
| #define TEMP_0_PIN                            36  // Analog Input
 | ||||
| #define TEMP_BED_PIN                          39  // Analog Input
 | ||||
| 
 | ||||
| //
 | ||||
| // Heaters / Fans
 | ||||
| //
 | ||||
| #define HEATER_0_PIN                           2 | ||||
| #define FAN_PIN                               13 | ||||
| #define HEATER_BED_PIN                         4 | ||||
| 
 | ||||
| //
 | ||||
| // MicroSD card
 | ||||
| //
 | ||||
| #define SD_MOSI_PIN                           23 | ||||
| #define SD_MISO_PIN                           19 | ||||
| #define SD_SCK_PIN                            18 | ||||
| #define SDSS                                   5 | ||||
| #define USES_SHARED_SPI                           // SPI is shared by SD card with TMC SPI drivers
 | ||||
| @ -37,41 +37,8 @@ | ||||
| #endif | ||||
| 
 | ||||
| #define BOARD_INFO_NAME       "FYSETC_E4" | ||||
| #define DEFAULT_MACHINE_NAME  BOARD_INFO_NAME | ||||
| 
 | ||||
| //
 | ||||
| // Disable I2S stepper stream
 | ||||
| //
 | ||||
| #undef I2S_STEPPER_STREAM | ||||
| #define I2S_WS                                -1 | ||||
| #define I2S_BCK                               -1 | ||||
| #define I2S_DATA                              -1 | ||||
| 
 | ||||
| //
 | ||||
| // Limit Switches
 | ||||
| //
 | ||||
| #define X_STOP_PIN                            34 | ||||
| #define Y_STOP_PIN                            35 | ||||
| #define Z_STOP_PIN                            15 | ||||
| 
 | ||||
| //
 | ||||
| // Steppers
 | ||||
| //
 | ||||
| #define X_STEP_PIN                            27 | ||||
| #define X_DIR_PIN                             26 | ||||
| #define X_ENABLE_PIN                          25 | ||||
| 
 | ||||
| #define Y_STEP_PIN                            33 | ||||
| #define Y_DIR_PIN                             32 | ||||
| #define Y_ENABLE_PIN                X_ENABLE_PIN | ||||
| 
 | ||||
| #define Z_STEP_PIN                            14 | ||||
| #define Z_DIR_PIN                             12 | ||||
| #define Z_ENABLE_PIN                X_ENABLE_PIN | ||||
| 
 | ||||
| #define E0_STEP_PIN                           16 | ||||
| #define E0_DIR_PIN                            17 | ||||
| #define E0_ENABLE_PIN               X_ENABLE_PIN | ||||
| #include "pins_ESPA_common.h" | ||||
| 
 | ||||
| #if HAS_TMC_UART | ||||
|   //
 | ||||
| @ -89,28 +56,6 @@ | ||||
|   #define TMC_BAUD_RATE 115200 | ||||
| #endif | ||||
| 
 | ||||
| //
 | ||||
| // Temperature Sensors
 | ||||
| //
 | ||||
| #define TEMP_0_PIN                            36  // Analog Input
 | ||||
| #define TEMP_BED_PIN                          39  // Analog Input
 | ||||
| 
 | ||||
| //
 | ||||
| // Heaters / Fans
 | ||||
| //
 | ||||
| #define HEATER_0_PIN                           2 | ||||
| #define FAN_PIN                               13 | ||||
| #define HEATER_BED_PIN                         4 | ||||
| 
 | ||||
| //
 | ||||
| // MicroSD card
 | ||||
| //
 | ||||
| #define SD_MOSI_PIN                           23 | ||||
| #define SD_MISO_PIN                           19 | ||||
| #define SD_SCK_PIN                            18 | ||||
| #define SDSS                                   5 | ||||
| #define USES_SHARED_SPI                           // SPI is shared by SD card with TMC SPI drivers
 | ||||
| 
 | ||||
| /**
 | ||||
|  * Hardware serial pins | ||||
|  * | ||||
|  | ||||
| @ -38,68 +38,17 @@ | ||||
| 
 | ||||
| #define BOARD_INFO_NAME       "MRR ESPA" | ||||
| #define BOARD_WEBSITE_URL     "github.com/maplerainresearch/MRR_ESPA" | ||||
| #define DEFAULT_MACHINE_NAME  BOARD_INFO_NAME | ||||
| 
 | ||||
| //
 | ||||
| // Disable I2S stepper stream
 | ||||
| //
 | ||||
| #undef I2S_STEPPER_STREAM | ||||
| #undef I2S_WS | ||||
| #undef I2S_BCK | ||||
| #undef I2S_DATA | ||||
| 
 | ||||
| //
 | ||||
| // Limit Switches
 | ||||
| //
 | ||||
| #define X_STOP_PIN                            34 | ||||
| #define Y_STOP_PIN                            35 | ||||
| #define Z_STOP_PIN                            15 | ||||
| #include "pins_ESPA_common.h" | ||||
| 
 | ||||
| //
 | ||||
| // Steppers
 | ||||
| //
 | ||||
| #define X_STEP_PIN                            27 | ||||
| #define X_DIR_PIN                             26 | ||||
| #define X_ENABLE_PIN                          25 | ||||
| //#define X_CS_PIN                            21
 | ||||
| 
 | ||||
| #define Y_STEP_PIN                            33 | ||||
| #define Y_DIR_PIN                             32 | ||||
| #define Y_ENABLE_PIN                X_ENABLE_PIN | ||||
| //#define Y_CS_PIN                            22
 | ||||
| 
 | ||||
| #define Z_STEP_PIN                            14 | ||||
| #define Z_DIR_PIN                             12 | ||||
| #define Z_ENABLE_PIN                X_ENABLE_PIN | ||||
| //#define Z_CS_PIN                             5  // SS_PIN
 | ||||
| 
 | ||||
| #define E0_STEP_PIN                           16 | ||||
| #define E0_DIR_PIN                            17 | ||||
| #define E0_ENABLE_PIN               X_ENABLE_PIN | ||||
| //#define E0_CS_PIN                           21
 | ||||
| 
 | ||||
| //
 | ||||
| // Temperature Sensors
 | ||||
| //
 | ||||
| #define TEMP_0_PIN                            36  // Analog Input
 | ||||
| #define TEMP_BED_PIN                          39  // Analog Input
 | ||||
| 
 | ||||
| //
 | ||||
| // Heaters / Fans
 | ||||
| //
 | ||||
| #define HEATER_0_PIN                           2 | ||||
| #define FAN_PIN                               13 | ||||
| #define HEATER_BED_PIN                         4 | ||||
| 
 | ||||
| //
 | ||||
| // MicroSD card
 | ||||
| //
 | ||||
| #define SD_MOSI_PIN                           23 | ||||
| #define SD_MISO_PIN                           19 | ||||
| #define SD_SCK_PIN                            18 | ||||
| #define SDSS                                   5 | ||||
| #define USES_SHARED_SPI                           // SPI is shared by SD card with TMC SPI drivers
 | ||||
| 
 | ||||
| // Hardware serial pins
 | ||||
| // Add the following to Configuration.h or Configuration_adv.h to assign
 | ||||
| // specific pins to hardware Serial1.
 | ||||
|  | ||||
| @ -51,7 +51,6 @@ | ||||
| //
 | ||||
| // Enable I2S stepper stream
 | ||||
| //
 | ||||
| #undef I2S_STEPPER_STREAM | ||||
| #define I2S_STEPPER_STREAM | ||||
| #define I2S_WS                                26 | ||||
| #define I2S_BCK                               25 | ||||
|  | ||||
							
								
								
									
										37
									
								
								Marlin/src/pins/esp32/pins_RESP32_CUSTOM.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								Marlin/src/pins/esp32/pins_RESP32_CUSTOM.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| /**
 | ||||
|  * 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 | ||||
| 
 | ||||
| /**
 | ||||
|  * Rutilea ESP32 (Tensilica Xtensa LX6) pin assignments | ||||
|  */ | ||||
| 
 | ||||
| #include "env_validate.h" | ||||
| 
 | ||||
| #define BOARD_INFO_NAME "Rutilea ESP32" | ||||
| 
 | ||||
| #include "pins_ESPA_common.h" | ||||
| 
 | ||||
| //
 | ||||
| // I2S (steppers & other output-only pins)
 | ||||
| //
 | ||||
| #define I2S_STEPPER_STREAM | ||||
| @ -695,6 +695,8 @@ | ||||
|   #include "esp32/pins_MRR_ESPE.h"              // ESP32                                  env:esp32 | ||||
| #elif MB(E4D_BOX) | ||||
|   #include "esp32/pins_E4D.h"                   // ESP32                                  env:esp32 | ||||
| #elif MB(RESP32_CUSTOM) | ||||
|   #include "esp32/pins_RESP32_CUSTOM.h"         // ESP32                                  env:esp32 | ||||
| #elif MB(FYSETC_E4) | ||||
|   #include "esp32/pins_FYSETC_E4.h"             // ESP32                                  env:FYSETC_E4 | ||||
| #elif MB(PANDA_ZHU) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user