Skip to content

Troubleshooting

Sibo Wang-Chen edited this page Apr 17, 2025 · 17 revisions

Behavior recording

GenApi error code 8

Error:

terminate called after throwing an instance of 'Euresys::genapi_error'
  what():  GenTL error -10100, GenApi error code 8
Aborted (core dumped)

Cause: Unknown.

Solution: Start streaming images in eGrabber Studio, stopping it, close the tab for the camera, and retrying seemed to help.

Multiple programs accessing camera data

Error:

terminate called after throwing an instance of 'std::logic_error'
  what():  vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)
Aborted (core dumped)

Cause: Multiple programs are accessing the camera at the same time.

Solution: Close eGrabber Studio or any other instances of the recording GUI.

Error:

Assertion `frameGrabberPtr_->getString<RemoteModule>("TriggerMode") == "On"' failed.

Cause: The GenICam parameters are in an initial state that does not allow the normal configuration sequence to execute.

Solution: Open eGrabber Studio, select the JAI camera, click "Open", and go to the "Script" tab on the left (the icon is a scroll). Then, click the folder icon to the right of "Filepath" and select "old_arena_config.js". Click "Open" and then "Run". The "Execution output" should show the following. If not, restart computer and try again.

Running script: /home/spotlight/old_arena_config.js

Success

Camera acquisition not started

Error:

terminate called after throwing an instance of 'Euresys::client_error'
  what():  EGrabber has no registered event for this filter

Cause: Camera acquisition not started yet.

Solution: Start acquisition by calling

frameGrabberPtr->reallocBuffers(bufferSize);
frameGrabberPtr->start();

or, in my BehaviorCamera API,

cameraPtr->start();

Muscle imaging

PCO camera not connected

Error:

Error Code: -2146815987
pco::CameraException (0x800a300d): SDK DLL error 800a300d at device 'camera sdk dll': A DLL could not be found.

Cause: PCO camera not connected to the computer

Solution: Check USB connection, Verify that the "Status" LED on the back of the camera is green and not flashing. If necessary, unplug and replug the camera.

ROI definition is not 1-indexed

Error:

terminate called after throwing an instance of 'pco::CameraException'
  what():  pco::CameraException (0x8003101e): Firmware error 8003101e at device 'SC2 Main uP': Value is out of range.

Important

This error generally states that some parameter in the configuration is out of range. The following is not the only possible error.

Likely cause: The ROI definition is 1-indexed, so x0 and y0 should be at least 1.

Solution: Modify ROI definition in camera configuration.

Reference: pco.cpp User Manual, sec. 2.4.3.

ROI size is not multiples of allowed step sizes or is too small

Error:

terminate called after throwing an instance of 'pco::CameraException'
  what():  pco::CameraException (0x8003103e): Firmware error 8003103e at device 'SC2 Main uP': ROI setting is wrong
Aborted (core dumped)

Cause: ROI size must be multiples of 32 pixels horizontally and multiples of 8 pixels vertically. Furthermore, the ROI must be at least 64 by 18 pixels.

Solution: Modify ROI accordingly.

Important

Though the x0 and y0 in the ROI are 1-indexed, one should NOT add 1 to x1 and y1! For example:

int xOffset = 0;
int yOffset = 0;
int imageWidth = 20 * 32;
int imageHeight = 50 * 8;
camera.defaultConfiguration();
pco::Configuration config = camera.getConfiguration();
config.roi.x0 = xOffset + 1; // this is correct
config.roi.y0 = yOffset + 1; // this is correct
config.roi.x1 = xOffset + imageWidth + 1; // this is incorrect!
config.roi.y1 = yOffset + imageHeight + 1; // this is incorrect!
config.roi.x1 = xOffset + imageWidth; // this is correct
config.roi.y1 = yOffset + imageHeight; // this is correct
camera.setConfiguration(config);

Reference: pco.panda 4.2/pco.panda 4.2 bi/pco.panda 4.2 bi UV User Manual, Appendix A1.1.

"Handle is invalid"

Error:

terminate called after throwing an instance of 'pco::CameraException'
  what():  pco::CameraException (0xa00a3002): SDK DLL error a00a3002 at device 'camera sdk dll': Handle is invalid.
Aborted (core dumped)

Cause: Unknown.

Solution: Recompiling (make clean followed by make) seem to have helped, even if no source file is changed? This is very strange; perhaps this has to do with the fact that sources files from the PCO library are included as source in the CMakeLists.txt file?

"Arm is not possible while record active"

Error:

terminate called after throwing an instance of 'pco::CameraException'
  what():  pco::CameraException (0x80031022): Firmware error 80031022 at device 'SC2 Main uP': Arm is not possible while record active.
Aborted (core dumped)

Cause: Unknown. Suspicion: Perhaps the camera was not closed properly the last time it was accessed.

Solution: Physically unplug and replug the camera USB cable and wait a few seconds until the "status" LED on the back of the camera is solid green.

GUI

Heap issue upon closing

Error: When the user clicks the "X" button to close the GUI, the GUI doesn't quit. Instead, the following log is printed:

[heap]  0
[heap]  1
[heap]  2
[heap]  3
[heap]  4
[heap]  5
[heap]  6
[heap]  7
[heap]  8
[heap]  9
...

Cause: Unknown.

Solution: Force quit the application.

Arduino

No DFU capable USB device available

Error: Upon uploading code to the Arduino:

dfu-util: Cannot open DFU device 2341:0070 found on devnum 4 (LIBUSB_ERROR_ACCESS)
dfu-util: No DFU capable USB device available
Failed uploading: uploading error: exit status 74

Cause: Unknown.

Solution: Download and run this script (permalink) with sudo.

Reference: https://github.com/espressif/arduino-esp32/issues/8481#issuecomment-1665794171

Clone this wiki locally