Skip to content

Commit b59f083

Browse files
committed
🖥️ Anycubic Kobra Max board, touch display
1 parent e32d9a3 commit b59f083

21 files changed

Lines changed: 4625 additions & 251 deletions

.github/workflows/ci-build-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ jobs:
154154

155155
# HC32
156156
- HC32F460C_aquila_101
157+
- HC32F460C_kobra_max
157158

158159
# GD32F3
159160
- GD32F303RE_creality_mfl

Marlin/config.ini

Lines changed: 26 additions & 246 deletions
Original file line numberDiff line numberDiff line change
@@ -1,254 +1,34 @@
11
#
22
# Marlin Firmware
3-
# config.ini - Options to apply before the build
3+
# Test: HC32F460C_kobra_max/config-02.ini
44
#
5-
[config:base]
6-
#
7-
# ini_use_config - A comma-separated list of actions to apply to the Configuration files.
8-
# The actions will be applied in the listed order.
9-
# - none
10-
# Ignore this file and don't apply any configuration options
11-
#
12-
# - base
13-
# Just apply the options in config:base to the configuration
14-
#
15-
# - minimal
16-
# Just apply the options in config:minimal to the configuration
17-
#
18-
# - all
19-
# Apply all 'config:*' sections in this file to the configuration
20-
#
21-
# - another.ini
22-
# Load another INI file with a path relative to this config.ini file (i.e., within Marlin/)
23-
#
24-
# - https://me.myserver.com/path/to/configs
25-
# Fetch configurations from any URL.
26-
#
27-
# - example/Creality/Ender-5 Plus @ bugfix-2.1.x
28-
# Fetch example configuration files from the MarlinFirmware/Configurations repository
29-
# https://raw.githubusercontent.com/MarlinFirmware/Configurations/bugfix-2.1.x/config/examples/Creality/Ender-5%20Plus/
5+
# Anycubic Kobra Max - With ANYCUBIC_LCD_KOBRA display
306
#
31-
# - example/default @ release-2.0.9.7
32-
# Fetch default configuration files from the MarlinFirmware/Configurations repository
33-
# https://raw.githubusercontent.com/MarlinFirmware/Configurations/release-2.0.9.7/config/default/
34-
#
35-
# - [disable]
36-
# Comment out all #defines in both Configuration.h and Configuration_adv.h. This is useful
37-
# to start with a clean slate before applying any config: options, so only the options explicitly
38-
# set in config.ini will be enabled in the configuration.
39-
#
40-
# - [flatten] (Not yet implemented)
41-
# Produce a flattened set of Configuration.h and Configuration_adv.h files with only the enabled
42-
# #defines and no comments. A clean look, but context-free.
43-
#
44-
ini_use_config = none
45-
46-
# Load all config: sections in this file
47-
;ini_use_config = all
48-
# Disable everything and apply subsequent config:base options
49-
;ini_use_config = [disable], base
50-
# Load config file relative to Marlin/
51-
;ini_use_config = another.ini
52-
# Download configurations from GitHub
53-
;ini_use_config = example/Creality/Ender-5 Plus @ bugfix-2.1.x
54-
# Download configurations from your server
55-
;ini_use_config = https://me.myserver.com/path/to/configs
56-
# Evaluate config:base and do a config dump
57-
;ini_use_config = base
58-
;config_export = 2
59-
60-
[config:minimal]
61-
motherboard = BOARD_RAMPS_14_EFB
62-
serial_port = 0
63-
baudrate = 250000
64-
65-
string_config_h_author = "(default from config.ini)"
66-
67-
capabilities_report = on
68-
extended_capabilities_report = on
69-
70-
use_watchdog = on
71-
thermal_protection_hotends = on
72-
thermal_protection_hysteresis = 4
73-
thermal_protection_period = 40
74-
75-
bufsize = 4
76-
block_buffer_size = 16
77-
max_cmd_size = 96
787

