My Requests

Drivers Manual

Laser Scanning - Velodyne HDL-32E - 20


Driver to decode laser data from a  Velodyne HDL-32E laser scanner, a stylishly small, ruggedly built sensor ideal for applications with constrained form-factors and pricing demands.
Laser class used by the HDL-32E is 1, which is eye-safe. Laser stands for  L ight  A mplification by  S timulated  E mission of  R adiation.

Driver Information

Driver Velodyne HDL-32E (XML)  Interface Type Freebase/TCP/IP  Driver Class Type Freebase 
UTC Driver (question) Yes Input / Output  Input Executable DrvLaser.exe HDL_32E 
Related Systems

Related Pages

Velodyne LiDAR Equipment


Your HDL-32E scanner comes with a calibration angular correction xml file, located on the scanner's CD and is called hdl-32.xml.

Note that the name of the xml file may differ (e.g. 32db.xml), so in that case rename the file to hdl-32.xml. The Qinsy driver will only look for this file.

A default angular correction file can also be downloaded from Velodyne's website.

Copy this file into the Qinsy program installation folder, subfolder XML (most likely something like C:\Program Files (x86)\QPS\Qinsy 9.4\XML).

Decoding Notes

Data is always broadcast via UDP packets using a LAN network . It is advisable to use a fast (at least 100Mbit) network card, due to real-time scanning and the huge amount of data.

The maximum expected number of beams per second for the HDL-32E is about 700 000 (seven hundred thousand).

The actual raw data stream is Velodyne's proprietary format. This document does not describe this format.

The HDL-32E has configured two UDP Ports in order to output data:  only port 2368 is used by this driver, containing time-tagged laser firing data.

The other, port 8308, with MEMS accelerometers and gyros values, is not used by this driver or Qinsy.


Due to network characteristics in general, and because of latency inside the scanner, time stamping upon arrival will result in inaccurate and variable timing.
Therefore timing via Time Synchronization (formerly PPS) pulse from GPS is highly recommended.

This means that your laser unit must be interfaced to an external Time Synchronization pulse from a GNSS receiver and a UTC time-tag message from the same receiver.

With this scanner it can be done quick and easy, using the interface box that comes with your HDL-32E:

It is important that Qinsy is also interfaced to a Time Synchronization system, so all systems will operate within the same time frame.

Network Setup

All communication to and from the laser unit goes via a  LAN network which is accessible through the same interface box as used for the GNSS/Time Synchronization timing (see above).

