My Requests

Drivers Manual

Laser Scanning - Z F PROFILER 9012 200Hz - 20


Driver to decode data from a Zoller+Fröhlich PROFILER 9012 / 9012M / 9012A laser scanner.

Benefit of the scanner is its high-precision and high rotation speed.The scanner has a maximum scan range of 119 meters and a clear field of view of 360°.

Laser stands for Light Amplification by Stimulated Emission of Radiation. The PROFILER 9012 uses laser class 1 (according to IEC 60825-1), which is eye-safe.

This scanner is only capable of scanning in so-called Profiler Mode. This means that the scanner does not rotate around a horizontal axis, like IMAGER scanners can do.

Typical application for scanning in profiler mode would be to mount the scanner fixed on the roof of a car, together with an accurate GNSS and Motion Sensor, in order to scan roads, railways, tunnels, towns, bridges, etc.

For mobile mapping it is mandatory to interface the PROFILER 9012 with a Time Synchronization (PPS) pulse from an external GNSS receiver, in order to time-tag all data with UTC.

Driver Information

Driver Z+F PROFILER9012 200Hz Interface Type Freebase/TCP/IP/UDP Driver Class Type Freebase
UTC Driver (question) Yes Input / Output Input and Output Executable DrvLaser.exe PROFILER_9012
Related Systems
Related Pages

Decoding Notes

Data is always broadcast via UDP network. It is mandatory to use a fast (Gigabit) network card, due to the enormous amount of data to be expected. Do not use a wireless network for real-time scanning.

The actual raw binary data-stream is in so-called ZFS format, a data format defined by company Zoller+Fröhlich. This document does not describe the ZFS format.

The driver is configured as a multibeam system and creates XYZ 'multibeam' observations.

('multibeam' versus 'laser scanning'-terminology: ping = scan (i.e. 360° around), footprint = beam = pixel, swath = line)

The number of beams (pixels) depends on the on-line used settings, like (user-definable) range mask, vertical angle mask, intensity mask, etc. (see Controller Setup below). The maximum theoretical number of beams per scan is 20480. Under normal conditions you would expect values of 2000 to 5000 pixels.

The number of scans (lines) per second is also a user-definable setting and can be 50, 100 or 200 Hz.


Besides the relative XYZ co-ordinate of every laser pixel, the driver also decodes the returned intensity. Two intensity values are decoded and stored: a scanner and surface dependent intensity and a so-called normalized intensity.

The system dependent intensity value depends on the surface being hit, the angle, the open sky conditions (Sunlight, rain, etc), etc. E.g scanning into open sky area results in 'hits' with low intensity values less than  ~ 3000 - 5000.

The normalized intensity means that a surface scanned at close distance should return the same intensity as when being scanned at a distance further away.

Qinsy stores the two intensity values as follows:

  • The system dependent intensity value is stored as Intensity, a floating number between 0.0 and 5000000.
  • The normalized intensity value is stored as Quality, an integer number between 0 and 255.

So if you color code your point cloud on Intensity, use a color map scale of 0 - 5000000, and if you color code on Quality, use a range of 0 - 255.

Interfacing Notes

Communication with the scanner goes via the fast 1Gigabit LAN network.

The LAN IP address of the laser unit can be seen on the Remote Box (which must be connected to the scanner through port P4):

The LAN IP address of your computer's network should be in same range (i.e. that the last digit must be different):

Use for the Subnet mask the values

It is recommended to check the network connection between your computer and the laser unit before commencing any scan operation.

You may do this by using the ping command from the Windows Command Prompt:

Select Start from the Windows Task bar, Run..., Cmd <Enter>, and 'ping' the host name of your laser unit.

The network connection is okay when you receive a reply three times within a few milliseconds.

Additionally you may use a standard web browser:

Enter the IP Address of the scanner in the address field of your web browser, e.g.

If there is a valid network connection the homepage of the scanner will be opened:

