Difference between revisions of "10393 manual"

From ElphelWiki
Jump to: navigation, search
(Firmware images)
(Other info)
Line 322: Line 322:
 
===Accessing raw pixel values===
 
===Accessing raw pixel values===
 
[[Working_with_raw_image_data|Working with raw pixel data]]
 
[[Working_with_raw_image_data|Working with raw pixel data]]
 +
===Photo finish (linescan mode)===
 +
[[Photo-finish|Photo Finish]]
 +
Note: works for JP4 format
  
 
==<font color="blue">Known problems</font>==
 
==<font color="blue">Known problems</font>==

Revision as of 17:19, 19 January 2018

Important Notes


In the package

  • 10393 camera system
Fig.1 10393 interfaces
  • Power supply wall adapter (default: 18-75V, optional: 12-36V (excludes 18-75V), more information on power supply options)
  • CAT6 network cable
  • μUSB-to-USB cable
  • Recovery μSD card
  • If the camera is calibrated the calibration data will be on a separate storage media or on the internal SSD (likely /mnt/sda1)

Interfaces

See Fig.1:

GigE gigabit network
μSD micro SD card slot - boot or storage
console serial console port, use μUSB-to-USB cable
eSATA+USB 2-in-1. Connect USB or eSATA device. USB2.0 host
μUSB USB2.0 host
sync sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug with cable (example: digikey)


Power on

  • Plug in the power supply
  • Connect to LAN using the network cable

Notes

  • Boot time: ~30s
  • The default boot is from the on-board NAND flash. More information on available boot options and recovery boot.


Defaults

IP Address 192.168.0.9
User root
Password pass
  • The default IP address is set in the /etc/elphel393/init_elphel393.py.
  • If present the internal SSD will be formatted into 2 partitions:
    • /dev/sda1 - ext4 (~64-100GB)
    • /dev/sda2 - raw partition (no file system) for fast recording

Command line access

  • ssh from PC terminal:
$ ssh root@192.168.0.9


Serial console access

  • Use a microUSB-USB cable to connect console μUSB port (see Fig.1) to PC - the cable's end should be thin enough otherwise interferes with an inserted mmc (multi media card = μSD card).
  • In Linux the minicom program can be used
$ minicom -c on

Most likely the device will be /dev/ttyUSB0. Settings:

  • 115200 8N1, no for hardware/software flow control

Refer to the following article for more details on using minicom: Using minicom to connect to Elphel393 camera

Web user interface (camvc)

http://192.168.0.9/ (if not found - http://192.168.0.9/closeme.html (type in the browser address bar - will be changed soon)):

  • The page contains links to camvc user interface for each individual camera port.
  • camvc was ported from the 10353 camera series:
    • change parameters like image format, resolution, auto exposure, auto white balance and more. Alternative way to change parameters is described below.
    • pause compressor and search within buffered images
    • help tips available - see Fig.2 - select then mouse over a control element of interest
Fig.2 enable camvc help tips
Fig.3 camvc controls

Download live images

camvc

  • For a currently opened port (displayed in the window title and as "...sensor_port=0..." in the URL):
Fig.4 Acquire an image from the Camera Control Interface

browser

port 0: http://192.168.0.9:2323/img
port 1: http://192.168.0.9:2324/img
port 2: http://192.168.0.9:2325/img
port 3: http://192.168.0.9:2326/img

command line

wget http://192.168.0.9:2323/img -O filename.jpeg
wget http://192.168.0.9:2324/img -O filename.jpeg
wget http://192.168.0.9:2325/img -O filename.jpeg
wget http://192.168.0.9:2326/img -O filename.jpeg


Video

Display

Multipart JPEG stream

http://192.168.0.9:2323/mimg
http://192.168.0.9:2324/mimg
http://192.168.0.9:2325/mimg
http://192.168.0.9:2326/mimg

RTSP

  • turn on:
~root@elphel393:~# /usr/bin/str
  • url:
rtsp://192.168.0.9:554
rtsp://192.168.0.9:556
rtsp://192.168.0.9:558
rtsp://192.168.0.9:560

GStreamer

gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.9:2323/mimg ! jpegdec ! xvimagesink 

Record

  • Recording is done by the camogm program
  • If recording to internal or external SSD, please, read about eSATA port switching
  • important: Event logger (GPS, IMU, IMG, EXT) recording is started/stopped separately. See instructions below.
  • For SATA devices camogm supports:
    • recording to a partition with a file system - up to 80MB/s
    • (default) faster recording to a partition without a file system (raw partition) avoiding OS calls - up to 220MB/s
  • To extract data from a raw partition use dd or these scripts to get the data and split it into images. Follow this link for details.
  • Can record to an mmc partiton or usb.
  • More info
  • If the prefix parameter, which is absolute path + prefix, for a channel is not set the file will be written somewhere to rootfs.
    • if prefix is empty then the absolute path must end with a slash.

browser

Example 1: (provide a correct media mount point - /mnt/sda1/)

Follow this link for GUI description.

command line

Example:

  • /home/root, file prefix=test_, 1GB or 10min files whichever occurs first
    • setup and start (in one line):
