Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
Installation

The MityCAM-SDK is available via a couple of different mechanisms:

  • Via MityCAM Sensor Evaluation Kit.
    • ams CMV2000/CMV4000 U3V Development Kit
    • ams CMV8000 U3V Development Kit
    • ams CMV12000 U3V Development Kit
    • ams CMV50000 U3V/HDMI Development Kit
    • ams CSG14K U3V/HDMI Development Kit
    • Canon 5MP U3V Development Kit
    • Canon 120 MP U3V Development Kit
    • Canon 19 micron U3V Development Kit
    • BAE HWK1411 U3V Development Kit
  • Via MityCAM Software Developer's Kit (SDK) downloads on the Critical Link MityCAM-SDK Support Page.
    • MitySOM-AM57x, see [[MityCAM-SDK for MitySOM-AM57x]]
    • MitySOM-5CSX, see [[MityCAM-SDK for Intel FPGA SoCs]]
    • MitySOM-A10S, see [[MityCAM-SDK for Intel FPGA SoCs]]

For all of the sensor evaluation kits, relevant source code for the embedded linux and FPGA firmware specific for the given sensor is included with the kit. See your distributor for information for retrieving this package. Instructions for building the MityCAM SDK and FPGA code for a specific sensor evaluation kit should be included with the package.

For the MityCAM-SDK downloads on this project, relevant source code for the embedded linux and various cross tools are provided, but no sensor specific FPGA code is provided.

Downloading the MityCAM-SDK from the support site.

Download the latest "mitycam_sdk*.tar.gz" file from the Files Tab on the support page.

For the reference SD card filesystem image and compiler toolchain for a given platform, see the Main Wiki Page for information on supported targets and download links.

Host / Build Requirements

The cross-compiler tools should work with most modern 64 bit linux distributions. The instructions on this were tested with Ubuntu 18.04 and Ubuntu 20.04 distributions.

The tools will work with both native linux systems as well as with users using Windows 10/11 Windows Subsystem For Linux, version 2 installations.

It is recommended that a Integrated Development Environment utility be used for software development that supports gcc cross tools and the autotools frameworks. For users of WSL2, Visual Studio Code has worked well for development.

SD-Card

Flash your SD card with this reference image in order to have the necessary libraries to use the MityCAM-SDK. There are several tools that can be used to accomplish this.

Install Compiler Chain on a Linux Host

On the linux host, install the SDK by running the shell executable from the download links. Note: these instructions are for the compiler toolchain for the MitySOM-AM57x. The instructions may vary with different target toolchains.

user@host:~$ chmod +x arago-2019.11-armv7a-linux-gnueabi-tisdk.sh
user@host:~$ ./arago-2019.11-armv7a-linux-gnueabi-tisdk.sh -d ~/tools/arago-2019.11

You can choose to install the tools in any directory. We recommend using "~/tools/arago-2019.11", which does not require root access.

Once you have installed the SDK, run the environment script so that the tools are in your path. You will note that the prompt will change on your shell.

user@host:~$. ~/tools/arago-2019.11/environment-setup
[linux-devkit]:~>

Each time you build the ARM software, you will need run the environment script to ensure the tools are in your path.

Extract MDK source files

On the linux host, extract the software files to a local project directory using the following command:

[linux-devkit]:~$ tar xvf mitycam_sdk_2022-03-02.tar.gz

The directory tree output of the tarball is shown below with some annotations. The directory tree represents components of a larger software tree maintained by Critical Link.

mitycam_sdk/
├── ARM
│   ├── camera_software
│   │   ├── doxygen
│   │   ├── inih
│   │   │   └── cpp
│   │   └── src
│   │   ├── CommandHandlers <-- C++ classes to handle generalized register access (ROI, exposure, framerate, etc.)
│   │   ├── CommandInterface <-- C++ classes managing GenICam and Custom API Transports for Register read/write
│   │   │   ├── GenCP
│   │   │   └── MityViewer
│   │   │   └── common
│   │   ├── IOChannel <-- C++ classes managing image streaming transports (GVSP, U3V image streams, etc)
│   │   ├── Sensors <-- Sensor plugins folder
│   │   │   ├── Interfaces <-- Specialized interface APIs (e.g., CCDs)
│   │   │   ├── SimSensor <-- software simulated sensor example. *Copy this for a new Sensor / Application Design*
│   │   │   └── StdOut
│   │   ├── StatusReporter <-- C++ classes supporting different error/status reporting
│   │   └── Utility <-- C++ classes interfacing with IO (FPGA, GPIO, etc.) and providing utility functions
│   └── pages <-- location for GenICam XML files, misc support scripts and web access
├── common <-- includes GenCP and common protocol files
└── configurations
└── application
└── SIM <-- location of initialization datafiles for different plugins

Building the Stock ARM Software

With a shell having the toolchain environment configured, run the following commands:

[linux-devkit]:~> cd mitycam_sdk/ARM/camera_software
[linux-devkit]:~/mitycam_sdk/ARM/camera_software> ./autogen.sh
[linux-devkit]:~/mitycam_sdk/ARM/camera_software> ./configure $CONFIGURE_FLAGS
[linux-devkit]:~/mitycam_sdk/ARM/camera_software> make -j

After compilation is complete, you should have the necessary build outputs to support installing the software and running the camera application using a simulated sensor and the GigE protocol on the MitySOM-AM57x devkit.

For convenience, there is a script to install the necessary executables (libraries, plugins) and configuration scripts onto the target machine in the src/Sensors/SimSensor folder.

[linux-devkit]:~/mitycam_sdk/ARM/camera_software> cd src/Sensors/SimSensor
[linux-devkit]:~/mitycam_sdk/ARM/camera_software/src/Sensors/SimSensor> ./push.sh TARGET.ETH0.IP.ADDR

In the above script the TARGET.ETH0.IP.ADDR should be the MitySOM-AM57x reported IP address for eth0 when using "ifconfig -a".

Running the Stock ARM Software

On the target, start a shell and run the following commands:

root@mitysom-am57x:~# cd application
root@mitysom-am57x:~/application# export LD_LIRBARY_PATH=`pwd`
root@mitysom-am57x:~/application# ./camera_application -f SIMSENSOR_GIGE

Using a GigE Compliant application on the network, you should be able to see a "GigE Simulated" camera on the network with serial number 32. If you connect to the camera and start image aquisition, you should see a 1920x1080 gradiant pattern shown.

See Creating Custom Camera Plugins for a description of developing a new application using the IP.