Useful sub pages are

  • for checking the status of the Time Synchronization message and Pulse from an external GNSS receiver (connected through port P8).

  • for checking / modifying configuration settings of the scanner.


By default, the driver will time-stamp the data when received at the network port. However, due to network characteristics in general, this will result in inaccurate timing. Therefore timing via Time Synchronization pulse from GPS is highly recommended.

This means that your PROFILER 9012 must be interfaced to a GNSS receiver via port P8. Please refer to the User Manual that comes with the scanner for the exact pin assignment of connector P8. Make sure that at least the following pins are connected:


PPS Pulse -> Pin 3
PPS Ground -> Pin 9
RS232 Ground -> Pin 9
RS232 Tx (ZDA) -> Pin 8

If connected properly, the laser unit will decode the time-field from the NMEA ZDA message in order to get the exact UTC time, and will then increment its internal Counter1 with every pulse.

Use the http://<ip address>/GPS sub-page as mentioned above in your web browser in order to check the status of the incoming NMEA message and PPS pulse. 
If you refresh this page (F5) regularly, then you must see that Counter1 value is incremented by one every second:

Qinsy Configuration

First, internally the driver is treated as a multibeam system, creating multibeam 'XYZ' observations, therefore you will find the laser system drivers under category type Multibeam Echosounders.

1. Edit System Wizard

Add a Multibeam Echosounder system to your template setup, and select driver "Laser Scanning - Z+F PROFILER 9012 200Hz".

  • Enter the same (UDP) port number as the cmd_port number of the scanner, normally set to 6100. The driver will always communicate (sending and receiving commands) via this command port number of the scanner. The real-time data stream is received via this port number plus one, so normally 6101. Status information from the scanner is received via this command port number plus two, so normally 6102. An advanced user may use the http://<ip address>/CONFIG sub-page in the web browser for viewing and/or modifying the current port settings (select category Interface).
  • Important is to enter for the IP Address the address of the scanner, as seen on the Remote Box connected to the laser unit through P4.

The maximum update rate is not used, so leave it at zero.

2. Multibeam Echosounder Parameters

Important are the Transducer Location (Node) and Mounting Angles (offsets) on the second wizard page.

  • The Transducer Location and Mounting Angles are important. 
    When the laser unit is mounted normally, with the scanner pointing backwards (away from the driving or sailing direction), you should leave the offset values close to zero:

    When the scanner is pointing forward (in driving or sailing direction), you should set the heading offset to 180°.
  • Set the Max. beams per Ping value to 40000. The actual number of beams will be variable, and depends for example on the on-line used settings, and on the targets being scanned. 
    The actual number of beams will be variable, and depends for example on the used on-line settings and on the targets being scanned.
3. Echosounder Accuracy Parameters
  • You may leave all values on the third wizard page at their defaults.
4. Multibeam Echosounder Corrections
  • You may leave all values on the last wizard page at their defaults.

Windows Firewall

The very first time Windows may pop up a security message:

Just enable all check-boxes!

If you forgot to do this, or if you are not sure if this has been done, you may want to follow the steps as described in the Additional Info or Trouble Shooting section about Windows firewall.


When on-line, the laser unit can be fully controlled using the Controller: 

Select Echosounder Settings, click on the Laser System icon, and select the 'Control' tab page.

Control Device Setting

Connect (using TCP/IP) to the so-called LRC Server of the Laser Scanner. Make sure that the IP address entered in Database Setup is correct.
Under normal circumstances a successful connection will be established within a second. If it takes considerable more time, you should check your network cable/configurations.
If no network connection can be made at all (e.g. the laser unit is switched off) then it may take 5 to 10 seconds, before you will be informed. Please check the Events list in the dialog to see if a connection could be make or not,

  • No
    This means that there is no TCP network connection between the driver and the laser unit.
  • Yes
    Select this every time you go online with the Controller, in order to communicate with the scanner. If no connection could be made, a notification message will be displayed in the Events list.
    Under normal circumstances a connection will be established within a second.

    Notice that the Controller's option Reset System I/O will also re-establish a connection. You need to be connected in order to select any Action (see below).

    Further, the driver will automatically disconnect when going offline with the Controller, so there is no need to do this manually.

