/python-evic

A USB programmer for devices based on the Joyetech Evic VTC Mini.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Evic

https://travis-ci.org/Ban3/python-evic.svg?branch=master

Evic is a USB programmer for devices based on the Joyetech Evic VTC Mini.

Supported devices

  • eVic VTwo*
  • Evic VTC Mini
  • Cuboid Mini
  • Cuboid
  • eGrip II*
  • eVic AIO*
  • eVic VTwo mini*
  • eVic Basic*
  • iStick TC100W*
  • ASTER*
  • iStick Pico
  • iStick Pico Mega*
  • iPower*
  • Presa TC75W*
  • Vaporflask Classic*
  • Vaporflask Lite*
  • Vaporflask Stout*
  • Reuleaux RX200*
  • CENTURION*
  • Reuleaux RX2/3*
  • Reuleaux RX200S*

*Untested

Tested firmware versions

  • Evic VTC Mini <=3.03
  • Presa TC75W 1.02*
  • iStick Pico 1.01
  • Binaries built with evic-sdk

*Flashing Presa firmware to a VTC Mini requires changing the hardware version on some devices. Backup your data flash before flashing!

Installation

Install from source:

Using evic-usb requires cython-hidapi. You can install it using pip:

$ pip install hidapi

Building cython-hidapi requires libusb headers and cython. On Arch Linux they can be obtained from the repositories by installing packages libusb and cython. Debian based distributions will have packages libusb-1.0-0-dev and cython.

On Windows you will also need the correct compiler for your Python version. See this page for more information on setting up the compiler.


Building python-evic:

$ git clone git://github.com/Ban3/python-evic.git
$ cd python-evic
$ python setup.py install

Allowing non-root access to the device

The file udev/99-nuvoton-hid.rules contains an example set of rules for setting the device permissions to 0666. Copy the file to the directory /etc/udev/rules.d/ to use it.

Autosync time when device connected

The file scripts/evic-usb-rtc-sync.service + udev/99-nuvoton-hid.rules is a example of how to auto sync time

Usage

See --help for more information on a given command.

evic-convert

evic-convert is a tool to encrypt/decrypt firmware images:

$ evic-convert in.bin -o out.bin

evic-usb

evic-usb is a tool for interfacing with the device through USB.

Dump device data flash to a file:

$ evic-usb dump-dataflash -o out.bin

Upload an encrypted firmware image to the device:

$ evic-usb upload firmware.bin

Upload an unencrypted firmware image to the device:

$ evic-usb upload -u firmware.bin

Upload a firmware image using data flash from a file:

$ evic-usb upload -d data.bin firmware.bin

Use --no-verify to disable verification for APROM or data flash. To disable both:

$ evic-usb upload --no-verify aprom --no-verify dataflash firmware.bin

Reset the device:

$ evic-usb reset

Dump any part of the flash memory:

$ evic-usb fmc-read -o out.bin -s startaddr -l length

Example to read the parameters flash memory:

$ evic-usb fmc-read -o out.bin -s 122880 -l 4096

Setup date and time of the device to the current time:

$ evic-usb time

Take a screenshot of the device display:

$ evic-usb screenshot -o outfile.[png|jpg|...]