{
	"type": "machine",
	"name": "fdm_bbl_3dp_002_common",
	"inherits": "fdm_machine_common",
	"from": "system",
	"instantiation": "false",
	"nozzle_diameter": [
		"0.4",
		"0.4"
	],
	"printer_variant": "0.4",
	"best_object_pos": "0.3x0.5",
	"bed_exclude_area": [],
	"bed_temperature_formula": "by_highest_temp",
	"default_filament_profile": [
		"Bambu PLA Basic @BBL H2D"
	],
	"default_nozzle_volume_type": [
		"Standard",
		"Standard"
	],
	"default_print_profile": "0.20mm Standard @BBL H2D",
	"deretraction_speed": [
		"30",
		"30",
		"30",
		"30"
	],
	"enable_long_retraction_when_cut": [
		"0"
	],
	"extruder_clearance_height_to_lid": "90",
	"extruder_clearance_height_to_rod": "38.70",
	"extruder_clearance_max_radius": "92",
	"extruder_colour": [
		"#018001",
		"#018001"
	],
	"extruder_offset": [
		"0x0",
		"0x0"
	],
	"extruder_printable_area": [
		"0x0,325x0,325x320,0x320",
		"25x0,350x0,350x320,0x320"
	],
	"extruder_printable_height": [
		"320",
		"325"
	],
	"extruder_type": [
		"Direct Drive",
		"Direct Drive"
	],
	"extruder_variant_list": [
		"Direct Drive Standard,Direct Drive High Flow",
		"Direct Drive Standard,Direct Drive High Flow"
	],
	"grab_length": [
		"0",
		"0"
	],
	"head_wrap_detect_zone": [],
	"hotend_cooling_rate": [
		"2",
		"2",
		"2",
		"2"
	],
	"hotend_heating_rate": [
		"2",
		"2",
		"2",
		"2"
	],
	"long_retractions_when_cut": [
		"0",
		"0",
		"0",
		"0"
	],
	"machine_max_acceleration_e": [
		"5000",
		"5000",
		"5000",
		"5000",
		"5000",
		"5000",
		"5000",
		"5000"
	],
	"machine_max_acceleration_extruding": [
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000"
	],
	"machine_max_acceleration_retracting": [
		"5000",
		"5000",
		"5000",
		"5000",
		"5000",
		"5000",
		"5000",
		"5000"
	],
	"machine_max_acceleration_travel": [
		"9000",
		"9000",
		"9000",
		"9000",
		"9000",
		"9000",
		"9000",
		"9000"
	],
	"machine_max_acceleration_x": [
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000"
	],
	"machine_max_acceleration_y": [
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000",
		"20000"
	],
	"machine_max_acceleration_z": [
		"500",
		"500",
		"500",
		"500",
		"500",
		"500",
		"500",
		"500"
	],
	"machine_max_jerk_e": [
		"2.5",
		"2.5",
		"2.5",
		"2.5",
		"2.5",
		"2.5",
		"2.5",
		"2.5"
	],
	"machine_max_jerk_x": [
		"9",
		"9",
		"9",
		"9",
		"9",
		"9",
		"9",
		"9"
	],
	"machine_max_jerk_y": [
		"9",
		"9",
		"9",
		"9",
		"9",
		"9",
		"9",
		"9"
	],
	"machine_max_jerk_z": [
		"3",
		"3",
		"3",
		"3",
		"3",
		"3",
		"3",
		"3"
	],
	"machine_max_speed_e": [
		"30",
		"30",
		"30",
		"30",
		"30",
		"30",
		"30",
		"30"
	],
	"machine_max_speed_x": [
		"500",
		"200",
		"500",
		"200",
		"500",
		"200",
		"500",
		"200"
	],
	"machine_max_speed_y": [
		"500",
		"200",
		"500",
		"200",
		"500",
		"200",
		"500",
		"200"
	],
	"machine_max_speed_z": [
		"20",
		"20",
		"20",
		"20",
		"20",
		"20",
		"20",
		"20"
	],
	"machine_min_extruding_rate": [
		"0",
		"0"
	],
	"machine_min_travel_rate": [
		"0",
		"0"
	],
	"machine_switch_extruder_time": "5",
	"max_layer_height": [
		"0.28",
		"0.28"
	],
	"min_layer_height": [
		"0.08",
		"0.08"
	],
	"nozzle_flush_dataset": [
		"1",
		"2",
		"1",
		"2"
	],
	"nozzle_type": [
		"hardened_steel",
		"hardened_steel",
		"hardened_steel",
		"hardened_steel"
	],
	"nozzle_volume": [
		"92",
		"92",
		"92",
		"92"
	],
	"physical_extruder_map": [
		"1",
		"0"
	],
	"printable_area": [
		"0x0",
		"345x0",
		"345x320",
		"0x320"
	],
	"printable_height": "325",
	"printer_extruder_id": [
		"1",
		"1",
		"2",
		"2"
	],
	"printer_extruder_variant": [
		"Direct Drive Standard",
		"Direct Drive High Flow",
		"Direct Drive Standard",
		"Direct Drive High Flow"
	],
	"retract_before_wipe": [
		"0%",
		"0%",
		"0%",
		"0%"
	],
	"retract_length_toolchange": [
		"2",
		"2",
		"2",
		"2"
	],
	"retract_lift_above": [
		"0",
		"0",
		"0",
		"0"
	],
	"retract_lift_below": [
		"324",
		"324",
		"324",
		"324"
	],
	"retract_restart_extra": [
		"0",
		"0",
		"0",
		"0"
	],
	"retract_restart_extra_toolchange": [
		"0",
		"0",
		"0",
		"0"
	],
	"retract_when_changing_layer": [
		"1",
		"1",
		"1",
		"1"
	],
	"retraction_distances_when_cut": [
		"18",
		"18",
		"18",
		"18"
	],
	"retraction_length": [
		"0.8",
		"0.8",
		"0.8",
		"0.8"
	],
	"retraction_minimum_travel": [
		"1",
		"1",
		"1",
		"1"
	],
	"retraction_speed": [
		"30",
		"30",
		"30",
		"30"
	],
	"wipe": [
		"1",
		"1",
		"1",
		"1"
	],
	"wipe_distance": [
		"2",
		"2",
		"2",
		"2"
	],
	"z_hop": [
		"0.4",
		"0.4",
		"0.4",
		"0.4"
	],
	"z_hop_types": [
		"Auto Lift",
		"Auto Lift",
		"Auto Lift",
		"Auto Lift"
	],
	"machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firmware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n    M400 ; wait all motion done\n    M991 S0 P-1 ;end smooth timelapse at safe pos\n    M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n    G1 Z{max_layer_z + 100.0} F600\n    G1 Z{max_layer_z +98.0}\n{else}\n    G1 Z250 F600\n    G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100  ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2   R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n",
	"layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change",
	"time_lapse_gcode": ";========Date 20250206========\nM622.1 S1 ; for prev firmware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0 T3000\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C10 O0 T3000\nG92 E0\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n",
	"change_filament_gcode": "M620 S[next_extruder]A\nM204 S9000\nG1 Z{max_layer_z + 8.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n{if toolchange_count == 2}\n; get travel path for change filament\n;M620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\n;M620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\n;M620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n{endif}\n\nM620.10 A0 F[old_filament_e_feedrate] L[flush_length] H{nozzle_diameter[previous_extruder]} T{nozzle_temperature_range_high[previous_extruder]} P[old_filament_temp]\nM620.10 A1 F[new_filament_e_feedrate] L[flush_length] H{nozzle_diameter[next_extruder]} T{nozzle_temperature_range_high[next_extruder]} P[new_filament_temp]\n\nT[next_extruder]\nM400\nM83\n{if next_extruder < 255}\n\nM628 S0\n\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S255\nM400 S3\nG1 Y327.6 F20000\nG1 Y336 F9000\nG1 Y327.6 F20000\nG1 Y336 F9000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S255\nM400 S3\nG1 Y327.6 F20000\nG1 Y336 F9000\nG1 Y327.6 F20000\nG1 Y336 F9000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\n\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S255\nM400 S3\nG1 Y327.6 F20000\nG1 Y336 F9000\nG1 Y327.6 F20000\nG1 Y336 F9000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM400\nM109 S[new_filament_temp]\nG1 E2 F60 ;Compensate for filament spillage during waiting temperature\n\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S255\nM400 S3\nG1 Y327.6 F20000\nG1 Y336 F9000\nG1 Y327.6 F20000\nG1 Y336 F9000\nG1 Y327.6 F20000\nM400\nM106 P1 S0\n\nM629\n\nM400\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM400\nM83\nG1 Y295 F30000\nG1 Y265 F18000\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\nM621 S[next_extruder]A\nG1 Z{max_layer_z + 3.0} F3000\n\n",
	"machine_pause_gcode": "M400 U1"
}