Selected action will be send to the laser unit, immediately after hitting the Apply or OK button. You must be connected first in order to select an action.

Notice that any selection will always revert back to [None], after each selected action.

It is recommended to wait a few moments after each action, until the status in the Event list is updated with a message, because it takes some time for the unit to handle each command (action).

  • [None]
    This will be the selection after each action. Nothing will happen when hitting the Apply or OK button.
  • Start
    Select this action in order to start scanning in profiler mode.
    Notice that it may take a few seconds before the first data is received, so be patient for at least 10 seconds.
    Additionally, the first 30 seconds after start the reference plate will be out. This means that the full 360° field of view is blocked for a small sector.
    The reference plate is needed by the scanner to do some internal calibrations, in order to achieve sub-millimeter measurement resolution.
    Therefore it is recommended to wait for at least half a minute after the Start scanning command before recording data.
  • Stop
    Select this action in order to stop scanning. Scanning will be stopped immediately, after hitting the Apply or OK button.
    The laser will also stop scanning automatically when going offline with the Controller.
  • [Abort]
    If something is wrong (e.g. the laser unit received a wrong command, or GPS is not recognized by the scanner), then an error message may be displayed for the user with an option to Abort.
Profiler Scan Mode

Select the Profiler Scan Mode, 6 possible combinations of Speed (vertical mirror rotating) and Accuracy (vertical angle increment)

Profiler Scan Mode Speed (Hz) Angle Resolution (deg) Maximum points/sec Maximum points/scan
50 Hz, 0.018 deg (1M pts/sec) 50 0.018 1024000 20480
50 Hz, 0.035 deg (500K pts/sec) 50 0.035 512000 10240
50 Hz, 0.070 deg (250K pts/sec) 50 0.070 256000 5120
100 Hz, 0.035 deg (1M pts/sec) 100 0.035 1024000 10240
100 Hz, 0.070 deg (500K pts/sec) 100 0.070 512000 5120
200 Hz, 0.070 deg (1M pts/sec) 200 0.070 1024000 5120

Notice that other combinations are not possible

Scan Interval

Leave to 1 (default) to accept all incoming scans (50 or 100 scans / second).

To use every n-th scan only, use a value greater than 1.

For example, a value of 5, in combination with a profiler scan mode set to 50 Hz, will result in 10 scans / second.

Vertical Area Selection

The scanner mirror rotates 360 degrees every line at high speed.

0° means looking down, 180° means looking up, 90° looking port, 270° looking starboard.

Notice that once the reference plate is inside (~ 30 seconds after start) a full 360° field of view is available.

Select the required scheme from the list.

  • Visible: All data (full 360° field-of-view) is accepted
  • Above Horizon: Only data between 90° and 270° is accepted
  • Below Horizon: Only data between 0° and 90°, and between 270° and 360° is accepted.
  • (Wide Scan): An extra overlap of 10° is also accepted.
  • Port side: Only data between 0° and 180° is accepted.
  • Starboard: Only data between 180° and 360° is accepted.

Schemes are defined in the Laser Device Settings XML File:
They are allowed to be added, deleted or modified by the user in order to meet your local survey specifications and conditions.
Notice that the Mask Sector Start/End Angle must be defined using the scanner's local co-ordinate system.
Do not edit other tags/elements. Contact QPS BV in case modifications are required.

Excluded data due to this setting will not be recorded.

Sector Reduction

Select the required scheme from the list.

