# EPCboot GUI

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

`sudo ./launch.sh`

If it doesn’t work, check permissions for .sh file and make `chmod +x` if needed.

## 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.

