Skip to content

Troubleshooting

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

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?

Clone this wiki locally