Skip to content

Commit 94bb380

Browse files
✨ FYSETC Cheetah v3.0 (#26314)
1 parent b58d5da commit 94bb380

File tree

5 files changed

+368
-0
lines changed

5 files changed

+368
-0
lines changed

Marlin/src/core/boards.h

+1
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,7 @@
460460
#define BOARD_BLACKPILL_CUSTOM 5246 // Custom board based on STM32F401CDU6.
461461
#define BOARD_I3DBEEZ9_V1 5247 // I3DBEEZ9 V1 (STM32F407ZG)
462462
#define BOARD_MELLOW_FLY_E3_V2 5248 // Mellow Fly E3 V2 (STM32F407VG)
463+
#define BOARD_FYSETC_CHEETAH_V30 5249 // FYSETC CHEETAH V3.0 (STM32F446RC)
463464

464465
//
465466
// ARM Cortex-M7

Marlin/src/pins/pins.h

+2
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,8 @@
774774
#include "stm32f4/pins_ANET_ET4P.h" // STM32F4 env:Anet_ET4_no_bootloader env:Anet_ET4_OpenBLT
775775
#elif MB(FYSETC_CHEETAH_V20)
776776
#include "stm32f4/pins_FYSETC_CHEETAH_V20.h" // STM32F4 env:FYSETC_CHEETAH_V20
777+
#elif MB(FYSETC_CHEETAH_V30)
778+
#include "stm32f4/pins_FYSETC_CHEETAH_V30.h" // STM32F4 env:FYSETC_CHEETAH_V30
777779
#elif MB(MKS_MONSTER8_V1)
778780
#include "stm32f4/pins_MKS_MONSTER8_V1.h" // STM32F4 env:mks_monster8 env:mks_monster8_usb_flash_drive env:mks_monster8_usb_flash_drive_msc
779781
#elif MB(MKS_MONSTER8_V2)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,319 @@
1+
/**
2+
* Marlin 3D Printer Firmware
3+
* Copyright (c) 2023 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+
#include "env_validate.h"
25+
26+
#define BOARD_INFO_NAME "FYSETC Cheetah V3.0"
27+
#define BOARD_WEBSITE_URL "fysetc.com"
28+
29+
// USB Flash Drive support
30+
//#define HAS_OTG_USB_HOST_SUPPORT
31+
32+
// Ignore temp readings during development.
33+
//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
34+
35+
#if ANY(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
36+
#define FLASH_EEPROM_EMULATION
37+
#define FLASH_EEPROM_LEVELING
38+
39+
#endif
40+
41+
//
42+
// Z Probe
43+
//
44+
//#if ENABLED(BLTOUCH)
45+
// #error "You need to set jumper to 5V for BLTouch, then comment out this line to proceed."
46+
// #define SERVO0_PIN PA0
47+
//#elif !defined(Z_MIN_PROBE_PIN)
48+
// #define Z_MIN_PROBE_PIN PA0
49+
//#endif
50+
51+
//
52+
// Limit Switches
53+
//
54+
#define X_STOP_PIN PA2
55+
#define Y_STOP_PIN PA3
56+
#define Z_STOP_PIN PC4
57+
58+
#if 1
59+
#define TEST_IO1 PA0 // PROBE
60+
#define TEST_IO2 PA1 // FIL-D
61+
//#define TEST_IO3 PA9
62+
//#define TEST_IO4 PA10
63+
#endif
64+
65+
//
66+
// Filament runout
67+
//
68+
//#define FIL_RUNOUT_PIN PA1
69+
70+
//
71+
// Steppers
72+
//
73+
#define X_STEP_PIN PC0
74+
#define X_DIR_PIN PC1
75+
#define X_ENABLE_PIN PC3
76+
77+
#define Y_STEP_PIN PC14
78+
#define Y_DIR_PIN PC13
79+
#define Y_ENABLE_PIN PC15
80+
81+
#define Z_STEP_PIN PB4
82+
#define Z_DIR_PIN PB5
83+
#define Z_ENABLE_PIN PC2
84+
85+
#define E0_STEP_PIN PB2
86+
#define E0_DIR_PIN PA15
87+
#define E0_ENABLE_PIN PD2
88+
89+
#if HAS_TMC_UART
90+
#if 1
91+
#ifndef X_SERIAL_TX_PIN
92+
#define X_SERIAL_TX_PIN PB3
93+
#endif
94+
#ifndef X_SERIAL_RX_PIN
95+
#define X_SERIAL_RX_PIN X_SERIAL_TX_PIN
96+
#endif
97+
98+
#ifndef Y_SERIAL_TX_PIN
99+
#define Y_SERIAL_TX_PIN PB3
100+
#endif
101+
#ifndef Y_SERIAL_RX_PIN
102+
#define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN
103+
#endif
104+
105+
#ifndef Z_SERIAL_TX_PIN
106+
#define Z_SERIAL_TX_PIN PB3
107+
#endif
108+
#ifndef Z_SERIAL_RX_PIN
109+
#define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN
110+
#endif
111+
#ifndef E0_SERIAL_TX_PIN
112+
#define E0_SERIAL_TX_PIN PB3
113+
#endif
114+
#ifndef E0_SERIAL_RX_PIN
115+
#define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN
116+
#endif
117+
118+
#ifndef X_SLAVE_ADDRESS
119+
#define X_SLAVE_ADDRESS 0
120+
#endif
121+
#ifndef Y_SLAVE_ADDRESS
122+
#define Y_SLAVE_ADDRESS 2
123+
#endif
124+
#ifndef Z_SLAVE_ADDRESS
125+
#define Z_SLAVE_ADDRESS 1
126+
#endif
127+
#ifndef E0_SLAVE_ADDRESS
128+
#define E0_SLAVE_ADDRESS 3
129+
#endif
130+
#else
131+
#define X_HARDWARE_SERIAL Serial2
132+
#define Y_HARDWARE_SERIAL Serial2
133+
#define Z_HARDWARE_SERIAL Serial2
134+
#define E0_HARDWARE_SERIAL Serial2
135+
136+
// Default TMC slave addresses
137+
#ifndef X_SLAVE_ADDRESS
138+
#define X_SLAVE_ADDRESS 0
139+
#endif
140+
#ifndef Y_SLAVE_ADDRESS
141+
#define Y_SLAVE_ADDRESS 2
142+
#endif
143+
#ifndef Z_SLAVE_ADDRESS
144+
#define Z_SLAVE_ADDRESS 1
145+
#endif
146+
#ifndef E0_SLAVE_ADDRESS
147+
#define E0_SLAVE_ADDRESS 3
148+
#endif
149+
#endif
150+
#endif
151+
152+
//
153+
// Heaters / Fans
154+
//
155+
#define HEATER_0_PIN PC7 // PWM
156+
#define HEATER_BED_PIN PC8 // PWM
157+
158+
#ifndef FAN0_PIN
159+
#define FAN0_PIN PA14
160+
#endif
161+
#define FAN1_PIN PA13
162+
#define FAN2_PIN PA8
163+
164+
//
165+
// Temperature Sensors
166+
//
167+
#define TEMP_0_PIN PC5 // Analog Input T0 ADC
168+
#define TEMP_BED_PIN PB1 // Analog Input ADC
169+
#define TEMP_CHAMBER_PIN PB0 // Analog Input T1 ADC
170+
171+
//
172+
// Misc. Functions
173+
//
174+
#if 0
175+
#define SDSS PA4
176+
#define SD_DETECT_PIN PC3
177+
#endif
178+
179+
#ifndef RGB_LED_R_PIN
180+
#define RGB_LED_R_PIN PB0
181+
#endif
182+
#ifndef RGB_LED_G_PIN
183+
#define RGB_LED_G_PIN PB7
184+
#endif
185+
#ifndef RGB_LED_B_PIN
186+
#define RGB_LED_B_PIN PB6
187+
#endif
188+
189+
/**
190+
* ----- -----
191+
* (KILL?) 5V | 1 2 | GND 5V | 1 2 | GND
192+
* (RST) RESET | 3 4 | PC12 ((SD_DET?)CD) (LCD_D7 BLUE) PB7 | 3 4 | PB6 (LCD_D6 GREEN)
193+
* ((SD?)MOSI PA7 | 5 6 | PC11 (BTN_EN2) (LCD_D5 RED DIN) PB14 | 5 6 | PB13 (LCD_D4 LCD_RST)
194+
* ((SD?)SS) PA4 | 7 8 | PC10 (BTN_EN1) (LCD_RS LCD_A0) PB12 | 7 8 | PB15 (LCD_EN LCD CS)
195+
* ((SD?)SCK) PA5 | 9 10| PA6 ((SD?)MISO) (BTN_ENC) PC6 | 9 10| PB10 (BEEPER)
196+
* ----- -----
197+
* EXP2 EXP1
198+
*/
199+
200+
/**
201+
* -----
202+
* (BEEPER) PC9 | 1 2 | PC12 (BTN_ENC)
203+
* (BTN_EN1) PC10 | 3 4 | PB14 (LCD_D5/MISO)
204+
* (BTN_EN2) PC11 5 6 | PB13 (LCD_D4/SCK)
205+
* (LCD_RS) PB12 | 7 8 | PB15 (LCD_EN/MOSI)
206+
* GND | 9 10| 5V
207+
* -----
208+
* EXP3
209+
*/
210+
211+
#define EXP1_03_PIN PB7
212+
#define EXP1_04_PIN PB6
213+
#define EXP1_05_PIN PB14
214+
#define EXP1_06_PIN PB13
215+
#define EXP1_07_PIN PB12
216+
#define EXP1_08_PIN PB15
217+
#define EXP1_09_PIN PC6
218+
#define EXP1_10_PIN PB10
219+
220+
#define EXP2_03_PIN -1 // RESET
221+
#define EXP2_04_PIN PC12
222+
#define EXP2_05_PIN PA7
223+
#define EXP2_06_PIN PC11
224+
#define EXP2_07_PIN PA4
225+
#define EXP2_08_PIN PC10
226+
#define EXP2_09_PIN PA5
227+
#define EXP2_10_PIN PA6
228+
229+
//
230+
// SPI / SD Card
231+
//
232+
#define SD_SCK_PIN EXP2_09_PIN
233+
#define SD_MISO_PIN EXP2_10_PIN
234+
#define SD_MOSI_PIN EXP2_05_PIN
235+
236+
#define SDSS EXP2_07_PIN
237+
#define SD_DETECT_PIN EXP2_04_PIN
238+
239+
#if HAS_WIRED_LCD
240+
241+
#define BEEPER_PIN EXP1_10_PIN
242+
#define BTN_ENC EXP1_09_PIN
243+
244+
#if ENABLED(CR10_STOCKDISPLAY)
245+
246+
#define LCD_PINS_RS EXP1_07_PIN
247+
248+
#define BTN_EN1 EXP2_08_PIN
249+
#define BTN_EN2 EXP2_06_PIN
250+
251+
#define LCD_PINS_EN EXP1_08_PIN
252+
#define LCD_PINS_D4 EXP1_06_PIN
253+
254+
#elif ENABLED(MKS_MINI_12864)
255+
256+
#define DOGLCD_A0 EXP1_04_PIN
257+
#define DOGLCD_CS EXP1_05_PIN
258+
#define BTN_EN1 EXP2_08_PIN
259+
#define BTN_EN2 EXP2_06_PIN
260+
261+
#else
262+
263+
#define LCD_PINS_RS EXP1_07_PIN
264+
265+
#define BTN_EN1 EXP2_06_PIN
266+
#define BTN_EN2 EXP2_08_PIN
267+
268+
#define LCD_PINS_EN EXP1_08_PIN
269+
#define LCD_PINS_D4 EXP1_06_PIN
270+
271+
#if ENABLED(FYSETC_MINI_12864)
272+
#define DOGLCD_CS EXP1_08_PIN
273+
#define DOGLCD_A0 EXP1_07_PIN
274+
//#define LCD_BACKLIGHT_PIN -1
275+
#define LCD_RESET_PIN EXP1_06_PIN // Must be high or open for LCD to operate normally.
276+
#if ANY(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
277+
#ifndef RGB_LED_R_PIN
278+
#define RGB_LED_R_PIN EXP1_05_PIN
279+
#endif
280+
#ifndef RGB_LED_G_PIN
281+
#define RGB_LED_G_PIN EXP1_04_PIN
282+
#endif
283+
#ifndef RGB_LED_B_PIN
284+
#define RGB_LED_B_PIN EXP1_03_PIN
285+
#endif
286+
#elif ENABLED(FYSETC_MINI_12864_2_1)
287+
#define NEOPIXEL_PIN EXP1_05_PIN
288+
#endif
289+
#endif // !FYSETC_MINI_12864
290+
291+
#if IS_ULTIPANEL
292+
#define LCD_PINS_D5 EXP1_05_PIN
293+
#define LCD_PINS_D6 EXP1_04_PIN
294+
#define LCD_PINS_D7 EXP1_03_PIN
295+
296+
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
297+
#define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
298+
#endif
299+
300+
#endif
301+
302+
#endif
303+
304+
#endif // HAS_WIRED_LCD
305+
306+
// Alter timing for graphical display
307+
#if ENABLED(U8GLIB_ST7920)
308+
#define BOARD_ST7920_DELAY_1 96
309+
#define BOARD_ST7920_DELAY_2 48
310+
#define BOARD_ST7920_DELAY_3 600
311+
#endif
312+
313+
#if ENABLED(TOUCH_UI_FTDI_EVE)
314+
#define BEEPER_PIN EXP1_10_PIN
315+
#define CLCD_MOD_RESET EXP2_08_PIN
316+
#define CLCD_SPI_CS EXP2_06_PIN
317+
#endif
318+
319+
#define NEOPIXEL2_PIN PC9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"build": {
3+
"cpu": "cortex-m4",
4+
"extra_flags": "-DSTM32F446xx",
5+
"f_cpu": "180000000L",
6+
"mcu": "stm32f446ret6",
7+
"variant": "MARLIN_F446VE"
8+
},
9+
"connectivity": [
10+
"can"
11+
],
12+
"debug": {
13+
"jlink_device": "STM32F446RE",
14+
"openocd_target": "stm32f4x",
15+
"svd_path": "STM32F446x.svd"
16+
},
17+
"frameworks": [
18+
"arduino",
19+
"stm32cube"
20+
],
21+
"name": "3D Printer control board",
22+
"upload": {
23+
"maximum_ram_size": 131072,
24+
"maximum_size": 524288,
25+
"protocol": "stlink",
26+
"protocols": [
27+
"jlink",
28+
"stlink",
29+
"blackmagic",
30+
"serial"
31+
]
32+
},
33+
"url": "https://www.st.com/en/microcontrollers-microprocessors/stm32f446.html",
34+
"vendor": "FYSETC"
35+
}

ini/stm32f4.ini

+11
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ board_build.offset = 0x8000
3838
build_flags = ${stm32_variant.build_flags} -DSTM32F401xC
3939
upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE"
4040

41+
#
42+
# STM32F446RC nobootloader
43+
#
44+
[env:FYSETC_CHEETAH_V30]
45+
extends = stm32_variant
46+
board = marlin_FYSETC_CHEETAH_V30
47+
build_flags = ${stm32_variant.build_flags} -DHAL_PCD_MODULE_ENABLED
48+
debug_tool = stlink
49+
upload_protocol = dfu
50+
upload_command = dfu-util -a 0 -s 0x08000000:leave -D "$SOURCE"
51+
4152
#
4253
# FLYF407ZG
4354
#

0 commit comments

Comments
 (0)