User Manual For Teraranger Tower Evo: Hardware Revision 1.0 Firmware Revision 1.1.1
User Manual For Teraranger Tower Evo: Hardware Revision 1.0 Firmware Revision 1.1.1
TeraRanger Tower Evo
Hardware revision 1.0
Firmware revision 1.1.1
Technical support: [email protected]
Sales and
comme
rcial support: [email protected]
Table of contents:
1 Introduction 3
3 USB interface 6
3.1 Graphical User Interface 6
3.1.1 Basic Operation 6
3.1.2 Firmware Upgrade 8
3.2 Connecting the TeraRanger Tower Evo to a Host Computer 8
3.2.1 Prerequisites 9
3.2.2 Terminal Emulation Software (H-Term) 9
3.3 LEDs 10
4 UART interface 11
4.1 Pinout information 11
4.2 UART protocol information 13
4.3 Interface for visual signalization 14
2/27
1 Introduction
The purpose of this document is to give guidelines for use and integration of the TeraRanger
Tower Evo using USB and UART communication interfaces.
2 Mechanical Integration
2.1 Mechanical Design
TeraRanger Tower Evo external dimensions are illustrated in Figure 1. The frame provides
four mounting holes on the bottom side, all designed for M3 screws. The straight distance
between mounting holes is 49.8mm.
When choosing a place for mounting, please consider the following recommendations:
● Choose a place which is in accordance with the optical constraints listed below
● Mounting close to sources of heat or strong electromagnetic fields can decrease the
sensing performance
3/27
● Do not mount anything directly in front of the sensors or in a cone of approximately
+/-15° around the central optical axis of the sensor
● Within the first meter from the sensors, during operation avoid objects with high
surface reflectivity in a cone of approximately +/-45° around the central optical axis of
the sensor
● It is better to avoid having other sources of Continuous Wave or modulated IR light
close to the sensor
● Please consider that dust, dirt and condensation can affect the sensor performance
● It is not advised to add an additional cover in front of the sensors
● Drone rotor blades, or other environments with flickering (‘chopped’) ambient light in
the field of view can affect sensors’ readings
For drone use. If you are mounting the Tower Evo on a drone, please see our Pixhawk
Connection Instructions document which contains important information about the orientation
of the Tower.
Kindly note that TeraRanger Tower Evo uses the Hub Evo board to provide compatibility
with single point Evo distance sensors. The following table sums up Tower Evo compatibility
with TeraRanger Evo distance sensors.
Name Visual
TeraRanger Evo 600Hz offers high speed distance data acquisition for more effective
collision avoidance, whereas TeraRanger Evo 60m provides longer range measurements
with increased accuracy for a broader range of applications, including mapping and
navigation tasks. Also, please be aware that Tower Evo is sold in versions with 4 or 8
TeraRanger Evo distance sensors.
Please note that we do not recommend disassembly of the Evo sensors from the
Tower frame for use in configurations other than the Tower. If you wish to build custom
4/27
sensor arrays, please purchase the TeraRanger Hub Evo board separately, along with
suitable TeraRanger Evo distance sensors.
2.3 Electrical characteristics
DC electrical characteristics
TeraRanger Tower Evo is powered by an external power source, and can not be directly
powered by USB. The following table describes the current and voltage requirements to
make the TeraRanger Tower Evo work correctly. Unless otherwise specified, typical data as
listed in the table below, is based on an ambient temperature value of 25°C TA = 25 °C, and
supply voltage of 12V.
Please note that in rare cases (for example where the Evo sensors are pointing out to
"infinity" with nothing in range) a 30 to 40 second delay in start-up can occur. No
performance or functionality is affected by this, but for a faster start-up please ensure that
each sensor has a target surface within its field of view.
5/27
**Maximum current consumption with eight TeraRanger Evo sensors connected and looking at
long-range/low reflectivity targets or infinity in simultaneous mode. Drops significantly in sequential
mode and varies with target reflectivity and distance.
* Standby values (The sensor is not actively emitting light).
Stresses above the absolute maximum ratings may cause permanent damage to the device.
Exposure to maximum rating conditions for extended periods may affect product reliability.
3 USB interface
3.1 Graphical User Interface
A free graphical user interface is available for Windows, providing an easy way to visualize
the data from TeraRanger Tower Evo. This is useful for demonstration, testing purposes and
setting some of the basic parameters of the sensors, including operating and update rate
modes. It also provides a way to easily upgrade the firmware running on the device, should it
be required.
Please note that the same GUI is used for both TeraRanger Tower Evo and Hub Evo
products. The GUI is available for download from the TeraRanger Tower Evo page
(Downloads section) of the Terabee website. Please ensure you are using GUI version 1.0.5
or later.
3.1.1 Basic Operation
Connect the TeraRanger Tower Evo to a USB port on your computer and to a suitable power
supply. Select File > Connect. You should immediately see distance readings of TeraRanger
Evo sensors displayed on the main chart. See example in Figure 2. The following table
summarizes functionality of the graphical user interface.
6/27
Figure 2. Graphical user interface
# Display Description
2 Zoom Modify scale of the main chart (#3) by dragging the cursor to the
left or right. The zoom range is [2.00m ; 60.0m].
5 Update rate Select between six options of sensor measurement update rates
from a drop-down menu. Choose between Fixed (F) 50Hz, F
100Hz, F 250Hz, F 500Hz, F 600Hz or ASAP (As Soon As
7/27
Possible).
3.1.2 Firmware Upgrade
The current firmware version on your TeraRanger Tower Evo can be found by selecting Help
> About in the GUI. It is possible to upgrade the firmware running on your device if a new
firmware version is made available by Terabee. Only update your firmware if a new firmware
version has been provided!
Please note the Upgrade Firmware feature is only supported on Windows 7, 8 and 10.
Please follow carefully the steps outlined below to avoid permanently disabling your device.
3.2 Connecting the TeraRanger Tower Evo to a Host Computer
TeraRanger Tower Evo can be easily connected to a Host Computer via a micro USB cable.
The TeraRanger Tower Evo can interact as a virtual COM port, and data can be streamed
directly to terminal emulation software (Terabee advises to use HTerm for Windows and
CoolTerm for MacOS).
8/27
3.2.1 Prerequisites
For usage on Windows (7, 8) operating system, please download the Virtual COM Port
driver from http://www.st.com/en/development-tools/stsw-stm32102.html and follow the
”ReadMe file” instructions given by the installer. After successful installation, unplug the
interface for a few seconds, and plug it back in. The virtual COM port should now be
available on your PC. Users of Windows 10 do not need to download this driver as the built
in Windows driver is recommended.
In Windows you can also use any terminal emulation software of your choosing, however we
suggest you use HTerm (http://www.der-hammer.info/terminal/). Extract the downloaded zip
file to the folder of your choice, open it and double click on the “HTerm.exe” document.
Connect the TeraRanger Tower Evo to your computer via a micro USB cable and select the
corresponding USB port (click “R” button to refresh the port list). Select values for the
following fields:
For easier readings, select the “LF” option for “Newline at” tab. See Figure 3 for visual
instructions.
Once you have selected the USB port and required values, click on the “Connect” button.
9/27
Figure 4. Distance data stream using H-Term
To communicate with the distance sensors connected to Tower Evo via the terminal
emulation software, you need to send a command in hexadecimal via the “Type” box. For
this, select the “HEX” Type as illustrated in the figure above. Figure 4 shows an example of
the command which allows data to be shown in TEXT mode. All commands are detailed in
section 5.
3.3 LEDs
In total, four LEDs are mounted on TeraRanger Hub Evo to give visual feedback on the
sensor performance. The following table lists the functionality of each LED.
10/27
LED 0 (blue) One blink for each TeraRanger Evo
sensor detected by the Hub Evo.
4 UART interface
4.1 Pinout information
The TeraRanger Tower Evo can be controlled through UART interface. This is possible
thanks to a “UART for Hub Evo” board - an accessory already installed on the Tower Evo
(Figure 5). We strongly advise not to disassemble the Tower Evo product, including the
UART for Hub Evo board, as it might result in damaging the system due to inappropriate
handling.
11/27
Figure 5. UART for Hub Evo board
The UART for Hub Evo board uses a single 6 pin Hirose DF13 connector for interfacing to
the host system. The mating connector is a Hirose DF13-6S-1.25C with crimping contacts
DF13-2630SCF (tin) or DF13-2630SCFA (gold). Please consider the mechanical stability of
the mated connectors and avoid any kind of excess force on the connector (during
installation and once integrated) and follow the recommendations in the Hirose DF13 series
datasheet (available here: https://www.hirose.com/product/en/products/DF13) to ensure a
reliable connection.
The table below provides an overview of the pin out for the DF13 connector:
1 NC Not Connected
4 NC Not Connected
5 NC Not Connected
12/27
Figure 6. Pinout layout for UART
13/27
4.3 Interface for visual signalization
Tower Evo provides an interface to control an intelligent LED light source compatible with
WS2812B serial communication protocol. It allows you to drive up to four RGB LEDs through
a single wire provided that the LEDs sink current is kept within the power budget indicated
in the manual (ref. Section 2.3).
Three levels of signalization are provided to discriminate three different ranges (set with a
default value during manufacturing) as shown in the table below:
New values can be programmed through the UART interface, offering the possibility of
customizing the LED triggering thresholds within the valid range of the Tower. These values
can span from 0.5m to 8m in 0.1m increments. The upper value of the threshold range
cannot be higher than the lower value of the adjacent threshold range. Overlaps between
threshold ranges are checked by the Tower and, if found, the Tower responds with a ‘Nack’
(Not acknowledged) signal. Once the thresholds system is operating, if all sensors are
detecting “out of range”, then all LEDs will be off. Whenever a threshold is reached by one of
the sensors, the LEDs will switch to the appropriate color and stay continuously ‘on’ until a
different threshold is activated.
Important Note: The LED signalization feature only provides an indicative proximity status
based on the Tower Evo sensor closest to an obstacle or hazard and is provided as a useful
aid rather than a guaranteed fail-safe solution. You use this feature at your own risk.
Below 1 meter, some target surfaces (transparent or with low light reflectivity) can potentially
introduce false readings which could mean that the LED signalization is not based on the
closest sensor to an obstacle. However, this will only affect the LED signalization and not the
distance sensing capability.
14/27
Pin Designator Description
Figure 7. WS2812B serial communication, pinout layout
5 Communication and Modes
The current Tower Evo firmware (1.1.1) provides four parameters for optimization of Tower
Evo performance. The following parameters can be configured:
1. Printout modes
2. Operating modes
3. Update rate modes
4. IMU modes
Figure 8 illustrates the logic of available parameters on Tower Evo. Please note all
commands to be sent via terminal emulation software are in hexadecimal format.
15/27
Figure 8. TeraRanger Tower Evo modes
For each command sent, a response is generated to inform the user whether the command
has been validated. Command responses consist of four bytes and is a hexadecimal value.
Please note that it is crucial to receive an answer to a command, before communicating the
next one. For more information on response values, please reference section 5.6.
16/27
5.1 Enable / Disable Tower Evo communication
In order to enable communication with Tower Evo and send commands to modify system
performance, first please make sure streaming is enabled.
5.1.1 Commands
The current Hub Evo firmware supports two display modes, available via terminal emulation
software: (1) Text and (2) Binary.
5.2.1 Commands
17/27
5.2.2 Output format
- Header (two characters): T (84 decimal / 0x54 hex) and H (72 decimal /
0x48 hex)
- Tabulation: \t (9 decimal / 0x09 hex)
- Distance reading in millimeters** (maximum 5 bytes per sensor): xxxx
- Carriage return character: \r (13 decimal / 0x0D hex)
- New line character: \n (10 decimal / 0x0A hex)
**if a sensor is not connected or the TeraRanger Hub Evo is unable to obtain the
distance measurement from the TeraRanger Evo sensor, the associated distance
value is replaced by the hexadecimal value “-1”.
If the target is too close to the TeraRanger Evo sensor (below the minimum
distance), the associated distance value is replaced by “-Inf”.
If the target is too far from the TeraRanger Evo sensor (above the maximum
distance), the associated distance value is replaced by “+Inf”.
- Header (two characters): T (84 decimal / 0x54 hex) and H (72 decimal /
0x48 hex)
- Distance reading in millimeters** (2 bytes per sensor): XX
- Mask (1 byte) Each bit of this byte correspond to one sensor connected to
the hub.It gives an indication if the distance corresponding to the sensor is
new (bit at 1) or old (bit at 0):M
- Checksum (1 byte) of previous 19 bytes: CRC8
**if a sensor is not connected or the TeraRanger Hub Evo is unable to obtain the
distance measurement from the TeraRanger Evo sensor, the associated distance
value is replaced by the hexadecimal value 0x0001.
18/27
If the target is too close the TeraRanger Evo sensor (below the minimum
distance), the associated distance value is replaced by the hexadecimal value
0x0000.
If the target is too far from the TeraRanger Evo sensor (above the maximum
distance), the associated distance value is replaced by the hexadecimal value
0xFFFF.
The current Tower Evo firmware provides three operating modes: (1) Simultaneous mode,
(2) Sequential mode and (3) Tower mode. The following table provides a description of the
functionality for each.
19/27
Simultaneous Supports simultaneous sensor operation,
mode enabling the highest possible sampling rates.
Please note that using Tower Evo with 8
distance sensors in simultaneous mode can
result in sensor crosstalk. When using a Tower
Evo with 4 sensors and a 90 degree angle
between each, crosstalk is highly unlikely to
occur.cross-talk.
5.3.1 Commands
Tower mode 00 31 03 E5
Modify operating
modes Sequential mode (default) 00 31 02 E2
Simultaneous mode 00 31 01 EB
IMPORTANT: Sequential mode is set as the default mode. When powering and
connecting Tower Evo to a host computer for the first time, please activate Tower
mode by sending a corresponding command (00 31 03 E5) via terminal emulation
software.
Tower Evo firmware saves the last operating mode used and auto-selects that mode the
next time the system is powered up. Therefore there is no need change the operating mode,
until a different mode is required.
Tower Evo provides the option to modify the measurement sampling rates of the connected
sensors. Users can select between six output-rate modes. ASAP, meaning ‘as soon as
possible’ is, by definition, a variable rate and is dependent on how quickly the Hub receives
an update from the last sensor in the chain. The other rates are fixed at 50Hz, 100Hz,
250Hz, 500Hz, 600Hz.
The output rates can be selected using the following Hex commands:
20/27
5.4.1 Commands
50 Hz 00 52 03 02 C3
100 Hz 00 52 03 03 C4
250 Hz 00 52 03 04 D1
500 Hz 00 52 03 05 D6
600 Hz 00 52 03 06 DF
5.5 Visual signalization
The Tower Evo is shipped with default pre-programed thresholds, but you can set your own
by using the command below:
The command is a six byte command. UU is the byte that represents the upper threshold in
decimeter and LL the lower one. The range of the threshold is 5 to 80 decimeter and the
value of the upper one should not be less than the value of the lower one. The CRC need to
be calculated using the five first bytes of the command.
TeraRanger Hub Evo provides an onboard IMU, supporting users with spatial orientation
data. By default the IMU is disabled. Three modes are available:
1. Euler mode,
2. Quaternion mode,
3. Quaternion and Linear Acceleration mode.
21/27
Magnetic fields and vibration can disrupt IMU calibration. In order to force a self-calibration
of the IMU, move the TeraRanger Hub Evo in ways that use the full range of each axis.
1. For magnetometer and gyroscope: (1) draw a figure of eight into the air, (2) make a
full turn in the two directions of each axis (6 rotations in total).
2. For accelerometer: Hold the Hub Evo for a few seconds in each of the following
positions; left side, right side, front side, back side, up side, down side.
For further explanation about the IMU orientation calibration, please refer to the following
link: https://www.youtube.com/watch?v=Bw0WuAyGsnY
Euler mode provides three classic Euler angles: heading (aka yaw), roll and pitch. Please
see figure 9 for heading, roll and pitch directions on your Hub Evo.
When enabling Euler mode, the displayed values are in degrees. Please see below the
corresponding scaling for each of the axes:
22/27
Please note that 0° for pitch and roll angle means that the TeraRanger Tower Evo is
horizontal.
5.6.2 Quaternion mode
To deal with matrix rotation in space, the quaternion approach simplifies the heavy math
related to trigonometry and reduces the processing power requirements and optimizes the
speed of operations. The Hub Evo can provide this kind of information through internal
pre-processing and data fusion. For further explanation about the quaternion and the spatial
rotation matrix, please refer to the following link:
https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion
Quaternions and linear acceleration mode displays the same coefficient as the quaternion
mode, however it also gives the linear acceleration of the IMU in milli-g. Please refer to
figure 9.
It is important to know that there might be a constant offset (this can be visualized when the
TeraRanger Hub Evo is not moving) on the acceleration values, that can be corrected by
calibrating the IMU (see section 4.5).
5.6.4 Commands
23/27
5.6.5 Output format
24/27
- Orientation data in quaternion format (2 bytes per
coordinate), each two bytes represent a signed 16 bit
value. You need to divide those four values by 2^14.
- Linear acceleration (2 bytes per axis), each two bytes
represent a signed 16 bit value. Those value are
expressed in mg.
- Checksum (1 byte) of previous 17 bytes: CRC8
IM\t hhh\trrr\tppp\r\n
IM\t www\txxx\tyyy\tzzz\r\n
25/27
Quaternion Data output:
and
Linear IM\t www\txxx\tyyy\tzzz\txxx\tyyy\tzzz\r\n
acceleration
- Header (two characters): I (73 decimal / 0x49 hex) and
M (77 decimal / 0x4D hex)
- Tabulation: \t (9 decimal / 0x09 hex)
- Orientation data in quaternion format.You need to divide
those four values by 2^14.
- Linear acceleration. Those value are expressed in mg.
- Carriage return character: \r (13 decimal / 0x0D hex)
- New line character: \n (10 decimal / 0x0A hex)
For each command sent, a response is generated to inform the user whether the command
has been validated. It is important to receive a response value before proceeding with the
next command. Sending commands too early may discard the one still processing.
Response commands consist of four bytes and are a hexadecimal value. They contain (in
order):
- a header (0x30)
- the CMD code which corresponds to the first four most significant bits of the second
byte of the send command (for example for the command 0x00110145 it will be
0x01)
- an ACK (0x00) or a NACK (0xFF)
- a CRC-8 checksum of the message contents
Example:
Hex Command: 00 11 01 45
Hex Answer: 30 01 00 F4
To calculate the CRC-8 checksum byte, we advise you to use an online CRC-8 calculator.
Here is one: http://www.sunshine2k.de/coding/javascript/crc/crc_js.html
The following table sums-up the expected responses to all the commands described in the
document.
26/27
Action Type Valid responses
Enable/disable communication 30 05 00 A0
27/27