Argos®2D A100 Software User Manual
Features
Argos®2D A100 comes with a pre-installed demo application that features
On-Screen Live View | Web Live View | H.264 RTSP Live Stream | Terminal Access | |||
Live view overlay window | Embedded JPEG image stream | H.264 encoding with i.MX53 VPU | Telnet | |||
Frame buffer logo | JPEG encoding with i.MX53 VPU | RTSP with Live555 library | USB terminal emulation | |||
On-Screen-Display | Information display via CGI | Receive with VLC media player | Serial terminal (via eCAM-EXT-Debug board) | |||
Font support | ||||||
Datei:Ecam-demo-stream.png |
Starting up
Here is how to start with your Argos®2D A100 Camera based on the CM-i.MX53 SoM.
- Usually the camera will arrive pre-mounted
- Configure the DIP switches on the base board for SD card boot. (If you do not want to boot the Argos®2D A100 demo application, boot Linux only from SPI-NOR).
- Connect 12V DC to the power connector on the back panel
- Connect a monitor or TV via HDMI on the back panel
- If you like, connect Ethernet on the back panel
- Optionally, connect to the serial terminal to see the board's boot messages (via eCAM-EXT-Debug board on the red extension connector X11)
Operation
- Live view
- Simply connect a monitor or TV via the HDMI port on the back panel. The resolution is HD720 (1280x720), so the best viewing experience is achieved with a wide screen.
- Web view
- Enter the IP address of the camera(displayed on screen, as well as on the serial terminal and the USB terminal) into your browser's address line.
- Live streaming
- Get VLC media player from VideoLAN: https://www.videolan.org
- In VLC, choose Media {{#if: Open Network Stream... | Open Network Stream... {{#if: | {{{3}}} {{#if: | {{{4}}} {{#if: | {{{5}}} {{#if: | {{{6}}} {{#if: | {{{7}}} {{#if: | {{{8}}} {{#if: | {{{9}}} {{#if: | {{{10}}}| }}| }}| }}| }}| }}| }}| }}| }}| }}, and enter the rtsp:// link. The web site (see above) contains the correct link, e.g. rtsp://192.168.1.188/ecam-live.264
- Terminal access
- Telnet - For Telnet, use your favorite client (telnet, Putty, ...) and connect to the IP address of the camera. The default login is root.
Welcome to Freescale Semiconductor Embedded Linux Environment bluetechnix login: root root@bluetechnix ~$
- USB terminal emulation - You may also connect a USB-mini-B cable to the USB-OTG port on the back panel (this solution only works with a Linux box). You will get a device file /dev/ttyACM0 or similar. Fire up kermit and type
set line /dev/ttyACM0 set speed 115200 connect
- Serial terminal - If you have an eCAM-EXT-Debug board available, you can connect to the serial terminal of U-Boot and Linux (via the UART-to-USB converter on this board).
- All connections except Telnet will print basic information about the Argos®2D A100 demo:
######################### Bluetechnix eCAM-i.MX demo ######################### ## ## ## IP address ............ 192.168.1.188 ## ## Connected camera ...... ISM-MT9M131 ## ## ## ## Web page URL .......... https://192.168.1.188/index.html ## ## H.264 RTSP stream ..... rtsp://192.168.1.188/ecam-live.264 ## ## ## ##############################################################################
- Backpanel LED - informs about camera status.
- Flashing all colors, then green - Boot loader
- Turning blue - Linux booting
- Turning red - Argos®2D A100 demo initializing
- Turning green - Argos®2D A100 demo running; got IP address from DHCP
- Turning blue - Argos®2D A100 demo running; no IP address from DHCP, but fixed default
Versions
Release 1.2.0
- Release date
- 2013-09-30
- Targeted System-on-Module
- CM-i.MX53-C-C-Q24S1024F4N2048 V2.0
- Supported Image Sensor Modules
- ISM-MT9M131
- ISM-MT9M025 Color/Monochrome
- ISM-AR0132AT Color/Monochrome
- ISM-MT9P031
- License
- The application source code is available under the BSD license (see LICENSE* files in source package)
- Other licenses apply to third-party tools.
- Download path
- https://support.becom-group.com/releases/imx/argos2d-a100/demo/v1.2.0/
- Base board support package
- Bluetechnix i.MX53 Linux BSP Release 1.8 (U-Boot: Release 1.6)
- Known issues
- Video capture is not always started properly with ISM-MT9M131.
- ISM-MT9M025/ISM-AR0132AT: Under bright light condidions the cameras autoexposure "locks up".
- Package content
File Content eCAM-i.MX-Demo-SDCardImageMCIMX535_v1.1.bin.bz2 Compressed SD card image, including BSP (included in delivery) eCAM-i.MX-Demo-src_v1.0.tar.bz2 Archive with demo application source code
Build and install
Restore Argos®2D A100 demo SD card
- Download the SD card image and check its integrity.
$ md5sum -c eCAM-i.MX-Demo-SDCardImageMCIMX535_v1.1.bin.bz2.md5 eCAM-i.MX-Demo-SDCardImageMCIMX535_v1.1.bin.bz2: OK
- Uncompress.
$ bunzip2 eCAM-i.MX-Demo-SDCardImageMCIMX535_v1.1.bin.bz2
- Ensure that the SD Card is not mounted.
- Write to SD card.
$ sudo dd if=eCAM-i.MX-Demo-SDCardImageMCIMX535_v1.1.bin of=/dev/FOOBAR bs=1M
- (Replace FOOBAR with the SD card's block device file, e.g., /dev/sdi, /dev/mmcblk0)
Source build
- Prerequisite: You have installed and built the i.MX53 Linux BSP.
- See #Releases section for the right version of the BSP.
- See Linux Software User Manual (i.MX53 Modules) for installing and building the BSP.
- Download the source archive and check its integrity.
$ md5sum -c eCAM-i.MX-Demo-src_v1.0.tar.bz2.md5 eCAM-i.MX-Demo-src_v1.0.tar.bz2: OK
- Create a directory and unpack the source therein.
$ mkdir imx53-ecam-demo $ cd imx53-ecam-demo $ bunzip2 FOOBAR/eCAM-i.MX-Demo-bin_v1.0.tar.bz2
- (Replace FOOBAR with your path.)
- Now view INSTALL.txt and follow the instruction procedure there.
Install binaries
NOTE: This way is not recommended, because the demo application uses custom Linux kernel and LTIB configurations that are automatically installed with a #Source build.
- Prerequisite: You have installed and built the i.MX53 Linux BSP.
- See #Releases section for the right version of the BSP.
- See Linux Software User Manual (i.MX53 Modules) for installing and building the BSP.
- Download the binary archive and check its integrity.
$ md5sum -c eCAM-i.MX-Demo-bin_v1.0.tar.bz2.md5 eCAM-i.MX-Demo-bin_v1.0.tar.bz2: OK
- Go to LTIB's rootfs directory.
$ cd FOOBAR/ltib/rootfs $ ls bin dev home mnt proc sbin tmp usr boot etc lib opt root sys unit_tests var $
- (Replace FOOBAR with your path.)
- Uncompress.
$ sudo bunzip2 eCAM-i.MX-Demo-bin_v1.0.tar.bz2
- Ready! As soon as you boot this root file system on the Argos®2D A100 Camera next time, the demo application will launch automatically.
Source code overview
- build_all.sh (SH)
- Builds the demo.
- INSTALL.txt
- Read how to build and install the demo.
- LICENSE.*
- Licenses, for reference.
- install_all.sh (SH)
- Installs the demo to LTIB's rootfs.
- config/
- build-config
- All configuration parameters; gets also installed on target (/opt/bluetechnix/imx53-ecam-demo/imx53-ecam-demo.config).
- defconfig.dev
- LTIB configuration; must be copied to <ltib>/config/platform/imx/.config.
- imx5_defconfig
- Linux kernel configuration; must be copied to <ltib>/rpm/BUILD/linux/.config.
- u-boot.patch
- Patch for U-Boot boot loader
- src/
- app/
- jpeg-daemon.sh (SH)
- Updates JPEG served by the web server regularly.
- main.sh (SH)
- Application entry point. Draws framebuffer background image; handles LEDs; handles DHCP/fixed IP address; starts ntpclient; enables USB-OTG terminal; detects and initializes connected camera module; starts videopipe and JPEG daemon; starts streaming (dependent on camera type); starts LIVE555 media server; starts On-Screen-Display; starts terminal notifier.
- stream-mt9m025.sh (SH)
- Streaming application for ISM-MT9M025. Gstreamer captures from camera, converts to YUV, encodes to JPEG, encodes to H.264, writes to frame buffer overlay (live view).
- stream-mt9m131.sh (SH)
- Streaming application for ISM-MT9M131. Starts live view application; Gstreamer captures from camera, encodes to JPEG, encodes to H.264.
- stream-mt9p031.sh (SH)
- Streaming application for ISM-MT9P031. Gstreamer captures from camera, converts to YUV, encodes to JPEG, encodes to H.264, writes to frame buffer overlay (live view).
- camctl/
- mt9m131.cfg
- Command-line parameters for mt9m131-ctl.sh.
- mt9m131-ctl.sh (SH)
- Little camera control application that writes directly to I2C registers via I2CDEV driver.
- images/
- Frame buffer background image.
- live555/ (C++)
- LIVE555 source code (https://www.live555.com/liveMedia/). Separate License applies!
- liveview/ (C)
- Live view application for ISM-MT9M131, based on mxc_v4l2_overlay.c unit test application from Freescale Linux BSP (See here). Separate license applies!
- osd/ (C)
- On-Screen-Display implementation. Uses Freetype 2 font engine.
- utils/
- ledctl.sh (SH)
- LED control script.
- otg-getty-daemon.sh (SH)
- Daemon to run getty for USB-OTG terminal.
- terminal-notifier.sh (SH)
- Writes information to terminals.
- videopipe/ (C++)
- Application that always reads from a named pipe, and duplicates output to 1..n named pipes (as soon as there is a reader).
- webpage/
- Argos®2D A100 demo web site static content.
- index.html
- Redirect HTML to cgi-bin/index
- cgi-bin/
- index (SH)
- CGI script that generates index.html
- set-cross-envs (SH)
- Script sets cross compile and path environment for Argos®2D A100 demo application building.
Data flow diagram
ISM-MT9M131
The ISM-MT9M131 camera module sends UYVY data, 16 bit per pixel. This is a format supported natively by the i.MX53 IPU/CSI (for capturing) and VPU (for encoding).
The live view functionality (liveview application) is not included in the data flow diagram, because the real data flow does not involve the Argos®2D A100 demo application at all (just the IPU and memory). The liveview application sets the i.MX53 viewfinder-mode via the V4L camera interface.
ISM-MT9M025/ISM-AR0132AT/ISM-MT9P031
These camera modules send grayscale or RGB Bayer data, 8 bits per pixel. This is a format not supported natively by the i.MX53 IPU/CSI, so we capture "generic data" as far as the IPU is concerned.
Currently, we use the GStreamer plug-in ffmpegcolorspace to convert the generic data format to an I420 YUV format, which is natively supported by the i.MX53 VPU (for encoding) and IPU (for live view on the display). This conversion is done in software and is not ARM/NEON-optimized, so we are slowing down the frame rate to 9 fps.
Since release 1.2.0 ismconv and mfw_ipucsc plug-ins are used to convert the generic data format to an I420 YUV format. These conversions are done in software and are ARM/NEON-optimized. See the Argos®2D A100 Programmer's Guide for more information.