Metadata-Version: 2.1
Name: REVHubInterface
Version: 1.3.1.dev25
Summary: Manual control of REV Robotics Expansion Hub from a PC. Unofficial "community edition". 
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: pyft232 ==0.12
Requires-Dist: pyserial ==3.5
Requires-Dist: sv-ttk ==2.6.0

# Rev Hardware Client (Community version)

The REV Hub Interface is a piece of software allowing for a direct connection from a REV Expansion Hub and its peripherals to a PC. 

This interface provides a method for teams to prototype with motors, servos, and sensors in a way that is faster and easier than setting up an entire robot control system. It is also a valuable troubleshooting tool that can help isolate the cause of an issue and determine if it is electrical or software related. The REV Hub Firmware can also be updated and recovered through this interface in addition to the Robot Controller Application.

This is a community continuation of the software, updating to newer underlying technologies (e.g. porting from Python 2 to Python 3), adding features, and porting to more platforms (Linux and macOS, in addition to Windows).

## Installing the software
(note: binaries are not available yet, this is a placeholder)
Start by downloading the latest version of the software from [the Releases page](https://github.com/unofficial-rev-port/REVHubInterface/releases).  An `.exe` is provided for Windows systems, an AppImage for Linux systems, and a `.DMG` for macOS.
Alternately, download from Flatpak (TODO) or from PyPi (just needs publishing)
PyPi installation steps: 
1. Install Python3
2. Run `pip install REVHubInterface` to install
3. Finally, run `python -m REVHubInterface` to run the app

Firmware updates require installing a driver.

- Windows: The newest versions of Windows should automatically install the required USB drivers. Alternatively, you can download the latest drivers from the [FTDI VCP website](https://www.ftdichip.com/Drivers/VCP.htm).
- Linux: The latest `libftdi.so` is provided in the download, no additional action should be necessary.
- macOS: (TODO: figure out; ~~`brew install libftdi` doesn't seem to make the error go away.~~ UPDATE: Will be fixed when https://github.com/lsgunth/pyft232/pull/22 is merged and published, in the mean time we should manually apply the change in our releases that have the library bundled.  Also, should we bundle `libftdi1.dylib` and its dependencies, or request users install it via Homebrew themselves?)

## Connecting and Controlling an Expansion Hub

1. Connect your Expansion Hub to the computer with a USB A to USB Mini-B cable.
2. Run the REV Hub Interface Software.
3. Press Connect.  The software will scan and connect to the Expansion Hub. The various peripheral tabs will populate with controls once connected.

## Running the development version
If you want to run the development version from this repository rather than using a pre-packaged version, you will need to install a few additional dependencies:

- Python 3
- Tkinter
  - Windows: This is included in the Python 3 installer, just make sure sure it is selected to be installed at install time.
  - Linux: On Ubuntu and derivatives, this is instaled with `sudo apt install python3-tk`.  The package name will likely be similar on other distributions.
  - macOS: If using Homebrew, it can be install via `brew install python-tk`.
- On Linux, you will also need the latest `libftdi.so`.  On Ubuntu and derivitaves, this can be installed with `sudo apt install libftdi-dev`.  The package name may be similar on other distributions.
- The remaining Python dependencies (currently `pyft232` and `pyserial`, subject to future changes) can be installed via `pip3 install -r requirements.txt`
- Finally, run `python REVHubInterface` while in the base folder of the repo
- Alternately, you can install onto your system from source using `pip install .` from the base folder of the repo, then using `python -m REVHubInterface` from anywhere