Schemes are defined in the Laser Device Settings XML File:
They are allowed to be added, deleted or modified by the user in order to meet local survey specifications and conditions.
Notice that the Sector Start/End Angle should be defined using the scanner's local co-ordinate system.
To skip all pixels, set Interval to 0, to use all pixels, set Interval to 1 and to use every n-th pixel only, set Interval greater than 1
Omitting a Sector Interval value means 0 (skip all)
Performance-wise, it is not recommended to use a Sector Reduction scheme to skip all pixels (i.e. Interval 0) for a desired sector.
Instead you should use a Mask Scheme of the Vertical Area Selection, see above.

Excluded data due to this setting will not be recorded.

Minimum Range Set the minimum required range in meters. Valid Values: 0 to 119 meters.

Using this setting is recommended, but be careful: Blocked data d/t this setting (i.e. all pixels less than this range) will not be recorded!
Maximum Range Set the maximum allowed range in meters. Valid Values: 0 to 119 meters.

Using this setting is recommended, but be careful: Blocked data d/t this setting (i.e. all pixels more than this range) will not be recorded!
Minimum Intensity

Set the minimum required intensity (system dependent) value.
Values are scanner dependent so this is not the normalized intensity. For the PROFILER these values are 0 - 5,000,000.

It is recommended to use at least a minimum intensity of 1000 ~ 5000. Returns with these kind of low intensity values is most likely noise, e.g. open sky area or water surface.

Notice that blocked data d/t this setting will not be recorded.

Maximum Intensity Set the maximum allowed intensity (system dependent) value.
Values are scanner dependent so this is not the normalized intensity. For the PROFILER these values are 0 - 5,000,000.

Notice that blocked data d/t this setting will not be recorded.
Store Laser Location If enabled, an additional pixel with zero XYZ co-ordinate will be added to each line scan, in order to indicate the exact laser scanner location in the resulting point cloud.
This extra pixel will always have beam number 0, and its intensity and quality values will be zero.

When enabled, the scanner needs a valid NMEA time message and PPS pulse from an external GPS receiver.
Using PPS is mandatory in order to use exact time-stamping of the laser data. See also the paragraph about Timing above.

You may select No for test situations (e.g being in-house, no valid GPS/PPS signal, demo's, etc).

If the NMEA time message is not valid when action Start scanning is triggered, an error message will be displayed in the Events list, and the user has to select action Abort.

Validation Check

When changing settings, the theoretically expected points/sec will be calculated, which should not exceed the recommended maximum points/sec.

The expected points/sec depends on the selected Profiler Scan Mode, the Scan Interval, the Vertical Area Selection and a possible Sector Reduction selection.

Qinsy handles only approximately 250 thousand measurements per second. However, this value can be safely much higher but depends highly on the used hardware.
Nevertheless it is important to prepare the project prior to the start of the scanning by optimizing all parameters to meet the necessary requirements:
Select the right scan rate, vertical area selection, sector reduction and/or range blocking in order to decrease the number of expected points/second.

An advanced user may overrule this limitation of max 250 thousand points per sec: Disable the Validation Check in order to ignore the warning and continue.

Generic Display

The Generic Display can be used to show the numerical values for the number of beams (pixels) being scanned per ping (scan), the number of beams being scanned per second, the ping rate (scan rate in Hz), range values, etc.

Important values to monitor are:

  • Item Ping Age
    This value should be small, around zero, especially when setting 'Use PPS' is enabled.
  • Item Status Flag 
    This value should be 2 when setting 'Use PPS' is enabled. In the example layout below the Status Flag item has a translation property for showing the status as readable text).

You may use the attached example Generic Layout file as example: Copy this layout (Use 'Save Link As...') to your current Project's Settings\Display folder and open it using a new Generic Display. 
You only have to select the correct laser system as defined in your template setup.

