# README

EPCboot GUI is a graphical shell for epcbootlib (see https://github.com/EPC-MSU/EPCboot.git). It allows you to update firmware, set cryptographical key and serial number with hardware version. Last two features should be conducted by developers only.

## Supported platforms

* Windows (x86, x64)
* Ubuntu

## Requirements

You need **Python 3** with **venv** (see https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/#creating-a-virtual-environment).
**For Ubuntu users:** probably you will need to delete *modemmaneger*, because it interferes in the connection between computer and device. For that type in terminal:

```
sudo apt-get remove --auto-remove modemmanager
```
## Running

To run assembled EPCboot GUI just go to **epcboot_gui** directory and execute **epcboot_gui.exe** (./epcboot_gui/epcboot_gui.exe).
**For Ubuntu users:** you need to run file using super user mode. *Type here Terminal input*

## Working with

First connect your device to computer and choose corresponding COM port in **COM port combobox**. Then choose firmware by typing the path straight to the entry or by clicking **Browse** button and choosing firmware in the dialog opened. 

**For developers:** you can set crypto key and HW version as mentioned above. For that push **Developer** button and choose the key using the same procedure as firmware choosing. Now by clicking **Set key** button you can set the key. For setting version one (in addition to the above actions) must specify serial number and HW version in corresponding entries and push **Set serial and hardware version** button.

