Skip to content

Installation Options

Michael Lynch edited this page Nov 4, 2020 · 35 revisions

Simple installation

For a simple installation/upgrade of TinyPilot, see the instructions in the main README.

Advanced installation

To choose configuration options for the install, specify them in the TINYPILOT_INSTALL_VARS environment variable.

Possible variables are available in:

Example: custom resolution and release version

Here's an example that installs TinyPilot with a desired capture resolution of 1280x720 and chooses the 1.0.2 version of TinyPilot.

export TINYPILOT_INSTALL_VARS="ustreamer_resolution=1280x720 tinypilot_repo_branch=1.0.2"
curl \
  --silent \
  --show-error \
  https://raw.githubusercontent.com/mtlynch/tinypilot/master/quick-install | \
    bash - && \
  sudo reboot

Example: TC358743 HDMI to CSI capture chip

If you're using a Toshiba TC358743-based HDMI capture chip, the following installation options optimize performance with that chip:

export TINYPILOT_INSTALL_VARS="ustreamer_use_tc358743_device=yes"
curl \
  --silent \
  --show-error \
  https://raw.githubusercontent.com/mtlynch/tinypilot/master/quick-install | \
    bash - && \
  sudo reboot
  • Note: The TC358743 is special in that it's "sticky." It persists across installations unless you perform another install explicitly disabling it with ustreamer_use_tc358743_device=no.

Making installation options permanent

These settings apply to only the current shell session. If you'd like to apply these installation options on every update, add them to your .bashrc file:

echo 'export TINYPILOT_INSTALL_VARS="ustreamer_resolution=1280x720 tinypilot_repo_branch=1.0.2"' >> ~/.bashrc
. ~/.bashrc

Remote installation

If you have Ansible installed on your local machine, you can configure TinyPilot on a Raspberry Pi device using the TinyPilot Ansible role. To configure TinyPilot remotely, run the following commands from your Ansible control node:

PI_HOSTNAME="raspberrypi" # Change to your pi's hostname
PI_SSH_USERNAME="pi"      # Change to your Pi username

# Install the TinyPilot Ansible role
ansible-galaxy install mtlynch.tinypilot

# Create a minimal Ansible playbook to configure your Pi
echo "- hosts: $PI_HOSTNAME
  roles:
    - role: mtlynch.tinypilot" > install.yml

ansible-playbook \
  --inventory "$PI_HOSTNAME", \
  --user "$PI_SSH_USERNAME" \
  --ask-pass \
  --become \
  --become-method sudo \
  install.yml

ansible \
  "$PI_HOSTNAME" \
  -m reboot \
  --inventory "$PI_HOSTNAME", \
  --user "$PI_SSH_USERNAME" \
  --ask-pass \
  --become \
  --become-method sudo

After running these commands, you should be able to access TinyPilot through a web browser at:

Developer installation

If you're interested in contributing to TinyPilot, follow these instructions to install the required developer packages in your development environment:

python3.7 -m venv venv && \
  . venv/bin/activate && \
  pip install --requirement requirements.txt && \
  pip install --requirement dev_requirements.txt && \
  npm install [email protected]

To run TinyPilot's build scripts, run:

./dev-scripts/build

To enable TinyPilot's Git hooks, run:

./hooks/enable_hooks

To run TinyPilot on a non-Pi machine, run:

./dev-scripts/serve-dev