- 1 Important Notes
- 2 In the package
- 3 Interfaces
- 4 Power on
- 5 Defaults
- 6 Command line access
- 7 Serial console access
- 8 Web user interface (camvc)
- 9 Download live images
- 10 Video
- 11 Event Logger (GPS, IMU, IMG & EXT)
- 12 Change parameters
- 13 Image formats
- 14 Temperature monitor
- 15 eSATA port switching
- 16 Proper shutdown
- 17 Firmware/software update
- 18 Firmware images
- 19 Other info
- 20 Known problems
- 21 Notes
- As of 2016/12/15, the software ported from 10353 supports only 5MPix sensors, for 14MPix, please see:
In the package
- 10393 camera system
- Power supply wall adapter (default: 18-75V, more information)
- 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)
|μ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|
|sync||sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug with cable (example: digikey)|
- Plug in the power supply
- Connect to LAN using the network cable
- Boot time: ~30s
- The default boot is from the on-board NAND flash. More information on available boot options and recovery boot.
- 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 firstname.lastname@example.org
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)
- 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
Download live images
- For a currently opened port (displayed in the window title and as "...sensor_port=0..." in the URL):
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
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
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
gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.9:2323/mimg ! jpegdec ! xvimagesink
- Only mjpeg, no rtsp yet.
- More examples at Using GStreamer
- 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.
Example 1: (provide a correct media mount point - /mnt/sda1/)
Follow this link for GUI description.
- /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)
root@elphel393:~# cat /dev/imu > /path/filename.log
- stop - CTRL-C or kill the process
- http://192.168.0.9/read_imu_log.php (will display help)
- http://192.168.0.9/autocampars.php - save/restore/initialize camera/sensor parameters
- http://192.168.0.9/parsedit.php - read/write parameters:
- POST request
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.
- set 10 fps and enable output trigger signal
- 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
- 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
- Tshutdown - automatic shutdown temperature level (default is 90°C)
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
- if not properly shutdown - μSD might get corrupted (run sync at least)
shutdown -hP now
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
- Displays sensor, compressor and buffer states per 10393 port:
- [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) ...
- 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.
- 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