12/21/16 [elphel-apps-camogm][master] by Mikhail Karpenko: Update help message in test program
Mikhail Karpenko committed changes to the Elphel git project :
Update help message in test program
Update help message in test program
12/21/16 [elphel-apps-camogm][master] by Mikhail Karpenko: Collect recording statistics
Mikhail Karpenko committed changes to the Elphel git project :
Collect recording statistics
Collect recording statistics
12/21/16 [elphel-apps-camogm][master] by Mikhail Karpenko: Collect recording statistics
Mikhail Karpenko committed changes to the Elphel git project :
Collect recording statistics
Collect recording statistics
Price list
Cameras:
← Older revision Revision as of 23:35, 21 December 2016 Line 190: Line 190: |$1835-$2990 |$1835-$2990 |$3495 |$3495 -|- -|colspan='2'|Price with KIT -|$TBA -|$TBA-$TBA -|$TBA |} |} - - =<font color='DarkBlue'>Camera Kits</font>= =<font color='DarkBlue'>Camera Kits</font>= OlegUsing camogm with Elphel393 camera
← Older revision
Revision as of 19:43, 21 December 2016
(One intermediate revision not shown)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:
- ~# ls -l /var/volatile/+ root@elphel393:~# ls -l /var/volatile/state/
- prwxr-xr-x 1 root root 0 May 31 16:55 camogm_cmd0+ -rw-r--r-- 1 root root 176 Dec 21 18:56 camera
- prwxr-xr-x 1 root root 0 May 31 16:55 camogm_cmd1+ prwxrwxrwx 1 root root 0 Dec 21 19:28 camogm.state
- prwxr-xr-x 1 root root 0 May 31 16:55 camogm_cmd2+ prwxr-xr-x 1 root root 0 Dec 21 19:28 camogm_cmd
- prwxr-xr-x 1 root root 0 May 31 16:55 camogm_cmd3+
- drwxr-xr-x 2 root root 180 May 31 16:54 log+
- drwxrwxrwt 2 root root 160 May 31 16:54 tmp+
- +
-''camogm'' is started from ''init_elphel393.sh'' script by default and its output is may not be visible on your console. You can stop current instances of the program and restart it from you terminal if the output should be visible:+
- +
- ~# for i in `seq 0 3`; do echo "exit" > /var/volatile/camogm_cmd$i; done+
- ~# camogm /var/volatile/camogm_cmd+
-Alternatively, the status information output can be redirected to a file as described in [[Camogm#Sending_Commands_to_camogm|Sending commands to camogm]].+The status information output can be redirected to a file as described in [[Camogm#Sending_Commands_to_camogm|Sending commands to camogm]].
Note, that ''camogm'' is under development and not all features of the previous version have been ported to new camera. As for now, geo tagging and exif specific commands are not implemented. Watch for updates on our [https://github.com/Elphel github page]. Note, that ''camogm'' is under development and not all features of the previous version have been ported to new camera. As for now, geo tagging and exif specific commands are not implemented. Watch for updates on our [https://github.com/Elphel github page].
Line 54:
Line 44:
===Example=== ===Example===
====1.==== ====1.====
-* channel '''2''' (0-3)+* recorded ports: all active ports will be recorded
* mount point '''/mnt/sda1''' (also works for a micro SD card partition, rootfs partition, USB or mounted NFS partition but the recording speed is slower than for an SSD) * mount point '''/mnt/sda1''' (also works for a micro SD card partition, rootfs partition, USB or mounted NFS partition but the recording speed is slower than for an SSD)
* max duration = '''10 min''' (new file every 10 mins or other limit) * max duration = '''10 min''' (new file every 10 mins or other limit)
* max size = '''1GB''' (new file every 1GB or other limit) * max size = '''1GB''' (new file every 1GB or other limit)
* format = '''mov''' * format = '''mov'''
-* status updates: '''/var/tmp/camogm2.status'''+* status updates: '''/var/tmp/camogm.status'''
start recording: start recording:
<font size='2'> <font size='2'>
- echo "format=mov;status=/var/tmp/camogm2.status;prefix=/mnt/sda1/;duration=600;length=1073741824;start" > /var/volatile/camogm_cmd2+ echo "format=mov;status=/var/tmp/camogm.status;prefix=/mnt/sda1/;duration=600;length=1073741824;start" > /var/volatile/camogm_cmd
stop recording: stop recording:
- echo "stop" > /var/volatile/camogm_cmd2+ echo "stop" > /var/volatile/camogm_cmd
sync sync
-'''NOTE:''' ''sync'' is important if you power off the camera w/o proper unmounting of the media +'''NOTE:''' ''sync'' is important if you power off the camera w/o proper unmounting of the media.
</font> </font>
Oleg
Parsedit.php
← Older revision
Revision as of 18:52, 21 December 2016
Line 76:
Line 76:
* change image format (COLOR) to JP4 for all ports: * change image format (COLOR) to JP4 for all ports:
http://192.168.0.9/parsedit.php?immediate&sensor_port=0&COLOR=5&*COLOR=0xf http://192.168.0.9/parsedit.php?immediate&sensor_port=0&COLOR=5&*COLOR=0xf
+
+====Program FPS====
+Read [[Trigger 393]]
[[Category:353]] [[Category:353]]
[[Category:393]] [[Category:393]]
Oleg
Tmp manual
Change parameters:
← Older revision Revision as of 17:51, 21 December 2016 (One intermediate revision not shown)Line 204: Line 204: Note 2: The new value is read on the next call. 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 [[Parsedit.php|'''More information''']] [[Parsedit.php|'''More information''']] Line 213: Line 217: ** if opened w/o sensor_port specified the page will show links to available ports ** 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 ** '''sensor_port=x''', where x=0..3 - in the address string - for a single sensor camera it is normally 0 - - ==<font color="blue">Temperature monitor</font>== ==<font color="blue">Temperature monitor</font>== OlegTrigger 393
← Older revision
Revision as of 17:47, 21 December 2016
(One intermediate revision not shown)Line 54:
Line 54:
===External trigger receive=== ===External trigger receive===
* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0x95555&TRIG_OUT=0x66555&TRIG_PERIOD=100000000&TRIG=4 * http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0x95555&TRIG_OUT=0x66555&TRIG_PERIOD=100000000&TRIG=4
-* at the same time the fpga generator will be generating a 1 fps signal+* at the same time the fpga generator outputs a 1 fps signal - if the sync cable wires are properly connected the camera can be triggered from this 'external' signal
+===Recover from missing external trigger signal to internal trigger===
+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0*-2
+** '''*-2''' - apply value parameter in the current frame (if not specified, the default is 3)
===Manual triggering from PC=== ===Manual triggering from PC===
Line 76:
Line 79:
====Disable==== ====Disable====
-* Update the TRIG_PERIOD in the PHP interface - or simply check the box and hit Apply:+=====Update the TRIG_PERIOD in the current frame=====
- http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&refresh+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_PERIOD=10000000*-2
+
+=====Update the TRIG_PERIOD from the user interface=====
+* http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&refresh
* Refresh until the changes are applied (with Program Ahead = 3 it's 3 times): * Refresh until the changes are applied (with Program Ahead = 3 it's 3 times):
http://192.168.0.9:8081/trig/pointers http://192.168.0.9:8081/trig/pointers
+
==<font color="blue">Links</font>== ==<font color="blue">Links</font>==
Oleg
Trigger 393
External trigger receive:
← Older revision Revision as of 17:32, 21 December 2016 Line 54: Line 54: ===External trigger receive=== ===External trigger receive=== * http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0x95555&TRIG_OUT=0x66555&TRIG_PERIOD=100000000&TRIG=4 * http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0x95555&TRIG_OUT=0x66555&TRIG_PERIOD=100000000&TRIG=4 -* at the same time the fpga generator will be generating a 1 fps signal+* at the same time the fpga generator outputs a 1 fps signal - if the sync cable wires are properly connected the camera can be triggered from this 'external' signal - + ===Manual triggering from PC=== ===Manual triggering from PC=== OlegTmp manual
← Older revision
Revision as of 02:41, 21 December 2016
Line 37:
Line 37:
|- |-
! sync ! sync
-| sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug (example: [http://www.digikey.com/products/en?keywords=839-1029-ND digikey])+| sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug with cable (example: [http://www.digikey.com/products/en?keywords=839-1029-ND digikey])
|} |}
Line 241:
Line 241:
http://192.168.0.9/autocampars.php?reboot http://192.168.0.9/autocampars.php?reboot
- +==<font color="blue">Firmware/software update</font>==
+[[Poky_2.0_manual#Write_files_to_media_and_boot|'''More information''']]
==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>==
TBA TBA
+
+==<font color="blue">Other info</font>==
+====switch between ERS and GRR modes in MT9P006====
+* [[Electronic_Rolling_Shutter#ERS_and_GRR_in_MT9P001_on_10393|Read article]]
+====External/internal trigger and FPS control====
+* [[Trigger_393]]
Oleg
Trigger 393
← Older revision
Revision as of 02:40, 21 December 2016
(2 intermediate revisions not shown)Line 18:
Line 18:
|- |-
| TRIG | TRIG
-| Trigger mode enable. '''0''' - free running, '''4''' - triggered by external signal or internal FPGA timing generator.+| Trigger mode. '''0x0''' - free running, '''0x4''' - triggered by external signal or FPGA timing generator, '''0x14''' - triggered in GRR mode
|- |-
-| TRIG_PERIOD +| TRIG_MASTER
-| FPGA trigger sequencer output sync period (32 bits, in pixel clocks (100MHz or 10ns)). 0- stop. 1 - single, >=256 repetitive with specified period (values 2..255 are reserved for programming timestamp communication)+| Master sensor_port (0..3) for triggering setup, other ports will have settings duplicated
+|-
+| TRIG_CONDITION
+| FPGA trigger sequencer trigger condition, 0 - internal, else dibits: 00 - do not use, 01 - keep, 10 - active low, 11 - active high for each GPIO[9:0] pin). 10389 board inverts signals, so 0x80000 - input from external connector, 0x08000 - input from internal flex cable (as in Eyesis)
|- |-
| TRIG_DELAY | TRIG_DELAY
| FPGA trigger sequencer trigger delay, 32 bits in pixel clocks (100MHz or 10ns) | FPGA trigger sequencer trigger delay, 32 bits in pixel clocks (100MHz or 10ns)
|- |-
-| EXTERN_TIMESTAMP +| TRIG_OUT
-| When 1 camera will use external timestamp (received over inter-camera synchronization cable) if it is available (no action when external syncronization is not connected), when 0 - local timestamp will be used+| FPGA trigger sequencer trigger output to GPIO, dibits: 00 - do not use, 01 - keep, 10 - active low GPIO output, 11 - active high GPIO output. 10389 board inverts signals, so 0x02000 - output to external connector (active high), 0x20000 - output to internal flex connector
+|-
+| TRIG_PERIOD
+| FPGA trigger sequencer output sync period (32 bits, in pixel clocks (100MHz or 10ns)). 0- stop. 1 - single, >=256 repetitive with specified period
|- |-
| TRIG_BITLENGTH | TRIG_BITLENGTH
| Bit length minus 1 (in pixel clock cycles) when transmitting/receiving timestamps, without timestamps the output pulse width is 8*(TRIG_BITLENGTH+1). Legal values 2..255 | Bit length minus 1 (in pixel clock cycles) when transmitting/receiving timestamps, without timestamps the output pulse width is 8*(TRIG_BITLENGTH+1). Legal values 2..255
+|-
+| EXTERN_TIMESTAMP
+| When 1 camera will use external timestamp (received over inter-camera synchronization cable) if it is available (no action when external syncronization is not connected), when 0 - local timestamp will be used
|- |-
| XMIT_TIMESTAMP | XMIT_TIMESTAMP
| Specify output signal sent through internal/external connector (defined by TRIG_OUT). 0 - transmit just sync pulse (8*(TRIG_BITLENGTH+1) pixel clock periods long), 1 - pulse+timestamp 64*(TRIG_BITLENGTH+1) pixel clock periods long | Specify output signal sent through internal/external connector (defined by TRIG_OUT). 0 - transmit just sync pulse (8*(TRIG_BITLENGTH+1) pixel clock periods long), 1 - pulse+timestamp 64*(TRIG_BITLENGTH+1) pixel clock periods long
-|-
-| TRIG_CONDITION
-| trigger condition, 0 - internal, else dibits ((use<<1) | level) for each GPIO[11:0] pin 0x0 - from FPGA, 0x80000 - ext, 0x8000 - int, 0x88000 - any, 0x95555 - add ext, 0x59999 - add int
-|-
-| TRIG_OUT
-| trigger output to GPIO, dibits ((use << 1) | level_when_active). Bit 24 - test mode, when GPIO[11:10] are controlled by other internal signals 0x56555 - ext connector, 0x65555 - internal connector 0x66555 - both, 0x55555 - none
|} |}
==<font color="blue">Examples</font>== ==<font color="blue">Examples</font>==
+===Internal periodic trigger (10 fps, from fpga generator)===
+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_PERIOD=10000000&TRIG=4
+
+===Internal periodic trigger (4 fps, from fpga generator) + output the signal to external port===
+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_OUT=0x66555&TRIG_PERIOD=25000000&TRIG=4
+
+===External trigger receive===
+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0x95555&TRIG_OUT=0x66555&TRIG_PERIOD=100000000&TRIG=4
+* at the same time the fpga generator will be generating a 1 fps signal
+
===Manual triggering from PC=== ===Manual triggering from PC===
Line 52:
Line 65:
* The command automatically sets a single-shot trigger mode with TRIG_PERIOD=0x1, but it writes the register directly into the FPGA, * The command automatically sets a single-shot trigger mode with TRIG_PERIOD=0x1, but it writes the register directly into the FPGA,
not updating the TRIG_PERIOD in the PHP interface: not updating the TRIG_PERIOD in the PHP interface:
- http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&IRQ_SMART&refresh+ http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&refresh
</font> </font>
Line 60:
Line 73:
====Check status==== ====Check status====
- http://192.168.0.9/parsedit.php?immediate&TRIG&TRIG_PERIOD&IRQ_SMART&SENS_AVAIL&FRAME+ http://192.168.0.9/parsedit.php?immediate&TRIG&TRIG_PERIOD&SENS_AVAIL&FRAME
====Disable==== ====Disable====
* Update the TRIG_PERIOD in the PHP interface - or simply check the box and hit Apply: * Update the TRIG_PERIOD in the PHP interface - or simply check the box and hit Apply:
- http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&IRQ_SMART&refresh+ http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&refresh
* Refresh until the changes are applied (with Program Ahead = 3 it's 3 times): * Refresh until the changes are applied (with Program Ahead = 3 it's 3 times):
http://192.168.0.9:8081/trig/pointers http://192.168.0.9:8081/trig/pointers
-
-===Internal periodic trigger (from fpga generator)===
-* TRIG_CONDITION=0x0
-* set the TRIG_PERIOD (values 256+ are clock intervals - 10ns)
-* TRIG=0x4
-
-===Internal periodic trigger (from fpga generator) + output the trigger signal===
-* TRIG_CONDITION=0x0
-* set the TRIG_PERIOD
-* TRIG=0x4
-* TRIG_OUT=0x66555
-
-===External trigger===
-====Receive====
-GPIO[10] needs to be configured to receive the trigger signal:
-<font size='2'>
-* (Same parameters for master and slave)
- TRIG_OUT=0x565555
- set the TRIG_PERIOD=100000000 (dec,=1fps)
- TRIG=0x4
-
-====Generate====
-* TRIG_CONDITION=0x0
-* set the TRIG_PERIOD
-* TRIG=0x4
-* TRIG_OUT=0x66555
-</font>
==<font color="blue">Links</font>== ==<font color="blue">Links</font>==
Oleg
Trigger 393
← Older revision
Revision as of 02:31, 21 December 2016
(One intermediate revision not shown)Line 18:
Line 18:
|- |-
| TRIG | TRIG
-| Trigger mode enable. '''0''' - free running, '''4''' - triggered by external signal or internal FPGA timing generator.+| Trigger mode. '''0x0''' - free running, '''0x4''' - triggered by external signal or FPGA timing generator, '''0x14''' - triggered in GRR mode
|- |-
-| TRIG_PERIOD +| TRIG_MASTER
-| FPGA trigger sequencer output sync period (32 bits, in pixel clocks (100MHz or 10ns)). 0- stop. 1 - single, >=256 repetitive with specified period (values 2..255 are reserved for programming timestamp communication)+| Master sensor_port (0..3) for triggering setup, other ports will have settings duplicated
+|-
+| TRIG_CONDITION
+| FPGA trigger sequencer trigger condition, 0 - internal, else dibits: 00 - do not use, 01 - keep, 10 - active low, 11 - active high for each GPIO[9:0] pin). 10389 board inverts signals, so 0x80000 - input from external connector, 0x08000 - input from internal flex cable (as in Eyesis)
|- |-
| TRIG_DELAY | TRIG_DELAY
| FPGA trigger sequencer trigger delay, 32 bits in pixel clocks (100MHz or 10ns) | FPGA trigger sequencer trigger delay, 32 bits in pixel clocks (100MHz or 10ns)
|- |-
-| EXTERN_TIMESTAMP +| TRIG_OUT
-| When 1 camera will use external timestamp (received over inter-camera synchronization cable) if it is available (no action when external syncronization is not connected), when 0 - local timestamp will be used+| FPGA trigger sequencer trigger output to GPIO, dibits: 00 - do not use, 01 - keep, 10 - active low GPIO output, 11 - active high GPIO output. 10389 board inverts signals, so 0x02000 - output to external connector (active high), 0x20000 - output to internal flex connector
+|-
+| TRIG_PERIOD
+| FPGA trigger sequencer output sync period (32 bits, in pixel clocks (100MHz or 10ns)). 0- stop. 1 - single, >=256 repetitive with specified period
|- |-
| TRIG_BITLENGTH | TRIG_BITLENGTH
| Bit length minus 1 (in pixel clock cycles) when transmitting/receiving timestamps, without timestamps the output pulse width is 8*(TRIG_BITLENGTH+1). Legal values 2..255 | Bit length minus 1 (in pixel clock cycles) when transmitting/receiving timestamps, without timestamps the output pulse width is 8*(TRIG_BITLENGTH+1). Legal values 2..255
+|-
+| EXTERN_TIMESTAMP
+| When 1 camera will use external timestamp (received over inter-camera synchronization cable) if it is available (no action when external syncronization is not connected), when 0 - local timestamp will be used
|- |-
| XMIT_TIMESTAMP | XMIT_TIMESTAMP
| Specify output signal sent through internal/external connector (defined by TRIG_OUT). 0 - transmit just sync pulse (8*(TRIG_BITLENGTH+1) pixel clock periods long), 1 - pulse+timestamp 64*(TRIG_BITLENGTH+1) pixel clock periods long | Specify output signal sent through internal/external connector (defined by TRIG_OUT). 0 - transmit just sync pulse (8*(TRIG_BITLENGTH+1) pixel clock periods long), 1 - pulse+timestamp 64*(TRIG_BITLENGTH+1) pixel clock periods long
-|-
-| TRIG_CONDITION
-| trigger condition, 0 - internal, else dibits ((use<<1) | level) for each GPIO[11:0] pin 0x0 - from FPGA, 0x80000 - ext, 0x8000 - int, 0x88000 - any, 0x95555 - add ext, 0x59999 - add int
-|-
-| TRIG_OUT
-| trigger output to GPIO, dibits ((use << 1) | level_when_active). Bit 24 - test mode, when GPIO[11:10] are controlled by other internal signals 0x56555 - ext connector, 0x65555 - internal connector 0x66555 - both, 0x55555 - none
|} |}
==<font color="blue">Examples</font>== ==<font color="blue">Examples</font>==
+===Internal periodic trigger (10 fps, from fpga generator)===
+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_PERIOD=10000000&TRIG=4
+
+===Internal periodic trigger (4 fps, from fpga generator) + output the trigger signal===
+* http://192.168.0.9/parsedit.php?sensor_port=0&immediate&TRIG_CONDITION=0&TRIG_OUT=0x66555&TRIG_PERIOD=25000000&TRIG=4
===Manual triggering from PC=== ===Manual triggering from PC===
Line 52:
Line 60:
* The command automatically sets a single-shot trigger mode with TRIG_PERIOD=0x1, but it writes the register directly into the FPGA, * The command automatically sets a single-shot trigger mode with TRIG_PERIOD=0x1, but it writes the register directly into the FPGA,
not updating the TRIG_PERIOD in the PHP interface: not updating the TRIG_PERIOD in the PHP interface:
- http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&IRQ_SMART&refresh+ http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&refresh
</font> </font>
Line 60:
Line 68:
====Check status==== ====Check status====
- http://192.168.0.9/parsedit.php?immediate&TRIG&TRIG_PERIOD&IRQ_SMART&SENS_AVAIL&FRAME+ http://192.168.0.9/parsedit.php?immediate&TRIG&TRIG_PERIOD&SENS_AVAIL&FRAME
====Disable==== ====Disable====
* Update the TRIG_PERIOD in the PHP interface - or simply check the box and hit Apply: * Update the TRIG_PERIOD in the PHP interface - or simply check the box and hit Apply:
- http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&IRQ_SMART&refresh+ http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&refresh
* Refresh until the changes are applied (with Program Ahead = 3 it's 3 times): * Refresh until the changes are applied (with Program Ahead = 3 it's 3 times):
http://192.168.0.9:8081/trig/pointers http://192.168.0.9:8081/trig/pointers
-===Internal periodic trigger (from fpga generator)===
-* TRIG_CONDITION=0x0
-* set the TRIG_PERIOD (values 256+ are clock intervals - 10ns)
-* TRIG=0x4
-===Internal periodic trigger (from fpga generator) + output the trigger signal===
-* TRIG_CONDITION=0x0
-* set the TRIG_PERIOD
-* TRIG=0x4
-* TRIG_OUT=0x66555
===External trigger=== ===External trigger===
Oleg
Trigger 393
New page
==<font color="blue">Description</font>==10389 board is required.
The triggering is used for one or several cameras synchronization or setting the frame rate (or fps). The conditions of the trigger can be generated either internally or externally. For external triggering a 4-conductor 2.5mm audio plug with cable (example: [http://www.digikey.com/products/en?keywords=839-1029-ND digikey]) is required.
To program trigger go to: '''http://192.168.0.9/parsedit.php => External Trigger Controls'''
'''NOTE: Be careful with changing parameters when TRIG=4. Camera drivers are driven by the frame sync interrupts from the sensor, so if the sensor is not triggered - everything can get stuck. The Program Ahead value sets the number of frame sync interrupts the camera will wait wait for until a parameter is reprogrammed.'''
[[File:Parsedit screenshot 3.png|thumb|750px|External Trigger Controls page]]
==<font color="blue">Parameters</font>==
{| border="1"
|-
| ''parameter''
| ''description''
|-
| TRIG
| Trigger mode enable. '''0''' - free running, '''4''' - triggered by external signal or internal FPGA timing generator.
|-
| TRIG_PERIOD
| FPGA trigger sequencer output sync period (32 bits, in pixel clocks (100MHz or 10ns)). 0- stop. 1 - single, >=256 repetitive with specified period (values 2..255 are reserved for programming timestamp communication)
|-
| TRIG_DELAY
| FPGA trigger sequencer trigger delay, 32 bits in pixel clocks (100MHz or 10ns)
|-
| EXTERN_TIMESTAMP
| When 1 camera will use external timestamp (received over inter-camera synchronization cable) if it is available (no action when external syncronization is not connected), when 0 - local timestamp will be used
|-
| TRIG_BITLENGTH
| Bit length minus 1 (in pixel clock cycles) when transmitting/receiving timestamps, without timestamps the output pulse width is 8*(TRIG_BITLENGTH+1). Legal values 2..255
|-
| XMIT_TIMESTAMP
| Specify output signal sent through internal/external connector (defined by TRIG_OUT). 0 - transmit just sync pulse (8*(TRIG_BITLENGTH+1) pixel clock periods long), 1 - pulse+timestamp 64*(TRIG_BITLENGTH+1) pixel clock periods long
|-
| TRIG_CONDITION
| trigger condition, 0 - internal, else dibits ((use<<1) | level) for each GPIO[11:0] pin 0x0 - from FPGA, 0x80000 - ext, 0x8000 - int, 0x88000 - any, 0x95555 - add ext, 0x59999 - add int
|-
| TRIG_OUT
| trigger output to GPIO, dibits ((use << 1) | level_when_active). Bit 24 - test mode, when GPIO[11:10] are controlled by other internal signals 0x56555 - ext connector, 0x65555 - internal connector 0x66555 - both, 0x55555 - none
|}
==<font color="blue">Examples</font>==
===Manual triggering from PC===
====Enable====
<font size='2'>
http://192.168.0.9:2323/trig/pointers
* TRIG=4 should be set in advance
* The command automatically sets a single-shot trigger mode with TRIG_PERIOD=0x1, but it writes the register directly into the FPGA,
not updating the TRIG_PERIOD in the PHP interface:
http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&IRQ_SMART&refresh
</font>
====Trigger/Refresh====
<font size='2'>
http://192.168.0.9:8081/trig/pointers
====Check status====
http://192.168.0.9/parsedit.php?immediate&TRIG&TRIG_PERIOD&IRQ_SMART&SENS_AVAIL&FRAME
====Disable====
* Update the TRIG_PERIOD in the PHP interface - or simply check the box and hit Apply:
http://192.168.0.9/parsedit.php?TRIG&TRIG_CONDITION&TRIG_DELAY&TRIG_OUT&TRIG_PERIOD&TRIG_BITLENGTH&EXTERN_TIMESTAMP&XMIT_TIMESTAMP&IRQ_SMART&refresh
* Refresh until the changes are applied (with Program Ahead = 3 it's 3 times):
http://192.168.0.9:8081/trig/pointers
===Internal periodic trigger (from fpga generator)===
* TRIG_CONDITION=0x0
* set the TRIG_PERIOD (values 256+ are clock intervals - 10ns)
* TRIG=0x4
===Internal periodic trigger (from fpga generator) + output the trigger signal===
* TRIG_CONDITION=0x0
* set the TRIG_PERIOD
* TRIG=0x4
* TRIG_OUT=0x66555
===External trigger===
====Receive====
GPIO[10] needs to be configured to receive the trigger signal:
<font size='2'>
* (Same parameters for master and slave)
TRIG_OUT=0x565555
set the TRIG_PERIOD=100000000 (dec,=1fps)
TRIG=0x4
====Generate====
* TRIG_CONDITION=0x0
* set the TRIG_PERIOD
* TRIG=0x4
* TRIG_OUT=0x66555
</font>
==<font color="blue">Links</font>==
* [[10389]] extension board
[[Category:393]] Oleg
File:Parsedit screenshot 3.png
uploaded "[[File:Parsedit screenshot 3.png]]"
OlegTmp manual
← Older revision
Revision as of 00:37, 21 December 2016
(3 intermediate revisions not shown)Line 164:
Line 164:
-==<font color="blue">Record the Event Logger data (GPS, IMU, IMG & EXT)</font>==+==<font color="blue">Event Logger (GPS, IMU, IMG & EXT)</font>==
+* [[Event_logger|'''More information''']]
+===Record===
+====web====
* Start: * Start:
http://192.168.0.9/logger_launcher.php?cmd=start&file=/mnt/sda1/test.log&index=1&n=10000000 http://192.168.0.9/logger_launcher.php?cmd=start&file=/mnt/sda1/test.log&index=1&n=10000000
Line 171:
Line 174:
* Help: * Help:
http://192.168.0.9/logger_launcher.php 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===
+* http://192.168.0.9/read_imu_log.php (will display help)
+** on the first access creates /www/pages/logs/ (http://192.168.0.9/logs/)
+** link the recorded logs to /www/pages/logs/
+** refresh http://192.168.0.9/read_imu_log.php
Line 199:
Line 213:
** if opened w/o sensor_port specified the page will show links to available ports ** 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 ** '''sensor_port=x''', where x=0..3 - in the address string - for a single sensor camera it is normally 0
+
+
==<font color="blue">Temperature monitor</font>== ==<font color="blue">Temperature monitor</font>==
Line 229:
Line 245:
==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>==
TBA TBA
+
+
==<font color="blue">Known problems</font>== ==<font color="blue">Known problems</font>==
Oleg
Sata multiplexer 10389
Description:
← Older revision Revision as of 00:22, 21 December 2016 (4 intermediate revisions not shown)Line 1: Line 1: ==<font color="blue">Description</font>== ==<font color="blue">Description</font>== -[[10389]] extension board has a VSC3304 - a 8.5 Gbps 4×4 Crosspoint SATA Switch. It makes possible the following connections:+[[10389]] extension board has a has a Microsemi's (former Vitesse) VSC3304 - a 8.5 Gbps 4×4 Crosspoint SATA Switch. It makes possible the following connections: * camera <=> internal SSD (default) * camera <=> internal SSD (default) * camera <=> external drive * camera <=> external drive Line 8: Line 8: ==<font color="blue">Switching connections</font>== ==<font color="blue">Switching connections</font>== ===web=== ===web=== +[[File:X393 vsc330x screenshot.png|thumb|500px|Fig.1 http://192.168.0.9/x393_vsc330x.php?state]] ====x393_vsc330x.php==== ====x393_vsc330x.php==== * help: * help: http://192.168.0.9/x393_vsc330x.php http://192.168.0.9/x393_vsc330x.php -* connection state:+* connection state (see Fig.1): http://192.168.0.9/x393_vsc330x.php?state http://192.168.0.9/x393_vsc330x.php?state * connect camera to internal SSD: * connect camera to internal SSD: Line 20: Line 21: http://192.168.0.9/x393_vsc330x.php?c:SSD=ESATA http://192.168.0.9/x393_vsc330x.php?c:SSD=ESATA -Note: crossover switching is supported in the '''command line''' script+'''Note 1:''' Crossover switching is supported in the '''command line''' script + +'''Note 2:''' When the connection is good the state row shows '''active''' for the connected ports, '''LOS''' otherwise - see Fig.1 ===command line=== ===command line=== OlegFile:X393 vsc330x screenshot.png
uploaded "[[File:X393 vsc330x screenshot.png]]"
OlegTmp manual
Firmware images:
← Older revision Revision as of 00:14, 21 December 2016 (3 intermediate revisions not shown)Line 206: Line 206: |[[File:10393_hwmon.jpeg|thumb|200px]] |[[File:10393_hwmon.jpeg|thumb|200px]] |} |} + + + +==<font color="blue">eSATA port switching</font>== +* requres [[10389]] +* available connections: +** camera <=> internal SSD (default) +** camera <=> external drive (external drive will need a separate power source) +** PC <=> internal SSD +* [[Sata_multiplexer_10389|'''More information''']] Line 215: Line 225: http://192.168.0.9/autocampars.php?reboot http://192.168.0.9/autocampars.php?reboot -==<font color="blue">Firmware images</font>== +==<font color="blue">Firmware images</font>== +TBA ==<font color="blue">Known problems</font>== ==<font color="blue">Known problems</font>== OlegSata multiplexer 10389
New page
==<font color="blue">Description</font>==[[10389]] extension board has a VSC3304 - a 8.5 Gbps 4×4 Crosspoint SATA Switch. It makes possible the following connections:
* camera <=> internal SSD (default)
* camera <=> external drive
* camera <=> external drive (crossover mode)
* PC <=> internal SSD
==<font color="blue">Switching connections</font>==
===web===
====x393_vsc330x.php====
* help:
http://192.168.0.9/x393_vsc330x.php
* connection state:
http://192.168.0.9/x393_vsc330x.php?state
* connect camera to internal SSD:
http://192.168.0.9/x393_vsc330x.php?c:ZYNQ=SSD
* connect camera to external drive:
http://192.168.0.9/x393_vsc330x.php?c:ZYNQ=ESATA
* connect internal SSD to PC:
http://192.168.0.9/x393_vsc330x.php?c:SSD=ESATA
Note: crossover switching is supported in the '''command line''' script
===command line===
* display help:
root@elphel393:~# /usr/local/bin/x393sata_control.py
output:
x393_vsc3304: Running on NEW system
x393sata: Running on NEW system
BUFFER_ADDRESS = 0x0ad00000
BUFFER_LEN = 0x12c00000
BUFFER_ADDRESS_H2D = 0x2dc00000
BUFFER_LEN_H2D = 0x00400000
BUFFER_ADDRESS_D2H = 0x2d800000
BUFFER_LEN_D2H = 0x00400000
BUFFER_ADDRESS_BIDIR = 0x2cc00000
BUFFER_LEN_BIDIR = 0x00400000
COMMAND_ADDRESS = 0x2dc00010
DATAIN_ADDRESS = 0x2d810000
DATAOUT_ADDRESS = 0x2dc20000
Usage:
* camera <-> internal SSD : x393sata_control.py set_zynq_ssd
* camera <-> external disk : x393sata_control.py set_zynq_esata
* camera <-> external disk (crossover): x393sata_control.py set_zynq_ssata
* PC <-> internal SSD) : x393sata_control.py set_esata_ssd
[[Category:393]] Oleg
Tmp manual
Change parameters:
← Older revision Revision as of 23:26, 20 December 2016 (6 intermediate revisions not shown)Line 2: Line 2: * As of 2016/12/15, the software ported from 10353 supports only 5MPix sensors, for 14MPix, please see: * As of 2016/12/15, the software ported from 10353 supports only 5MPix sensors, for 14MPix, please see: **[http://wiki.elphel.com/index.php?title=Tmp_manual&oldid=14676 older version of this manual with links to older software images] **[http://wiki.elphel.com/index.php?title=Tmp_manual&oldid=14676 older version of this manual with links to older software images] + + ==<font color="blue">In the package</font>== ==<font color="blue">In the package</font>== Line 12: Line 14: * μUSB-to-USB cable * μUSB-to-USB cable * Recovery μSD card * Recovery μSD card + + ==<font color="blue">Interfaces</font>== ==<font color="blue">Interfaces</font>== Line 35: Line 39: | sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug (example: [http://www.digikey.com/products/en?keywords=839-1029-ND digikey]) | sync multiple cameras or other devices - input/output trigger signal through a 4-conductor 2.5mm audio plug (example: [http://www.digikey.com/products/en?keywords=839-1029-ND digikey]) |} |} + + ==<font color="blue">Power on</font>== ==<font color="blue">Power on</font>== Line 43: Line 49: * Boot time: ~30s * Boot time: ~30s * The default boot is from the on-board NAND flash. [[Boot_options_393|More information]] on available boot options and recovery boot. * The default boot is from the on-board NAND flash. [[Boot_options_393|More information]] on available boot options and recovery boot. + + ==<font color="blue">Defaults</font>== ==<font color="blue">Defaults</font>== Line 58: Line 66: * The default IP address is set in the ''/etc/elphel393/init_elphel393.py''. * The default IP address is set in the ''/etc/elphel393/init_elphel393.py''. + + ==<font color="blue">Command line access</font>== ==<font color="blue">Command line access</font>== * ssh from PC terminal: * ssh from PC terminal: $ ssh root@192.168.0.9 $ ssh root@192.168.0.9 + + ==<font color="blue">Serial console access</font>== ==<font color="blue">Serial console access</font>== Line 70: Line 82: Most likely the device will be <b>/dev/ttyUSB0</b>. Settings: Most likely the device will be <b>/dev/ttyUSB0</b>. Settings: * <b>115200 8N1, no</b> for hardware/software flow control * <b>115200 8N1, no</b> for hardware/software flow control + + ==<font color="blue">Web user interface (camvc)</font>== ==<font color="blue">Web user interface (camvc)</font>== Line 82: Line 96: |[[File:Controls with blank.jpeg|300px|thumb|Fig.3 camvc controls]] |[[File:Controls with blank.jpeg|300px|thumb|Fig.3 camvc controls]] |} |} + + ==<font color="blue">Download live images</font>== ==<font color="blue">Download live images</font>== Line 101: Line 117: wget http://192.168.0.9:2325/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 wget http://192.168.0.9:2326/img -O filename.jpeg + + ==<font color="blue">Video</font>== ==<font color="blue">Video</font>== Line 143: Line 161: sync sync </font> </font> + + ==<font color="blue">Record the Event Logger data (GPS, IMU, IMG & EXT)</font>== ==<font color="blue">Record the Event Logger data (GPS, IMU, IMG & EXT)</font>== Line 151: Line 171: * Help: * Help: http://192.168.0.9/logger_launcher.php http://192.168.0.9/logger_launcher.php + + ==<font color="blue">Change parameters</font>== ==<font color="blue">Change parameters</font>== * http://192.168.0.9/autocampars.php - save/restore/initialize camera/sensor parameters * http://192.168.0.9/autocampars.php - save/restore/initialize camera/sensor parameters -[[Autocampars 393|More information]]+[[Autocampars 393|'''More information''']] -* parsedit.php+* 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 -Single call - XML response:+Note 1: if the parameter's value is specified in URL it will be applied. The call can have mixed specified and unspecified parameters. -Read:+Note 2: The new value is read on the next call. - http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1&PAR2+ -Change:+ -* single call: http://192.168.0.9/parsedit.php?immediate&sensor_port=0&PAR1=VAL1&PAR2=VAL2+ -Note 1: It's just if the parameter value is specified it will be applied. The call can have mixed specified and unspecified parameters.+[[Parsedit.php|'''More information''']] -Note 2: The new value is read on the next call. ===Notes=== ===Notes=== Line 182: Line 206: |[[File:10393_hwmon.jpeg|thumb|200px]] |[[File:10393_hwmon.jpeg|thumb|200px]] |} |} + + ==<font color="blue">Proper shutdown</font>== ==<font color="blue">Proper shutdown</font>== * if not properly shutdown - μSD might get corrupted (run '''sync''' at least) * if not properly shutdown - μSD might get corrupted (run '''sync''' at least) shutdown -hP now shutdown -hP now -The same can be achieved by calling:+Same effect: http://192.168.0.9/autocampars.php?reboot http://192.168.0.9/autocampars.php?reboot ==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>== + + ==<font color="blue">Known problems</font>== ==<font color="blue">Known problems</font>== Oleg