8+
[config:base]
9+
motherboard = BOARD_TRIGORILLA_F1_V1
10+
serial_port = 1
11+
lcd_serial_port = 2
12+
eeprom_settings = on
13+
sdsupport = on
14+
emergency_parser = on
15+
x_driver_type = TMC2208_STANDALONE
16+
y_driver_type = TMC2208_STANDALONE
17+
z_driver_type = TMC2208_STANDALONE
18+
e0_driver_type = TMC2208_STANDALONE
7919
extruders = 1
8020
temp_sensor_0 = 1
81-
82-
temp_hysteresis = 3
83-
heater_0_mintemp = 5
84-
heater_0_maxtemp = 275
85-
86-
pidtemp = on
87-
pid_k1 = 0.95
88-
pid_max = 255
89-
pid_functional_range = 20
90-
91-
default_kp = 22.20
92-
default_ki = 1.08
93-
default_kd = 114.00
94-
9521
temp_sensor_bed = 1
96-
bed_check_interval = 5000
97-
bed_mintemp = 5
98-
bed_maxtemp = 150
99-
100-
thermal_protection_bed = on
101-
thermal_protection_bed_hysteresis = 2
102-
thermal_protection_bed_period = 20
103-
104-
x_driver_type = A4988
105-
y_driver_type = A4988
106-
z_driver_type = A4988
107-
e0_driver_type = A4988
108-
109-
x_bed_size = 200
110-
x_min_pos = 0
111-
x_max_pos = X_BED_SIZE
112-
113-
y_bed_size = 200
114-
y_min_pos = 0
115-
y_max_pos = Y_BED_SIZE
116-
117-
z_min_pos = 0
118-
z_max_pos = 200
119-
120-
x_home_dir = -1
121-
y_home_dir = -1
122-
z_home_dir = -1
123-
124-
x_min_endstop_hit_state = HIGH
125-
y_min_endstop_hit_state = HIGH
126-
z_min_endstop_hit_state = HIGH
127-
128-
default_axis_steps_per_unit = { 80, 80, 400, 500 }
129-
axis_relative_modes = { false, false, false, false }
130-
default_max_feedrate = { 300, 300, 5, 25 }
131-
default_max_acceleration = { 3000, 3000, 100, 10000 }
132-
133-
homing_feedrate_mm_m = { (50*60), (50*60), (4*60) }
134-
homing_bump_divisor = { 2, 2, 4 }
135-
136-
x_enable_on = LOW
137-
y_enable_on = LOW
138-
z_enable_on = LOW
139-
e_enable_on = LOW
140-
141-
invert_x_dir = false
142-
invert_y_dir = true
143-
invert_z_dir = false
144-
invert_e0_dir = false
145-
146-
step_state_e = HIGH
147-
step_state_x = HIGH
148-
step_state_y = HIGH
149-
step_state_z = HIGH
150-
151-
proportional_font_ratio = 1.0
152-
default_nominal_filament_dia = 1.75
153-
154-
junction_deviation_mm = 0.013
155-
156-
default_acceleration = 3000
157-
default_travel_acceleration = 3000
158-
default_retract_acceleration = 3000
159-
160-
default_minimumfeedrate = 0.0
161-
default_mintravelfeedrate = 0.0
162-
163-
min_steps_per_segment = 6
164-
default_minsegmenttime = 20000
165-
166-
[config:basic]
167-
hotend_overshoot = 15
168-
bed_overshoot = 10
169-
max_bed_power = 255
170-
171-
busy_while_heating = on
172-
host_keepalive_feature = on
173-
default_keepalive_interval = 2
174-
printjob_timer_autostart = on
175-
176-
jd_handle_small_segments = on
177-
validate_homing_endstops = on
178-
editable_steps_per_unit = on
179-
180-
eeprom_boot_silent = on
181-
eeprom_chitchat = on
182-
183-
endstoppullups = on
184-
185-
prevent_cold_extrusion = on
186-
extrude_mintemp = 170
187-
prevent_lengthy_extrude = on
188-
extrude_maxlength = 200
189-
190-
min_software_endstops = on
191-
max_software_endstops = on
192-
min_software_endstop_x = on
193-
min_software_endstop_y = on
194-
min_software_endstop_z = on
195-
max_software_endstop_x = on
196-
max_software_endstop_y = on
197-
max_software_endstop_z = on
198-
199-
preheat_1_label = "PLA"
200-
preheat_1_temp_hotend = 180
201-
preheat_1_temp_bed = 70
202-
preheat_1_fan_speed = 0
203-
204-
preheat_2_label = "ABS"
205-
preheat_2_temp_hotend = 240
206-
preheat_2_temp_bed = 110
207-
preheat_2_fan_speed = 0
208-
209-
temp_bed_hysteresis = 3
210-
temp_bed_residency_time = 10
211-
temp_bed_window = 1
212-
temp_residency_time = 10
213-
temp_window = 1
214-
215-
[config:advanced]
216-
arc_support = on
217-
min_arc_segment_mm = 0.1
218-
max_arc_segment_mm = 1.0
219-
min_circle_segments = 72
220-
n_arc_correction = 25
221-
222-
auto_report_temperatures = on
223-
224-
autotemp = on
225-
autotemp_min = 210
226-
autotemp_max = 250
227-
autotemp_factor = 0.1f
228-
autotemp_oldweight = 0.98
229-
230-
default_stepper_timeout_sec = 120
231-
disable_idle_x = on
232-
disable_idle_y = on
233-
disable_idle_z = on
234-
disable_idle_e = on
235-
236-
e0_auto_fan_pin = -1
237-
238-
faster_gcode_parser = on
239-
debug_flags_gcode = on
240-
241-
homing_bump_mm = { 5, 5, 2 }
242-
243-
slowdown = on
244-
slowdown_divisor = 2
245-
multistepping_limit = 16
246-
247-
serial_overrun_protection = on
248-
tx_buffer_size = 0
249-
250-
watch_temp_increase = 2
251-
watch_temp_period = 40
252-
253-
watch_bed_temp_increase = 2
254-
watch_bed_temp_period = 60
22+
heater_0_maxtemp = 275
23+
bed_maxtemp = 120
24+
x_bed_size = 400
25+
y_bed_size = 400
26+
z_max_pos = 450
27+
homing_speed = 50
28+
nozzle_as_probe = on
29+
probe_tare = on
30+
nozzle_to_probe_offset = { 0, 0, 0 }
31+
auto_bed_leveling_bilinear = on
32+
babystepping = on
33+
z_safe_homing = on
34+
anycubic_lcd_kobra = on