echo "format=mov;status=/var/tmp/camogm.status;prefix=/home/root/test_;duration=600;length=1073741824;start" > /var/volatile/camogm_cmd
    • stop recording:
echo "stop" > /var/volatile/camogm_cmd
sync

Event Logger (GPS, IMU, IMG & EXT)

Record

web

  • Start:

http://192.168.0.9/logger_launcher.php?cmd=start&file=/mnt/sda1/test.log&index=1&n=10000000

  • Stop:

http://192.168.0.9/logger_launcher.php?cmd=stop

  • Help:

http://192.168.0.9/logger_launcher.php

command line

  • start:
root@elphel393:~# cat /dev/imu > /path/filename.log
  • stop - CTRL-C or kill the process

Read


Change parameters

More information

Read:   http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2
Change: http://192.168.0.9/parsedit.php?sensor_port=0&PAR1&PAR2 - update values - submit form
    • GET request - XML response
Read:   http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1&PAR2
Change: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1=VAL1&PAR2=VAL2

Note 1: if the parameter's value is specified in URL it will be applied. The call can have mixed specified and unspecified parameters.

Note 2: The new value is read on the next call.

Example:

  • set 10 fps and enable output trigger signal
http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_OUT=0x66555&TRIG_PERIOD=10000000&TRIG=4

More information


Notes:

  • parsedit.php and autocampars.php were ported from 353 camera series. There are a few changes from the originals related to 4x sensor ports:
    • parameters are individual for each sensor port - writing parameters to multiple port at once is controlled with a (bit-)mask input box
    • if opened w/o sensor_port specified the page will show links to available ports
    • sensor_port=x, where x=0..3 - in the address string - for a single sensor camera it is normally 0


Image formats

jpeg

  • color: YCbCr 4:2:0, 3x3 pixels
  • mono6: monochrome - color YCbCr 4:2:0 with zeroed out color components
  • mono : monochrome - color YCbCr 4:0:0 with omitted color components

Note: Is not the best for processing since a lot of information is lost at demosaicing

jp4 raw

Temperature monitor

10393 hwmon.jpeg


eSATA port switching

  • requres 10389
  • available connections:
    • camera <=> internal SSD (default)
    • camera <=> external drive (external drive will need a separate power source)
    • PC <=> internal SSD
  • More information


Proper shutdown

  • if not properly shutdown - μSD might get corrupted (run sync at least)
shutdown -hP now

Same effect:

http://192.168.0.9/autocampars.php?reboot

Firmware/software update

More information

Firmware images

Other info

Change default ip address

  • nano or vi
ssh root@192.168.0.9
pass
root@elphel393:~# nano /etc/elphel393/init_elphel393.py
edit - save

or

  • sed
root@elphel393:~# sed -i.bkp 's/192.168.0.9/10.xx.xx.xx/' /etc/elphel393/init_elphel393.py
root@elphel393:~# sed -i.bkp 's/255.255.255.0/xxx.xxx.xxx.xxx/' /etc/elphel393/init_elphel393.py

Then:

#boot from NAND flash?
root@elphel393:~# overlay_sync 1 
root@elphel393:~# shutdown -hP now
#powercycle
#boot from card?
root@elphel393:~# sync
root@elphel393:~# reboot -f

Set up histogram window and autoexposure parameters

Read article

Tools for calibrated systems

  • Install ImageJ plugins
    • decode jp4 raw format
    • aberrations correction
    • distortion correction (pixel mapping)
    • rectification and projection
    • JP46 Reader camera - decode JP4/JP46
    • Eyesis correction - post-process JP4s using calibration data

Switch between ERS and GRR modes in MT9P006

External/internal trigger and FPS control

SSD/MMC/USB formatting

Boot modes

Pointers monitor

  • Displays sensor, compressor and buffer states per 10393 port:
http://192.168.0.9/pointers/

Powering from batteries (12V or 48V)

12V and 48V power options

Accessing raw pixel values

Working with raw pixel data

Photo finish (linescan mode)

Photo Finish

Note: works for JP4 format

Known problems

  • [solved] Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing.
  • http://192.168.0.9:232x/noexif/mimg - multipart jpeg displays corrupted frames from time to time. Reason: network bandwidth?
  • [solved] Sometimes on power-on (NAND flash boot) cannot mount the card's rootfs partition. Kernel Panics. Power off/on. Soft "reboot -f" works ok.
...
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
...

More info

  • Changing exposure/quality/gains - can corrupt images - needs testing.
  • After rewriting rootfs to μSD card - some of the cards get a corrupted partition - re-partitioning (reformatting?) solves the problem.
On the camera the rootfs is mounted as RW and some of the files are changed (also links created) -
most of the changes are now moved to tmpfs but something might have been missed.


Notes

  • In case rootfs is on flash, it might make sense (or maybe not as the history is updated only once on session exit) to disable bash sessions command history - disable bash history
  • When using overlays, deleting, existing in the lower layer, dirs can cause errors (hopefully it gets fixed someday), example:
    • /mnt/sda1 exists in lower layer: /tmp/rootfs.ro/tmp
    • upper layer is mounted to "/"
# rmdir /mnt/sda1
# mkdir /mnt/sda1
mkdir: cannot create directory '/mnt/sda1': Operation not supported