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

Manage App Data > active > lumiscan-cam-driver

PC (Windows)

%APP_RESOURCE_DIR%\etc\lumiscan-cam-driver, or without APP_RESOURCE_DIR C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-cam-driver\etc\lumiscan-cam-driver

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 capture through the handshake ends at status 3 (waitingForClient), not at its own error code. control/capture/execute keeps the capture’s own code. See When a Functionality Runs.

  • A failed capture, reset, save or load is latched: its status stays until a reset succeeds. Any other error stays on control/status/code for 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

Symptoms

There is no node /hdvisionsystems/lumiscan-cam-driver/<module> for a camera that you configured.

Possible causes
  • 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 id contains 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).

Diagnostic procedure
  1. Read /hdvisionsystems/lumiscan-cam-driver/system/settings - expected: the module’s content in the modules list. A module file that could not be read appears as {"$file": ..., "$error": ...}; "$error" says why.

  2. 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.

  3. Check the id in the camera configuration file - expected: only lower-case letters, digits, - and _, and unique across all camera settings.

  4. Read the log (see Logs) - expected: no error for the module. For an invalid id, the log says which id to write instead.

  5. If no node /hdvisionsystems/lumiscan-cam-driver exists at all, the application itself is not running.

Resolution
If the problem persists

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"

Symptoms
  • control/status/code is -5 (restartRequired) on every module.

  • hdvisionsystems/lumiscan-cam-driver/system/restart-required is true.

  • Every execute method of a module answers DL_RESOURCE_UNAVAILABLE (ResourceUnavailable on LumiScan Keryx), and the ready signals are false.

  • A running image stream stops.

Possible causes
  • 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.

Diagnostic procedure
  1. Read hdvisionsystems/lumiscan-cam-driver/system/restart-required - expected: true.

  2. Read hdvisionsystems/lumiscan-cam-driver/system/status-text - it says which files changed.

  3. Read the log - the message is at error level.

Resolution
  • If the settings were changed on the Data Layer:

    1. Call hdvisionsystems/lumiscan-cam-driver/system/control/restart/execute. A reset does not help.

    2. Wait until system/restart-required can 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.

If the problem persists

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"

Symptoms
  • control/status/code is -4 (missingLicense) with the text No 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.

Possible causes
  • 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.

Diagnostic procedure
  1. Read the ctrlX OS system log (see Logs) - it names the reason, the missing licence.

  2. 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.

  3. Compare the number of licences with the number of connected cameras - expected: one licence per camera.

Resolution
  • If no licence or not enough licences are installed: install one licence SWL-W-XCx-CAMDRIVERxHDVSx-V2NN per 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.

If the problem persists

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

Symptoms

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.

Possible causes
  • 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.

Diagnostic procedure
  1. Read found-camera-serials, found-camera-ip-addresses, found-camera-mac-addresses and found-camera-modules under /hdvisionsystems/lumiscan-cam-driver/system - expected: the camera is detected, its IP address is correct, and the serial number matches the expected device.

  2. Check the cable - expected: the camera is connected to the ctrlX CORE or the PC; on ctrlX OS, to a supported ctrlX port.

  3. Check the power supply - expected: the camera is powered, externally or via PoE.

  4. 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.

  5. Check the network for duplicate IP addresses - expected: each device has a unique IP address.

Resolution
  • 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.

    1. Read the camera’s MAC address from system/found-camera-mac-addresses (same position in the list as its serial in system/found-camera-serials).

    2. Set gateway, ip, subnet and the camera’s MAC address.

    3. Wait until ready is true, set request to true, then back to false.

    4. When ready is true again, check that system/found-camera-ip-addresses shows 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.1 is used by XF10: do not assign it to the camera or the computer.

If the problem persists

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")

Symptoms
  • After the connect-camera handshake, /hdvisionsystems/lumiscan-cam-driver/<module>/device-info/is-connected stays false.

  • control/status/code shows -10000 (failedToConnectToCamera) for about 100 ms only, then 0 again, with the camera still not connected.

Possible causes
  • 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.

