Troubleshooting
This page first lists the general checks that help with every problem. Start with them. Then find your symptom in the categories below: each problem lists its symptoms, possible causes, a diagnostic procedure and the resolution. The last section lists what to send to support.
General checks
Configuration
LumiScan Calibration uses:
-
an application configuration file (
lumiscan-calibration.json) that references -
one or more module configuration files (
<module name>.json), each naming a TIFF file.
The configuration files can be found under:
-
On ctrlX OS: Manage App Data > active > lumiscan-calibration
-
On a PC (Windows):
%APP_RESOURCE_DIR%\etc\lumiscan-calibration, or withoutAPP_RESOURCE_DIRC:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-calib\etc\lumiscan-calibration
Their content is also shown on the Data Layer, on
hdvisionsystems/lumiscan-calibration/system/settings. A module file that could not be read
appears there with an "$error" that says why. See
Settings on the Data Layer.
Restart LumiScan Calibration after changing lumiscan-calibration.json. After changing a module
configuration file or its TIFF file, a reset of the module (control/reset) is enough.
For more information about the configuration files, see Application Settings File and Module Configuration File.
Status of the application and its modules
-
hdvisionsystems/lumiscan-calibration/system/found-moduleslists the modules the application serves.hdvisionsystems/lumiscan-calibration/system/status-textis"Initialized"once it serves its modules, or says why it serves none. -
hdvisionsystems/lumiscan-calibration/<module name>/control/status/codeand.../control/status/textreport the outcome of the last function. An error status stays until the next request. The meaning of each value is listed in Status Code Values. -
Status
-5(restartRequired) means that the settings were changed on the Data Layer: restart the application withhdvisionsystems/lumiscan-calibration/system/control/restart/execute. See Settings on the Data Layer.
Logs
If an issue cannot be resolved using the checks described below, review the log. Each module writes why it could not load its files or start its stream.
-
ctrlX OS: the ctrlX OS system log. Read it in the Logbook of the ctrlX web interface, or with
journalctl. See ctrlX Data Layer on ctrlX OS. -
PC: the output of LumiScan Calibration in its console.
Data Layer
For problems with the Data Layer itself, see Data Layer troubleshooting.
Modules and addresses
Problem: A calibration module does not appear in the Data Layer
-
There is no node
hdvisionsystems/lumiscan-calibration/<module name>for a module you configured, andhdvisionsystems/lumiscan-calibration/system/found-modulesdoes not list it. -
No module appears at all, or the application itself is missing from the Data Layer.
-
The module configuration file is not listed under
modulesinlumiscan-calibration.json. A listed module appears even when its file cannot be loaded. -
The module is looked for under the wrong name. Its name is the name of its file without
.json, in lower case. Thenamein the module’stransformblock does not change it. -
lumiscan-calibration.jsonwas changed, but the application was not restarted. -
lumiscan-calibration.jsonlists no module. -
The application stopped at start, for example because
lumiscan-calibration.jsonis not valid JSON, or (ctrlX OS) because the licence is missing.
-
Read
hdvisionsystems/lumiscan-calibration/system/found-modules- expected: the module’s name. -
Check
modulesinlumiscan-calibration.json- expected: the module configuration file is listed. -
Look for the module under the name of its file without
.json, in lower case. -
Read
hdvisionsystems/lumiscan-calibration/system/status-text- expected:"Initialized". Otherwise it says why the application serves no module, for example whenlumiscan-calibration.jsonlists no module. -
If the application itself is missing from the Data Layer, read the log (see Logs) - it says why the application stopped at start.
-
If the file is not listed: add the file name to the
moduleslist oflumiscan-calibration.json, then restart LumiScan Calibration. See Adding New Module. -
If you looked under the wrong name: use the name of the file without
.json, in lower case:hdvisionsystems/lumiscan-calibration/<module name>. -
If
lumiscan-calibration.jsonwas changed without a restart: restart LumiScan Calibration, for example withhdvisionsystems/lumiscan-calibration/system/control/restart/execute. -
If the application stopped at start: correct
lumiscan-calibration.jsonas the log says, then start the application again. If the log names a missing licence, see Requirements.
Send the information listed under Information for support to support, together with the content of
system/status-text and system/found-modules, and lumiscan-calibration.json.
Problem: Data Layer addresses under lumiscan-cam-calibration no longer work
Addresses that start with hdvisionsystems/lumiscan-cam-calibration/… no longer work.
-
From v1.2.1, the application’s Data Layer name changed from
lumiscan-cam-calibrationtolumiscan-calibration.
-
Check the version of LumiScan Calibration - the change applies to v1.2.1 and later.
-
Check the addresses your program or PLC uses - expected: they start with
hdvisionsystems/lumiscan-calibration/.
-
If the addresses still use the old name: update all addresses to
hdvisionsystems/lumiscan-calibration/…. See Release Notes: v1.2.1.
Send the information listed under Information for support to support, together with the addresses that do not work.
Transforming points
Problem: transform/ready stays false, and the status is -2
-
control/transform/readystaysfalse. -
control/status/codeis-2(invalidSetting). -
control/transform/executeanswersDL_INVALID_OPERATION_MODE. -
A running stream publishes
NaNfor every point.
-
The module has no lookup table: its module configuration file or the TIFF file it names could not be loaded, for example because the TIFF file is missing.
-
The module configuration file has invalid or missing parameters, including its
streamsection. A malformedstreamsection is a malformed module file, for example stream mode without a source (enableset totrueand noaddress), a step of anotherkind, or a key of a step written at the top of the section instead of inonEntry. -
The licence is not available. The status is then
-4(missingLicense), and the module runs no function until the licence is back.
-
Read
control/status/code--2: a file could not be loaded;-4: the licence is missing. -
Read the log (see Logs) - it says why the files could not be loaded, and names a malformed key.
-
Check that the TIFF file named by
relativePathToTiffexists beside the module configuration file. -
Check the module configuration file for invalid or missing parameters, including its
streamsection.
-
If a file could not be loaded (status
-2): correct the files and reset the module. The module does not keep transforming with the old table, so that a corrected file is never mixed with an outdated one. See Reloading the settings.-
Correct the module configuration file or the TIFF file.
-
Reset the module (
control/reset). No restart is needed. -
Check that
control/status/codeis0andcontrol/transform/readyistrue.
-
-
If the licence is missing (status
-4): install the licenceSWL-W-XCx-CALIBRATExHDVSx-V2NN. On ctrlX OS, the application shuts down shortly after starting if the licence is missing. See Requirements.
Send the information listed under Information for support to support, together with the module configuration file, the name of its TIFF file and the log lines of the failed load.
Problem: The application does not react to a request
After you set XXX/control/<function name>/request to true, XXX/control/<function name>/ready
does not change to false, or the function does not run. XXX is
hdvisionsystems/lumiscan-calibration/<module name>.
-
More than one process writes the
requestnode. The behaviour is then undefined, because the application can miss a request. -
requestwas not set back tofalse. The module waits forrequestto fall for as long as it takes. -
Your program uses another Data Layer version than the application.
-
Check which programs write
XXX/control/<function name>/request- expected: only one process. -
After setting
requesttotrue, readready- expected:false(the module has seen the request). -
After setting
requestback tofalse, readready- expected:trueagain when the function has finished. -
Check the Data Layer version your program uses - expected: the same as the application.
-
If more than one process writes
request: make sure only one process accessesXXX/control/<function name>/requestat a time. A program that cannot coordinate with others can use theexecutemethod instead (XXX/control/<function name>/execute), which refuses a second call while one runs. -
If
requestwas not set back: setrequesttofalseafterreadyhas changed tofalse. See Running a function. -
If the Data Layer versions differ: use the same Data Layer version as the application.
Contact HD Vision Systems with the information listed under Information for support, together with
the function you request and the values of ready, request and control/status/code.
Problem: The transformed coordinates do not match the image
The transformed coordinates do not correspond to the expected positions.
-
An axis is inverted.
-
The required origin is not defined correctly. The calibration does not define the application-specific reference point automatically.
-
Units are mixed, such as millimeters and pixels, in the application and connected systems.
-
The configured TIFF file does not belong to the camera and calibrated plane in use.
-
A point lies outside the lookup table. It gives a value from the edge of the table, without an error.
-
Move an object in a known direction and observe how the coordinates change - expected: each coordinate changes in the expected direction.
-
Check the reference point - expected: the origin your application needs is defined.
-
Check the units of the application and connected systems - expected: the same units throughout.
-
Check
relativePathToTiffin the module configuration file - expected: the TIFF file for the camera and calibrated plane in use. -
Check the input points - expected: within the image the lookup table was made for.
-
If an axis is inverted: a coordinate changes in the opposite direction. Send the observed and the expected direction to support (see Information for support).
-
If the reference point is not defined: define the origin your application needs. The calibration does not do this automatically.
-
If units are mixed: use consistent units throughout the application and connected systems.
-
If the wrong TIFF file is configured: configure the TIFF file for the camera and calibrated plane in use, then reset the module (
control/reset). -
If points lie outside the lookup table: keep the points within the image the table was made for.
Send the information listed under Information for support to support, together with some input points, the coordinates you get and the coordinates you expect.
Streams (experimental)
Problem: The stream does not start
control/subscribe/output/stream/active stays false after control/subscribe/execute was called
with control/subscribe/input/enable set to true.
-
control/subscribe/input/addressis empty, or the queue size is not 1 to 4096: the call answersDL_INVALID_VALUE(ctrlX Data Layer) orRejected(LumiScan Keryx). -
The module configuration file is malformed (status
-2), for example a step ofstream.onEntrythe module does not have, or a key of a step written at the top of thestreamsection. -
A remap path does not fit the schema.
-
The change could not be saved in the module configuration file: the call answers
DL_CREATION_FAILED. -
The settings were edited on
system/settings, and the application waits for a restart: the call answersDL_RESOURCE_UNAVAILABLE. -
The licence is missing. The stream runs only while the licence is present.
-
Check the answer of
control/subscribe/execute- expected:DL_OK. -
Check
control/status/code--2: the module configuration file is malformed; the log names the key. -
Check
setting/stream/enableandsetting/stream/address- they show what the module applies. -
Read the log (see Logs) - the module writes why the stream could not start, for example a remap path that does not fit the schema.
-
If the address is empty or the queue size is out of range: write the source’s folder to
control/subscribe/input/address, or a queue size from 1 to 4096 tocontrol/subscribe/input/queue-size, and callcontrol/subscribe/executeagain. -
If the
streamsection is malformed or a remap path does not fit: correct thestreamsection and reset the module. A failed start is retried after the reset, or after stream mode is switched off and on again withcontrol/subscribe/execute. See Configuring a stream. -
If the call answers
DL_CREATION_FAILED: the module configuration file could not be read or written. The answer and the log say why. Nothing changed. -
If the call answers
DL_RESOURCE_UNAVAILABLE: restart the application, see Status of the application and its modules. -
If the licence is missing: see Requirements.
A source the stream cannot subscribe to does not keep it from starting: it is tried again every 5 seconds, and the first failure is in the log. See Problem: The stream runs, but no points arrive.
Send the information listed under Information for support to support, together with the answer of
control/subscribe/execute, the values of setting/stream/enable and setting/stream/address, and
the stream section of the module configuration file.
Problem: The stream runs, but no points arrive
control/subscribe/output/stream/active is true, but no points, or invalid points, arrive on
control/subscribe/output/stream/points or control/subscribe/output/stream/plain-points.
-
received-updatesstays0: the source does not change, orsetting/stream/addressand the step’snodename another node than intended. -
failed-updatesgrows: the updates are not of the expected kind. -
invalid-pointsgrows withpoints: the points lie outside the lookup table, or the module has no table (status-2). -
skipped-updatesgrows: the source updates faster than the module transforms.
-
Check the counters under
control/subscribe/output/stream/statistics- expected:received-updatesgrows, andfailed-updates,invalid-pointsandskipped-updatesstay at0. -
Compare
setting/stream/addressand the step’snodewith the node you intend - expected: the nodenodein the folderaddress, exactly as written, including the case. -
Read the log (see Logs) - it warns about an address that names the node twice, says when the source could not be subscribed to, and shows the first failed update.
-
If
received-updatesstays0: make the source change, or correctaddressandnode. The module subscribes to the nodenodein the folderaddress, exactly as written, including the case. An address that still ends in the node names it twice. On the ctrlX Data Layer, an ordinary node such as a PLC array is read about every 100 ms, and changes in between are not seen; on LumiScan Keryx, writing the same values again is not an update. See What a stream receives. -
If
failed-updatesgrows: send updates of the expected kind. A plain stream needs a float32 or float64 array with a whole number of points; a remap stream needs a flatbuffer of the type itsschemanames. -
If
invalid-pointsgrows: keep the points within the lookup table, or, if the status is-2, follow Problem:transform/readystaysfalse, and the status is -2. -
If
skipped-updatesgrows: reduce the source’s rate or the number of points per update. For short bursts, a larger queue size (control/subscribe/input/queue-size, saved asqueueSize) helps. See The queue.
Send the information listed under Information for support to support, together with the values of
the counters under control/subscribe/output/stream/statistics and the stream section of the
module configuration file.
Information for support
If a problem persists, send the following to HD Vision Systems customer success at customer.success@hdvisionsystems.com or +49 6221 6721905. For licences, contact licenses@hdvisionsystems.com.
-
The version of LumiScan Calibration.
-
The platform: ctrlX OS and its version on a ctrlX CORE or ctrlX IPC, or a PC with Windows 11 or Ubuntu 24.04 and LumiScan Keryx.
-
The log: on ctrlX OS, the ctrlX OS system log (Logbook of the ctrlX web interface, or
journalctl); on a PC, the console output of LumiScan Calibration. -
The date and time when the error occurred.
-
The Data Layer status:
system/status-text,system/found-modules, and for the affected modulecontrol/status/code,control/status/textand the result that anexecutecall answered. -
The configuration:
lumiscan-calibration.jsonand the module configuration files, or the content ofhdvisionsystems/lumiscan-calibration/system/settings, and the name of the TIFF file.