TVS Engine - Installation Guide

Date: 10/2024

Version: 1.24

© Turck Vilant Systems Oy

Table of Contents

1 Installation packages

2 Turck Q300 Devices

2.1 Turck Service Tool / How to find IP Address of the Device

2.2 Q300 Web user interface

2.3 Software update

2.4 Linux Firmware Update

2.5 Engine installation package

2.6 Passthrough engine for TVS Client installations

2.7 Update procedure

2.8 Set NTP

2.9 Set DNS

3 Update Q300/Q180 to latest radio firmware version (RADIO FIRMWARE)

3.1 How to downgrade firmware

4 Troubleshooting Q300

4.1 Login to SSH linux console

4.2 Stopping engine

4.3 Removing engine installation

4.4 Factory reset

4.5 Q180/300 Update Firmeware error

4.6 DNS Setting, manually using console

4.7 How to install engine without reader web user interface

5 Impinj R700 and R510 Series Devices

5.1 Enable cap installation

5.2 Set IP Address

5.3 Access Reader web ui using browser and reader ip address

5.4 Configure network interface, NTP and DNS

5.5 Enable LLRP Interface

5.6 Install cap file using web interface

5.7 Reboot reader after installation is completed

6 Impinj Speedway Devices (R220,R420)

6.1 Browser Access

6.2 Software or Firmware update

6.3 Removing Engine (custom application)

7 Zebra Devices (Fixed readers, FX9600 etc)

7.1 Installation of Engine

7.2 NTP Setting for Zebra

7.3 Enable LLRP Setting

8 Basic Engine configuration and taking into use

8.1 Connection to VVM server

8.2 Engine TAGFILTER example for direction gates

Installation packages

Selecting correct installation package is done by selecting based on the file naming and file type.

Packages intended to be used with Device Manager: .tvszip . Example:

vilant_engine_DM_3.XX.YY.ZZZZZZ.tvszip (where XX.YY.ZZZZZZ is the version numbering)

With older Impinj R420 and R220 devices equipped with HW version 4, a separate smaller installation package containing term “_oldimpinj_” must be used. Example:

vilant_engine_DM_oldimpinj_3.XX.YY.ZZZZZZ.tvszip

When the engine is installed directly to the device using web user interface, a device specific package must be used. Package file name contains device specific naming.

Turck Q300 and Q180 readers:

Impinj R420 and R220 readers

HW Version 5 and newer:

HW Version 4:

Impinj R700 and R510 readers:

Turck Q300 Devices

Turck Service Tool / How to find IP Address of the Device

Download Turck Service tool from

https://www.turck.de/en/product/0000001a000293cb0002003a

Open Service Tool and use it to find reader ip address.

Q300 Web user interface

The default password for the web interface is: password

Open your browser and type in your reader’s ip address.

Software update

In case of older readers with firmware version 1.0

Go to menu selection “SOFTWARE”

In case of newer readers using firmware version 1.1 or later use the Firmware page.

Linux Firmware Update

In case there is a newer Linux firmware available for the reader, update the firmware.

Select File and select latest reader firmware installation package, such as 1.1.7.0

Engine installation package

Select File and select engine installation package: vilant_engine_turck_xxxx-q300.raucb

Passthrough engine for TVS Client installations

In case you want to use TVS Client for Q300, you need to use still engine as passthrough server between UHF reader and Client. In this case you must install engine version

vilant_engine_turck_xxxx-q300-passthru.raucb

In this case the default TCP port for passthrough is 9102 (for Client use). Set that as communication port in TVS Client.

Update procedure

After selecting installation file. Click Upload and when completed click Install.

In case earlier version of the engine is already installed, the result in Update Status may show unnecessary error message: Handler error: Child process exited with code 1, however the engine installation is typically still successful and the error can be ignored.

Set NTP

NTP Time server must be set for all readers in order to keep tag read timestamps in correct time.