Diagnostic procedure
  1. Read <module>/device-info/is-connected - expected: true after connect-camera. Do not judge the connection by control/status/code.

  2. Check that the camera appears under /hdvisionsystems/lumiscan-cam-driver/system - expected: its serial is in found-camera-serials.

  3. Before the request, read <module>/control/connect-camera/ready - expected: true. If it is false, 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.

  4. After setting connect-camera/request to true, read connect-camera/ready - expected: false (the application has seen the request).

  5. Check whether a PC on the same switch accesses the camera - expected: it does not.

Resolution
  • 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 reset handshake, which reports failedToConnectToCamera until it succeeds, then run connect-camera. connect-camera has no execute method: use the handshake on /hdvisionsystems/lumiscan-cam-driver/<module>/control/connect-camera/request. See Connection Steps.

  • If the connection still fails:

    1. Power-cycle the camera by disconnecting it for approximately 30 seconds and reconnecting it.

    2. Verify that the camera appears in the Data Layer.

    3. 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/request at a time, and that you use the same Data Layer version as the camera application.

If the problem persists

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")

Symptoms
  • capture/execute leaves control/status/code at -10004 (couldNotCaptureImage).

  • Through the handshake, a failed capture ends at status 3, and capture/ready stays false until a reset succeeds.

  • Images cannot be triggered reliably.

Possible causes
  • 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.

Diagnostic procedure
  1. Read <module>/device-info/is-connected - expected: true.

  2. Check the cable - expected: a "Foil Shielded Twisted Pair" cable.

  3. 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.

  4. As a quick test, reduce the ROI - if image acquisition becomes more stable, the issue is likely related to network bandwidth.

Resolution
  • If the camera is disconnected: reconnect it. A failed capture is latched: run reset and then connect-camera with 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’s cameras[].featureFiles. See GenICam features.

If the problem persists

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"

Symptoms

A write to <camera name>/control/<operation>/execute answers DL_TOO_MANY_OPERATIONS (ctrlX Data Layer) or TooManyOperations (LumiScan Keryx).

Possible causes
  • 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/execute answers DL_TOO_MANY_OPERATIONS.

Diagnostic procedure
  1. Read control/status/code - 2 (running): another operation runs.

  2. Read control/publish/output/stream/active and control/capture/ready - after the stream stops, capture/ready turns true once the camera is connected again.

Resolution
  • 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/ready is true. 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.

If the problem persists

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

Symptoms
  • A write to <camera name>/control/<operation>/execute answers DL_INVALID_OPERATION_MODE (ctrlX Data Layer) or InvalidOperationMode (LumiScan Keryx). This applies to v2.2.0 and later; earlier versions reported this case as DL_TOO_MANY_OPERATIONS.

  • capture/execute is refused again and again, also after the camera captured once.

Possible causes

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-files is empty.

  • trigger: the camera is not connected.

Diagnostic procedure
  1. Read <operation>/ready - false names the missing precondition.

  2. Read control/status/code and control/status/text - the status text still carries the message from the fault that caused it.

  3. Read <camera name>/device-info/is-connected - expected: true.

  4. Read control/publish/output/stream/active - true: the image stream runs.

  5. For load and remove, read <camera name>/output/image-files - expected: not empty.

Resolution

Do not retry blindly; establish the precondition first:

  • If the camera is not connected, or a capture fault is latched: run reset and then connect-camera with the handshake (reset hands back a disconnected camera). Both have no execute method, so a program that uses execute only must connect, and recover from a latched fault, through the handshake.

  • If the image stream runs: stop it and wait until capture/ready is true, 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-files is empty: run list-images or save an image first.

If the problem persists

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")

Symptoms
  • control/status/code is -10006 (saveImageFailed) or -10005 (noImageTaken).

  • Save does nothing, or there is no image in the storage folder.

Possible causes
  • noImageTaken: no image has been captured yet.

  • saveImageFailed: the storage cannot be written - ip, username or password in 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 storage block in the system section of lumiscan-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.

