HDL-32E Firmware Description and Upload

HDL32E Software Version V2.0
Description of New Functionalities and Changes
December 4, 2012 (Wolfgang Juchmann)
HDL32E Version 2.0 Software Overview
New Features:
–  WebServer with GUI and API
–  Calibrated Reflectivity Values
–  Zero Horizontal Angle Calibration
–  Improved GPS and Timestamp Handling
Noticeable changes to previous Software (V1.0):
–  Default IP address now 192.168.1.201 (changeable via WebServer)
–  Intensity now represents 256 calibrated reflectivity values (not 11 laser powers)
-2-
Noticeable changes to Version 1.0
• 
Default IP address is now 192.168.1.201
–  With the introduction of the WebServer functionality with Version 2.0, the IP addresses as well as the
Gateway and Network addresses can now be configured by the user. Therefore there is no need to
ship HDL32E with different IP address, but all of them will be shipped with the default address
192.168.1.201.
• 
Intensity now represents 256 calibrated reflectivity values (not 11 laser powers)
–  As a result of better differentiation between diffuse reflectors and retro-reflectors, diffuse reflectors
are now represented with values in the range from 0-100 and retro-reflectors from 101-255.
–  Depending on the users choice of color scaling, this might result in a shift of colors from what the
user is used to. Adjustment of color scaling corresponding with the definition for diffuse and retroreflectors in Version 2.0 will help with better differentiation for the reported calibration values.
-3-
HDL32E V2.0 WebServer Functionality
November 30, 2012 (Wolfgang Juchmann)
WebServer with GUI and API
–  The HDL32E now contains a WebServer that allows the user to monitor configuration
parameters, choose network settings, control rotational speed and upload new firmware and/or
calibration files
–  The WebServer can be accessed by a GUI using Internet Explorer (other browsers are mostly
compatible but have small issues with the live update portion of the GUI) or by issuing “JSON”
commands and receiving “XML” style returns via a computer
–  JSON Commands:
• 
• 
• 
• 
http://<hdl-ip-addr>/cgi/settings.json
http://<hdl-ip-addr>/cgi/status.json
http://<hdl-ip-addr>/cgi/info.json
http://<hdl-ip-addr>/cgi/diag.json
with default <hdl-ip-addr> = 192.168.1.201
-5-
How to use WebServer
• 
Plug Ethernet cable into Host Computer
• 
Disable all other Internet / Ethernet / Wireless connections
• 
Plug GPS into HDL32E adapter box (optional)
• 
Plug Power into HDL32E adapter box
–  after 5-8 seconds the HDL32E should start spinning
• 
Open Internet Explorer browser
–  other browsers might work but are not supported at this time
• 
Type in IP address of HDL32E sensor:
–  Default: http://192.168.1.201
• 
Internet Explorer will show HDL32 WebServer screens
• 
The “Download Snapshot” button on the Configuration Screen allows for recording
of all configuration parameters at once in a text based (xml) file.
-6-
Settings and Status
Default <hdl-ip-addr> : 192.168.1.201
Settings (settings.json)
curl -s http://<hdl-ip-addr>/cgi/settings.json | python -mjson.tool
!
{!
"laser":"On",!
"rpm":600,!
"host”:{!
"addr":"255.255.255.255”!
},!
"net”{!
"addr":"192.168.1.201",!
"mask":"255.255.255.0",!
"gateway":"192.168.1.1",!
"dhcp":"Off”!
}!
}!
Status (status.json)
curl -s http://<hdl-ip-addr>/cgi/status.json | python -mjson.tool
{
!
"gps":{!
"position":“37 08.3192N 121 39.5432W “!
},!
"motor“:!
"state":"On",!
"rpm":742!
},!
"laser":{!
"state":"On“!
}!
}!
Variable Laser RPM Type Descrip/on Set and Read Provides power to upper board and turns lasers on/off Set selects the approx. motor speed in rotaDons per minutes Typicial/Default ON 600 Range ON or OFF 0 and 300-­‐1200 Set and Read chooses/shows Host IP address of computer controlling sensor Set and Read chooses/shows Network IP address of sensor Set and Read chooses/shows Network Mask of sensor Network Mask Network Gateway Set and Read chooses/shows Network Gateway of sensor Set and Read selects DHCP of sensor as ON or OFF Network DHCP SET Bu`on Set acDvates the Network seOngs aaer changes 255.255.255.255 192.168.1.201 255.255.255.0 IP address format 192.168.1.1 OFF Press Bu`on IP mask format IP gateway format n/a n/a SAVE Config Download Snapshot Press Bu`on Press Bu`on n/a n/a Host IP Network Address Set Read saves all seOngs on this page into sensor aaer changes Saves all internal configuraDon parameters into HDLxxxSNxxx.hdl file -7-
Rules/Comments If Laser is OFF, there will be no distance packets. Allowed values: 300-­‐1200 RPM. Values outside this range are truncated. SeOng “0” will disable rotaDon and lasing. Actual RPM read value is scaled and may not equal RPM exactly. Do not set RPM’s that result in >1200 actual RPMs none none none none none All values take effect immediately, but are not saved over power cycle unDl save config bu`on has been pressed. none Information
Information (info.json)
curl -s http://<hdl-ip-addr>/cgi/info.json | python mjson.tool
{
• 
This screen shows which Hardware and
Software versions are being used in the sensor
• 
It also shows if the sensor has been switched
from an application to a failsafe mode
• 
API displays software versions as numerical
values that can be converted to version format
– 
17367302 = 0x01090106 => 0x01 09 01 06 > 1.9.1.6
"model":"HDL-32E",
"serial":"711024674",
“mac_addr":"60-76-88-20-12-42",
“image":{
"failsafe":{
"signature":2779096485,
"version":17367808,
"timestamp":1348862775,
"data_length":293836,
"data_crc":4045072806,
"res1":1212435456,
"res2":1343364855,
"header_crc":3114870981
},
"application":{
"signature":2779096485,
"version":17367808,
"timestamp":1352183794,
"data_length":364496,
"data_crc":3862843394,
"res1":1212435459,
"res2":1351184552,
"header_crc":3972623176
}
},
"sysid":{
"bot":{
"id":1212435459,
"timestamp":1351184552
},
"top":{
"id":1145588752,
"timestamp":1343356599
}
},
"state":{
"bot":{
"factorymode":0,
"powerup":0,
"runconfig":0,
"wdtimer":0,
"nstatus":0,
"crcerr":0,
"nconfig":0,
"appmode":1,
"wden":1,
"prevaddr":0,
"appaddr":16777216,
"wdto":118489096
},
!
-8-
"top":{
"factorymode":0,
"powerup":0,
"runconfig":0,
"wdtimer":0,
"nstatus":0,
"crcerr":0,
"nconfig":0,
"appmode":1,
"wden":1,
"prevaddr":0,
"appaddr":917504,
"wdto":262144008
}
},
"fpgaid":{
"bot":{
"id":2,
"version":17367302,
"timestamp":0
},
"top":{
"id":1,
"version":17302536,”
timestamp":0
}
},
"appid":{
"bot":{
"type":2,
"version":17367808,
"timestamp":1352183659
},
”top":{
"type":1,
"version":17367808,
"timestamp":1348862211
}
}
}!
Diagnostics
Diagnostics (diag.json)
curl -s http://<hdl-ip-addr>/cgi/diag.json | python -mjson.tool
{!
"volt_temp":{!
"bot”:{!
"i_out":3719,!
"pwr_1_2v":1489,!
"lm20_temp":1800,!
"pwr_5v":1743,!
"pwr_2_5v":3519,!
"pwr_3_3v":4095,!
"pwr_v_in":1785,!
"pwr_1_25v":1583!
},!
"top":{!
"hv":2657,!
"ad_temp":629,!
"lm20_temp":1086,!
"pwr_5v":2063,!
"pwr_2_5v":2049,!
"pwr_3_3v":2681,!
"pwr_5v_raw":2183,!
"pwr_vccint":976!
}!
},!
"vhv":363!
}!
• 
This screen is for factory diagnostics purposes.
• 
Values are not calibrated and only have limited
meaning
-9-
System
Variable Model SN MAC ConfiguraDon System Info DiagnosDcs Update Firmware Update CalibraDon Reset System Type Read Read Read Set and Read Set and Read Set and Read Set and Read Set Set Set Typical/Default HDL-­‐32E 711024674 60-­‐76-­‐88-­‐20-­‐12-­‐42 white or blue when selected white or blue when selected white or blue when selected white or blue when selected yyyyy.flash xxxxx.srec n/a Range HDL-­‐32 versions 9 digit number 12 digit MAC format white,blue white,blue white,blue white,blue n/a n/a n/a Rules/Comments none none none only one screen selected only one screen selected only one screen selected only one screen selected n/a (only upload factory recommended firmware updates) n/a (careful with uploading the wrong calibraDon file) takes about 30 seconds Read Descrip/on shows model number shows unique Serial Number shows unique MAC address selects ConfiguraDon screen selects DiagnosDcs screen selects Info screen selects DiagnosDcs screen allows new firmware upload allows new calibraDon upload restarts processors to a fresh power on state shows GPS posiDon if connected PosiDon 37 08.3027N 121 39.5421W n/a none Motor Read Shows motor status ON ON or DISABLED Lasers will be disabled when rotaDons are below 200 RPM’s RPM Read 0 -­‐ 3000 Laser Read shows actual measured rotaDons 600 per minutes shows if laser is ON or DISABLED ON RPM actual read value does have an offset to set value, since there is no feedback loop connecDng set and read value. Do not set RPM;s that result in > 1200 RPM measured Laser turns OFF when measured motor speed is less than 200 RPM’s -ON 10or DISABLED -
Firmware Upload Procedure
This procedure should only be performed if instructed by Velodyne
to upload a new firmware version.
• 
Establish communication via internet explorer and the IP
address
– 
• 
For backup purposes, press Download Snapshot and save file
– 
• 
- 11 -
Default: https://192.168.1.201
HDL<sensor serial number>.hdl
Switch to Systems page
Firmware Upload Procedure
• 
Click Browse and locate firmware to be uploaded
– 
xxxx.flash format
• 
Click Open and see file path in window
• 
Click Update and notice progress status (next slide
- 12
-
Firmware Upload Procedure
• 
Once uploaded the following window will open
• 
Press Process Firmware Update
• 
Monitor Progress status
• 
Once 100% has been reached, press reset system
• 
Main Page will appear again after reset (next slide)
- 13
-
Firmware Upload Procedure
• 
Press Download Snapshot to safe configuration after upload
• 
Change to Info screen to see new versions of software
• 
API displays software versions as numerical values that can be
converted to version format
–  17367302 = 0x01090106 => 0x01 09 01 06 > 1.9.1.6
- 14
-
HDL32E: V2.0 Calibrated Reflectivity
November 30, 2012 (Wolfgang Juchmann)
Calibrated Reflectivity Value (Version 2.0)
–  Version 1.0 of the HDL32E reports in the data packages the measured distance as well as a value
labeled intensity. The reported intensity value is based on one of 11 laser powers that the sensor
has dynamically chosen based on best signal to noise ratio on the detector for the previous shot
form that laser.
• 
• 
• 
Low reflectivity targets generate small signal and a high laser power is chosen and reported.
High reflectivity targets report a high signal and a low laser power is chosen and reported.
Therefore in V1.0 the reported laser power values are an inverse measure of the reflectivity.
–  Version 2.0 of the HDL32 measures the true reflectivity of a target independent of laser power and
distance with true 256bit resolution.
• 
• 
Diffuse reflectors report values from 0 to 100 for 0-100% reflectivity
Retro-reflectors report values from 101 to 255 with 255 being the reported reflectivity for an ideal retro-reflector
and 101 – 254 being the reported reflectivity for partially obstructed retro-reflectors or imperfect retro-reflectors.
–  The HDL32E is calibrated using commercially available reflectivity standards.
–  A ~95 m test range allows for accurate calibration of reflectivity values independent of distance.
–  As a result of better differentiation between diffuse reflectors and retro-reflectors, diffuse reflectors
are now represented with values in the range from 0-100 and retro-reflectors from 101-255.
–  Distances of < 0.5 m and from beyond the detection range are reported as zero meters.
–  Depending on the users choice of color scaling, this might result in a shift of colors from what the
user is used to. Adjustment of color scaling corresponding with the definition for diffuse and retroreflectors in Version 2.0 will help with better differentiation for the reported calibration values.
–  A customer reported error were retro-reflectors “plume” out and form a “cloud” or “ghost image” in
front of or behind their exact location has been fixed.
- 16
-
HDL32E: Intensity Data
• 
• 
Intensity data output format the same as previously (8 bit, 0-255 values)
value 0 – value 100
= 0 – 100% reflectivity from diffuse surface
a) 
b) 
black, absorbent
diffuse reflector
(value 0)
a)
• 
• 
• 
value zero means 0% reflectivity, which means that 0% of light is reflected back to the sensor (black, absorbent surface)
value 100 means 100% reflectivity, which means that 100% of light is reflected (white, highly reflective surface) into many directions of which
a small angle is captured by the sensor
b)
white, reflective
diffuse reflector
(value 100)
Values higher than 100% reflectivity are possible, if the surface is not a diffuse surface but a highly
reflective surface like a retro-reflector
Anything higher than 100% is defined as a partial reflection from a high reflector
Value 101 – 255 = partial reflection from retro-reflector
c) 
d) 
c)
value 101 means reflection is almost the same as white, reflective diffuse reflector (b) plus small amount of reflection from the retro-reflector
value 255 means ideal reflection of the retro-reflector (perfectly clean retro-reflector, no coverage)
retro-reflector covered with
semi-transparent white surface
(value 101)
d)
- 17 -
retro-reflector without
any coverage
(value 255)
HDL32E V2.0 Zero Angle Calibration
November 30, 2012 (Wolfgang Juchmann)
Zero Angle Calibration (Version 2.0)
• 
Zero Horizontal Angle Calibration
–  The HDL32E provides two holes on the bottom side for precision mounting
using dowel pins. In order to reproduce unit to unit reproducibility the zero
angle (for the rotational axis) is calibrated with respect to the dowel pins.
–  Previously the the zero angle accuracy was limited by manufacturing and
assembly tolerances of several rotational assemblies, while with Version
2.0 the zero angle is calibrated to the dowel pin holes after the assembly
providing much better unit to unit repeatability.
–  The target is centered to the mounting holes for dowel pins which are
permanently fixed to the floor
–  Several scans of laser 15 (horizontal) across the target are used to
determine the center position from the edge locations
–  The accuracy of the calibrated zero angle is about 0.05 degrees
–  The unit to unit repeatability has additionally been increased with Version
2.0 by not coating the bottom side of the HDL32E sensor, thereby
avoiding inaccuracies for mounting introduced by non-uniform coatings.
Dowel Pin hole
Dowel Pin slot
Silver coating has been
removed from bottom side
with version 2.0
New Features of Version 2.0
• 
GPS Fix
–  Customer had reported problems with the $GPRMC sentence related to the timing after a full second
and also with some missing characters. Both problems have been fixed in Version 2.0
• 
Timestamp Fix
–  Customers had reported problems with the timestamps “jumping” around especially after full hours.
This problem has been fixed with Version 2.0
- 20
-