Переглянути джерело

✨ Index Pick-and-Place board Rev.3 (#22647)

Co-authored-by: Gonçalo Pereira <goncalo_pereira@outlook.pt>
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
Justin Nesselrotte 2 роки тому
джерело
коміт
76fb131f14
Аккаунт користувача з таким Email не знайдено

+ 1
- 0
.github/workflows/test-builds.yml Переглянути файл

@@ -97,6 +97,7 @@ jobs:
97 97
         - REMRAM_V1
98 98
         - BTT_SKR_SE_BX
99 99
         - chitu_f103
100
+        - Index_Mobo_Rev03
100 101
 
101 102
         # Put lengthy tests last
102 103
 

+ 1
- 0
Marlin/src/core/boards.h Переглянути файл

@@ -395,6 +395,7 @@
395 395
 #define BOARD_ANET_ET4P               4230  // ANET ET4P V1.x (STM32F407VGT6)
396 396
 #define BOARD_FYSETC_CHEETAH_V20      4231  // FYSETC Cheetah V2.0
397 397
 #define BOARD_TH3D_EZBOARD_LITE_V2    4232  // TH3D EZBoard Lite v2.0
398
+#define BOARD_INDEX_REV03             4233  // Index PnP Controller REV03 (STM32F407VET6/VGT6)
398 399
 
399 400
 //
400 401
 // ARM Cortex M7

+ 2
- 0
Marlin/src/pins/pins.h Переглянути файл

@@ -645,6 +645,8 @@
645 645
   #include "stm32f4/pins_MKS_MONSTER8.h"        // STM32F4                                env:mks_monster8 env:mks_monster8_usb_flash_drive env:mks_monster8_usb_flash_drive_msc
646 646
 #elif MB(TH3D_EZBOARD_LITE_V2)
647 647
   #include "stm32f4/pins_TH3D_EZBOARD_LITE_V2.h" // STM32F4                               env:TH3D_EZBoard_Lite_V2
648
+#elif MB(INDEX_REV03)
649
+  #include "stm32f4/pins_INDEX_REV03.h"         // STM32F4                                env:Index_Mobo_Rev03
648 650
 
649 651
 //
650 652
 // ARM Cortex M7

+ 157
- 0
Marlin/src/pins/stm32f4/pins_INDEX_REV03.h Переглянути файл

@@ -0,0 +1,157 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+#pragma once
23
+
24
+/**
25
+ * STM32F407VET6 on Index PnP Mobo Rev03
26
+ * Website - https://indexmachines.io/
27
+ */
28
+
29
+#define ALLOW_STM32DUINO
30
+#include "env_validate.h"
31
+
32
+#define BOARD_INFO_NAME      "Index Mobo Rev03"
33
+#define DEFAULT_MACHINE_NAME "Index Pick and Place"
34
+
35
+/**
36
+ * By default, the extra stepper motor configuration is:
37
+ * I = Left Head
38
+ * J = Right Head
39
+ * K = Auxiliary (Conveyor belt)
40
+ */
41
+
42
+#define SRAM_EEPROM_EMULATION
43
+#define MARLIN_EEPROM_SIZE                0x2000  // 8KB
44
+
45
+//
46
+// Servos
47
+//
48
+#define SERVO0_PIN                          PB10
49
+#define SERVO1_PIN                          PB11
50
+
51
+//
52
+// Limit Switches
53
+//
54
+#define X_STOP_PIN                          PC6
55
+#define Y_STOP_PIN                          PD15
56
+#define Z_STOP_PIN                          PD14
57
+
58
+// None of these require limit switches by default, so we leave these commented
59
+// here for your reference.
60
+// #define I_MIN_PIN                           PA8
61
+// #define I_MAX_PIN                           PA8
62
+// #define J_MIN_PIN                           PD13
63
+// #define J_MAX_PIN                           PD13
64
+// #define K_MIN_PIN                           PC9
65
+// #define K_MAX_PIN                           PC9
66
+
67
+//
68
+// Steppers
69
+//
70
+#define X_STEP_PIN                          PB15
71
+#define X_DIR_PIN                           PB14
72
+#define X_ENABLE_PIN                        PD9
73
+#define X_SERIAL_TX_PIN                     PD8
74
+#define X_SERIAL_RX_PIN                     PD8
75
+
76
+#define Y_STEP_PIN                          PE15
77
+#define Y_DIR_PIN                           PE14
78
+#define Y_ENABLE_PIN                        PB13
79
+#define Y_SERIAL_TX_PIN                     PB12
80
+#define Y_SERIAL_RX_PIN                     PB12
81
+
82
+#define Z_STEP_PIN                          PE7
83
+#define Z_DIR_PIN                           PB1
84
+#define Z_ENABLE_PIN                        PE9
85
+#define Z_SERIAL_TX_PIN                     PE8
86
+#define Z_SERIAL_RX_PIN                     PE8
87
+
88
+#define I_STEP_PIN                          PC4
89
+#define I_DIR_PIN                           PA4
90
+#define I_ENABLE_PIN                        PB0
91
+#define I_SERIAL_TX_PIN                     PC5
92
+#define I_SERIAL_RX_PIN                     PC5
93
+
94
+#define J_STEP_PIN                          PE11
95
+#define J_DIR_PIN                           PE10
96
+#define J_ENABLE_PIN                        PE13
97
+#define J_SERIAL_TX_PIN                     PE12
98
+#define J_SERIAL_RX_PIN                     PE12
99
+#define K_SERIAL_TX_PIN                     PA2
100
+#define K_SERIAL_RX_PIN                     PA2
101
+
102
+#define K_STEP_PIN                          PD6
103
+#define K_DIR_PIN                           PD7
104
+#define K_ENABLE_PIN                        PA3
105
+
106
+// Reduce baud rate to improve software serial reliability
107
+#define TMC_BAUD_RATE                      19200
108
+
109
+// Not required for this board. Fails to compile otherwise.
110
+// PD0 is not connected on this board.
111
+#define TEMP_0_PIN                          PD0
112
+
113
+// General use mosfets, useful for things like pumps and solenoids
114
+#define FAN_PIN                             PE2
115
+#define FAN1_PIN                            PE3
116
+#define FAN2_PIN                            PE4
117
+#define FAN3_PIN                            PE5
118
+
119
+// Neopixel Rings
120
+#define NEOPIXEL_PIN                        PC7
121
+#define NEOPIXEL2_PIN                       PC8
122
+
123
+// SPI
124
+#define MISO_PIN                            PB4
125
+#define MOSI_PIN                            PB5
126
+#define SCK_PIN                             PB3
127
+
128
+// I2C
129
+#define I2C_SDA_PIN                         PB7
130
+#define I2C_SCL_PIN                         PB6
131
+
132
+/**
133
+ * The index mobo rev03 has 3 aux ports. We define them here so they may be used
134
+ * in other places and to make sure someone doesn't have to go look up the pinout
135
+ * in the board files. Each 12 pin aux port has this pinout:
136
+ *
137
+ * VDC    1   2    GND
138
+ * 3.3V   3   4    SCL  (I2C_SCL_PIN)
139
+ * PWM1   5   6    SDA  (I2C_SDA_PIN)
140
+ * PWM2   7   8    CIPO (MISO_PIN)
141
+ * A1     9  10    COPI (MOSI_PIN)
142
+ * A2     11 12    SCK  (SCK_PIN)
143
+ */
144
+#define INDEX_AUX1_PWM1                     PA15
145
+#define INDEX_AUX1_PWM2                     PA5
146
+#define INDEX_AUX1_A1                       PC0
147
+#define INDEX_AUX1_A2                       PC1
148
+
149
+#define INDEX_AUX2_PWM1                     PA6
150
+#define INDEX_AUX2_PWM2                     PA7
151
+#define INDEX_AUX2_A1                       PC2
152
+#define INDEX_AUX2_A2                       PC3
153
+
154
+#define INDEX_AUX3_PWM1                     PB8
155
+#define INDEX_AUX3_PWM2                     PB9
156
+#define INDEX_AUX3_A1                       PA0
157
+#define INDEX_AUX3_A2                       PA1

+ 51
- 0
buildroot/share/PlatformIO/boards/marlin_index_mobo_rev03.json Переглянути файл

@@ -0,0 +1,51 @@
1
+{
2
+  "build": {
3
+    "core": "stm32",
4
+    "cpu": "cortex-m4",
5
+    "extra_flags": "-DSTM32F407xx",
6
+    "f_cpu": "168000000L",
7
+    "hwids": [
8
+      [
9
+        "0x1EAF",
10
+        "0x0003"
11
+      ],
12
+      [
13
+        "0x0483",
14
+        "0x3748"
15
+      ],
16
+      [
17
+        "0x0483",
18
+        "0xdf11"
19
+      ]
20
+    ],
21
+    "mcu": "stm32f407vet6",
22
+    "variant": "MARLIN_F407VE"
23
+  },
24
+  "debug": {
25
+    "jlink_device": "STM32F407VE",
26
+    "openocd_target": "stm32f4x",
27
+    "svd_path": "STM32F40x.svd"
28
+  },
29
+  "frameworks": [
30
+    "arduino",
31
+    "stm32cube"
32
+  ],
33
+  "name": "STM32F407VE (192k RAM. 512k Flash)",
34
+  "upload": {
35
+    "disable_flushing": false,
36
+    "maximum_ram_size": 131072,
37
+    "maximum_size": 524288,
38
+    "protocol": "stlink",
39
+    "protocols": [
40
+      "stlink",
41
+      "dfu",
42
+      "jlink",
43
+      "blackmagic"
44
+    ],
45
+    "require_upload_port": true,
46
+    "use_1200bps_touch": false,
47
+    "wait_for_upload_port": false
48
+  },
49
+  "url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f407ve.html",
50
+  "vendor": "Generic"
51
+}

+ 13
- 0
buildroot/tests/Index_Mobo_Rev03 Переглянути файл

@@ -0,0 +1,13 @@
1
+#!/usr/bin/env bash
2
+#
3
+# Build tests for Index_Mobo_Rev03
4
+#
5
+
6
+# exit on first failure
7
+set -e
8
+
9
+use_example_configs Index/REV_03
10
+exec_test $1 $2 "Index REV03 Pick and Place" "$3"
11
+
12
+# cleanup
13
+restore_configs

+ 12
- 0
ini/stm32f4.ini Переглянути файл

@@ -100,6 +100,18 @@ build_flags       = ${stm32_variant.build_flags}
100 100
                     -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
101 101
 
102 102
 #
103
+# STM32F407VET6 Index Mobo Rev 03
104
+#
105
+[env:Index_Mobo_Rev03]
106
+platform          = ${common_stm32.platform}
107
+extends           = stm32_variant
108
+board             = marlin_index_mobo_rev03
109
+build_flags       = ${stm32_variant.build_flags}
110
+  -DARDUINO_BLACK_F407VE
111
+  -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
112
+extra_scripts     = ${stm32_variant.extra_scripts}
113
+
114
+#
103 115
 # Anet ET4-MB_V1.x/ET4P-MB_V1.x (STM32F407VGT6 ARM Cortex-M4)
104 116
 # For use with with davidtgbe's OpenBLT bootloader https://github.com/davidtgbe/openblt/releases
105 117
 # Comment out board_build.offset = 0x10000 if you don't plan to use OpenBLT/flashing directly to 0x08000000.

Завантаження…
Відмінити
Зберегти