Diagnostic procedure
  1. Read output/package-identifier - if it is zero, no image has been captured, and save/ready is false.

  2. Check the storage block in the system section of lumiscan-cam-driver.json - expected: a type (Internal or Samba) and its parameters. See Storage settings.

  3. For Samba: check that ip, username and password are 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.

  4. 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 of rootPath.

  5. Read the log - it shows incorrect settings information.

Resolution
  • If no image has been captured (noImageTaken): capture an image before saving.

  • If the storage cannot be written (saveImageFailed): correct ip, username and password, make the IP reachable, or free space in the shared folder.

  • If storage is not configured or configured incorrectly:

    1. Add or correct the storage block, see Saving Image Files.

    2. Restart the application.

    3. 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 rootPath with the path shown there.

A failed save is latched until a reset succeeds; a save before anything was captured (-10005) is not.

If the problem persists

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

Symptoms

The captured images do not look as you expect from the camera settings.

Possible causes
  • 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-time and the inter-packet delay are not applied while the image stream runs.

Diagnostic procedure
  1. Save an image with /hdvisionsystems/lumiscan-cam-driver/<module>/control/save/execute, or the save handshake (control/save/request), and look at it - expected: it matches the settings.

  2. 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.

  3. Read control/publish/output/stream/active - true: the stream runs, and the exposure time is not applied.

Resolution
  • 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.

If the problem persists

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

Symptoms
  • control/capture/execute answers DL_INVALID_OPERATION_MODE while the stream runs, and DL_TOO_MANY_OPERATIONS while the stream is starting or stopping.

  • A capture request through the handshake ends with status -3 (invalidInput) and the text capture refused: the image stream (experimental) is active.

  • control/capture/ready is false.

Possible causes
  • The experimental image stream runs. The stream and capture use 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.

Diagnostic procedure
  1. Read control/publish/output/stream/active - true: the stream runs.

  2. After stopping the stream, read control/capture/ready - expected: true after about two seconds.

Resolution
  • If you need a capture: stop the stream. No reset is needed: the refusal latches no fault.

    1. Write false to control/publish/input/enable.

    2. Call control/publish/execute.

    3. Wait until control/capture/ready is true again. 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/frame instead of stopping the stream, or apply keep-latest-output and read output/image when output/package-identifier changes.

If the problem persists

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

Symptoms

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).

Possible causes
  • The stream does not run: the inputs were written, but control/publish/execute was not called; the stream could not start; or the Cam Driver was restarted - after a start, the stream is off.

  • frames stays at 0: the Cam Driver does not trigger the camera by itself.

  • frames grows more slowly than the number of triggers you sent: the camera ignores triggers that come faster than it can take images.

  • lost-frames or incomplete-frames grow: images were lost on the network.

  • published-frames matches frames, but your program receives fewer: your subscriber falls far behind, and the Data Layer drops images.

Diagnostic procedure
  1. Read control/publish/output/stream/active - expected: true.

  2. Compare the counters under /hdvisionsystems/lumiscan-cam-driver/<module>/control/publish/output/stream/statistics: frames, lost-frames, incomplete-frames and published-frames - expected: frames grows with each trigger, lost-frames and incomplete-frames stay at 0, and published-frames matches frames.

  3. Compare the sequence numbers your program receives - expected: no gaps.

Resolution
  • If the stream does not run: connect the camera, set control/publish/input/enable to true and call control/publish/execute. Do this after every start of the Cam Driver. If control/publish/output/stream/active stays false, the reason is in the log; the start is not retried until control/publish/execute is called again. See Running a stream.

  • If frames stays at 0: trigger the camera by hardware or with control/trigger/execute, or set its trigger mode off. See Triggering the camera.

  • If frames grows more slowly than the triggers: trigger less often, shorten the exposure, or set the camera’s TriggerOverlap to an overlap it supports, such as PreviousFrame, in a feature file. See For the highest frame rate: TriggerOverlap.

  • If lost-frames or incomplete-frames grow: 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.

If the problem persists

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 an execute call 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 of hdvisionsystems/lumiscan-cam-driver/system/settings, which shows every password as "*".