Eyesis4Pi 393 Post Processing
← Older revision
Revision as of 00:27, 23 April 2017
(One intermediate revision by the same user not shown)Line 31:
Line 31:
5. Repeat steps 1.-4. for the next SSD (if PC fits only one). 5. Repeat steps 1.-4. for the next SSD (if PC fits only one).
− '''Note: The 3rd subcamera SSD's footage is 6 times less than the 1st and the 2nd as it contains images from 2 sensors, others - from 12 each'''+ '''Note: The 3rd subcamera SSD's footage is 6 times smaller than the 1st and the 2nd as it contains images from 2 sensors, others - from 12 each'''
After footage is downloaded from all SSDs the tree will look similar to the following: After footage is downloaded from all SSDs the tree will look similar to the following:
Line 46:
Line 46:
├── file_2.img ├── file_2.img
├── file_3.img ├── file_3.img
− └── file_4.img</font>+ └── file_4.img
+ </font>
==Next step: split footage into images== ==Next step: split footage into images==
'''extract_images.php''' '''extract_images.php'''
Oleg
Eyesis4Pi 393 Post Processing
← Older revision
Revision as of 00:27, 23 April 2017
(2 intermediate revisions by the same user not shown)Line 31:
Line 31:
5. Repeat steps 1.-4. for the next SSD (if PC fits only one). 5. Repeat steps 1.-4. for the next SSD (if PC fits only one).
− '''Note: The 3rd subcamera SSD's footage is 6 times less than the 1st and the 2nd as it contains images from 2 sensors, others - from 12 each'''+ '''Note: The 3rd subcamera SSD's footage is 6 times smaller than the 1st and the 2nd as it contains images from 2 sensors, others - from 12 each'''
After footage is downloaded from all SSDs the tree will look similar to the following: After footage is downloaded from all SSDs the tree will look similar to the following:
− <font size='1' color='darkblue'>/data/footage/test1+ <font size='2' color='darkblue'>/data/footage/test1
├── Crucial_CT2050MX300SSD1_001-part2 ├── Crucial_CT2050MX300SSD1_001-part2
│ ├── file_2.img │ ├── file_2.img
Line 46:
Line 46:
├── file_2.img ├── file_2.img
├── file_3.img ├── file_3.img
− └── file_4.img</font>+ └── file_4.img
+ </font>
==Next step: split footage into images== ==Next step: split footage into images==
'''extract_images.php''' '''extract_images.php'''
Oleg
Eyesis4Pi 393 Post Processing
← Older revision
Revision as of 00:27, 23 April 2017
(8 intermediate revisions by the same user not shown)Line 5:
Line 5:
=== Scripts === === Scripts ===
* ''ext_ssd_download.py'' - download footage from external SSD (connected to PC, camera off) * ''ext_ssd_download.py'' - download footage from external SSD (connected to PC, camera off)
+ ''$./ext_ssd_download.py -h'' - print help
* ''int_ssd_download.py'' - download footage from Eyesis4Pi-393 internal SSD (camera's eSATA cables allow to download data from internal SSDs) * ''int_ssd_download.py'' - download footage from Eyesis4Pi-393 internal SSD (camera's eSATA cables allow to download data from internal SSDs)
+ ''$./int_ssd_download.py -h'' - print help
+
+==Download footage example==
+1. Connect SSD to PC
+
+2. Identify the device (using ''dmesg'', for example). Example: '''/dev/sdc'''. The second partition contains footage = '''/dev/sdc2'''
+
+3. ''cd'' to the dir
+ $ cd elphel-tools-x393
+4. Download footage in 10GB chunks (the script has 20MB overlapping to prevent corrupted images in the preceding chunk)
+* Download 30GB but skip the first 20GB (download range = 20-50GB on the SSD), to ''/data/footage/test1'' on PC:
+ $./ext_ssd_download.py -p /dev/sdb2 -n 3 -s 2 /data/footage/test1
+
+ '''result tree:'''
+ <font size='2' color='darkblue'>/data/footage/test1
+ └── Crucial_CT2050MX300SSD1_001-part2 <font color='black'>- each drive has a unique identifier, the script creates a corresponding directory for each drive and partition</font>
+ ├── file_2.img
+ ├── file_3.img
+ └── file_4.img</font>
+
+* Download whole partition, to ''/data/footage/test1'' on PC:
+ $./ext_ssd_download.py -p /dev/sdb2 /data/footage/test2
+
+5. Repeat steps 1.-4. for the next SSD (if PC fits only one).
+ '''Note: The 3rd subcamera SSD's footage is 6 times smaller than the 1st and the 2nd as it contains images from 2 sensors, others - from 12 each'''
+
+After footage is downloaded from all SSDs the tree will look similar to the following:
+ <font size='2' color='darkblue'>/data/footage/test1
+ ├── Crucial_CT2050MX300SSD1_001-part2
+ │ ├── file_2.img
+ │ ├── file_3.img
+ │ └── file_4.img
+ ├── Crucial_CT2050MX300SSD1_002-part2
+ │ ├── file_2.img
+ │ ├── file_3.img
+ │ └── file_4.img
+ └── Crucial_CT2050MX300SSD1_003-part2
+ ├── file_2.img
+ ├── file_3.img
+ └── file_4.img
+ </font>
+
+==Next step: split footage into images==
+'''extract_images.php'''
Oleg
Eyesis4Pi 393 Post Processing
Created page with "==Install== git clone https://git.elphel.com/Elphel/elphel-tools-x393.git === Scripts === * ''ext_ssd_download.py'' - download footage from external SSD (connected to PC, c..."
New page
==Install==git clone https://git.elphel.com/Elphel/elphel-tools-x393.git
=== Scripts ===
* ''ext_ssd_download.py'' - download footage from external SSD (connected to PC, camera off)
* ''int_ssd_download.py'' - download footage from Eyesis4Pi-393 internal SSD (camera's eSATA cables allow to download data from internal SSDs) Oleg
Eyesis4Pi 393 User Guide - Recording
Power On
← Older revision Revision as of 23:37, 22 April 2017 (One intermediate revision by the same user not shown)Line 43: Line 43: Note: If GUI is refreshed before subcamera has mounted SSD it will not display SSD free space. Refresh in a few moments or until SSD gets mounted. Note: If GUI is refreshed before subcamera has mounted SSD it will not display SSD free space. Refresh in a few moments or until SSD gets mounted. + Note: Each subcamera's drive has 2 partitions: + * /dev/sda1 - ext4 file system - used by the logger on the 1st subcamera (192.168.0.161), and stored write info of the second partition + * /dev/sda2 - no file system - images are written to the 'raw' partition for better speed. They are extracted later, using ''dd'' mostly + In the GUI under free space (): + * the 1st number - /dev/sda1 + * the 2nd number - /dev/sda2 <b> <b> OlegEyesis4Pi Footage Procedures page
Procedures
← Older revision Revision as of 23:11, 22 April 2017 Line 1: Line 1: <br/><br/> <br/><br/> ==Procedures== ==Procedures== +* This will work if dealing with few panoramas. For many the best option is to use scripts w/o ui. * Copying images before processing. * Copying images before processing. * Extracting GPS coordinates from the images' EXIF headers. * Extracting GPS coordinates from the images' EXIF headers. OlegEyesis4Pi 393 User Guide - Recording
Example
← Older revision Revision as of 23:08, 22 April 2017 (11 intermediate revisions by the same user not shown)Line 12: Line 12: 2. Make the src folder visible to the web server: 2. Make the src folder visible to the web server: − 2a. Create a link, terminal: "sudo ln -sf <path-to-eyesis4pi_gui-folder> /var/www/eyesisgui"+ 2a. Create a link, terminal: "sudo ln -sf <path-to-eyesis4pi_gui-folder> /var/www/html/eyesisgui" 2b. Or copy all the files to /var/www/eyesisgui. 2b. Or copy all the files to /var/www/eyesisgui. − Note: "/var/www" is the (apache2) web server's document root folder.+ Note: ''/var/www/html'' is apache2 document root folder. − (for recording to the device over network only)+ (for recording over network only to host device) 2c. Make the footage root folder "/data/footage" writable for everyone. 2c. Make the footage root folder "/data/footage" writable for everyone. + + 3. Make editable ''eyesis4pi-393-gui/settings.xml'' for the webserver + $ chmod 777 settings.xml + This file restores the settings from previous session. + + == Equipment/Package == == Equipment/Package == Line 32: Line 38: * Connect all cables - power, network, eSATA. * Connect all cables - power, network, eSATA. * Power on: switch, SSD enclosure, Eyesis4Pi393. Boot takes about 1 min. * Power on: switch, SSD enclosure, Eyesis4Pi393. Boot takes about 1 min. −* Setup PC IP (can be done beforehand).+* Setup PC IP (can be done beforehand, see [[Eyesis4Pi_393_User_Guide_-_Recording#Network_Setup|Network Setup]]) * Refresh GUI after camera boots * Refresh GUI after camera boots − Note 1: If GUI is refreshed before subcamera has mounted SSD it will not display SSD free space. Refresh in a few moments or until SSD gets mounted.+ http://127.0.0.1/eyesisgui + + Note: If GUI is refreshed before subcamera has mounted SSD it will not display SSD free space. Refresh in a few moments or until SSD gets mounted. <b> <b> − Important Notice: Use a fan to cool the camera's pole when shooting indoors.+ Important Note: Use a fan to cool the camera's pole when shooting indoors. </b> </b> {| {| Line 142: Line 150: == Setting recording parameters: camera settings == == Setting recording parameters: camera settings == − +===Description=== * '''Settings''' -> '''Camera'''-tab * '''Settings''' -> '''Camera'''-tab − '''Trigger period,ms ''' - 1/FPS, 200 = 5fps, 250 = 4fps, 500 = 2fps, 1000 = 1fps...+ '''Trigger period,ms ''' - 1/FPS, 250 = 4fps, 500 = 2fps, 1000 = 1fps... '''HDRVexpos''' - not used. '''HDRVexpos''' - not used. '''Manual Exposure''' - used when auto exposure is off. '''Manual Exposure''' - used when auto exposure is off. Line 168: Line 176: | [[File:Eyesis4pi393gui tab other.png|thumb|500px]] | [[File:Eyesis4pi393gui tab other.png|thumb|500px]] |} |} + +===Example=== +# '''Trigger period''' = '''250''' - hit '''APPLY''' below '''AutoExp frame ahead''' +# '''Compression quality''' = '''96''' - edit or use +/-, the value is applied on change +# Start recording == Start == == Start == OlegEyesis4Pi 393 User Guide - Recording
Example
← Older revision Revision as of 23:08, 22 April 2017 (12 intermediate revisions by the same user not shown)Line 6: Line 6: git clone https://git.elphel.com/Elphel/eyesis4pi-393-gui.git git clone https://git.elphel.com/Elphel/eyesis4pi-393-gui.git git pull (repeat any time to get the latest) git pull (repeat any time to get the latest) −https://git.elphel.com: − https://git.elphel.com/Elphel/eyesis4pi-393-gui/tree/master Follow the instructions in INSTALL.txt: Follow the instructions in INSTALL.txt: Line 14: Line 12: 2. Make the src folder visible to the web server: 2. Make the src folder visible to the web server: − 2a. Create a link, terminal: "sudo ln -sf <path-to-eyesis4pi_gui-folder> /var/www/eyesisgui"+ 2a. Create a link, terminal: "sudo ln -sf <path-to-eyesis4pi_gui-folder> /var/www/html/eyesisgui" 2b. Or copy all the files to /var/www/eyesisgui. 2b. Or copy all the files to /var/www/eyesisgui. − Note: "/var/www" is the (apache2) web server's document root folder.+ Note: ''/var/www/html'' is apache2 document root folder. − (for recording to the device over network only)+ (for recording over network only to host device) 2c. Make the footage root folder "/data/footage" writable for everyone. 2c. Make the footage root folder "/data/footage" writable for everyone. + + 3. Make editable ''eyesis4pi-393-gui/settings.xml'' for the webserver + $ chmod 777 settings.xml + This file restores the settings from previous session. + Line 35: Line 38: * Connect all cables - power, network, eSATA. * Connect all cables - power, network, eSATA. * Power on: switch, SSD enclosure, Eyesis4Pi393. Boot takes about 1 min. * Power on: switch, SSD enclosure, Eyesis4Pi393. Boot takes about 1 min. −* Setup PC IP (can be done beforehand).+* Setup PC IP (can be done beforehand, see [[Eyesis4Pi_393_User_Guide_-_Recording#Network_Setup|Network Setup]]) * Refresh GUI after camera boots * Refresh GUI after camera boots − Note 1: If GUI is refreshed before subcamera has mounted SSD it will not display SSD free space. Refresh in a few moments or until SSD gets mounted.+ http://127.0.0.1/eyesisgui + + Note: If GUI is refreshed before subcamera has mounted SSD it will not display SSD free space. Refresh in a few moments or until SSD gets mounted. <b> <b> − Important Notice: Use a fan to cool the camera's pole when shooting indoors.+ Important Note: Use a fan to cool the camera's pole when shooting indoors. </b> </b> {| {| Line 145: Line 150: == Setting recording parameters: camera settings == == Setting recording parameters: camera settings == − +===Description=== * '''Settings''' -> '''Camera'''-tab * '''Settings''' -> '''Camera'''-tab − '''Trigger period,ms ''' - 1/FPS, 200 = 5fps, 250 = 4fps, 500 = 2fps, 1000 = 1fps...+ '''Trigger period,ms ''' - 1/FPS, 250 = 4fps, 500 = 2fps, 1000 = 1fps... '''HDRVexpos''' - not used. '''HDRVexpos''' - not used. '''Manual Exposure''' - used when auto exposure is off. '''Manual Exposure''' - used when auto exposure is off. Line 171: Line 176: | [[File:Eyesis4pi393gui tab other.png|thumb|500px]] | [[File:Eyesis4pi393gui tab other.png|thumb|500px]] |} |} + +===Example=== +# '''Trigger period''' = '''250''' - hit '''APPLY''' below '''AutoExp frame ahead''' +# '''Compression quality''' = '''96''' - edit or use +/-, the value is applied on change +# Start recording == Start == == Start == OlegEyesis4Pi 393 User Guide - Recording
Download & Install
← Older revision Revision as of 22:38, 22 April 2017 Line 6: Line 6: git clone https://git.elphel.com/Elphel/eyesis4pi-393-gui.git git clone https://git.elphel.com/Elphel/eyesis4pi-393-gui.git git pull (repeat any time to get the latest) git pull (repeat any time to get the latest) −https://git.elphel.com: − https://git.elphel.com/Elphel/eyesis4pi-393-gui/tree/master Follow the instructions in INSTALL.txt: Follow the instructions in INSTALL.txt: Line 20: Line 18: (for recording to the device over network only) (for recording to the device over network only) 2c. Make the footage root folder "/data/footage" writable for everyone. 2c. Make the footage root folder "/data/footage" writable for everyone. − == Equipment/Package == == Equipment/Package == Oleg04/21/17 [eyesis4pi-393-gui][master] by Oleg Dzhimiev: quicker preview
Oleg Dzhimiev committed changes to the Elphel git project :
quicker preview
quicker preview
04/21/17 [eyesis4pi-393-panorama-previewer][master] by Oleg Dzhimiev: quicker preview
Oleg Dzhimiev committed changes to the Elphel git project :
quicker preview
quicker preview
Load custom bitstream
← Older revision
Revision as of 21:50, 20 April 2017
(One intermediate revision by the same user not shown)Line 3:
Line 3:
Reasons: Reasons:
−* Different banks have different (software - controlled and regulated) voltages and they need to be set up before loading.+* Different banks have different (software controlled and regulated) voltages and they need to be set up before loading.
** voltages are set by the software through i2c ** voltages are set by the software through i2c
Line 31:
Line 31:
==Init== ==Init==
−* '''detect_sensors''' driver reads the device tree to get the default system configuration which gets later updated by '''autocampars'''+* '''detect_sensors''' driver reads the device tree to get the default system configuration which gets later updated by '''autocampars''' application
* /etc/init.d/init_elphel393 * /etc/init.d/init_elphel393
... ...
Oleg
Load custom bitstream
← Older revision
Revision as of 21:50, 20 April 2017
(13 intermediate revisions by the same user not shown)Line 1:
Line 1:
−==from u-boot==+==Description==
−==from OS==+The default bitstream is loaded from OS not from u-boot.
+
+Reasons:
+* Different banks have different (software controlled and regulated) voltages and they need to be set up before loading.
+** voltages are set by the software through i2c
+
+==Bitstreams paths==
+* Location on target system: ''/usr/local/verilog/''
+{| class='wikitable'
+! name
+! project
+! description
+|-
+|x393_parallel.bit
+|[https://git.elphel.com/Elphel/x393 x393]
+|for 5MPix sensor with parallel interface + SATA
+|-
+|x393_hispi.bit
+|[https://git.elphel.com/Elphel/x393 x393]
+|for 14MPix sensor with serial interface + SATA
+|-
+|x393_sata.bit
+|[https://git.elphel.com/Elphel/x393_sata x393_sata]
+|SATA only
+|-
+|x359.bit
+|[https://git.elphel.com/Elphel/x359 x359]
+|for external MUX 3-to-1 board
+|}
+
+==Init==
+* '''detect_sensors''' driver reads the device tree to get the default system configuration which gets later updated by '''autocampars''' application
+* /etc/init.d/init_elphel393
+ ...
+ $CONFDIR/init_elphel393.py "{\"usb_hub\":1, \"ip\":1,\"imgsrv\":1, \"autoexp_daemon\":1, \"autocampars\":1, \"sata\":1, \"gps\":1, \"eyesis\":0 }"
+ ...
+** in this line the extra init procedures are listed, to disable/skip certain procedure set 0, to enable - set 1
+** everything is done in ''/etc/elphel393/init_elphel393.py'' which runs other scripts.
+** the bitstream is loaded by '''autocampars''' or '''sata''' (if autocampars is skipped)
+
+===autocampars===
+* project: [https://git.elphel.com/Elphel/elphel-apps-autocampars elphel-apps-autocampars]
+* top script: '''autocampars.php'''
+** Location on target system: ''/usr/bin/''
+** loads ''/usr/local/verilog/x359.bit'' to the external MUX board
+** depending on configuration (determined in init_elphel393.py) calls '''/usr/bin/autocampars.py''' with arguments listed in the files in ''/usr/local/verilog''. The default one is ''/usr/local/verilog/hargs'':
+ -d TARGET_MODE=1
+ -f /usr/local/verilog/system_defines.vh
+ -f /usr/local/verilog/x393_parameters.vh /usr/local/verilog/x393_cur_params_target.vh /usr/local/verilog/x393_localparams.vh
+ -l /usr/local/verilog/x393_cur_params_target.vh
+ -p PICKLE="/usr/local/verilog/x393_mcntrl.pickle
+ -c bitstream_set_path /usr/local/verilog/x393_parallel.bit
+ -c setupSensorsPower "PAR12" all 0 0.1
+ -c measure_all "*DI"
+ -c setSensorClock 24.0 "2V5_LVDS"
+ -c set_rtc
+
+The file with arguments can be found in the fpga projects, example:
+ https://git.elphel.com/Elphel/x393/tree/master/py393
+Location on target system: ''/usr/local/verilog/''
+
+===sata===
+* project [https://git.elphel.com/Elphel/x393_sata x393_sata]
+* Location on target system: ''/usr/local/verilog/''
+* '''/usr/local/bin/x393sata.py''' loads it default bitstream if fpga has not been programmed yet.
+ ...
+ DEFAULT_BITFILE="/usr/local/verilog/x393_sata.bit"
+ ...
+
[[Category:393]] [[Category:393]]
Oleg
Load custom bitstream
← Older revision
Revision as of 21:07, 20 April 2017
(5 intermediate revisions by the same user not shown)Line 1:
Line 1:
−==from u-boot==+==Description==
−==from OS==+The default bitstream is loaded from OS not from u-boot.
+Reasons:
+* Different banks have different (software - controlled and regulated) voltages and they need to be set up before loading.
+** voltages are set by the software through i2c
+
+==Bitstreams paths==
+* ''/usr/local/verilog/''
+{| class='wikitable'
+! name
+! description
+|-
+|x393_parallel.bit
+|for 5MPix sensor with parallel interface + SATA
+|-
+|x393_hispi.bit
+|for 14MPix sensor with serial interface + SATA
+|-
+|x393_sata.bit
+|SATA only
+|-
+|x359.bit
+|for external MUX 3-to-1 board
+|}
+
+==Init==
+* /etc/init.d/init_elphel393
+ ...
+ $CONFDIR/init_elphel393.py "{\"usb_hub\":1, \"ip\":1,\"imgsrv\":1, \"autoexp_daemon\":1, \"autocampars\":1, \"sata\":1, \"gps\":1, \"eyesis\":0 }"
+ ...
+** in this line the extra init procedures are listed, to disable/skip certain procedure set 0, to enable - set 1
+** everything is done in ''/etc/elphel393/init_elphel393.py'' which runs other scripts.
+** the bitstream is loaded by '''autocampars''' or '''sata''' (if autocampars is skipped)
+
+
+
[[Category:393]] [[Category:393]]
Oleg
Load custom bitstream
Created page with "==from u-boot== ==from OS== Category:393"
New page
==from u-boot====from OS==
[[Category:393]] Oleg
04/20/17 [eyesis4pi-393-gui][master] by Oleg Dzhimiev: +strip_xml_header
Oleg Dzhimiev committed changes to the Elphel git project :
+strip_xml_header
+strip_xml_header
04/19/17 [imagej-elphel][master] by AndreyFilippov: debugging plane split
AndreyFilippov committed changes to the Elphel git project :
debugging plane split
debugging plane split
Eyesis4Pi 393 User Guide - Recording
Error 5 (frame buffer overflow)
← Older revision Revision as of 19:26, 18 April 2017 (One intermediate revision by the same user not shown)Line 195: Line 195: ===Error 5 (frame buffer overflow)=== ===Error 5 (frame buffer overflow)=== −* Frame buffer overflow counter (<font color='red'>'''dropped frames'''</font>).+* Frame buffer overflow counter ( = <font color='red'>'''dropped frames'''</font>). * Possible causes: * Possible causes: ** FPS and compression quality (combined) set too high: 5fps + 100% ** FPS and compression quality (combined) set too high: 5fps + 100% OlegEyesis4Pi 393 User Guide - Recording
Error 5 (frame buffer overflow)
← Older revision Revision as of 19:26, 18 April 2017 (3 intermediate revisions by the same user not shown)Line 193: Line 193: == Troubleshooting == == Troubleshooting == + +===Error 5 (frame buffer overflow)=== +* Frame buffer overflow counter ( = <font color='red'>'''dropped frames'''</font>). +* Possible causes: +** FPS and compression quality (combined) set too high: 5fps + 100% +** SSD write speed is slowed +{| +|[[File:Eyesis4pi 393 gui error5.png|thumb|400px|Buffer overflow errors]] +|} +* Errors are displayed as '''err5(N)''' against each buffer, where N is a cumulative number of errors + <!-- <!-- OlegPages
