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
The Cam Driver uses a two-level configuration:
-
The app configuration (
lumiscan-cam-driver.json) defines which camera modules are loaded. -
Each camera configuration (for example
camera_example.json) represents one camera.
If a camera configuration is missing, invalid, or not referenced correctly, the camera is not loaded and does not appear in the Data Layer.
Configurations are available under:
| Platform | Location |
|---|---|
ctrlX OS |
|
PC (Windows) |
|
On both platforms, /hdvisionsystems/lumiscan-cam-driver/system/settings shows the files as the
Cam Driver read them at start. A module file that could not be read appears there with an
"$error" that says why. The Cam Driver reads its files only at start: restart the application
after you change a file. See
Settings on the Data Layer.
Status of a camera module
Each camera module reports the outcome of its last operation on
hdvisionsystems/lumiscan-cam-driver/<camera name>/control/status/code (a number) and
.../control/status/text (its name). The meaning of each value is listed in
Status Code Values.
-
A failed
capturethrough the handshake ends at status3(waitingForClient), not at its own error code.control/capture/executekeeps the capture’s own code. See When a Functionality Runs. -
A failed
capture,reset,saveorloadis latched: its status stays until aresetsucceeds. Any other error stays oncontrol/status/codefor about 100 ms only. -
Check whether a camera is connected with
<camera name>/device-info/is-connected, not with the status.
Logs
If an issue persists, check the log for additional error information:
-
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 the Cam Driver in its console.
logLevel in the system section of lumiscan-cam-driver.json sets the log level: TRACE,
DEBUG, INFO, WARN, ERROR, FATAL or OFF. See
Application Settings Content Example.
A program that calls an execute method again and again while it is refused, for example
capture/execute while the camera is busy, would write one log line per call. For each method and
result, the application logs the first refusal, then at most one line every ten seconds, which says
how many refusals were not logged one by one, for example "(+250 like it since the last one
logged)". The execute result itself is still returned for every call.
Data Layer
For problems that concern the Data Layer itself - the broker of LumiScan Keryx, nodes that are not found, method results - see Troubleshooting of LumiScan Keryx.
Configuration and start
Problem: A configured camera does not appear in the Data Layer
There is no node /hdvisionsystems/lumiscan-cam-driver/<module> for a camera that you configured.
-
The camera configuration is missing, invalid, or not referenced correctly in
lumiscan-cam-driver.json. The camera module is then not loaded. -
The module’s
idcontains characters other than lower-case letters, digits,-and_. -
The file was changed, but the application was not restarted. The Cam Driver reads its files only at start.
-
The whole application is missing from the Data Layer, for example because the licence is missing (ctrlX OS) or the application uses another broker (PC).
-
Read
/hdvisionsystems/lumiscan-cam-driver/system/settings- expected: the module’s content in themoduleslist. A module file that could not be read appears as{"$file": ..., "$error": ...};"$error"says why. -
Check that the camera configuration file is entered in the list of camera configuration files in
lumiscan-cam-driver.json- expected: its file name is listed. -
Check the
idin the camera configuration file - expected: only lower-case letters, digits,-and_, and unique across all camera settings. -
Read the log (see Logs) - expected: no error for the module. For an invalid
id, the log says which id to write instead. -
If no node
/hdvisionsystems/lumiscan-cam-driverexists at all, the application itself is not running.
-
If the camera configuration is missing, invalid or not referenced: correct the app configuration and the camera configuration so that they reference each other correctly.
-
Correct the files, or change them on the Data Layer through
system/settings. -
Restart the application, for example with
hdvisionsystems/lumiscan-cam-driver/system/control/restart/execute. -
Check that
/hdvisionsystems/lumiscan-cam-driver/<module>exists.
-
-
If the
idhas invalid characters: write the id that the log names (for exampleCamera1→camera1), then restart the application. See Camera Example File Content Example. -
If the application is missing from the Data Layer: on ctrlX OS, see Problem: "No valid license found, please purchase one. If you do have one, please try to restart ctrlX". For a PC and for other Data Layer causes, see An app or a module is missing from the tree.
Send the information listed under Information for support to support, together with the content of
system/settings and the log lines from the start of the application.
Problem: Modules answer no request, and the status is -5 "restartRequired"
-
control/status/codeis-5(restartRequired) on every module. -
hdvisionsystems/lumiscan-cam-driver/system/restart-requiredistrue. -
Every
executemethod of a module answersDL_RESOURCE_UNAVAILABLE(ResourceUnavailableon LumiScan Keryx), and thereadysignals arefalse. -
A running image stream stops.
-
The settings were changed on the Data Layer (
system/settings,activate-module,deactivate-module). Until the next start, the application runs with settings that are no longer those of its files. -
A changed file could not be saved: the write answered
DL_CREATION_FAILED. Files changed before it stay changed, so the application requires a restart all the same.
-
Read
hdvisionsystems/lumiscan-cam-driver/system/restart-required- expected:true. -
Read
hdvisionsystems/lumiscan-cam-driver/system/status-text- it says which files changed. -
Read the log - the message is at error level.
-
If the settings were changed on the Data Layer:
-
Call
hdvisionsystems/lumiscan-cam-driver/system/control/restart/execute. Aresetdoes not help. -
Wait until
system/restart-requiredcan be read again. On ctrlX OS, the application ends, and ctrlX OS starts it again after about five seconds.
-
-
If a write answered
DL_CREATION_FAILED: correct the files, then restart the application as above.
See Restart required.
Send the information listed under Information for support to support, together with the content of
system/status-text and system/settings.
Problem: "No valid license found, please purchase one. If you do have one, please try to restart ctrlX"
-
control/status/codeis-4(missingLicense) with the textNo valid license found, please purchase one. If you do have one, please try to restart ctrlX. -
On ctrlX OS, the application stops shortly after starting.
-
From v2.2.0, the application logs a warning and shuts down when a licence is lost.
-
No valid licence is installed, or not enough for the configured cameras: you need one licence per connected camera.
-
A version 1 key is installed. From v2.0.0, the Cam Driver needs the licence
SWL-W-XCx-CAMDRIVERxHDVSx-V2NN. -
Up to and including v2.1.0: the licences were installed separately. Only the first Cam Driver V2 entry is read.
-
Read the ctrlX OS system log (see Logs) - it names the reason, the missing licence.
-
Open the Licenses page of ctrlX OS - expected: Cam Driver V2 licences for all connected cameras. Up to and including v2.1.0: one Cam Driver V2 entry that covers all cameras.
-
Compare the number of licences with the number of connected cameras - expected: one licence per camera.
-
If no licence or not enough licences are installed: install one licence
SWL-W-XCx-CAMDRIVERxHDVSx-V2NNper connected camera. See Requirements. -
If a version 1 key is installed: replace it with a V2 licence. Version 1 keys do not work from v2.0.0.
-
If the licences were installed separately (v2.1.0 and earlier): install all licences together, so that the Licenses page shows one Cam Driver V2 entry covering all cameras, or update to v2.2.0, which also supports separately installed licences.
-
For other purchase routes and licence problems, see the Licensing FAQ and Licensing troubleshooting.
Send the information listed under Information for support to support, together with the log lines that name the missing licence. For licences, contact licenses@hdvisionsystems.com.
Camera connection
Problem: A physically connected camera is not detected
The camera is missing from the lists under /hdvisionsystems/lumiscan-cam-driver/system:
found-camera-ip-addresses, found-camera-mac-addresses, found-camera-modules and
found-camera-serials.
-
The camera is not connected to the ctrlX CORE or the PC, or (ctrlX OS) not to a supported ctrlX port.
-
The camera is not powered, either externally or via PoE.
-
The IP addresses of the ctrlX CORE or the PC and of the camera are not configured correctly: the camera IP must be in the same local network.
-
Duplicate IP addresses exist in the network.
-
Read
found-camera-serials,found-camera-ip-addresses,found-camera-mac-addressesandfound-camera-modulesunder/hdvisionsystems/lumiscan-cam-driver/system- expected: the camera is detected, its IP address is correct, and the serial number matches the expected device. -
Check the cable - expected: the camera is connected to the ctrlX CORE or the PC; on ctrlX OS, to a supported ctrlX port.
-
Check the power supply - expected: the camera is powered, externally or via PoE.
-
Compare the IP address and subnet of the camera with those of the ctrlX CORE or the PC - expected: the camera is in the same local network.
-
Check the network for duplicate IP addresses - expected: each device has a unique IP address.
-
If the camera is not connected or not powered: connect it to the ctrlX CORE or the PC (on ctrlX OS, to a supported ctrlX port) and power it. For a ctrlX CORE X3, see Hardware Setup for ctrlX X3.
-
If the IP address is wrong: set it with the force-IP function under
hdvisionsystems/lumiscan-cam-driver/system/force-ip/. It also works when the subnet of the camera does not match the ctrlX CORE or the PC, as long as the camera is reachable over the same network connection. See Setup Camera IP Address.-
Read the camera’s MAC address from
system/found-camera-mac-addresses(same position in the list as its serial insystem/found-camera-serials). -
Set
gateway,ip,subnetand the camera’s MAC address. -
Wait until
readyistrue, setrequesttotrue, then back tofalse. -
When
readyistrueagain, check thatsystem/found-camera-ip-addressesshows the new address. If it does not, use the camera supplier’s program to set the IP.
-
-
If duplicate IP addresses exist: give each device a unique IP address. On a ctrlX CORE X3,
192.168.1.1is used by XF10: do not assign it to the camera or the computer.
Send the information listed under Information for support to support, together with the content of
the four found-camera-… lists and the network topology (switch or direct connection).
Problem: The camera does not connect (status -10000 "failedToConnectToCamera")
-
After the
connect-camerahandshake,/hdvisionsystems/lumiscan-cam-driver/<module>/device-info/is-connectedstaysfalse. -
control/status/codeshows-10000(failedToConnectToCamera) for about 100 ms only, then0again, with the camera still not connected.
-
The camera is not detected, see Problem: A physically connected camera is not detected.
-
The camera was unplugged and plugged back in.
-
The Ethernet configuration, such as buffer sizes and jumbo frames, does not match the camera specifications.
-
A PC on the same switch is accessing the camera at the same time. Parallel access can interfere with camera communication.
-
More than one process writes
connect-camera/request, so the application misses the request.
-
Read
<module>/device-info/is-connected- expected:trueafterconnect-camera. Do not judge the connection bycontrol/status/code. -
Check that the camera appears under
/hdvisionsystems/lumiscan-cam-driver/system- expected: its serial is infound-camera-serials. -
Before the request, read
<module>/control/connect-camera/ready- expected:true. If it isfalse, the precondition is not met or no camera is found: check that the camera IP is in the same local network as the ctrlX CORE or the PC. -
After setting
connect-camera/requesttotrue, readconnect-camera/ready- expected:false(the application has seen the request). -
Check whether a PC on the same switch accesses the camera - expected: it does not.
-
If the camera is not detected: follow Problem: A physically connected camera is not detected.
-
If the camera was unplugged and plugged back in (from v2.1.0): run the
resethandshake, which reportsfailedToConnectToCamerauntil it succeeds, then runconnect-camera.connect-camerahas noexecutemethod: use the handshake on/hdvisionsystems/lumiscan-cam-driver/<module>/control/connect-camera/request. See Connection Steps. -
If the connection still fails:
-
Power-cycle the camera by disconnecting it for approximately 30 seconds and reconnecting it.
-
Verify that the camera appears in the Data Layer.
-
Check the Ethernet configuration, such as buffer sizes and jumbo frames, according to the camera specifications.
-
-
If a PC accesses the camera at the same time: stop that access.
-
If the application does not see the request: make sure that only one process accesses
connect-camera/requestat a time, and that you use the same Data Layer version as the camera application.
Send the information listed under Information for support to support, together with the camera
serial number, the value of device-info/is-connected and the log lines of the connection attempt.
Image capture and saving
Problem: Image capture fails or is unreliable (status -10004 "couldNotCaptureImage")
-
capture/executeleavescontrol/status/codeat-10004(couldNotCaptureImage). -
Through the handshake, a failed capture ends at status
3, andcapture/readystaysfalseuntil aresetsucceeds. -
Images cannot be triggered reliably.
-
The camera is disconnected.
-
Communication fails because of poor connection quality.
-
The MTU size of the Ethernet port (ctrlX OS) or of the network adapter (PC) is too small.
-
A network component does not support the required data throughput.
-
Read
<module>/device-info/is-connected- expected:true. -
Check the cable - expected: a "Foil Shielded Twisted Pair" cable.
-
Check the MTU size - expected: 8000 or 9000.
-
ctrlX OS: Settings > Network Interfaces > the port in use > Advanced Settings.
-
PC: the MTU size (jumbo frames) of the network adapter the camera is connected to.
-
-
As a quick test, reduce the ROI - if image acquisition becomes more stable, the issue is likely related to network bandwidth.
-
If the camera is disconnected: reconnect it. A failed capture is latched: run
resetand thenconnect-camerawith the handshake. -
If the connection quality is poor: use a "Foil Shielded Twisted Pair" cable.
-
If the MTU size is too small: set it to 8000 or 9000. On ctrlX OS, if the port cannot change the MTU size, use an Ethernet port that supports large MTU sizes. See MTU Size Change.
-
If the network bandwidth is insufficient: make sure all network components support the required data throughput. On a ctrlX CORE X3, test different packet delay values until image acquisition is stable, see Complete the Camera Setup. Camera parameters can be adjusted using the manufacturer’s software, through the camera’s feature nodes under
/hdvisionsystems/lumiscan-cam-driver/<module>/features, or in a feature file listed in the module’scameras[].featureFiles. See GenICam features.
Send the information listed under Information for support to support, together with the content of
control/status/code and control/status/text, the MTU size and the network topology.
Problem: A write to execute answers "DL_TOO_MANY_OPERATIONS" or "TooManyOperations"
A write to <camera name>/control/<operation>/execute answers DL_TOO_MANY_OPERATIONS (ctrlX
Data Layer) or TooManyOperations (LumiScan Keryx).
-
The camera is busy with another operation right now.
-
The image stream is starting or stopping. After the stream stops, the camera is connected again; until then,
capture/executeanswersDL_TOO_MANY_OPERATIONS.
-
Read
control/status/code-2(running): another operation runs. -
Read
control/publish/output/stream/activeandcontrol/capture/ready- after the stream stops,capture/readyturnstrueonce the camera is connected again.
-
If the camera is busy: retry. A rejected write is never queued; the same write succeeds once the running operation has finished.
-
If the stream is starting or stopping: wait until
capture/readyistrue. This takes about two seconds on the camera we tested.
DL_RESOURCE_UNAVAILABLE (ResourceUnavailable) is a different result: the application is
shutting down - retrying does not help - or a restart is required, see Problem: Modules answer no request, and the status is -5 "restartRequired".
See Calling execute.
Send the information listed under Information for support to support, together with the operation you call and the result it answers.
Problem: A write to execute answers "DL_INVALID_OPERATION_MODE", or capture keeps being refused
-
A write to
<camera name>/control/<operation>/executeanswersDL_INVALID_OPERATION_MODE(ctrlX Data Layer) orInvalidOperationMode(LumiScan Keryx). This applies to v2.2.0 and later; earlier versions reported this case asDL_TOO_MANY_OPERATIONS. -
capture/executeis refused again and again, also after the camera captured once.
The operation’s ready signal is false, so the camera is not in a state where the operation can
run:
-
capture: the camera is not connected, a capture fault is latched (after a failed capture), or the image stream runs. -
save: no image is available yet. -
load,remove:<camera name>/output/image-filesis empty. -
trigger: the camera is not connected.
-
Read
<operation>/ready-falsenames the missing precondition. -
Read
control/status/codeandcontrol/status/text- the status text still carries the message from the fault that caused it. -
Read
<camera name>/device-info/is-connected- expected:true. -
Read
control/publish/output/stream/active-true: the image stream runs. -
For
loadandremove, read<camera name>/output/image-files- expected: not empty.
Do not retry blindly; establish the precondition first:
-
If the camera is not connected, or a capture fault is latched: run
resetand thenconnect-camerawith the handshake (resethands back a disconnected camera). Both have noexecutemethod, so a program that usesexecuteonly must connect, and recover from a latched fault, through the handshake. -
If the image stream runs: stop it and wait until
capture/readyistrue, see Problem: Capture is refused while the image stream runs. -
If no image is available for
save: capture or load an image first. -
If
output/image-filesis empty: runlist-imagesor save an image first.
Send the information listed under Information for support to support, together with the values of
<operation>/ready, control/status/code and control/status/text.
Problem: Images are not saved (status -10006 "saveImageFailed" or -10005 "noImageTaken")
-
control/status/codeis-10006(saveImageFailed) or-10005(noImageTaken). -
Save does nothing, or there is no image in the storage folder.
-
noImageTaken: no image has been captured yet. -
saveImageFailed: the storage cannot be written -ip,usernameorpasswordin the storage settings are wrong, the IP is not reachable from the ctrlX CORE or the PC, or the shared folder has not enough free space. -
Storage is not configured, or configured incorrectly: without a
storageblock in thesystemsection oflumiscan-cam-driver.json, Save does nothing. -
(ctrlX OS) The USB storage device or SD card is not mounted, or does not use FAT32 or EXT4.
-
Read
output/package-identifier- if it is zero, no image has been captured, andsave/readyisfalse. -
Check the
storageblock in thesystemsection oflumiscan-cam-driver.json- expected: atype(InternalorSamba) and its parameters. See Storage settings. -
For
Samba: check thatip,usernameandpasswordare correct, that the IP is reachable from the ctrlX CORE or the PC, and that you can access the folder with the configured user account - expected: access works and the folder has free space. -
For a USB storage device or SD card (ctrlX OS): check under Settings > Storage Devices that it is mounted - expected: its path (for example
/media/sdb1) is the beginning ofrootPath. -
Read the log - it shows incorrect settings information.
-
If no image has been captured (
noImageTaken): capture an image before saving. -
If the storage cannot be written (
saveImageFailed): correctip,usernameandpassword, make the IP reachable, or free space in the shared folder. -
If storage is not configured or configured incorrectly:
-
Add or correct the
storageblock, see Saving Image Files. -
Restart the application.
-
Call Connect Camera, Capture and Save, and check that an image is in the storage folder.
-
-
If the USB storage device or SD card is not mounted (ctrlX OS): mount it under Settings > Storage Devices with For data exchange, and start
rootPathwith the path shown there.
A failed save is latched until a reset succeeds; a save before anything was captured
(-10005) is not.
Send the information listed under Information for support to support, together with the storage
block (the password is shown as "*" on system/settings) and the log lines of the failed save.
Problem: Images do not match expectations
The captured images do not look as you expect from the camera settings.
-
The camera settings are not saved or not applied correctly.
-
A value was written to a feature node under
features. Such a value is lost when the camera is connected again. -
The exposure time on
input/exposure-timeand the inter-packet delay are not applied while the image stream runs.
-
Save an image with
/hdvisionsystems/lumiscan-cam-driver/<module>/control/save/execute, or thesavehandshake (control/save/request), and look at it - expected: it matches the settings. -
Check where the camera features are set - expected: in a feature file listed in the module’s
cameras[].featureFiles, which is applied each time the camera is connected. -
Read
control/publish/output/stream/active-true: the stream runs, and the exposure time is not applied.
-
If the settings are not saved or not applied: if the camera supports it, export the camera configuration, for example in GenICam format, and import it into LumiScan to keep the settings consistent.
-
If a value written to a feature node was lost: put the feature into a feature file listed in the module’s
cameras[].featureFiles. See GenICam features. -
If the image stream runs: stop the stream, change the camera features, then start the stream again.
Send the information listed under Information for support to support, together with a saved image, the camera configuration and the feature files.
Image stream (experimental)
Problem: Capture is refused while the image stream runs
-
control/capture/executeanswersDL_INVALID_OPERATION_MODEwhile the stream runs, andDL_TOO_MANY_OPERATIONSwhile the stream is starting or stopping. -
A capture request through the handshake ends with status
-3(invalidInput) and the textcapture refused: the image stream (experimental) is active. -
control/capture/readyisfalse.
-
The experimental image stream runs. The stream and
captureuse the camera in different ways, so they never run at the same time. -
The stream has just stopped, and the camera is being connected again.
-
Read
control/publish/output/stream/active-true: the stream runs. -
After stopping the stream, read
control/capture/ready- expected:trueafter about two seconds.
-
If you need a capture: stop the stream. No
resetis needed: the refusal latches no fault.-
Write
falsetocontrol/publish/input/enable. -
Call
control/publish/execute. -
Wait until
control/capture/readyistrueagain. That takes about two seconds on the camera we tested, because the camera is connected again after the stream.
-
-
If you need single images while streaming: take them from
control/publish/output/stream/frameinstead of stopping the stream, or applykeep-latest-outputand readoutput/imagewhenoutput/package-identifierchanges.
Send the information listed under Information for support to support, together with the values of
control/publish/output/stream/active and control/capture/ready.
Problem: The image stream delivers no images, or fewer than expected
Your program receives no images on control/publish/output/stream/frame, or fewer than
expected. A dropped image shows as a gap in the frame numbers (sequence).
-
The stream does not run: the inputs were written, but
control/publish/executewas not called; the stream could not start; or the Cam Driver was restarted - after a start, the stream is off. -
framesstays at0: the Cam Driver does not trigger the camera by itself. -
framesgrows more slowly than the number of triggers you sent: the camera ignores triggers that come faster than it can take images. -
lost-framesorincomplete-framesgrow: images were lost on the network. -
published-framesmatchesframes, but your program receives fewer: your subscriber falls far behind, and the Data Layer drops images.
-
Read
control/publish/output/stream/active- expected:true. -
Compare the counters under
/hdvisionsystems/lumiscan-cam-driver/<module>/control/publish/output/stream/statistics:frames,lost-frames,incomplete-framesandpublished-frames- expected:framesgrows with each trigger,lost-framesandincomplete-framesstay at0, andpublished-framesmatchesframes. -
Compare the
sequencenumbers your program receives - expected: no gaps.
-
If the stream does not run: connect the camera, set
control/publish/input/enabletotrueand callcontrol/publish/execute. Do this after every start of the Cam Driver. Ifcontrol/publish/output/stream/activestaysfalse, the reason is in the log; the start is not retried untilcontrol/publish/executeis called again. See Running a stream. -
If
framesstays at0: trigger the camera by hardware or withcontrol/trigger/execute, or set its trigger mode off. See Triggering the camera. -
If
framesgrows more slowly than the triggers: trigger less often, shorten the exposure, or set the camera’sTriggerOverlapto an overlap it supports, such asPreviousFrame, in a feature file. See For the highest frame rate: TriggerOverlap. -
If
lost-framesorincomplete-framesgrow: check the network as described in Problem: Image capture fails or is unreliable (status -10004 "couldNotCaptureImage"). -
If your program receives fewer images than
published-frames: make sure your subscriber handles each image quickly.
See also A stream delivers nothing.
Send the information listed under Information for support to support, together with the values of
the counters under control/publish/output/stream/statistics and how the camera is triggered.
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 Cam Driver.
-
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 the Cam Driver. -
The date and time when the error occurred.
-
The Data Layer status of the affected module:
control/status/code,control/status/text,device-info/is-connected, and the result that anexecutecall answered. -
The camera: manufacturer, model and serial number (
system/found-camera-serials). -
The configuration:
lumiscan-cam-driver.json, the camera configuration files and feature files, or the content ofhdvisionsystems/lumiscan-cam-driver/system/settings, which shows every password as"*".