Additional Information

 The PROFILER 9012 has the following features and limitations:

  • Minimum vertical angle resolution 0.018°
  • Vertical spin rate (speed) of the mirror is 50 Hz (3 scan modes), 100 Hz (2 scan modes) or 200Hz (1 scan mode).
  • Scan rate can be up to 1 million points per second.
  • Vertical field of view is 360°. There is no physical scanning mask once the reference plate is in.
  • Maximum range is 119 meters. Minimum range is 0.3 meter.
  • The raw intensity value is stored in a Qinsy database as Intensity (0.0 - 5000000.0). The normalized intensity value is stored as Quality (0 - 255).
  • Laser class 1 is used, which is eye-safe. However, it is never recommended to look into the mirror while scanning

Real-time Performance Monitoring

When the scan data rate is too high, the other core Qinsy processes may not be able to handle the amount of data published by the driver (too many pixels/sec.) and in the past it would eventually crash the system.

An extra safety check has been implemented in order to prevent crashing of Qinsy: abnormal memory usage will be detected and when it exceeds a certain threshold limit a Stop command will be sent automatically to the scanner.

When that happens, the following message is displayed in the Events list in order to inform the user:


Whether such an event may occur is very much hardware dependent and/or on which settings are used.

You can check yourself if your setup is vulnerable: open the Windows Task Manager and monitor process Multibeamer.exe and/or DrvResultOut.exe while scanning. Under normal conditions the memory used by these processes should be constant.
If you notice that column Working Set (Memory) is constantly increasing, then the process will eventually crash when it exceeds 2GB and you will have to restart Qinsy. Note that 2GB is the maximum memory allowed for a 32bit process.

There may be situations that the default 1.7GB threshold is a little too low, or that the Stop scanning command must be sent earlier, e.g after exceeding a memory usage of 1GB.
So as an advanced user you may modify the following registry key in order to increase this threshold:


  • If you enter a value (in bytes) higher than 2GB it won't be accepted and the default will be used. You may try the following key value: 2000000000
  • If the value is set to zero, no monitoring of the Multibeamer.exe or DrvResultOut.exe process memory usage will be done. This is at your own risk because it may cause a crash when the memory usage exceeds 2GB.

But most important

Try to prevent having such events happening in your setup:

  • Check all your hardware and upgrade where possible. (Especially CPU power, Memory installed, Network card, Hard disk storage, etc.)
  • Read carefully the Improve Performance paragraph and try to follow up all the tips.

Improve Performance

Due to the enormous amount of data to be expected while scanning and recording, it is recommended to keep the system overhead as low as possible.

Here you'll find some tips and tricks in order to fine-tune your setup.

However, these are not strict rules, because each project is different and depends on the current situation and hardware being used. Your goal should be to keep your system CPU usage as low as possible.



Make use of Solid State Drive (SSD), or fast SATA hard drive (7200 - 10000 rpm).


Your network card speed should never be lower than the scanner's network speed. Use a network card that can be configured for 100Mbit or 1Gbit speed. Do not use USB Networking Adapters, because this may result in loss of data when huge amounts of data are being broadcast.

Virus Scanner

Disable Virus Scanner, or at least the setting 'Scan Files when Writing/Reading to/from disk'.

Task Manager CPU

General Task Manager CPU Usage should be less than 50%. CPU load of each display must be less than 10-15%.

Make sure that the 'Working Set (Memory)' column for process Multibeamer.exe and/or DrvResultOut.exe is not constantly increasing, especially during recording.
For detailed information about this see the section Real-time Performance Monitoring below.


Laser Device Settings

During project preparation, establish the optimum settings in order to achieve the required results.

The most benefit you will gain from setting the Scan Speed, Scan Rate, Scan Resolution, Angle Resolution, Vertical Area Selection, Scan Area Selection and Sector Reduction as well as possible.

Especially the Vertical or Scan Area Selection is very important. Make use of Mask schemes to define areas which you don't want to scan.


Raw Multibeam Display

Open only one Raw Multibeam Display.

Disable the options 'Show Big Dots' and 'Draw Lines'.

Navigation Display

Open only one Navigation Display.

Preferably disable DXF and TIFF layers or other big background files. These layers should only be used during project preparation.