Marlin/src/core/boards.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,7 @@
562562

563563
#define BOARD_AQUILA_V101 7200 // Voxelab Aquila V1.0.0/1/2/3 (e.g., Aquila X2, C2). ... GD32 Variant Below!
564564
#define BOARD_CREALITY_ENDER2P_V24S4 7201 // Creality Ender 2 Pro v2.4.S4_170 (HC32f460kcta)
565+
#define BOARD_TRIGORILLA_F1_V1 7202 // Anycubic TriGorilla F1 V1 - Kobra Max (HC32F460PETB)
565566

566567
//
567568
// GD32 ARM Cortex-M3

Marlin/src/inc/Conditionals-2-LCD.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@
571571
#endif
572572

573573
// Extensible UI serial touch screens. (See src/lcd/extui)
574-
#if ANY(HAS_DGUS_LCD, MALYAN_LCD, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, NEXTION_TFT, TOUCH_UI_FTDI_EVE, DWIN_LCD_PROUI)
574+
#if ANY(HAS_DGUS_LCD, MALYAN_LCD, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_KOBRA, NEXTION_TFT, TOUCH_UI_FTDI_EVE, DWIN_LCD_PROUI)
575575
#define IS_EXTUI 1 // Just for sanity check.
576576
#define EXTENSIBLE_UI
577577
#endif
@@ -590,7 +590,7 @@
590590
#endif
591591

592592
// Serial Controllers require LCD_SERIAL_PORT
593-
#if ANY(IS_DWIN_MARLINUI, HAS_DWIN_E3V2, HAS_DGUS_LCD, MALYAN_LCD, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, NEXTION_TFT, SOVOL_SV06_RTS)
593+
#if ANY(IS_DWIN_MARLINUI, HAS_DWIN_E3V2, HAS_DGUS_LCD, MALYAN_LCD, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_KOBRA, NEXTION_TFT, SOVOL_SV06_RTS)
594594
#define LCD_IS_SERIAL_HOST 1
595595
#endif
596596

