added automatic serial port selection, GUI elements, and file recording