In Firmware version 1.0 this is done from the readers web ui in port 80. Click SYSTEM -> Date & Time

In the later firmware version 1.1 of the Turck readers, Network settings are done on “Parameter” web page.

Set DNS

DNS server must be set for all readers to enable using DNS names for servers in configuration.

In Linux firmware version 1.1 this is done using the Parameter web page.

Update Q300/Q180 to latest radio firmware version (RADIO FIRMWARE)

How to downgrade firmware

This may have to be done, for example if you have an engine version that is not compatible with the new firmware versions.

The downgrade procedure can only be done via ssh.

1.Copy the file to the target

2.Run the `update` command via ssh: `update system $FILE`

Troubleshooting Q300

Login to SSH linux console

Connect to reader using SSH port 22, for examply by using putty and login with default credentials root/turck.

Stopping engine

Login to reader using SSH (root/turck) and give command line command:

systemctl stop engine

Removing engine installation

Login to reader using SSH (root/turck) and give command line command:

Remove files from /data/custom-application/engine using linux commands, such as

rm -r /data/custom-application/engine

Factory reset

In case of for instance, unknown or forgotten Web UI password, a factory reset of the reader have to be performed. NOTE! A factory reset will delete all data in the reader and it will return to the state it was when it was delivered.

Log in to the reader SSH linux console and perform following commands:

Q180/300 Update Firmeware error

When upgrading to a newerfirmware this error can appear

Login to reader using SSH (root/turck)

To check the device name, give command line command:

echo $(gomcli $((0x00420014)))

If the result is empty or incorrect string, execute the command:

ibtpserver -s DEVICE_NAME TN-UHF-Q300-EU-LNX

Additional:

1. To check device ID -  $ echo $(gomcli $((0x00420015)) -t NUM -f hex)

Set device ID: $ ibtpserver -t d -s DEVICE_ID $((0x0150003a))

2. To check device order number- $ echo $(gomcli $((0x00420016)) -t NUM -f dec)

Set device order number: $ ibtpserver -t d -s DEVICE_ORDER_NUMBER 100000897

DNS Setting, manually using console

Please notice that by using latest Linux firmware of the Turck Q180/Q300 reader (version 1.1.7.0 or later) you are able to do DNS settings in the web ui of the reader and this method should not be used.

vi /etc/systemd/system/engine.service

Add just before ExecStart:

ExecStartPre=/data/custom-application/engine/setdns

Save file and exit, then type in console

vi /data/custom-application/engine/setdns

Add the following into the new file

#!/bin/sh

chmod u+w /etc/resolv.conf

echo “nameserver 10.6.3.1” > /etc/resolv.conf
Save file and exit, then type in console

chmod a+x /data/custom-application/engine/setdns

Reboot and test

How to install engine without reader web user interface

In case Q180 or Q300 version does not include web user interface, such as with some country versions (Australia etc), the engine can be installed from command line. Here are the steps needed.

  1. Transfer engine installation file to the reader using FTP or SCP. Here the example is done with WINSCP, which is a free tool for windows, available online.

  2. Installation file can be moved for example to the /data/custom-application folder

  3. Login using SSH to the reader (such as using putty terminal or any other SSH terminal) – see above 4.1 Login to SSH linux console

  4. Use command line command

rauc install vilant_engine_x.x.x.x.rauc
  1. Reboot and test

Impinj R700 and R510 Series Devices

Enable cap installation

Set IP Address

Impinj default IP address is 169.254.1.1. This address must be changed!

Access Reader web ui using browser and reader ip address

Configure network interface, NTP and DNS

DNS and NTP can be configured from RShell and in some firmware versions from web page.

Cnfiguring from web page:

Using the web page and the “Network” link in the right top corner, configure network interface, NTP server and DNS servers.

Configuring from RShell:

config network ntp disable

config network ntp dynamicservers disable

config network ntp delall

config network ntp add <NTP SERVER ADDRESS>
several ntp addresses can be defined.