@@ -909,7 +909,7 @@
909909
+ (ENABLED(EXTENSIBLE_UI) && DISABLED(IS_EXTUI)) \
910910
+ (DISABLED(IS_LEGACY_TFT) && ENABLED(TFT_GENERIC)) \
911911
+ (ENABLED(IS_LEGACY_TFT) && COUNT_ENABLED(TFT_320x240, TFT_320x240_SPI, TFT_480x320, TFT_480x320_SPI)) \
912-
+ COUNT_ENABLED(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_TFT35, ANYCUBIC_LCD_VYPER) \
912+
+ COUNT_ENABLED(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_KOBRA, ANYCUBIC_TFT35, ANYCUBIC_LCD_VYPER) \
913913
+ DGUS_UI_IS(ORIGIN) + DGUS_UI_IS(FYSETC) + DGUS_UI_IS(HIPRECY) + DGUS_UI_IS(MKS) + DGUS_UI_IS(RELOADED) + DGUS_UI_IS(IA_CREALITY) \
914914
+ COUNT_ENABLED(ENDER2_STOCKDISPLAY, CR10_STOCKDISPLAY) \
915915
+ COUNT_ENABLED(DWIN_CREALITY_LCD, DWIN_LCD_PROUI, DWIN_CREALITY_LCD_JYERSUI, DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE, SOVOL_SV06_RTS) \

Marlin/src/inc/SanityCheck.h

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3105,6 +3105,20 @@ static_assert(NUM_SERVOS <= NUM_SERVO_PLUGS, "NUM_SERVOS (or some servo index) i
31053105
static_assert(strcmp(STRINGIFY(LCD_LANGUAGE_2), "zh_CN") == 0, "LCD_LANGUAGE_2 must be set to zh_CN for ANYCUBIC_LCD_VYPER.");
31063106
#endif
31073107

3108+
#if ENABLED(ANYCUBIC_LCD_KOBRA)
3109+
#ifndef BEEPER_PIN
3110+
#error "ANYCUBIC_LCD_KOBRA requires BEEPER_PIN"
3111+
#elif !HAS_MEDIA
3112+
#error "ANYCUBIC_LCD_KOBRA requires SDSUPPORT"
3113+
#elif TEMP_SENSOR_BED == 0
3114+
#error "ANYCUBIC_LCD_KOBRA requires heatbed (TEMP_SENSOR_BED)"
3115+
#elif NONE(AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL, MESH_BED_LEVELING)
3116+
#error "ANYCUBIC_LCD_KOBRA requires one of: AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL or MESH_BED_LEVELING"
3117+
#elif DISABLED(BABYSTEPPING)
3118+
#error "ANYCUBIC_LCD_KOBRA requires BABYSTEPPING"
3119+
#endif
3120+
#endif
3121+
31083122
#if ENABLED(NO_LCD_SDCARD) && SD_CONNECTION_IS(LCD)
31093123
#error "SDCARD_CONNECTION cannot be set to LCD for the enabled display. No available SD card reader."
31103124
#endif
@@ -3161,7 +3175,7 @@ static_assert(NUM_SERVOS <= NUM_SERVO_PLUGS, "NUM_SERVOS (or some servo index) i
31613175

31623176
// Startup Tune requirements
31633177
#ifdef STARTUP_TUNE
3164-
#if ANY(ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_VYPER)
3178+
#if ANY(ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_KOBRA, ANYCUBIC_LCD_VYPER)
31653179
#error "STARTUP_TUNE should be disabled with ANYCUBIC_LCD_CHIRON or ANYCUBIC_LCD_VYPER."
31663180
#elif !(ALL(HAS_BEEPER, SPEAKER) || USE_MARLINUI_BUZZER)
31673181
#error "STARTUP_TUNE requires a BEEPER_PIN with SPEAKER or USE_MARLINUI_BUZZER."
@@ -3214,7 +3228,7 @@ static_assert(NUM_SERVOS <= NUM_SERVO_PLUGS, "NUM_SERVOS (or some servo index) i
32143228
#else
32153229
#if HAS_DGUS_LCD
32163230
#error "The DGUS LCD requires LCD_SERIAL_PORT to be defined."
3217-
#elif ANY(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_VYPER)
3231+
#elif ANY(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_LCD_KOBRA, ANYCUBIC_LCD_VYPER)
32183232
#error "ANYCUBIC_LCD_* requires LCD_SERIAL_PORT to be defined."
32193233
#elif ENABLED(MALYAN_LCD)
32203234
#error "MALYAN_LCD requires LCD_SERIAL_PORT to be defined."

0 commit comments

Comments
 (0)