When 'object tracking' is enabled, do not zoom in too close. Keep in mind that the display should not be 'refreshed' more than 1x per second.

3D Point Cloud Display

It is not recommended to use a 3D Point Cloud Display.

If you do so, make sure your hardware contains a high-spec video card.

Under Sensor settings set the Time window setting to a short period, e.g. 10 sec

- Sounding Grid

- Dynamic Surface

Storage to a Sounding Grid is not recommended, and should be purely for display purposes: e.g. for checking the scan coverage or for showing the 95% Confidence Level statistics.

If you do want to see the scan coverage then it is advisable to store to a sounding grid and not to the dynamic surface

Do not use a small cell-size, preferably not less than 1.0 meter.

If you notice in the Navigation Display that the real-time sounding grid is drawn/updated with a delay, then please increase the cell-size or disable the storage completely.

Offline (Replay) there are no limitations and you may use small cell-sizes, e.g. 0.10 meter.



In Replay there are no limitations as mentioned above: use as many displays as you like, store to sounding grids with small cell-sizes, update the dynamic surface, etc.

All this may only affect the replay speed, but the data integrity of your final DTM processing files should be fine.

Controller Computation Setup

While working online, disabling the laser system in your Computation Setup will have the most effect on the performance

Footprints will not be geo-referenced, nor corrected for motion, heading or timing in real-time. This will save a tremendous amount of CPU power and memory usage.

This tip allows you to get the most out of your scanner: maximum scanning speed and maximum scanning rate, without the risk of losing scans due to performance issues.

Drawback is that no DTM file (e.g. QPD) is created, nor a sounding grid is filled, while working online.

To create a final DTM and/or Sounding Grid file you need to Replay the recorded databases afterwards.

Network Problems

If you experience problems using your laser scanner in combination with this driver or if you need additional information or support, then please attach the daily laser log-file when submitting your JIRA support ticket.

At the bottom of this page you'll find the information on where to find this daily laser log file.

Windows Firewall

A commonly reported problem is that network data is blocked by the Windows Firewall.
When this happens you may see that data does come in using other utilities (like the I/O Tester or the manufacturer's own software), but that the Qinsy driver does not accept any data.

The following (Windows 10) steps may solve this:

  1. Go offline, open the PC Settings (Start menu, Settings)
  2. Select Windows Firewall (Update & Security, Windows Security, Firewall & network protection)
  3. Select Advanced settings
  4. Select Inbound Rules, highlight all 'Driver for Laser Scanning' entries and delete them using the right mouse popup menu (or Del key)
  5. If you now go online, the Windows Security Alert message will pop up: It is important to tick all three check boxes!

Multiple Network Cards

Another possible problem could be that your computer has more than one network card installed (e.g. LAN and WIFI), but within the same sub-net mask range (
It is recommended to make the first three digits unique for each network card IP address.
You may check the daily laser log-file, it will show the IP addresses for all available network adapters and indicates which one the driver will use:

Please check that the driver is using the correct one!

Missing Data

If you occasionally experience gaps in your data, this may be caused by a general Windows setting that affects the data throughput of your network card.

Change the following registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\NetworkThrottlingIndex

Set the new value to ffffffff (which will tell Windows to disable network throttling) and restart the computer.

Note that disabling network throttling may affect playing multimedia on your computer, but for laser scanning operations it is advisable to have a maximum data throughput of your network.

Daily Laser Log File

All user actions, system information and reported errors are logged in a daily laser log file which can be found in the current project's LogFiles subfolder.

The filename convention for this ASCII log-file is <System Name> DD-MM-YYYY.log, so every day there will be a new one.

Note that all time stamps in this log file are by default in UTC. An advanced user may change this to local time zone (LTZ) by changing the registry key:
HKEY_CURRENT_USER\Software\QPS\QINSy\8.0\Drivers\DrvLaser\Settings\TimeLogFileUtc value from 1 to 0.