Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
Creating Custom Camera Plugins

This page describes how to create a new plugin for a custom sensor or new MityCAM application.

The MityCAM software stack is shown in the figure below. There are 3 main executables:

  1. the camera_application, which is a thin wrapper used to initialize the software.
  2. the libcamerastack.so dynamic linked library (DLL), which contains the bulk of the common interface software and image management
  3. a set of one or more plugins, which provides specific management of the available sensor interface (control and streaming)

Each sensor plugin uses a unique ID number. The camerastack library loads all the plugins it finds at initialization and uses the plugin that has a matching ID from the top level configuration file.

MityCAM Software Stack

The yellow blocks illustrate external configuration files (and associated GenICAM XML files) used by the software layers during runtime.

Generally, new camera designs are developed by implementing a new sensor plugin module. Critical Link includes all source code for the entire application stack for the convenience of the developer, so that he may debug and/or extend the software as needed for his application.

All plugin modules are stored in the /ARM/camera_software/src/Sensors subdirectory of the SDK build area.

The following steps should be followed to add a new sensor.

  1. Reserve a new sensor ID
  2. Create a new plugin directory under /ARM/camera_software/src/Sensors (copy SimSensor folder, rename appropriately)
  3. prep the skeleton software to build (rename classes, etc.)
  4. add the subdirectory to the /ARM/camera_software/configure.ac and Makefile.am
  5. rerun autogen.sh, configure
  6. run make and ensure no compiler errors
  7. for GenICAM interfaces, create a new XML file in /ARM/pages folder (copy camera_SIM_GIGE.xml)
  8. create a new configuration folder area in /configurations/application (copy SIM and rename)
  9. update the push.sh script in the plugin folder to use new paths, names, etc.

Adding GenICam Registers