{ "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" }