Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

Subscribe to Wiki Recent Changes feed
Track the most recent changes to the wiki in this feed. MediaWiki 1.28.0
Updated: 22 min 42 sec ago

NAND flash boot rootfs

Thu, 08/04/2016 - 15:56

Instructions:

← Older revision Revision as of 21:56, 4 August 2016 Line 81: Line 81:   ubiformat /dev/mtd4 -f rootfs.ubi -s 2048 -O 2048   ubiformat /dev/mtd4 -f rootfs.ubi -s 2048 -O 2048 </font> </font> -'''Note:''' Considering to store the u-boot, device tree and kernel on UBUFS partitions in future.+'''Note:''' Considering to store the u-boot (probably not, because 192K-max-boot.bin might not fit UBIFS driver), device tree and kernel on UBIFS partitions in future. [[Category:Elphel393]] [[Category:Elphel393]] Oleg

User:Wella8

Fri, 07/29/2016 - 08:10

New user account

Wella8

Using camogm with Elphel393 camera

Wed, 07/20/2016 - 13:25

← Older revision Revision as of 19:25, 20 July 2016 Line 1: Line 1: -Elphel 393 series cameras can be equipped with m.2 SSD drive used for images and video recording. The camera equipped with a drive should be configured in a way that the drive can be accessible from Linux operating system. This is normally done with a configuration script which is executed during system boot. The script is usually located in the root directory on microSD card and called ''init_elphel393.sh''. These is a set of parameters in the beginning of the script and one of them is responsible for SATA controller configuration and driver loading:+Elphel 393 series cameras can be equipped with m.2 SSD drive used for images and video recording. The camera equipped with a drive should be configured in a way that the drive can be accessible from Linux operating system. This is normally done with a configuration script which is executed during system boot. The script is usually located in the root directory on microSD card or in the /etc directory and called ''init_elphel393.sh''. These is a set of parameters in the beginning of the script and one of them is responsible for SATA controller configuration and driver loading:   SATA_EN=1   SATA_EN=1 Line 30: Line 30:   /dev/mmcblk0p1 on /mnt/mmc type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)   /dev/mmcblk0p1 on /mnt/mmc type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)   /dev/sda1 on /mnt/sda1 type ext2 (rw,relatime,errors=continue)   /dev/sda1 on /mnt/sda1 type ext2 (rw,relatime,errors=continue)  +  +'''Note:''' subsequent description of ''camogm'' is no longer valid. Refer to [[Camogm]] wiki page for updated description. The program for video/images recording is called ''camogm''. Its full description for previous series of Elphel cameras is available on [[Camogm]] wiki page. Current version of the program supports four sensor channels and has the same command set as the previous version, but commands can be sent to each channel separately. The program can be started the same way as described in [[Camogm#Starting_camogm|Starting camogm]] section, but now it will create four command pipes instead of one and each pipe will have channel number appended to the name provided on command line: The program for video/images recording is called ''camogm''. Its full description for previous series of Elphel cameras is available on [[Camogm]] wiki page. Current version of the program supports four sensor channels and has the same command set as the previous version, but commands can be sent to each channel separately. The program can be started the same way as described in [[Camogm#Starting_camogm|Starting camogm]] section, but now it will create four command pipes instead of one and each pipe will have channel number appended to the name provided on command line: Mikhail

Camogm

Wed, 07/20/2016 - 13:15

← Older revision Revision as of 19:15, 20 July 2016 Line 6: Line 6: *'''jpeg''' - series of the individual JPEG files (1 file per frame) *'''jpeg''' - series of the individual JPEG files (1 file per frame) *'''mov''' - MJPEG video in Apple QuickTime(R) container *'''mov''' - MJPEG video in Apple QuickTime(R) container - As of today the last one (mov) is probably the fastest one in the camera as it uses the minimum of computational resources. Ogg is optimized for streaming and requires additional memory copying and checksum calculation for all of the recorded data, individual JPEG files grow large directories that can use system resources, while recording mov format simply merges FPGA-encoded frames (with JPEG and optional Exif headers added by the software) and the file header (with frame index) is calculated only once per file.+As of today the last one (mov) is probably the fastest one in the camera as it uses the minimum of computational resources. Ogg is optimized for streaming and requires additional memory copying and checksum calculation for all of the recorded data, individual JPEG files grow large directories that can use system resources, while recording mov format simply merges FPGA-encoded frames (with JPEG and optional Exif headers added by the software) and the file header (with frame index) is calculated only once per file. This program makes use of the [[Circbuf|circbuf]] that can hold several seconds of even high resolution/high frame rate video, so switching from file to file and/or waiting for the search operations on the HDD will not cause the frame loss - that can be verified if the Exif headers are enabled - regardless of the format selected each frame will have the exact timestamp (with 1 microsecond resolution). This program makes use of the [[Circbuf|circbuf]] that can hold several seconds of even high resolution/high frame rate video, so switching from file to file and/or waiting for the search operations on the HDD will not cause the frame loss - that can be verified if the Exif headers are enabled - regardless of the format selected each frame will have the exact timestamp (with 1 microsecond resolution). Line 248: Line 248: Please see [[Camogmgui]] Please see [[Camogmgui]]  +  +== Elphel393 series cameras ==  +The functionality of ''camogm'' has been updated in Elphel393 series of cameras. The new version of the program can write data to a raw disk (disk without file system) and send the data over web sockets. The new version of ''camogm'' should be started with two command line arguments:  + camogm -n <named_pipe_name> -p <port_number>  +Where <named_pipe_name> is the file name that will be used to pass commands to ''camogm'' and <port_number> is a port number used for web interface. The existing command set has been extended with several new commands addressing new functions.  +  +=== port_enable ===  + port_enable=<port_number>  +Enable sensor port <port_number>. All sensor ports are enabled by default.  +  +=== port_disable ===  + port_disable=<port_number>  +Disable sensor port <port_number>. ''camogm'' does not read data from disabled ports.  +  +=== rawdev_path ===  +Use  + rawdev_path=<path_to_disk>  +or  + rawdev_path  +commands to set or reset path to raw device buffer. Setting path to raw device buffer along with jpeg format set switches ''camogm'' to raw device buffer operation. All subsequent writes and reads will be performed to or from raw disk. ''camogm'' saves write pointer while the program is running and sequential starts and stops will not lead to data overwrite. ''camogm'' will reject the 'start' command if the path to raw device buffer is set and current image format is not jpeg. You should either reset the path with 'rawdev_path' command without parameters or set format to jpeg with 'format=jpeg' to continue operation. Note, that ''camogm'' does not check the disk in any way and if the path is mistakenly set to a device with file system, the file system and the data on it will be destroyed.  +  +  +''camogm'' can process commands sent over a web socket. A command can be sent as HTTP GET request or as a simple string prefixed with 'cmd/', e.g.:  + cmd/next_file  +''camogm'' can process the following commands:  +  +=== find_file ===  + find_file:2016:07:12_17:14:00  +Find a file with a time stamp which is within one minute time frame from the time stamp given. If such a file was found, ''camogm'' saves the position of the file and 'next_file' command can be used to advance to the next file on disk. If file was not found, ''camogm'' silently resets connection without any data sent.  +  +=== next_file ===  +Get next file from disk. This command should only be used after 'find_file' command successfully finished and returned a file. If file pointer was not set or file was not found, ''camogm'' silently resets connection without any data sent.  +  +=== read_disk ===  +Read disk dump and send it over socket. The dump is split into several pieces and ''camogm'' returns the number of files to be sent in response to the command:  + Number of files: <number>  +The socket is closed right after this string is sent. ''camogm'' opens a socket for each file to be send, waits for connection, sends a file and closes connection after a file was sent.  +  +=== build_index ===  +Read raw device buffer and create disk index directory. This directory contains the offsets of all files found on disk and can be used to retrieve files from disk. This command is a prerequisite for get_index, read_file and read_all_files commands. Note that reading disks of several dozens or hundreds of Gib in size can take much time.  +  +=== get_index ===  +Get disk index directory. Each record in the directory corresponds to a single file and has the following format:  + port_number=<port_number>;unix_time=<unix_time>;usec_time=<usec_time>;offset=<disk_offset>;file_size=<size_in_bytes>  +<unix_time> here is time in Unix format, it represents the number of seconds elapsed since 1970-01-01 00:00:00 +0000 (UTC).  +  +=== read_file ===  + read_file:port_number=<port_number>;unix_time=<unix_time>;usec_time=<usec_time>;offset=<disk_offset>;file_size=<size_in_bytes>  +Read a file from raw disk buffer and send it over socket. The disk index directory should be built prior this command. If a file was not found in disk index directory (for example, because of a mistake in the command string), ''camogm'' silently resets connection without any data sent.  +  +=== read_all_files ===  +Retrieve all files from disk. Disk index directory should be built before this command can be executed. When this command is received, ''camogm'' sends back the number of files in the disk index directory:  + Number of files: <number>  +The socket is closed right after this string is sent. ''camogm'' opens a socket for each file to be send, waits for connection, sends a file and closes connection after a file is sent. Mikhail

Swupdate

Wed, 07/13/2016 - 19:09

New page

=Setup=
* Kubuntu 16.04
* Yocto Poky 2.0 (Jethro)

=Install=
* moved u-boot-fw-utils%.bb install function to [https://github.com/Elphel/meta-ezynq/blob/master/recipes-bsp/u-boot/u-boot-fw-utils%25.bbappend u-boot-fw-utils%.bbappend] to keep u-boot building

=Issues=
==fatal error: openssl/evp.h: No such file or directory==

solution: sudo apt-get install libssl-dev

==lib.a: No such file or directory==

Didn't run '''oe_runmake env'''. It was failing with an error: '''No rule to make target 'dev'''' - wasn't in the build dir. Oleg

Swupdate

Fri, 07/08/2016 - 19:30

lib.a': No such file or directory:

New page

=Setup=
* Kubuntu 16.04
* Yocto Poky 2.0 (Jethro)

=Issues=
==fatal error: openssl/evp.h: No such file or directory==

solution: sudo apt-get install libssl-dev

==lib.a: No such file or directory==

Didn't run '''oe_runmake env'''. It was failing with an error: '''No rule to make target 'dev'''' - wasn't in the build dir. Oleg

Swupdate

Fri, 07/08/2016 - 18:20

New page

=Setup=
* Kubuntu 16.04
* Yocto Poky 2.0 (Jethro)

=Issues=
==fatal error: openssl/evp.h: No such file or directory==

solution: sudo apt-get install libssl-dev

==lib.a': No such file or directory==

?! Oleg

Swupdate

Fri, 07/08/2016 - 17:24

Created page with "=Setup= * Kubuntu 16.04 * Yocto Poky 2.0 (Jethro) =Issues= ==fatal error: openssl/evp.h: No such file or directory== sudo apt-get install libssl-dev"

New page

=Setup=
* Kubuntu 16.04
* Yocto Poky 2.0 (Jethro)

=Issues=
==fatal error: openssl/evp.h: No such file or directory==

sudo apt-get install libssl-dev Oleg

Poky 2.0 manual

Thu, 07/07/2016 - 21:41

About:

← Older revision Revision as of 03:41, 8 July 2016 Line 5: Line 5: ==<font color="blue">About</font>== ==<font color="blue">About</font>== -* Yocto Poky revision = 2.0+* Yocto Poky revision = 2.0 (Jethro) * Host OSes: * Host OSes: ** Kubuntu 14.04.3 LTS x64 (until June 2016) ** Kubuntu 14.04.3 LTS x64 (until June 2016) Oleg

JP4

Thu, 06/30/2016 - 11:51

← Older revision Revision as of 17:51, 30 June 2016 (One intermediate revision not shown)Line 1: Line 1: -Note: the JP4 mode described here is referred as "JP46" in current 8.0 firwmare  -  == JP4 Format == == JP4 Format == -We have added a special JP4 mode that bypasses the Demosaic in the FPGA and provides an image with pixels in each 16x16 macroblock that are rearranged to separate Bayer colors in individual 8x8 blocks, then encoded as monochrome. [[Demosaic_on_client_side|Demosaic]] will be applied during post-processing on the host PC. This section describe different algorithms and implementations used to provide this functionality.+JP4 format is based on JPEG compression, it was originally developed at Elphel for accurate representation of the scanned book pages and later used in other applications that involve post-processing. This format is supported in both [[353|NC353 series]] and current [[10393|NC393 series]] cameras. The standard JPEG was developed to compress images so they visually are almost the same as uncompressed but are significantly smaller in size. The goal of JP4 is camera-centric, not human-centric. It tries to preserve as much as possible of the information from the camera sensor (ideally "raw") while providing reasonable compression. The most damaging part of the color JPEG compression is the de-mosaic part of it. "Lossy" part of the compression (quantization after DCT) can be eliminated with setting compression quality to 100% that effectively disables quantization. Dynamic range compression ("gamma conversion") is usually designed to be lower than the sensor shot noise - significant for most modern small-pixel (and so low full-well capacity) sensors. That leaves the demosaic ("guessing" the missing colors in Bayer mosaic sensor outputs) a single most damaging operation. In the camera this is usually done by processing data in 3x3 or 5x5 pixel blocks and it is difficult to distinguish between variations (especially sharp) in intensity and the color tone. There are much more advanced algorithms that can be used during post-processing that will provide much better results, but they require "raw" sensor data. Or - the data saved in JP4 format.  +   +Here is a [http://community.elphel.com/jp4/jp4demo.php JP4 Demo] that illustrates this algorithm and how it is related to standard JPEG.  +   +JP4 mode bypasses the demosaic/color converiosn in the FPGA and provides an image with pixels in each 16x16 macroblock that are rearranged to separate Bayer colors in individual 8x8 blocks, then encoded as monochrome. [[Demosaic_on_client_side|Demosaic]] will be applied during post-processing on the host PC. This section describe different algorithms and implementations used to provide this functionality. Main goals: Main goals: - - compression speed improvement+* compression speed improvement - - possibility to obtain more high quality image (near to RAW)+* possibility to obtain more high quality image (near to RAW) - - drasticaly lowering data size+* drasticaly lowering data size == Different JP4 Modes in 8.X Software == == Different JP4 Modes in 8.X Software == only modes 0-2 can be processed with standard libjpeg:                  only modes 0-2 can be processed with standard libjpeg:                  Andrey.filippov

Elphel camera parts 0353-98

Wed, 06/29/2016 - 14:57

0353-98-17 - Screw, M2.5, Socket Cap, l=30mm, Black Oxide:

← Older revision Revision as of 20:57, 29 June 2016 Line 89: Line 89: === 0353-98-17 - Screw, M2.5, Socket Cap,  l=30mm, Black Oxide === === 0353-98-17 - Screw, M2.5, Socket Cap,  l=30mm, Black Oxide === mcmaster p/n 91290A059 mcmaster p/n 91290A059  +----  +  +=== 0353-98-18 - M2.5x6mmx3.5mm Female Thread Brass Knurled Insert Embedded Nuts 30pcs  === ---- ---- Olga

Camera Accessories

Wed, 06/29/2016 - 14:29

File:N125B04530W adapter.jpeg

Wed, 06/29/2016 - 14:02

uploaded "[[File:N125B04530W adapter.jpeg]]"

Oleg

Tmp manual

Tue, 06/28/2016 - 16:34

Notes:

← Older revision Revision as of 22:34, 28 June 2016 (25 intermediate revisions not shown)Line 8: Line 8: ==<font color="blue">Defaults</font>== ==<font color="blue">Defaults</font>== -IP addr: <b>192.168.0.8</b>+IP addr: <b>192.168.0.9</b> (old: 192.168.0.8) user / pwd: root / <empty> user / pwd: root / <empty> -* The address is set in the ''init_elphel393.sh'' script on the card's FAT32 partition.+* (current) The address is set in the ''/etc/init_elphel393.sh'' in rootfs.  +* (old) The address is set in the ''init_elphel393.sh'' script on the card's FAT32 partition. ==<font color="blue">init_elphel393.sh</font>== ==<font color="blue">init_elphel393.sh</font>== -* Before boot set SENSOR_TYPE:+* ''/etc/init_elphel393.sh''  +* Change SENSOR_TYPE (boots but no images if incorrectly set): ** SENSOR_TYPE=5 - for 5MPix sensors ** SENSOR_TYPE=5 - for 5MPix sensors ** SENSOR_TYPE=14 - for 14MPix ** SENSOR_TYPE=14 - for 14MPix Line 22: Line 24: ==<font color="blue">Boot</font>== ==<font color="blue">Boot</font>== -* on power-on boots from NAND flash: u-boot, device tree and kernel.+* [default behavior] on power-on the camera boots from NAND flash: u-boot, device tree and kernel. -devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition.+devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition. Thus, the &mu;SD card must be inserted.  +* boot from &mu;SD card only options:  +** A modified card that doesn't lock the mechanical CD pin in the slot - it's done by carefully rubbing down the corner (see Fig.2) - most cards have circuitry there and get damaged.  +** &mu;USB-to-USB cable: in Linux compile [https://sourceforge.net/p/elphel/cp210x_gpio/ci/master/tree/ this driver], connect camera to PC, reload the driver then type:  + ./cp210x_gpio.py 0x6;  + ./cp210x_gpio.py 0xe;  +{|  +|[[File:Recover mmc.jpeg|130px|thumb|Fig.2 Recovery &mu;SD card ('cut' corner) - enforces the system board to boot from it]]  +|} ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== -ssh root@192.168.0.8+ssh root@192.168.0.9 ==<font color="blue">Serial console access</font>== ==<font color="blue">Serial console access</font>== Line 36: Line 46: ==<font color="blue">Get images</font>== ==<font color="blue">Get images</font>== -channel 1: http://192.168.0.8:2323/img+channel 1: http://192.168.0.9:2323/img -channel 2: http://192.168.0.8:2324/img+channel 2: http://192.168.0.9:2324/img -channel 3: http://192.168.0.8:2325/img+channel 3: http://192.168.0.9:2325/img -channel 4: http://192.168.0.8:2326/img+channel 4: http://192.168.0.9:2326/img ==<font color="blue">Video</font>== ==<font color="blue">Video</font>== ===Display=== ===Display=== <font size='2'> <font size='2'> -  gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.8:2323/mimg ! jpegdec ! xvimagesink+  gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.9:2323/mimg ! jpegdec ! xvimagesink </font> </font> * Only mjpeg, no rtsp yet. * Only mjpeg, no rtsp yet. Line 59: Line 69: Example 1: (provide a correct media mount point) Example 1: (provide a correct media mount point) <font size='2'> <font size='2'> -* http://192.168.0.8/camogm.html+* http://192.168.0.9/camogm.html </font> </font> Line 66: Line 76: * channel '''0''', '''/dev/sda1''', w/o a file name prefix * channel '''0''', '''/dev/sda1''', w/o a file name prefix ** setup: ** setup: -  http://192.168.0.8/camogm.php?chn=0&cmd=prefix=/mnt/sda1/;+  http://192.168.0.9/camogm.php?chn=0&cmd=prefix=/mnt/sda1/; ** start: ** start: -  http://192.168.0.8/camogm.php?chn=0&cmd=start;+  http://192.168.0.9/camogm.php?chn=0&cmd=start; ** stop: ** stop: -  http://192.168.0.8/camogm.php?chn=0&cmd=stop;+  http://192.168.0.9/camogm.php?chn=0&cmd=stop; </font> </font> Line 85: Line 95: ==<font color="blue">Change parameters</font>== ==<font color="blue">Change parameters</font>== -* http://192.168.0.8/controls.html - previews and basic parameters:+* http://192.168.0.9/controls.html - previews and basic parameters: ** Exposure - the values are in the sensor lines. Currently conversion to seconds is not correct. ** Exposure - the values are in the sensor lines. Currently conversion to seconds is not correct. ** WB - r,g,b gains ** WB - r,g,b gains Line 102: Line 112: ==<font color="blue">Temperature monitor</font>== ==<font color="blue">Temperature monitor</font>== -* http://192.168.0.8/hwmon.html:+* http://192.168.0.9/hwmon.html: ** T<sub>shutdown</sub> - automatic shutdown temperature level ** T<sub>shutdown</sub> - automatic shutdown temperature level {| {| Line 109: Line 119: ==<font color="blue">Proper shutdown</font>== ==<font color="blue">Proper shutdown</font>==  +* if not properly shutdown - &mu;SD might get corrupted (run '''sync''' at least)   shutdown -hP now   shutdown -hP now ==<font color="blue">Firmware image</font>== ==<font color="blue">Firmware image</font>== -* [http://community.elphel.com/files/393/20160622/ 20160622 (new)]+* [http://community.elphel.com/files/393/20160626/ 20160626 (new)]  +** python scripts moved to /tmp - dependencies create ''pyc''s  +** init_elphel393.sh moved from &mu;SD card to ''/etc'' in rootfs - boot from flash doesn't require an inserted card for '''fixed''' boards.  +** default IP address changed to 192.168.0.9 as in the image built from our repositories.  +* [http://community.elphel.com/files/393/20160622/ 20160622 (old)] * [http://community.elphel.com/files/393/20160614/ 20160614 (old)] * [http://community.elphel.com/files/393/20160614/ 20160614 (old)] * [http://community.elphel.com/files/393/20160607/ 20160607 (old)] * [http://community.elphel.com/files/393/20160607/ 20160607 (old)] Line 122: Line 137: ==<font color="blue">Known problems</font>== ==<font color="blue">Known problems</font>== * [solved] Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing. * [solved] Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing. -* http://192.168.0.8:232x/noexif/mimg - multipart jpeg displays corrupted frames from time to time. Reason: network bandwidth?+* 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. * [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.   ...   ... Line 130: Line 145: * Changing exposure/quality/gains - can corrupt images - needs testing. * Changing exposure/quality/gains - can corrupt images - needs testing.  +* After rewriting rootfs to &mu;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.  +  +  +  +==<font color="blue">Notes</font>==  +* 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 - [http://stackoverflow.com/questions/18663078/disable-history-in-linux disable bash history] [[Category:393]] [[Category:393]] Oleg

Tmp manual

Tue, 06/28/2016 - 11:53

← Older revision Revision as of 17:53, 28 June 2016 (22 intermediate revisions not shown)Line 8: Line 8: ==<font color="blue">Defaults</font>== ==<font color="blue">Defaults</font>== -IP addr: <b>192.168.0.8</b>+IP addr: <b>192.168.0.9</b> (old: 192.168.0.8) user / pwd: root / <empty> user / pwd: root / <empty> -* The address is set in the ''init_elphel393.sh'' script on the card's FAT32 partition.+* (current) The address is set in the ''/etc/init_elphel393.sh'' in rootfs.  +* (old) The address is set in the ''init_elphel393.sh'' script on the card's FAT32 partition. ==<font color="blue">init_elphel393.sh</font>== ==<font color="blue">init_elphel393.sh</font>== -* Before boot set SENSOR_TYPE:+* ''/etc/init_elphel393.sh''  +* Change SENSOR_TYPE (boots but no images if incorrectly set): ** SENSOR_TYPE=5 - for 5MPix sensors ** SENSOR_TYPE=5 - for 5MPix sensors ** SENSOR_TYPE=14 - for 14MPix ** SENSOR_TYPE=14 - for 14MPix Line 22: Line 24: ==<font color="blue">Boot</font>== ==<font color="blue">Boot</font>== -* on power-on boots from NAND flash: u-boot, device tree and kernel.+* [default behavior] on power-on the camera boots from NAND flash: u-boot, device tree and kernel. -devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition.+devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition. Thus, the &mu;SD card must be inserted.  +* boot from &mu;SD card only options:  +** A modified card that doesn't lock the mechanical CD pin in the slot - it's done by carefully rubbing down the corner (see Fig.2) - most cards have circuitry there and get damaged.  +** &mu;USB-to-USB cable: in Linux compile [https://sourceforge.net/p/elphel/cp210x_gpio/ci/master/tree/ this driver], connect camera to PC, reload the driver then type:  + ./cp210x_gpio.py 0x6;  + ./cp210x_gpio.py 0xe;  +{|  +|[[File:Recover mmc.jpeg|130px|thumb|Fig.2 Recovery &mu;SD card ('cut' corner) - enforces the system board to boot from it]]  +|} ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== -ssh root@192.168.0.8+ssh root@192.168.0.9 ==<font color="blue">Serial console access</font>== ==<font color="blue">Serial console access</font>== Line 36: Line 46: ==<font color="blue">Get images</font>== ==<font color="blue">Get images</font>== -channel 1: http://192.168.0.8:2323/img+channel 1: http://192.168.0.9:2323/img -channel 2: http://192.168.0.8:2324/img+channel 2: http://192.168.0.9:2324/img -channel 3: http://192.168.0.8:2325/img+channel 3: http://192.168.0.9:2325/img -channel 4: http://192.168.0.8:2326/img+channel 4: http://192.168.0.9:2326/img ==<font color="blue">Video</font>== ==<font color="blue">Video</font>== ===Display=== ===Display=== <font size='2'> <font size='2'> -  gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.8:2323/mimg ! jpegdec ! xvimagesink+  gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.9:2323/mimg ! jpegdec ! xvimagesink </font> </font> * Only mjpeg, no rtsp yet. * Only mjpeg, no rtsp yet. Line 59: Line 69: Example 1: (provide a correct media mount point) Example 1: (provide a correct media mount point) <font size='2'> <font size='2'> -* http://192.168.0.8/camogm.html+* http://192.168.0.9/camogm.html </font> </font> Line 66: Line 76: * channel '''0''', '''/dev/sda1''', w/o a file name prefix * channel '''0''', '''/dev/sda1''', w/o a file name prefix ** setup: ** setup: -  http://192.168.0.8/camogm.php?chn=0&cmd=prefix=/mnt/sda1/;+  http://192.168.0.9/camogm.php?chn=0&cmd=prefix=/mnt/sda1/; ** start: ** start: -  http://192.168.0.8/camogm.php?chn=0&cmd=start;+  http://192.168.0.9/camogm.php?chn=0&cmd=start; ** stop: ** stop: -  http://192.168.0.8/camogm.php?chn=0&cmd=stop;+  http://192.168.0.9/camogm.php?chn=0&cmd=stop; </font> </font> Line 85: Line 95: ==<font color="blue">Change parameters</font>== ==<font color="blue">Change parameters</font>== -* http://192.168.0.8/controls.html - previews and basic parameters:+* http://192.168.0.9/controls.html - previews and basic parameters: ** Exposure - the values are in the sensor lines. Currently conversion to seconds is not correct. ** Exposure - the values are in the sensor lines. Currently conversion to seconds is not correct. ** WB - r,g,b gains ** WB - r,g,b gains Line 102: Line 112: ==<font color="blue">Temperature monitor</font>== ==<font color="blue">Temperature monitor</font>== -* http://192.168.0.8/hwmon.html:+* http://192.168.0.9/hwmon.html: ** T<sub>shutdown</sub> - automatic shutdown temperature level ** T<sub>shutdown</sub> - automatic shutdown temperature level {| {| Line 109: Line 119: ==<font color="blue">Proper shutdown</font>== ==<font color="blue">Proper shutdown</font>==  +* if not properly shutdown - &mu;SD might get corrupted (run '''sync''' at least)   shutdown -hP now   shutdown -hP now ==<font color="blue">Firmware image</font>== ==<font color="blue">Firmware image</font>== -* [http://community.elphel.com/files/393/20160622/ 20160622 (new)]+* [http://community.elphel.com/files/393/20160626/ 20160626 (new)]  +** python scripts moved to /tmp - dependencies create ''pyc''s  +** init_elphel393.sh moved from &mu;SD card to ''/etc'' in rootfs - boot from flash doesn't require an inserted card for '''fixed''' boards.  +** default IP address changed to 192.168.0.9 as in the image built from our repositories.  +* [http://community.elphel.com/files/393/20160622/ 20160622 (old)] * [http://community.elphel.com/files/393/20160614/ 20160614 (old)] * [http://community.elphel.com/files/393/20160614/ 20160614 (old)] * [http://community.elphel.com/files/393/20160607/ 20160607 (old)] * [http://community.elphel.com/files/393/20160607/ 20160607 (old)] Line 122: Line 137: ==<font color="blue">Known problems</font>== ==<font color="blue">Known problems</font>== * [solved] Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing. * [solved] Vertical artifacts in jpegs. Images are ok at 100% quality. Fixed, testing. -* http://192.168.0.8:232x/noexif/mimg - multipart jpeg displays corrupted frames from time to time. Reason: network bandwidth?+* 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. * [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.   ...   ... Line 130: Line 145: * Changing exposure/quality/gains - can corrupt images - needs testing. * Changing exposure/quality/gains - can corrupt images - needs testing.  +* After rewriting rootfs to &mu;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. [[Category:393]] [[Category:393]] Oleg

Tmp manual

Sun, 06/26/2016 - 18:28

init_elphel393.sh:

← Older revision Revision as of 00:28, 27 June 2016 (21 intermediate revisions not shown)Line 8: Line 8: ==<font color="blue">Defaults</font>== ==<font color="blue">Defaults</font>== -IP addr: <b>192.168.0.8</b>+IP addr: <b>192.168.0.9</b> (old: 192.168.0.8) user / pwd: root / <empty> user / pwd: root / <empty> -* The address is set in the ''init_elphel393.sh'' script on the card's FAT32 partition.+* (current) The address is set in the ''/etc/init_elphel393.sh'' in rootfs.  +* (old) The address is set in the ''init_elphel393.sh'' script on the card's FAT32 partition. ==<font color="blue">init_elphel393.sh</font>== ==<font color="blue">init_elphel393.sh</font>== -* Before boot set SENSOR_TYPE:+* ''/etc/init_elphel393.sh''  +* Change SENSOR_TYPE (boots but no images if incorrectly set): ** SENSOR_TYPE=5 - for 5MPix sensors ** SENSOR_TYPE=5 - for 5MPix sensors ** SENSOR_TYPE=14 - for 14MPix ** SENSOR_TYPE=14 - for 14MPix Line 22: Line 24: ==<font color="blue">Boot</font>== ==<font color="blue">Boot</font>== -* on power-on boots from NAND flash: u-boot, device tree and kernel.+* [default behavior] on power-on the camera boots from NAND flash: u-boot, device tree and kernel. -devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition.+devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition. Thus, the &mu;SD card must be inserted.  +* boot from &mu;SD card only options:  +** A modified card that doesn't lock the mechanical CD pin in the slot - it's done by carefully rubbing down the corner (see Fig.2) - most cards have circuitry there and get damaged.  +** &mu;USB-to-USB cable: in Linux compile [https://sourceforge.net/p/elphel/cp210x_gpio/ci/master/tree/ this driver], connect camera to PC, reload the driver then type:  + ./cp210x_gpio.py 0x6;  + ./cp210x_gpio.py 0xe;  +{|  +|[[File:Recover mmc.jpeg|130px|thumb|Fig.2 Recovery &mu;SD card ('cut' corner) - enforces the system board to boot from it]]  +|} ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== -ssh root@192.168.0.8+ssh root@192.168.0.9 ==<font color="blue">Serial console access</font>== ==<font color="blue">Serial console access</font>== Line 36: Line 46: ==<font color="blue">Get images</font>== ==<font color="blue">Get images</font>== -channel 1: http://192.168.0.8:2323/img+channel 1: http://192.168.0.9:2323/img -channel 2: http://192.168.0.8:2324/img+channel 2: http://192.168.0.9:2324/img -channel 3: http://192.168.0.8:2325/img+channel 3: http://192.168.0.9:2325/img -channel 4: http://192.168.0.8:2326/img+channel 4: http://192.168.0.9:2326/img ==<font color="blue">Video</font>== ==<font color="blue">Video</font>== ===Display=== ===Display=== <font size='2'> <font size='2'> -  gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.8:2323/mimg ! jpegdec ! xvimagesink+  gst-launch-1.0 souphttpsrc is-live=true location=http://192.168.0.9:2323/mimg ! jpegdec ! xvimagesink </font> </font> * Only mjpeg, no rtsp yet. * Only mjpeg, no rtsp yet. Line 59: Line 69: Example 1: (provide a correct media mount point) Example 1: (provide a correct media mount point) <font size='2'> <font size='2'> -* http://192.168.0.8/camogm.html+* http://192.168.0.9/camogm.html </font> </font> Line 66: Line 76: * channel '''0''', '''/dev/sda1''', w/o a file name prefix * channel '''0''', '''/dev/sda1''', w/o a file name prefix ** setup: ** setup: -  http://192.168.0.8/camogm.php?chn=0&cmd=prefix=/mnt/sda1/;+  http://192.168.0.9/camogm.php?chn=0&cmd=prefix=/mnt/sda1/; ** start: ** start: -  http://192.168.0.8/camogm.php?chn=0&cmd=start;+  http://192.168.0.9/camogm.php?chn=0&cmd=start; ** stop: ** stop: -  http://192.168.0.8/camogm.php?chn=0&cmd=stop;+  http://192.168.0.9/camogm.php?chn=0&cmd=stop; </font> </font> Line 102: Line 112: ==<font color="blue">Temperature monitor</font>== ==<font color="blue">Temperature monitor</font>== -* http://192.168.0.8/hwmon.html:+* http://192.168.0.9/hwmon.html: ** T<sub>shutdown</sub> - automatic shutdown temperature level ** T<sub>shutdown</sub> - automatic shutdown temperature level {| {| Line 109: Line 119: ==<font color="blue">Proper shutdown</font>== ==<font color="blue">Proper shutdown</font>==  +* if not properly shutdown - &mu;SD might get corrupted (run '''sync''' at least)   shutdown -hP now   shutdown -hP now ==<font color="blue">Firmware image</font>== ==<font color="blue">Firmware image</font>== -* [http://community.elphel.com/files/393/20160622/ 20160622 (new)]+* [http://community.elphel.com/files/393/20160626/ 20160626 (new)]  +** python scripts moved to /tmp - dependencies create ''pyc''s  +** init_elphel393.sh moved from &mu;SD card to ''/etc'' in rootfs - boot from flash doesn't require an inserted card for '''fixed''' boards.  +** default IP address changed to 192.168.0.9 as in the image built from our repositories.  +* [http://community.elphel.com/files/393/20160622/ 20160622 (old)] * [http://community.elphel.com/files/393/20160614/ 20160614 (old)] * [http://community.elphel.com/files/393/20160614/ 20160614 (old)] * [http://community.elphel.com/files/393/20160607/ 20160607 (old)] * [http://community.elphel.com/files/393/20160607/ 20160607 (old)] Line 130: Line 145: * Changing exposure/quality/gains - can corrupt images - needs testing. * Changing exposure/quality/gains - can corrupt images - needs testing.  +* After rewriting rootfs to &mu;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. [[Category:393]] [[Category:393]] Oleg

Tmp manual

Thu, 06/23/2016 - 19:57

Proper shutdown:

← Older revision Revision as of 01:57, 24 June 2016 (6 intermediate revisions not shown)Line 22: Line 22: ==<font color="blue">Boot</font>== ==<font color="blue">Boot</font>== -* on power-on boots from NAND flash: u-boot, device tree and kernel.+* [default behavior] on power-on the camera boots from NAND flash: u-boot, device tree and kernel. -devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition.+devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition. Thus, the &mu;SD card must be inserted.  +* boot from &mu;SD card only options:  +** A modified card that doesn't lock the mechanical CD pin in the slot - it's done by carefully rubbing down the corner (see Fig.2) - most cards have circuitry there and get damaged.  +** &mu;USB-to-USB cable: in Linux compile [https://sourceforge.net/p/elphel/cp210x_gpio/ci/master/tree/ this driver], connect camera to PC, reload the driver then type:  + ./cp210x_gpio.py 0x6;  + ./cp210x_gpio.py 0xe;  +{|  +|[[File:Recover mmc.jpeg|130px|thumb|Fig.2 Recovery &mu;SD card]]  +|} ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== Line 109: Line 117: ==<font color="blue">Proper shutdown</font>== ==<font color="blue">Proper shutdown</font>==  +* if not properly shutdown - &mu;SD might get corrupted (run '''sync''' at least)   shutdown -hP now   shutdown -hP now Oleg

Tmp manual

Thu, 06/23/2016 - 17:22

Boot:

← Older revision Revision as of 23:22, 23 June 2016 (5 intermediate revisions not shown)Line 22: Line 22: ==<font color="blue">Boot</font>== ==<font color="blue">Boot</font>== -* on power-on boots from NAND flash: u-boot, device tree and kernel.+* [default behavior] on power-on the camera boots from NAND flash: u-boot, device tree and kernel. -devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition.+devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition. Thus, the &mu;SD card must be inserted.  +* boot from &mu;SD card only options:  +** A modified card that doesn't lock the mechanical CD pin in the slot - it's done by carefully rubbing down the corner (see Fig.2) - most cards have circuitry there and get damaged.  +** &mu;USB-to-USB cable: in Linux compile [https://sourceforge.net/p/elphel/cp210x_gpio/ci/master/tree/ this driver], connect camera to PC, reload the driver then type:  + ./cp210x_gpio.py 0x6;  + ./cp210x_gpio.py 0xe;  +{|  +|[[File:Recover mmc.jpeg|130px|thumb|Fig.2 Recovery &mu;SD card]]  +|} ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== Oleg

Tmp manual

Thu, 06/23/2016 - 15:51

Boot:

← Older revision Revision as of 21:51, 23 June 2016 (3 intermediate revisions not shown)Line 22: Line 22: ==<font color="blue">Boot</font>== ==<font color="blue">Boot</font>== -* on power-on boots from NAND flash: u-boot, device tree and kernel.+* (default) on power-on the camera boots from NAND flash: u-boot, device tree and kernel. devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition. devicetree has "chosen = ...root=/dev/mmcblk0p2..." - rootfs is on the micro SD card second partition.  +* boot from &mu;SD card only options:  +** A modified card that doesn't lock the mechanical CD pin in the slot - it's done by carefully rubbing down the corner (see Fig.2) - most cards have circuitry there and get damaged.  +** &mu;USB-to-USB cable: in Linux compile [https://sourceforge.net/p/elphel/cp210x_gpio/ci/master/tree/ this driver], connect camera to PC, reload the driver then type:  + ./cp210x_gpio.py 0x6;  + ./cp210x_gpio.py 0xe;  +{|  +|[[File:Recover mmc.jpeg|130px|thumb|Fig.2 Recovery &mu;SD card]]  +|} ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== Oleg

File:Recover mmc.jpeg

Thu, 06/23/2016 - 15:29

uploaded "[[File:Recover mmc.jpeg]]"

Oleg

Pages