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_material_load_heatup() { setTargetHotend(230, 0); int16_t temp = degHotend(0) - 20; int16_t target = degTargetHotend(0) - 10 - 20; if (temp < 0) temp = 0; if (temp > target) { for(uint8_t e=0; e<EXTRUDERS; e++) volume_to_filament_length[e] = 1.0;//Set the extrusion to 1mm per given value, so we can move the filament a set distance. currentMenu = lcd_menu_first_run_material_load_insert; temp = target; } uint8_t progress = uint8_t(temp * 125 / target); if (progress < minProgress) progress = minProgress; else minProgress = progress; lcd_basic_screen(); DRAW_PROGRESS_NR(12); lcd_lib_draw_string_centerP(10, PSTR("Please wait,")); lcd_lib_draw_string_centerP(20, PSTR("printhead heating for")); lcd_lib_draw_string_centerP(30, PSTR("material loading")); lcd_progressbar(progress); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_paper_center() { LED_GLOW(); if (lcd_lib_encoder_pos == ENCODER_NO_SELECTION) lcd_lib_encoder_pos = 0; if (printing_state == PRINT_STATE_NORMAL && lcd_lib_encoder_pos != 0 && movesplanned() < 4) { current_position[Z_AXIS] -= float(lcd_lib_encoder_pos) * 0.05; lcd_lib_encoder_pos = 0; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 60, 0); } if (movesplanned() > 0) lcd_info_screen(NULL, NULL, PSTR("CONTINUE")); else lcd_info_screen(lcd_menu_first_run_bed_level_paper_left, storeHomingZ_parkHeadForLeftAdjustment, PSTR("CONTINUE")); DRAW_PROGRESS_NR(8); lcd_lib_draw_string_centerP(10, PSTR("Slide a paper between")); lcd_lib_draw_string_centerP(20, PSTR("buildplate and nozzle")); lcd_lib_draw_string_centerP(30, PSTR("until you feel a")); lcd_lib_draw_string_centerP(40, PSTR("bit resistance.")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_bed_level_center_adjust() { LED_GLOW(); if (lcd_lib_encoder_pos == ENCODER_NO_SELECTION) lcd_lib_encoder_pos = 0; if (printing_state == PRINT_STATE_NORMAL && lcd_lib_encoder_pos != 0 && movesplanned() < 4) { current_position[Z_AXIS] -= float(lcd_lib_encoder_pos) * 0.05; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 60, 0); } lcd_lib_encoder_pos = 0; if (movesplanned() > 0) lcd_info_screen(NULL, NULL, PSTR("CONTINUE")); else lcd_info_screen(lcd_menu_first_run_bed_level_left_adjust, storeHomingZ_parkHeadForLeftAdjustment, PSTR("CONTINUE")); DRAW_PROGRESS_NR(4); lcd_lib_draw_string_centerP(10, PSTR("Rotate the button")); lcd_lib_draw_string_centerP(20, PSTR("until the nozzle is")); lcd_lib_draw_string_centerP(30, PSTR("a millimeter away")); lcd_lib_draw_string_centerP(40, PSTR("from the buildplate.")); 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_material_select_confirm_abs() { LED_GLOW(); lcd_question_screen(lcd_menu_first_run_material_select_2, NULL, PSTR("YES"), lcd_menu_first_run_material_select_pla_abs, NULL, PSTR("NO")); DRAW_PROGRESS_NR(18); lcd_lib_draw_string_centerP(20, PSTR("You have chosen")); lcd_lib_draw_string_centerP(30, PSTR("ABS as material,")); lcd_lib_draw_string_centerP(40, PSTR("is this right?")); lcd_lib_update_screen(); }
static void lcd_menu_first_run_material_select_confirm_material() { LED_GLOW(); lcd_question_screen(lcd_menu_first_run_material_select_2, NULL, PSTR("YES"), lcd_menu_first_run_material_select_material, NULL, PSTR("NO")); DRAW_PROGRESS_NR(14); lcd_lib_draw_string_centerP(20, PSTR("You have chosen")); lcd_lib_draw_string_center(30, card.longFilename); lcd_lib_draw_string_centerP(40, PSTR("is this right?")); 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_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_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_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_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(); }
//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_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_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(); }
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_material_load_wait() { LED_GLOW(); lcd_info_screen(lcd_menu_first_run_material_select_1, doCooldown, PSTR("CONTINUE")); DRAW_PROGRESS_NR(15); lcd_lib_draw_string_centerP(10, PSTR("Push button when")); lcd_lib_draw_string_centerP(20, PSTR("material exits")); lcd_lib_draw_string_centerP(30, PSTR("from nozzle...")); 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_EXTRUDE_SPEED, 0); } 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_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(); }
static void lcd_menu_first_run_material_select_pla_abs() { LED_GLOW(); lcd_tripple_menu(PSTR("PLA"), PSTR("ABS"), NULL); DRAW_PROGRESS_NR(17); lcd_lib_update_screen(); if (lcd_lib_button_pressed) { digipot_current(2, motor_current_setting[2]);//Set E motor power to default. if (IS_SELECTED_MAIN(0)) { lcd_material_reset_defaults(); lcd_material_set_material(0); lcd_change_to_menu(lcd_menu_first_run_material_select_confirm_pla); } else if (IS_SELECTED_MAIN(1)) { lcd_material_reset_defaults(); lcd_material_set_material(1); lcd_change_to_menu(lcd_menu_first_run_material_select_confirm_abs); } } }