static void checkPrintFinished() { if (!card.sdprinting && !is_command_queued()) { abortPrint(); currentMenu = lcd_menu_print_ready; SELECT_MAIN_MENU_ITEM(0); } if (card.errorCode()) { abortPrint(); currentMenu = lcd_menu_print_error; SELECT_MAIN_MENU_ITEM(0); } }
static void lcd_menu_change_material_remove() { run_history = true; lcd_info_screen(lcd_menu_material_main, cancelMaterialInsert); lcd_lib_draw_stringP(3, 20, PSTR("Reversing material")); if (!blocks_queued()) { lcd_lib_beep(); led_glow_dir = led_glow = 0; currentMenu = lcd_menu_change_material_remove_wait_user; SELECT_MAIN_MENU_ITEM(0); //Disable the extruder motor so you can pull out the remaining filament. disable_e0(); disable_e1(); disable_e2(); } long pos = -st_get_position(E_AXIS); long targetPos = lround(FILAMENT_REVERSAL_LENGTH*axis_steps_per_unit[E_AXIS]); uint8_t progress = (pos * 125 / targetPos); lcd_progressbar(progress); lcd_lib_led_color(48,48,255); lcd_lib_update_screen(); }
static void lcd_menu_first_run_print_card_detect() { if (!IS_SD_INSERTED) { lcd_info_screen(lcd_menu_main); DRAW_PROGRESS_NR(21); lcd_lib_draw_string_centerP(20, PSTR("Please insert SD-card")); lcd_lib_draw_string_centerP(30, PSTR("that came with")); lcd_lib_draw_string_centerP(40, PSTR("your Ultimaker2...")); lcd_lib_update_screen(); card.release(); return; } if (!card.isOk()) { lcd_info_screen(lcd_menu_main); DRAW_PROGRESS_NR(21); lcd_lib_draw_string_centerP(30, PSTR("Reading card...")); lcd_lib_update_screen(); card.initsd(); return; } SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_print_select, setFirstRunDone, PSTR("LET'S PRINT")); DRAW_PROGRESS_NR(21); lcd_lib_draw_string_centerP(10, PSTR("Select a print file")); lcd_lib_draw_string_centerP(20, PSTR("on the SD-card")); lcd_lib_draw_string_centerP(30, PSTR("and press the button")); lcd_lib_draw_string_centerP(40, PSTR("to print it!")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_print_1() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_print_card_detect, NULL, PSTR("ARE YOU READY?")); DRAW_PROGRESS_NR(20); lcd_lib_draw_string_centerP(20, PSTR("I'm ready let's")); lcd_lib_draw_string_centerP(30, PSTR("make a 3D Print!")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper_left() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_paper_right, parkHeadForRightAdjustment, PSTR("POKRACOVAT")); DRAW_PROGRESS_NR_IF_NOT_DONE(9); lcd_lib_draw_string_centerP(20, PSTR("Opakujte to stejne")); lcd_lib_draw_string_centerP(30, PSTR("pro levy roh...")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_paper_center, parkHeadForCenterAdjustment, PSTR("POKRACOVAT")); DRAW_PROGRESS_NR_IF_NOT_DONE(7); lcd_lib_draw_string_centerP(10, PSTR("Pro presnou kalibraci")); lcd_lib_draw_string_centerP(20, PSTR("zopakujte tyto kroky")); lcd_lib_draw_string_centerP(30, PSTR("za pomoci kousku")); lcd_lib_draw_string_centerP(40, PSTR("papiru.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_init_3() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_center_adjust, homeAndParkHeadForCenterAdjustment, PSTR("CONTINUE")); DRAW_PROGRESS_NR(3); lcd_lib_draw_string_centerP(10, PSTR("After transportation")); lcd_lib_draw_string_centerP(20, PSTR("we need to do some")); lcd_lib_draw_string_centerP(30, PSTR("adjustments, we are")); lcd_lib_draw_string_centerP(40, PSTR("going to do that now.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_paper_center, parkHeadForCenterAdjustment, PSTR("CONTINUE")); DRAW_PROGRESS_NR(7); lcd_lib_draw_string_centerP(10, PSTR("Repeat this step, but")); lcd_lib_draw_string_centerP(20, PSTR("now use a sheet of")); lcd_lib_draw_string_centerP(30, PSTR("paper to fine-tune")); lcd_lib_draw_string_centerP(40, PSTR("the buildplate level.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_select_2() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_print_1, NULL, PSTR("CONTINUE")); DRAW_PROGRESS_NR(19); lcd_lib_draw_string_centerP(10, PSTR("Now your Ultimaker2")); lcd_lib_draw_string_centerP(20, PSTR("knows what kind")); lcd_lib_draw_string_centerP(30, PSTR("of material")); lcd_lib_draw_string_centerP(40, PSTR("it is using.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_load() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_material_load_heatup, parkHeadForHeating, PSTR("CONTINUE")); DRAW_PROGRESS_NR(11); lcd_lib_draw_string_centerP(10, PSTR("Now that we leveled")); lcd_lib_draw_string_centerP(20, PSTR("the buildplate")); lcd_lib_draw_string_centerP(30, PSTR("the next step is")); lcd_lib_draw_string_centerP(40, PSTR("to insert material.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_select_1() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_material_select_pla_abs, doCooldown, PSTR("READY")); DRAW_PROGRESS_NR(16); lcd_lib_draw_string_centerP(10, PSTR("Next, select the")); lcd_lib_draw_string_centerP(20, PSTR("material you have")); lcd_lib_draw_string_centerP(30, PSTR("inserted in the ")); lcd_lib_draw_string_centerP(40, PSTR("Ultimaker2.")); lcd_lib_update_screen(); }
//Run the first time you start-up the machine or after a factory reset. void lcd_menu_first_run_init() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_init_2, NULL, PSTR("CONTINUE")); DRAW_PROGRESS_NR(1); lcd_lib_draw_string_centerP(10, PSTR("Welcome to the first")); lcd_lib_draw_string_centerP(20, PSTR("startup of your")); lcd_lib_draw_string_centerP(30, PSTR("Ultimaker! Press the")); lcd_lib_draw_string_centerP(40, PSTR("button to continue")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_init_2() { SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_init_3, homeAndRaiseBed, PSTR("CONTINUE")); DRAW_PROGRESS_NR(2); lcd_lib_draw_string_centerP(10, PSTR("Because this is the")); lcd_lib_draw_string_centerP(20, PSTR("first startup I will")); lcd_lib_draw_string_centerP(30, PSTR("walk you through")); lcd_lib_draw_string_centerP(40, PSTR("a first run wizard.")); lcd_lib_update_screen(); }
//Started bed leveling from the calibration menu void lcd_menu_first_run_start_bed_leveling() { add_homeing[Z_AXIS] = 0; SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_center_adjust, homeAndParkHeadForCenterAdjustment2, PSTR("CONTINUE")); lcd_lib_draw_string_centerP(10, PSTR("I will guide you")); lcd_lib_draw_string_centerP(20, PSTR("trought the process")); lcd_lib_draw_string_centerP(30, PSTR("of adjusting your")); lcd_lib_draw_string_centerP(40, PSTR("buildplate.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper_left() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_paper_right, parkHeadForRightAdjustment, PSTR("CONTINUE")); DRAW_PROGRESS_NR(9); lcd_lib_draw_string_centerP(20, PSTR("Repeat this for")); lcd_lib_draw_string_centerP(30, PSTR("the left corner...")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_right_adjust() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_paper, NULL, PSTR("POKRACOVAT")); DRAW_PROGRESS_NR_IF_NOT_DONE(6); lcd_lib_draw_string_centerP(10, PSTR("Otacejte pravym pred-")); lcd_lib_draw_string_centerP(20, PSTR("nim sroubem, dokud")); lcd_lib_draw_string_centerP(30, PSTR("nebude tryska asi")); lcd_lib_draw_string_centerP(40, PSTR("milimetr od podlozky")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_right_adjust() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_paper, NULL, PSTR("CONTINUE")); DRAW_PROGRESS_NR(6); lcd_lib_draw_string_centerP(10, PSTR("Turn right buildplate")); lcd_lib_draw_string_centerP(20, PSTR("screw till the nozzle")); lcd_lib_draw_string_centerP(30, PSTR("is a millimeter away")); lcd_lib_draw_string_centerP(40, PSTR("from the buildplate.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper_right() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); if (IS_FIRST_RUN_DONE()) lcd_info_screen(lcd_menu_main, homeBed, PSTR("DONE")); else lcd_info_screen(lcd_menu_first_run_material_load, homeBed, PSTR("CONTINUE")); DRAW_PROGRESS_NR(10); lcd_lib_draw_string_centerP(20, PSTR("Repeat this for")); lcd_lib_draw_string_centerP(30, PSTR("the right corner...")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper_right() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); if (IS_FIRST_RUN_DONE()) lcd_info_screen(lcd_menu_main, homeBed, PSTR("HOTOVO")); else lcd_info_screen(lcd_menu_first_run_material_load, homeBed, PSTR("POKRACOVAT")); DRAW_PROGRESS_NR_IF_NOT_DONE(10); lcd_lib_draw_string_centerP(20, PSTR("Opakujte to stejne")); lcd_lib_draw_string_centerP(30, PSTR("pro levy roh...")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_left_adjust() { LED_GLOW(); SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_bed_level_right_adjust, parkHeadForRightAdjustment, PSTR("CONTINUE")); DRAW_PROGRESS_NR_IF_NOT_DONE(5); lcd_lib_draw_string_centerP(10, PSTR("Turn left buildplate")); lcd_lib_draw_string_centerP(20, PSTR("screw till the nozzle")); lcd_lib_draw_string_centerP(30, PSTR("is a millimeter away")); lcd_lib_draw_string_centerP(40, PSTR("from the buildplate.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_load_insert() { LED_GLOW(); if (movesplanned() < 2) { current_position[E_AXIS] += 0.5; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], FILAMENT_INSERT_SPEED, 0); } SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_material_load_forward, runMaterialForward, PSTR("CONTINUE")); DRAW_PROGRESS_NR(13); lcd_lib_draw_string_centerP(10, PSTR("Insert new material")); lcd_lib_draw_string_centerP(20, PSTR("from the rear of")); lcd_lib_draw_string_centerP(30, PSTR("your Ultimaker2,")); lcd_lib_draw_string_centerP(40, PSTR("above the arrow.")); lcd_lib_update_screen(); }
static void lcd_menu_change_material_insert_forward() { lcd_info_screen(lcd_menu_main, cancelMaterialInsert); lcd_lib_draw_stringP(3, 20, PSTR("Forwarding material")); if (!blocks_queued()) { lcd_lib_beep(); led_glow_dir = led_glow = 0; digipot_current(2, motor_current_setting[2]*2/3);//Set the E motor power lower to we skip instead of grind. currentMenu = lcd_menu_change_material_insert; SELECT_MAIN_MENU_ITEM(0); } long pos = st_get_position(E_AXIS); long targetPos = lround(FILAMENT_FORWARD_LENGTH*axis_steps_per_unit[E_AXIS]); uint8_t progress = (pos * 125 / targetPos); lcd_progressbar(progress); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_select_1() { if (eeprom_read_byte(EEPROM_MATERIAL_COUNT_OFFSET()) == 1) { digipot_current(2, motor_current_setting[2]);//Set E motor power to default. for(uint8_t e=0; e<EXTRUDERS; e++) lcd_material_set_material(0, e); SET_FIRST_RUN_DONE(); currentMenu = lcd_menu_first_run_print_1; return; } SELECT_MAIN_MENU_ITEM(0); lcd_info_screen(lcd_menu_first_run_material_select_material, doCooldown, PSTR("READY")); DRAW_PROGRESS_NR(16); lcd_lib_draw_string_centerP(10, PSTR("Next, select the")); lcd_lib_draw_string_centerP(20, PSTR("material you have")); lcd_lib_draw_string_centerP(30, PSTR("inserted in this")); lcd_lib_draw_string_centerP(40, PSTR("Ultimaker2.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_load_forward() { lcd_basic_screen(); DRAW_PROGRESS_NR(14); lcd_lib_draw_string_centerP(20, PSTR("Loading material...")); if (!blocks_queued()) { lcd_lib_beep(); led_glow_dir = led_glow = 0; digipot_current(2, motor_current_setting[2]*2/3);//Set E motor power lower so the motor will skip instead of grind. currentMenu = lcd_menu_first_run_material_load_wait; SELECT_MAIN_MENU_ITEM(0); } long pos = st_get_position(E_AXIS); long targetPos = lround(FILAMENT_FORWARD_LENGTH*axis_steps_per_unit[E_AXIS]); uint8_t progress = (pos * 125 / targetPos); lcd_progressbar(progress); lcd_lib_update_screen(); }