 			write_current_position_to_eeprom();
 		break;
 	}
-	
-	/* Move to the first path's starting coordinates */
-	draw_next_path(0, true);
-
-	//relative_steps(+40, 0); set_home();
-	// set_laser(true); delay(100); set_laser(false);
 }
 
 /* called repeatedly after "setup" */
 void loop() {
 	static uint8_t index = 0;
 	bool is_last_point = false;
+    
+	while(PINB & BUTTON_MASK) {
+		lamp_fade();
+	}
 	set_lamp(0);
-    
-	while(PINB & BUTTON_MASK);
-	
+
 	draw_next_path(index, false);
 	++index;
 	if (draw_next_path(index, true)) {

	}

	write_current_position_to_eeprom();
	set_lamp(255);
	// go_home();
	delay(1000);
	while(!(PINB & BUTTON_MASK));
}

}

void busy_delay(uint32_t ms) {
	ms += millis();
	do {
		test_power();
	} while (millis() < ms);
}

void lamp_fade() {
	if ((millis() - lamp_fade_ms) > LAMP_FADE_MS) {
		lamp_fade_ms = millis();
		if (++lamp_fade_index >= sizeof(LAMP_FADE_PWM))
			lamp_fade_index = 0;
		set_lamp(LAMP_FADE_PWM[lamp_fade_index]);
	}
}

/* sets the motors positions to match "current_position" global