The exact LAN IP address of the laser unit should be provided by the manufacturer or your reseller, or it should be stated in the documentation that comes with your scanner.
Normally Velodyne configures their HDL-32E laser units with IP address (Older units with old firmware may still use

The LAN IP address of your computer's network should be in the same range, except for the last digit. This must be a unique number!
In the example below the value 250 is used. Use for the subnet mask the values

  • Windows 7 / Windows 8:
    Control Panel, Network and Sharing Center, Change adapter settings, Click right-mouse on Local Area Connection, Properties, Internet Protocol Version 4 (TCP/IPv4), Properties...
  • Windows 10:
    Click right-mouse on Start menu, Control Panel, Network and Internet, Network and Sharing Center, Change adapter settings, Click right-mouse on Local Area Connection, Properties, Internet Protocol Version 4 (TCP/IPv4), Properties...

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 Taskbar, Run..., Cmd <Enter>, and 'ping' the IP address of your laser unit.
The network connection is okay when you receive a reply three times within a few milliseconds.

Database Setup

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.

('multibeam' versus 'laser scanning'-terminology: ping = scan, footprint = pixel = pulse, swath = line)

1. Edit System Wizard

Add a Multibeam Echosounder system to your template setup and select from the list driver "Laser Scanning - Velodyne HDL-32E (XML)".

  • The Port number should be 2368. The driver will receive all laser firing data packages via this unique port number.
    Note that this scanner may also output other messages via port 8308, but none of these will be used by this driver.

  • It is important to enter the same IP Address as the broadcast address of the laser scanner.
    This address will always be for HDL-32E units. (Units with older firmware may still use IP address

  • Leave the Maximum update rate at zero.

2. Multibeam Echosounder Parameters 

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

  • The exact values for the roll, pitch and heading offsets should be established with a calibration procedure.
    Before such a calibration one should use values as accurate as possible. For example:

    When the cable of the scanner is pointing to starboard on your survey object, you could leave the heading offset value at .
    When the cable is pointing forward, enter 270°.
    Pointing backwards means already a heading offset of 90°.
    Pointing to port side means 180°.
  • Leave the Max. beams per ping value at 9999.
    The actual number of beams will be variable, and depends for example on the used on-line settings and on the targets being scanned.

Example Mobile Scanning Setup

In this example the unit is mounted on the rear of a car with the cable pointing to starboard and tilted 90 degrees in order to scan the road.
The default alignment offsets for this would be Roll: -90°, Pitch: -90°, Heading: +90°.

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.


Hardly any control is needed for this type of laser scanner. Once you power it up, it starts rotating, scanning and broadcasting the data automatically.

Some additional control that is required can be done using the Qinsy Controller: 

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

Device Settings


In order to communicate with the scanner, the driver must make a network connection first. This attempt to connect will always be done automatically when going online.

  • No
    This means that there is no UDP network connection between the driver and the laser unit, and therefore no laser firing data will be received.
  • Yes
    Check 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.
  • [ Set to Not Connected at startup ]
    Select this option (only once, and hit the Apply button) if you want to disable the 'Auto Connect' option.
    This means that every time you go online with the Controller, you must make a connection yourself by selecting 'Yes' from this list.
  • [ Set to Auto Connect at startup ]
    Select this option (only once, and hit the Apply button) and the next time that you go online with the Controller, the driver will try to connect to the laser unit immediately.

Further notice that the driver will automatically disconnect when going offline, so there is no need to do that manually, although you may do so.

Scan Interval

Set to 1 to accept all scans. In this case the horizontal angle between two consecutive scans will be 0.16°

To use every n-th scan only, set the interval greater than 1.

Notice that excluded data due to this setting will not be recorded!

Use Calibration Factors

The angular correction xml file, hdl-32.xml, is unique for each HDL-32E and contains for every 32 lasers the factory calibrated vertical angle.

  • Yes
    Select Yes in order to use the calibrated vertical angles from file hdl-32.xml (which must be located in the Qinsy program folder, subfolder XML), instead of the default vertical angles.
    Note that you can not continue with scanning when this file is missing.
  • No
    Select No if you do not want to use the calibrated vertical angles, or if the hdl-32.xml is missing.
    The default vertical angles will be used for each of the 32 lasers (-30.667°, -29.333°, -28°, -26.667° ... +6.667°, +8°, +9.333°, +10.667°)

When the angular correction file that comes with the scanner is named differently (e.g. 32db.xml) then rename it to hdl-32.xml.

Note that data can not be corrected afterwards, in case no or wrong calibration angles were used.

Vertical Area Selection

Physical scan area comprises 32 lasers and yields vertical 41 degrees (in case the scanner is mounted normally on a horizontal surface)

For example, laser 1 is looking downwards with an angle of -30.667°, laser 24 (the nadir) is looking forward (0°) and laser 32 is looking upward with an angle of +10.667°

Selection here will most likely depend on how you are using the scanner, statically or dynamically:

  • Static scanning is when you put the scanner on a non-moving platform. In that case you want to use all or a part of the 32 available lasers, while the unit is rotating a full circle.

  • Dynamic scanning is when you use the scanner on a moving platform (vessel, car). Then it is recommended to use only one beam, e.g. the nadir one.
    Most likely you have then physically mounted the scanner with a roll or pitch angle of 90°.
    Notice not to forget to enter the correct C-O offset values in your template setup (see Multibeam Echosounder Parameters).

  • Horizon (Nadir beam)
    Typical selection for Dynamic scanning:
    Only data from laser 24 (with vertical angle of 0°) will be used.
  • Narrow Horizon (3 beams)
    Only data from laser 23, 24 and 25 will be used.
    This covers a vertical area of 2.33°, looking in the forward direction.
  • Wide Horizon (5 beams)
    Only data from laser 22, 23, 24, 25 and 26 will be used.
    This covers a vertical area of 5.33°, looking in the forward direction.
  • Above Horizon (9 beams)
    Typical selection for Static scanning:
    Only data from laser 24-32 will be used.
  • Below Horizon (24 beams)
    Typical selection for Static scanning:
    Only data from laser 1-24 will be used.
  • Every 2nd / 3rd / 4th / 5th beam
    This covers the entire vertical area, but not every beam will be used, so the vertical spacing between the beams is increased.
  • Entire Area (All beams)
    Typical selection for Static scanning:
    Data from all 32 lasers will be used.
  • Laser Beam 1 (TEST)
  • Laser Beam 32 (TEST)

Not all combinations with the Horizontal Area Selection are possible. Check the messages in the Events list whether your combination is allowed.
See for more about this the explanation in the Additional Information paragraph.

Blocked data due to this setting will not be recorded!

Horizontal Area Selection

A full circle scan goes from 0 to 360 degrees, with an angle step of 0.16°.

0 degrees means forward, 90 degrees means right (starboard side), which is the cable direction, 180 degrees looking backward, 270 means left (port side).

  • Full Circle

  • Forward (-90 - +90 deg)
  • Narrow Forward (-45 - +45 deg)
  • Backward (+90 - +270 deg)
  • Narrow Backward (+135 - +225 deg)
  • Starboard (0 - 180 deg)
  • Port (180 - 360 deg)

Not all combinations with the Horizontal Area Selection are possible. Check the messages in the Events list whether your combination is allowed.
See for more about this the explanation in the Additional Information paragraph.

Notice that blocked data due to this setting will not be recorded!

Minimum Range Set the minimum required range in meters. Valid values: 1 to 70 meters.

Using this setting is recommended, but be careful: Blocked data due to 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: 1 to 70 meters.

Using this setting is recommended, but be careful: Blocked data due to this setting (i.e. all pixels more than this range) will not be recorded!
Minimum Intensity Set the minimum required intensity (signal strength). Valid values: 0 to 255.

Note that blocked data due to this setting will not be recorded!

This option may not be available in your setup. In that case all signal strength values will be accepted.
Maximum Intensity Set the maximum allowed intensity (signal strength). Valid values: 0 to 255.

Notice that blocked data due to this setting will not be recorded!

This option may not be available in your setup. In that case all signal strength values will be accepted.
Store Laser Location If enabled, an additional pixel with zero range 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.

This setting is highly recommended, in order to use exact time stamping of the laser data.

When enabled, the laser unit must receive a valid PPS/Time Synchronization pulse from an external GPS receiver and UTC time-tag message. See Timing for more information.

Note that you can only change this setting when disconnected.


Enter a fixed latency value in milliseconds. When PPS/Time Synchronization is not used, time stamping of the data is done when the data packet is received at the UDP port.
The time will be corrected by subtracting this value.

A latency can be provided by the manufacturer, or you may establish a value using a latency calibration procedure.

This option is only available when PPS is not used for timing.

Capture Raw Data

Enable this option if you want to store the raw binary data stream coming straight from the unit to a log file on disk.
This may be useful for debugging purposes, or to load the data into other software.

This binary log file will be located in the current project's LogFile folder and the naming convention will be <System Name> - DD-MM-YYYY - <Sequence>.bin.
The sequence number is incremented after every Start/Stop capturing action.

Please note that this binary file is of no use for Qinsy, and it may affect the online performance because of the extra hard disk activity.

This option may not be available in your setup. In that case no raw data will be captured.

Generic Display

The Generic Display can be used to validate the laser data integrity.
It shows 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 value to monitor is the  Ping Age , especially when setting 'Use PPS' is enabled. The Ping Age is the difference between the current computer time and the time of the last received data package. This value should be small, around zero!
Notice that a GPS/PPS may be connected via the interface box to the laser unit, but there is no feedback whether the unit has accepted pulse and/or time-tag. 
For example, if you see a very high Ping Age value (+ve or -ve), then this is a severe indication that the initial timing inside the laser unit is wrong.

The  Beam Quality  value contains the actual beam number (1 - 32), so it has nothing to do with any quality or intensity value.

The  Status Flag  value indicates whether you are using the calibrated vertical angles from the external angular correction xml file or not and whether PPS/Time Synchronization is used or not.

Status Flag Value Use PPS Use Calibration Factors
0 No No
2 Yes No
16 No Yes
18 Yes Yes

You may use the attached example Generic Display 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 (Select Edit, Layout…, go to RAW DATA, Multibeam Echosounder (2), and select your laser system for  both  parent items).

Raw Multibeam Display

Open View Properties and set the Backscatter Intensity range between 0 and 255.

Enable Waterfall scrolling, and set both scroll values to 0 (zero) pixels.

If you want to see the intensity while online, open View Properties and set the Color Coding to Backscatter.

Additional Information

 The HDL-32E has the following features and limitations:

  • The vertical angle resolution between the 32 lasers is 1.33°.
  • The horizontal angle resolution is 0.16°.
  • Spin rate of the unit is fixed at 10 Hz.
  • Maximum deliverable of approximately 700 thousand measurements / second (formula: 360° / 0.16° * 32 lasers * 10 Hz).
  • Minimum range 1 meter. You may receive returns from objects closer by, but the manufacturer recommends not to use these ones.
  • Maximum range 70 meter. You may receive returns from objects up to 100 meters, but the manufacturer recommends not to use these ones.
  • The decoded intensity will be a value between 0 and 255 and depends on the target's surface being hit. 
    For scanners with firmware v2.0 or higher the intensity will be the calibrated reflectivity: Diffuse reflectors (natural objects) will show values between 0 and 100 (for 0% - 100% reflectivity) and retro-reflectors (street signs, lane markers, license plates, etc) will show values between 101 and 255. 

Due to the UDP broadcast characteristic of the HDL-32E a ping (or full scan) does not contain all the beams from one full rotation. A ping in Qinsy will be filled with all laser firing data received from ten consecutive UDP packets.
One packet contains 12 times data for all 32 lasers (with a horizontal increment of 0.16°), so a Qinsy ping contains a maximum of 3840 beams. Notice that the beam quality value is 'mis-used' in order to store the real beam number (1 - 32).
You may color-code on 'quality' in the Validator for an indication of which beams are being used.

Trouble Shooting

Although the HDL-32E may output 700 thousand points per second, be aware that Qinsy handles only approximately 250 thousand measurements per second. 
Note that this value can be safely much higher but depends highly on the used hardware.

Nevertheless it is important to prepare the project prior the start of the scanning by optimizing all parameters to meet the necessary requirements: 
Select the right Vertical and/or Horizontal Area selection and/or range blocking in order to decrease the number of expected points per second.

An advanced user may overrule this limitation of max 250 thousand points per sec. 
The best reason for doing this is to by-pass the check which is done by the driver every time prior to the Start command to see if the theoretically expected number of points per sec does not exceed the limitation.

First go offline. Use a registry editor and change registry key:
HKEY_CURRENT_USER\Software\QPS\QINSy\8.0\Drivers\DrvLaser\HDL-32E\<Your System Name>\Settings\QinsyMaxPixelPerSecond
You may enter a value up to 1 000 000. Please notice that when you do use a higher value, it is highly recommended to store only to db, and not to DTM nor Sounding Grid file, and only have a limited amount of displays open.
A DTM file (QPD) can always safely be created with Replay.

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.

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.

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.