config network ntp enable

config network dns add <DNS SERVER ADDRESS>
several DNS addresses can be defined.

Enable LLRP Interface

On web page, configure the LLRP Interface to be in use.

This can be done using the “Reader” link in the top right corner of the web page or from “READER INTERFACE” pull down selection, depending on firmware version.

Or

Install cap file using web interface

Reboot reader after installation is completed

Impinj Speedway Devices (R220,R420)

NOTE: TVS Engine latest versions (3.0 and newer) are only compatible with Impinj PCBA Version 5 or later.

Browser Access

Open browser.Use READER IP ADDRESS, such as 10.6.1.110 in this example in your browser address field.

If Impinj firmware is older than 5.12.3 you need to update a new firmware package using the same method as below. Version 6.0 or later is recommended.

Software or Firmware update

First select Browse and select the installation package (either firmware or TVS engine). TVS Engine file is typically named vilant_engine_impinj_xxxx.cap.

Then select Upgrade and wait until upload and installation is complete.

Reboot and wait until reader has restarted.

If you are using Impinj FW version 8.0 or later please notice that you need to enable cap file installations via RSHELL from ‘config image cap’ menu

![](./media/image24.png![](

Removing Engine (custom application)

Login to reader console using SSH or console cable (root/impinj by default). Use command

config image removecap

to remove custom application (=engine).

Zebra Devices (Fixed readers, FX9600 etc)

Installation of Engine

NTP Setting for Zebra

Enable LLRP Setting

Basic Engine configuration and taking into use

Check that TVS engine is running using browser to the HTTPD port of the engine, default ports are 8080 and 8081 or 8088 in latest versions.

With Impinj R700 (and R310, R510) readers the HTTPD PORT may need to configured to port 8088 (ports 8080-8085 may be blocked by firewall by default). This configuration may have to be done via the rshell using linux commands (such as editing reader.ini file using vi editor)

The default username is admin and default password is engine.

Setting up TVS Device Manager connection in the configurations will disable configuration from web page and allow changes only from Device Manager. Removing device manager address from the settings will enable web configuration.

SEE ENGINE README FILE FOR DETAILS ABOUT CONFIGURATION

Connection to VVM server

Connection to VVM Server

Also make sure following settings are correctly:

Engine TAGFILTER example for direction gates

Where

DIRECTION=state,flush,MODE#[,readcount][,USERMEM][,NOEXTRA][,DEBUG]

* `state` milliseconds. Depends on mode.

* `flush` milliseconds. At any time in the process, if the tag is not seen

since ‘flush’ msec, it is removed from memory.

* `readcount` in MODE 3D how many reads is needed to advance to next zone. Default 0

* Zones come from ANTENNA\ACTIONS config parameter. For example tag reads from

antennas 1+2 are from zone “IN” and reads from antennas 3+4 from zone “OUT”

* `MODE1` (default) when the tag is not seen for ‘state’ msec, it is passed to

the next filter with the direction of the last zone.

* `MODE2` similar to MODE1. In addition, requires that first and last events come

from different antenna actions. Or else UNKNOWN direction will be reported.

* `MODE3` Once tag has entered the second zone, a timeout of ‘state’ msec starts.

At the end of the timeout, if the tag is still in the second zone, it is passed

to the next filter. If during the timeout, the tag comes back to the first zone,

the timeout is stopped and nothing happens until the tag comes back to the second

zone. After event has been sent the tag is still in waiting state and new

event can be sent if tag changes zone. If NOEXTRA is specified then this will

only sent single event per tag.

* `MODE3D` is similar to 3D client. Requires ‘readcount’ reads and ‘state’ ms

from single zone without crossreads. Event is sent after two distinct zones

are recognized. If NOEXTRA is specified then only single event will be sent.

* USERMEM keyword will singulate tags based on user memory instead of EPC.

Tag is dropped if user memory is missing.

* DEBUG will store extra internal debugging data