Files
tinio/docs/manual.md
[ Kristjan Komloši HomePC ] a82b29042f Worked on the docs!
2017-05-04 13:11:36 +02:00

3.6 KiB

TinI/O manual


1. Introduction to TinI/O

1.1 What is TinI/O?

TinI/O (or tinio) is a Linux program that makes standard PCs with USB GPIO-capable and/or expands the existing capabilities on GPIO-enabled computers. It does that by talking to its hardware counterpart, [the Cypress CY7C65211 USB-Serial chip][1].

1.2 What features does TinI/O have?

  • It's written entirely in C and C++, making it platform-independent and fast
  • It's easy on the CPU (nothing runs in the background)
  • It's compatible with almost every Linux system
  • It operates over 1st gen USB 1.1, making it useful with older machines

1.3 How does it work?

TinI/O can't provide GPIO by itself. Its capabilites rely on its chip companion (CY7C65211), libusb and cyrozap's libcyusbserial library. When TinI/O is ran, it processes its arguments and sends commands to the chip via the before mentioned libraries. The chip then takes care of the rest.

1.4 Under what license can it be used?

TinI/O is licensed under the GNU General Public License, which is publicly available at http://www.gnu.org/licenses/gpl.html and in the COPYING file in the docs directory in the project's root.

2. Installing

2.1 What you should know

TinI/O binaries aren't available right now, but that shouldn't be a problem, because TinI/O is easy to build. Before you proceed, make sure that you have:

  • at least 16 MB of disk space
  • a working C and C++ compiler (a working C++ is a working C compiler, but not the other way round!)
  • installed libusb
  • GNU Make and cmake

2.2 Manual build

This chapter explains how to build TinI/O manually. If you don't feel comfortable or don't want to build it manually, skip this chapter.

The TinI/O build process consists of:

  1. Building the cyusbserial library and
  2. Building TinI/O and the firmware flasher.

2.2.1 Building the Library

To communicate with the chip, TinI/O needs a dedicated library written by cyrozap that comes with TinI/O but needs to be built separately. To do that, run cmake .. && make && sudo make install inside the cylib/build directory in the project root.

2.2.2 Building everything else

To complete the installation process, run make && make install in the tinio directory in the project root. That will build and install the flasher utility and TinI/O itself.

2.2.3 More about the makefile

TODO explain the makefile's targets etc.

2.1 The autobuilder

Because some people don't like manual binary building, TinI/O comes with the autobuilder script, which allows non-experienced users to install TinI/O without knowing much about GNU Make, GCC and other tools that are used to build it.

To build TinI/O with autobuilder:

  • Just run the autobuilder script in the project root in a terminal!
  • The script will then guide you through the installation process.

3. After the installation

After the installation of TinI/O, you actually don't need to do anything at all with it. The next step is to prepare the actual device you'll be using TinI/O with.

4. Flashing the chip(s)

Cypress CY7C65211 can be flashed from Windows or from Linux, but only with a dedicated Cypress utility due to its unique flash file format. Fortunately, the utility is licensed under LGPL and free (as speech and beer). The utility is named cy-config and is text-based. There are also 2 premade flash files that come with the utility:

  • 5in-5out.cyusbd - 5 inputs and 5 outputs
  • 3in-3out-cs.cyusbd - 3 inputs and 3 outputs + a capsense button