Skip to content

Quick Start

Ondřej Perutka edited this page Dec 8, 2017 · 13 revisions

So you want to start with integration of Arrow Client into your device or you just want to play with it? Good! This is the document you should read. In this little how to, we go briefly through compilation, setting up your environment, application usage and the pairing procedure. In the end, you will know what Arrow Client really is and how it works.


To compile the Arrow Client for your device, follow these guides:

Arrow integrators SHOULD also follow this guide:


The application requires /etc/arrow directory for storing its configuration file generated on the first start (the path to the configuration file can be changed using a command line argument). The directory must also contain files named rtsp-paths and mjpeg-paths in case the network scanning feature is enabled. The files should contain RTSP paths and MJPEG paths that will be checked on service discovery. You can use the files from this repository.

sudo mkdir /etc/arrow
sudo cp rtsp-paths /etc/arrow/rtsp-paths
sudo cp mjpeg-paths /etc/arrow/mjpeg-paths

Application usage

First of all, you will need an RTSP server with H.264 video stream and RTP over TCP support. Alternatively, you can also use an HTTP server with an MJPEG stream. Let us suppose the stream is accessible at:


Our Arrow Servers are accessible at:

This is the address your client should connect to. You will also need a CA certificate to verify server's identity. Currently, we use a self signed certificate. You can find it in this repository. The certificate will be later replaced by a proper EV certificate, so you should also tell the client where it can find the CA certificates in your system. The application requires root privileges in order to access your network interfaces. All logs can be found in your syslog. Assuming you are logged-in as root and the arrow-client is in your PATH, you can use a command like this:

arrow-client \
    -c /usr/share/ca-certificates \
    -c ca.pem \
    -r "rtsp://localhost/webcam.264"

For more options, start the application without any arguments.

Pairing procedure

Assuming you have your client running and it knows about at least one IP camera with an H.264 over RTSP or an MJPEG stream, you can proceed to the pairing procedure. This procedure is designed to verify you as an owner of the Arrow Client and it lets you add the IP camera under your Angelcam account. In case the network scanning is enabled, you can add all IP cameras visible to the client under your Angelcam account. For security reasons, it is possible to initiate the pairing procedure only within the first 20 minutes after the application is started, so it is a good idea to restart the client first.

When you are ready, go to this web page and enter MAC address of the device running the Arrow Client (the client uses MAC address of the first configured ethernet/wlan interface):

Entering MAC address

In case the IP camera is password protected, you will see a form allowing you to enter the credentials.

Entering credentials

After entering them, you should be able to see the stream from the camera. Proceed by clicking on the checkbox under the stream.

Preview stream

A pop-up window with QR code and the video stream on its right will appear.

QR code pop-up

Point the camera to the QR code and wait until it shows "success". The video might be delayed a little bit. If everything goes right, you will be able to add the camera under your Angelcam account.

If you want to avoid the QR code pairing procedure, you can pair your device directly using its UUID. The UUID can be found in the configuration file. By default, the configuration file is located in /etc/arrow/config.json. Put the UUID into the following URL and open it in your web browser:{UUID}/