Photo-finish
← Older revision
Revision as of 22:25, 22 January 2018
(4 intermediate revisions by the same user not shown)Line 59:
Line 59:
Due to the Bayer pattern of the sensor the minimal sample height is 2 lines. Due to the Bayer pattern of the sensor the minimal sample height is 2 lines.
−====Setup instructions for 353====+
+===Setup instructions for 393===
+
+
+The instructions are the same as for 353, the key moments are switching to sensor free fun (or reasonable fps) and JP4 format modes.
+393 are set to internal 10fps trigger while 353's sensor is in the free run mode at boot.
+
+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x3872, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** WOI_HEIGHT=3872
+** COMPRESSOR_RUN=2
+
+* Example 3: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+
+===Setup instructions for 353===
+
+
* A link for quick access to parameters that might be required: * A link for quick access to parameters that might be required:
http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH
* To switch the camera into the line scan mode: * To switch the camera into the line scan mode:
− +** '''COMPRESSOR_RUN=0''' - stop compressor
−** '''set COMPRESSOR_RUN=0''' - stop compressor+** '''PH_HEIGHT=2''' - switch to line scan mode
−** '''set PH_HEIGHT=2''' - switch to line scan mode+** '''COMPRESSOR_RUN=2''' - restart compressor
−** '''set COMPRESSOR_RUN=2''' - restart compressor
{| {|
−|[[File:pf-height.png|thumb|600px]]+|[[File:pf-height.png|thumb|600px|It is functional]]
|} |}
Line 85:
Line 112:
=====Examples===== =====Examples=====
−# Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
−## COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
−## PH_HEIGHT=2+** PH_HEIGHT=2
−## COMPRESSOR_RUN=2+** COMPRESSOR_RUN=2
−# Example 2: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps+* Example 2: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
−## COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
−## PH_HEIGHT=2+** PH_HEIGHT=2
−## TRIG_PERIOD=50000 (units are in 1/100MHz)+** TRIG_PERIOD=50000 (units are in 1/100MHz)
−## TRIG=4+** TRIG=4
−## COMPRESSOR_RUN=2+** COMPRESSOR_RUN=2
−
−====Setup instructions for 393====
−The instructions are the same as for 353, the key moments are switching to sensor free fun (or reasonable fps) and JP4 format modes.
−393 are set to internal 10fps trigger while 353's sensor is in the free run mode at boot.
−=====Examples=====
−# Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
−## COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
−## PH_HEIGHT=2
−## COMPRESSOR_RUN=2
−# Example 2: 2592x3872, not changing any frame dimensions, sensor is in a free run mode
−## COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
−## PH_HEIGHT=2
−## WOI_HEIGHT=3872
−## COMPRESSOR_RUN=2
−
−# Example 3: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
−## COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
−## PH_HEIGHT=2
−## TRIG_PERIOD=50000 (units are in 1/100MHz)
−## TRIG=4
−## COMPRESSOR_RUN=2
−
====Important notes==== ====Important notes====
Oleg
Photo-finish
← Older revision
Revision as of 22:25, 22 January 2018
(7 intermediate revisions by the same user not shown)Line 59:
Line 59:
Due to the Bayer pattern of the sensor the minimal sample height is 2 lines. Due to the Bayer pattern of the sensor the minimal sample height is 2 lines.
−====353 photo finish setup instructions====+
+===Setup instructions for 393===
+
+
+The instructions are the same as for 353, the key moments are switching to sensor free fun (or reasonable fps) and JP4 format modes.
+393 are set to internal 10fps trigger while 353's sensor is in the free run mode at boot.
+
+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x3872, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** WOI_HEIGHT=3872
+** COMPRESSOR_RUN=2
+
+* Example 3: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+
+===Setup instructions for 353===
+
+
* A link for quick access to parameters that might be required: * A link for quick access to parameters that might be required:
http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH
* To switch the camera into the line scan mode: * To switch the camera into the line scan mode:
− +** '''COMPRESSOR_RUN=0''' - stop compressor
−* '''set COMPRESSOR_RUN=0''' - stop compressor+** '''PH_HEIGHT=2''' - switch to line scan mode
−* '''set PH_HEIGHT=2''' - switch to line scan mode+** '''COMPRESSOR_RUN=2''' - restart compressor
−* '''set COMPRESSOR_RUN=2''' - restart compressor
{| {|
−|[[File:pf-height.png|thumb|600px]]+|[[File:pf-height.png|thumb|600px|It is functional]]
|} |}
−For more details about changing parameters, see [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|Accessing camera parameters]]+Before changing any image related parameters in this mode it's better to stop the compressor and restart it after everything is set.
+For more details about changing parameters, see [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|Accessing camera parameters]].
Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH. Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH.
Line 83:
Line 111:
* use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less ) * use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less )
−(A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore)+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+====Important notes====
+* A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore. For example:
+<font size='2'>
+ Switching to photo finish from 2592x1936 and 50ms exposure to 2592x2 and 2592x1936 composite image will result in waiting for that composite image for 50 seconds (1936/2*50ms).
+</font>
==== Examples ==== ==== Examples ====
Oleg
Photo-finish
← Older revision
Revision as of 22:25, 22 January 2018
(9 intermediate revisions by the same user not shown)Line 18:
Line 18:
---- ----
−===<font color='darkblue'>Photo finish / Line scan mode</font>===+==<font color='darkblue'>Photo finish / Line scan mode</font>==
−==== What is line scan? ====+=== What is line scan? ===
Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms: Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms:
Line 35:
Line 35:
Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more.
−==== Line scan with Elphel ====+=== Line scan with Elphel ===
{| class='wikitable' {| class='wikitable'
Line 53:
Line 53:
Since 2005 and the older 333 model, Elphel cameras have a '''“photo-finish”''' mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras). Since 2005 and the older 333 model, Elphel cameras have a '''“photo-finish”''' mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras).
−Elphel 353 software is fully ported to the new Elphel 393 generation of camera systems.+Elphel 353 software is fully ported to the new Elphel 393 generation of camera systems and works for JP4 format.
−In '''Photo finish''' mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc. Programming the camera into line-scan mode is as simple as setting PH_HEIGHT to the desired line height (in pixel):+In '''Photo finish''' mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc.
−* '''set COMPRESSOR_RUN=0'''+Due to the Bayer pattern of the sensor the minimal sample height is 2 lines.
−* '''set PH_HEIGHT=2'''+
−* '''set COMPRESSOR_RUN=2'''+
+===Setup instructions for 393===
− Quick link to access parameters that might be useful: http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH
− For more details see: [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|accessing camera parameters]]
−Due to the Bayer pattern of the sensor the minimal sample height is 2 lines.+The instructions are the same as for 353, the key moments are switching to sensor free fun (or reasonable fps) and JP4 format modes.
+393 are set to internal 10fps trigger while 353's sensor is in the free run mode at boot.
+
+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x3872, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** WOI_HEIGHT=3872
+** COMPRESSOR_RUN=2
+
+* Example 3: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+
+===Setup instructions for 353===
+
+
+* A link for quick access to parameters that might be required:
+ http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH
+
+* To switch the camera into the line scan mode:
+** '''COMPRESSOR_RUN=0''' - stop compressor
+** '''PH_HEIGHT=2''' - switch to line scan mode
+** '''COMPRESSOR_RUN=2''' - restart compressor
−[[File:pf-height.png]]+{|
+|[[File:pf-height.png|thumb|600px|It is functional]]
+|}
+Before changing any image related parameters in this mode it's better to stop the compressor and restart it after everything is set.
+For more details about changing parameters, see [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|Accessing camera parameters]].
Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH. Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH.
Line 77:
Line 111:
* use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less ) * use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less )
−(A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore)+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+====Important notes====
+* A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore. For example:
+<font size='2'>
+ Switching to photo finish from 2592x1936 and 50ms exposure to 2592x2 and 2592x1936 composite image will result in waiting for that composite image for 50 seconds (1936/2*50ms).
+</font>
==== Examples ==== ==== Examples ====
Oleg
Photo-finish
← Older revision
Revision as of 22:25, 22 January 2018
(16 intermediate revisions by the same user not shown)Line 18:
Line 18:
---- ----
−===<font color='darkblue'>Photo finish / Line scan mode</font>===+==<font color='darkblue'>Photo finish / Line scan mode</font>==
−==== What is line scan? ====+=== What is line scan? ===
Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms: Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms:
−* [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems line scan]+* [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems Line scan]
−* [http://en.wikipedia.org/wiki/Slit-scan_photography slit scan]+* [http://en.wikipedia.org/wiki/Slit-scan_photography Slit scan]
−* [http://people.rit.edu/andpph/text-strip-basics.html strip photography]+* [http://people.rit.edu/andpph/text-strip-basics.html Strip photography]
−* [http://www.bmumford.com/photo/streak/index.html streak photography]+* [http://www.bmumford.com/photo/streak/index.html Streak photography]
−* [http://en.wikipedia.org/wiki/Scanography scanography]+* [http://en.wikipedia.org/wiki/Scanography Scanography]
−* [http://en.wikipedia.org/wiki/Photo_finish photo-finish]+* [http://en.wikipedia.org/wiki/Photo_finish Photo finish]
Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern). Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern).
Line 35:
Line 35:
Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more.
−==== line-scan with Elphel ====+=== Line scan with Elphel ===
−Since 2005 and the older 333 model, Elphel cameras have a “photo-finish” mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras).+{| class='wikitable'
+!Camera series
+!Photo finish support
+|-
+|align='center'| 333
+|align='center'| '''+'''
+|-
+|align='center'| 353
+|align='center'| '''+'''
+|-
+|align='center'| 393
+|align='center'| '''+'''
+|}
−In photo-finish mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc. Programming the camera into line-scan mode is as simple as setting PH_HEIGHT to the desired line height (in pixel):+Since 2005 and the older 333 model, Elphel cameras have a '''“photo-finish”''' mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras).
−* '''set COMPRESSOR_RUN=0'''+Elphel 353 software is fully ported to the new Elphel 393 generation of camera systems and works for JP4 format.
−* '''set PH_HEIGHT=2'''
−* '''set COMPRESSOR_RUN=2'''
− Quick link to access parameters that might be useful: http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH+In '''Photo finish''' mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc.
− For more details see: [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|accessing camera parameters]]
Due to the Bayer pattern of the sensor the minimal sample height is 2 lines. Due to the Bayer pattern of the sensor the minimal sample height is 2 lines.
−[[File:pf-height.png]]
+===Setup instructions for 393===
+
+
+The instructions are the same as for 353, the key moments are switching to sensor free fun (or reasonable fps) and JP4 format modes.
+393 are set to internal 10fps trigger while 353's sensor is in the free run mode at boot.
+
+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x3872, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** WOI_HEIGHT=3872
+** COMPRESSOR_RUN=2
+
+* Example 3: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+
+===Setup instructions for 353===
+
+
+* A link for quick access to parameters that might be required:
+ http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH
+
+* To switch the camera into the line scan mode:
+** '''COMPRESSOR_RUN=0''' - stop compressor
+** '''PH_HEIGHT=2''' - switch to line scan mode
+** '''COMPRESSOR_RUN=2''' - restart compressor
+
+{|
+|[[File:pf-height.png|thumb|600px|It is functional]]
+|}
+
+Before changing any image related parameters in this mode it's better to stop the compressor and restart it after everything is set.
+For more details about changing parameters, see [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|Accessing camera parameters]].
Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH. Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH.
Line 61:
Line 111:
* use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less ) * use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less )
−(A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore)+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+====Important notes====
+* A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore. For example:
+<font size='2'>
+ Switching to photo finish from 2592x1936 and 50ms exposure to 2592x2 and 2592x1936 composite image will result in waiting for that composite image for 50 seconds (1936/2*50ms).
+</font>
==== Examples ==== ==== Examples ====
Oleg
Photo-finish
← Older revision
Revision as of 22:25, 22 January 2018
(18 intermediate revisions by the same user not shown)Line 18:
Line 18:
---- ----
−=== photo-finish / line-scan mode===+==<font color='darkblue'>Photo finish / Line scan mode</font>==
−==== what is line-scan? ====+=== What is line scan? ===
−Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there a many terms: [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems line scan], [http://en.wikipedia.org/wiki/Slit-scan_photography slit scan], [http://people.rit.edu/andpph/text-strip-basics.html strip photography], [http://www.bmumford.com/photo/streak/index.html streak photography], [http://en.wikipedia.org/wiki/Scanography scanography], [http://en.wikipedia.org/wiki/Photo_finish photo-finish],.. Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern).+Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms:
+
+* [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems Line scan]
+* [http://en.wikipedia.org/wiki/Slit-scan_photography Slit scan]
+* [http://people.rit.edu/andpph/text-strip-basics.html Strip photography]
+* [http://www.bmumford.com/photo/streak/index.html Streak photography]
+* [http://en.wikipedia.org/wiki/Scanography Scanography]
+* [http://en.wikipedia.org/wiki/Photo_finish Photo finish]
+
+Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern).
Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more.
−==== line-scan with Elphel ====+=== Line scan with Elphel ===
−Since 2005 and the older 333 model, Elphel cameras have a “photo-finish” mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras).+{| class='wikitable'
+!Camera series
+!Photo finish support
+|-
+|align='center'| 333
+|align='center'| '''+'''
+|-
+|align='center'| 353
+|align='center'| '''+'''
+|-
+|align='center'| 393
+|align='center'| '''+'''
+|}
−In photo-finish mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc. Programming the camera into line-scan mode is as simple as setting PH_HEIGHT to the desired line height (in pixel):+Since 2005 and the older 333 model, Elphel cameras have a '''“photo-finish”''' mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras).
−* '''set COMPRESSOR_RUN=0'''+Elphel 353 software is fully ported to the new Elphel 393 generation of camera systems and works for JP4 format.
−* '''set PH_HEIGHT=2'''
−* '''set COMPRESSOR_RUN=2'''
− Quick link to access parameters that might be useful: http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH+In '''Photo finish''' mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc.
− For more details see: [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|accessing camera parameters]]
Due to the Bayer pattern of the sensor the minimal sample height is 2 lines. Due to the Bayer pattern of the sensor the minimal sample height is 2 lines.
−[[File:pf-height.png]]
+===Setup instructions for 393===
+
+
+The instructions are the same as for 353, the key moments are switching to sensor free fun (or reasonable fps) and JP4 format modes.
+393 are set to internal 10fps trigger while 353's sensor is in the free run mode at boot.
+
+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x3872, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** WOI_HEIGHT=3872
+** COMPRESSOR_RUN=2
+
+* Example 3: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0, COLOR=5
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+
+===Setup instructions for 353===
+
+
+* A link for quick access to parameters that might be required:
+ http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH
+
+* To switch the camera into the line scan mode:
+** '''COMPRESSOR_RUN=0''' - stop compressor
+** '''PH_HEIGHT=2''' - switch to line scan mode
+** '''COMPRESSOR_RUN=2''' - restart compressor
+
+{|
+|[[File:pf-height.png|thumb|600px|It is functional]]
+|}
+
+Before changing any image related parameters in this mode it's better to stop the compressor and restart it after everything is set.
+For more details about changing parameters, see [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|Accessing camera parameters]].
Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH. Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH.
Line 52:
Line 111:
* use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less ) * use the camera’s internal [http://wiki.elphel.com/index.php?title=Trigger trigger mode] with TRIG=4 and TRIG_PERIOD settings to generate a regular trigger impulse. (but due to camera’s internal delays in that mode the line rate is a bit less )
−(A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore)+=====Examples=====
+* Example 1: 2592x1936, not changing any frame dimensions, sensor is in a free run mode
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** COMPRESSOR_RUN=2
+* Example 2: 2592x1936, not changing any frame dimensions, sensor is triggered from internal counter: 2000fps
+** COMPRESSOR_RUN=0, WB_EN=0, AUTOEXP_ON=0, EXPOS=400, TRIG=0
+** PH_HEIGHT=2
+** TRIG_PERIOD=50000 (units are in 1/100MHz)
+** TRIG=4
+** COMPRESSOR_RUN=2
+
+====Important notes====
+* A common pitfall in trying out photo-finish mode is that one needs to take care of appropriate exposure setting before going into photo-finish mode. If you just start that mode in low light conditions you will end up waiting for frames endlessly – and get the impression the camera does not work anymore. For example:
+<font size='2'>
+ Switching to photo finish from 2592x1936 and 50ms exposure to 2592x2 and 2592x1936 composite image will result in waiting for that composite image for 50 seconds (1936/2*50ms).
+</font>
==== Examples ==== ==== Examples ====
Oleg
Photo-finish
Setup instructions for 353
← Older revision Revision as of 21:48, 22 January 2018 (12 intermediate revisions by the same user not shown)Line 18: Line 18: ---- ---- −=== photo-finish / line-scan mode===+==<font color='darkblue'>Photo finish / Line scan mode</font>== −==== what is line-scan? ====+=== What is line scan? === −Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there a many terms: [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems line scan], [http://en.wikipedia.org/wiki/Slit-scan_photography slit scan], [http://people.rit.edu/andpph/text-strip-basics.html strip photography], [http://www.bmumford.com/photo/streak/index.html streak photography], [http://en.wikipedia.org/wiki/Scanography scanography], [http://en.wikipedia.org/wiki/Photo_finish photo-finish],.. Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern).+Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms: + +* [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems Line scan] +* [http://en.wikipedia.org/wiki/Slit-scan_photography Slit scan] +* [http://people.rit.edu/andpph/text-strip-basics.html Strip photography] +* [http://www.bmumford.com/photo/streak/index.html Streak photography] +* [http://en.wikipedia.org/wiki/Scanography Scanography] +* [http://en.wikipedia.org/wiki/Photo_finish Photo finish] + +Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern). Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. −==== line-scan with Elphel ====+=== Line scan with Elphel === −Since 2005 and the older 333 model, Elphel cameras have a “photo-finish” mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras).+{| class='wikitable' +!Camera series +!Photo finish support +|- +|align='center'| 333 +|align='center'| '''+''' +|- +|align='center'| 353 +|align='center'| '''+''' +|- +|align='center'| 393 +|align='center'| '''+''' +|} −In photo-finish mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc. Programming the camera into line-scan mode is as simple as setting PH_HEIGHT to the desired line height (in pixel):+Since 2005 and the older 333 model, Elphel cameras have a '''“photo-finish”''' mode. With its 3Mpix Aptina CMOS sensor Elphel 333 was able so sample around 3072 lines per second. The photo-finsh mode was revived for the current Elphel 353 model with firmware release 8.0.8.7 by end of April 2010. The current 5Mpix Aptina CMOS sensor (width: 2536px) is a bit slower and allows a sample rate of approx. 2300 lines per second – or a line rate of 2.3 kHz (as it seems to be measured in dedicated line-scan cameras). −* '''set COMPRESSOR_RUN=0'''+Elphel 353 software is fully ported to the new Elphel 393 generation of camera systems and works for JP4 format. −* '''set PH_HEIGHT=2''' −* '''set COMPRESSOR_RUN=2''' − Quick link to access parameters that might be useful: http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH+In '''Photo finish''' mode the camera then samples just lines and delivers composite images as video frames via RTSP network stream or directly to a hard-disc. − For more details see: [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|accessing camera parameters]] Due to the Bayer pattern of the sensor the minimal sample height is 2 lines. Due to the Bayer pattern of the sensor the minimal sample height is 2 lines. −[[File:pf-height.png]]+====Setup instructions for 353==== +* A link for quick access to parameters that might be required: + http://192.168.0.9/parsedit.php?WB_EN&AUTOEXP_ON&EXPOS&COMPRESSOR_RUN&TRIG&TRIG_PERIOD&PF_HEIGHT&WOI_HEIGHT&WOI_TOP&WOI_LEFT&WOI_WIDTH + +* To switch the camera into the line scan mode: + +** '''set COMPRESSOR_RUN=0''' - stop compressor +** '''set PH_HEIGHT=2''' - switch to line scan mode +** '''set COMPRESSOR_RUN=2''' - restart compressor + +{| +|[[File:pf-height.png|thumb|600px]] +|} +For more details about changing parameters, see [[Elphel_353_series_quick_start_guide#Accessing_camera_parameters|Accessing camera parameters]] Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH. Photo-finish mode per “default” then samples line-pairs as fast as (exposure) settings allow with a maximum rate of approx. 2300 line-pairs per second and a maximum width of the composite frame of 16384px (defined by WOI_HEIGHT). The sensor location that is used as source for these lines is defined by WOI_TOP, WOI_LEFT and WOI_WIDTH. OlegPhoto-finish
What is line scan?
← Older revision Revision as of 21:02, 22 January 2018 (2 intermediate revisions by the same user not shown)Line 18: Line 18: ---- ---- −=== photo-finish / line-scan mode===+===<font color='darkblue'>Photo finish / Line scan mode</font>=== −==== what is line-scan? ====+==== What is line scan? ==== −Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there a many terms: [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems line scan], [http://en.wikipedia.org/wiki/Slit-scan_photography slit scan], [http://people.rit.edu/andpph/text-strip-basics.html strip photography], [http://www.bmumford.com/photo/streak/index.html streak photography], [http://en.wikipedia.org/wiki/Scanography scanography], [http://en.wikipedia.org/wiki/Photo_finish photo-finish],.. Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern).+Line-scan is an image acquisition method that continuously samples (sensor) lines into a composite image. A Flatbed or hand held scanner is essentially also kind of a line-scanner. For some historic reasons (I guess due to the various application and realms they derived from) there are many terms: + +* [http://en.wikipedia.org/wiki/Digital_camera#Line-scan_camera_systems Line scan] +* [http://en.wikipedia.org/wiki/Slit-scan_photography Slit scan] +* [http://people.rit.edu/andpph/text-strip-basics.html Strip photography] +* [http://www.bmumford.com/photo/streak/index.html Streak photography] +* [http://en.wikipedia.org/wiki/Scanography Scanography] +* [http://en.wikipedia.org/wiki/Photo_finish Photo finish] + +Basically they all describe the same principle, a principle that is rather old and was already used in traditional analogue photography (for instance rotating panorama cameras), where you have a slit as an aperture, exposing the film as it moves by. In the digital realm one would cut out slices of existing image footage or – as in case of dedicated line-scan cameras – it is really just a one line sensor (to be correct: that’s true for monochrome cameras, color line-scan cameras normally have either 3 lines – in case of CCD sensor: one for each color – or 2, if the sensor is CMOS using Bayer pattern). Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. Applications of these line-scan method include industrial surface scanning, photo-finish, rotating panorama cameras, aerial imaginary, the arts (an interesting overview of art and research related slit-scan approaches can be found here) and certainly many more. OlegPoky manual
Setup
← Older revision Revision as of 17:55, 22 January 2018 (5 intermediate revisions by the same user not shown)Line 88: Line 88: <font size='2'> <font size='2'> git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded − # then follow the same steps as for Jethro+ # then follow the same steps as for Rocko </font> </font> Line 122: Line 122: ===<font color="blue">All targets</font>=== ===<font color="blue">All targets</font>=== +<font size='2'> bitbake u-boot device-tree linux-xlnx core-image-elphel393 bitbake u-boot device-tree linux-xlnx core-image-elphel393 − +</font> ===<font color="blue">Bootloader</font>=== ===<font color="blue">Bootloader</font>=== <font size='2'> <font size='2'> Line 170: Line 171: ==<font color="blue">Notes</font>== ==<font color="blue">Notes</font>== −* <span style='color:green'>[FIXED]</span> lighttpd-1.4.39, mod-cgi+* <span style='color:green'>'''[FIXED]'''</span> lighttpd-1.4.39, mod-cgi compile warning: compile warning: +<font size='2'> implicit declaration of function 'chunkqueue_written' implicit declaration of function 'chunkqueue_written' +</font> results in lighttpd failing to start if mod-cgi is enabled: results in lighttpd failing to start if mod-cgi is enabled: +<font size='2'> Starting Lighttpd Web Server: 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/plugin.c.169) dlopen() failed for: /usr/lib/mod_cgi.so /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_w Starting Lighttpd Web Server: 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/plugin.c.169) dlopen() failed for: /usr/lib/mod_cgi.so /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_w 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/server.c.679) loading plugins finally failed 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/server.c.679) loading plugins finally failed lighttpd. lighttpd. +</font> Note: why 1.4.36?!! Note: why 1.4.36?!! Line 183: Line 188: * '''Invalidate chache/checksum on package code changes''' * '''Invalidate chache/checksum on package code changes''' ** SRCREV = "${AUTOREV}" - updates the checksum but the cache is not cleared/invalidated? ** SRCREV = "${AUTOREV}" - updates the checksum but the cache is not cleared/invalidated? +<font size='2'> SRCREV <- AUTOREV <- AUTOREV <- "${@bb.fetch2.get_autorev(d)}" (bitbake/lib/bb/__init__.py) SRCREV <- AUTOREV <- AUTOREV <- "${@bb.fetch2.get_autorev(d)}" (bitbake/lib/bb/__init__.py) Line 192: Line 198: BB_DONT_CACHE ?!!!!!!! BB_DONT_CACHE ?!!!!!!! − +</font> Force to always execute recipe starting from a certain task: Force to always execute recipe starting from a certain task: +<font size='2'> recipe-outside-of-task: <font size='2' color='green'><b>do_compile[nostamp]="1"</b></font> recipe-outside-of-task: <font size='2' color='green'><b>do_compile[nostamp]="1"</b></font> or or recipe-class-inside-task: <font size='2' color='green'><b>d.setVarFlag('do_compile', 'nostamp', '1')</b></font> recipe-class-inside-task: <font size='2' color='green'><b>d.setVarFlag('do_compile', 'nostamp', '1')</b></font> − +</font> * clone git repo over https in a recipe * clone git repo over https in a recipe +<font size='2'> SRC_URI = "git://git.elphel.com/project.git;protocol=https;branch=master" SRC_URI = "git://git.elphel.com/project.git;protocol=https;branch=master" +</font> ==<font color="blue">Errors</font>== ==<font color="blue">Errors</font>== Line 206: Line 215: ** Possible reason - Kubuntu 14.04 - the system libraries are too old? The up-to-date Kubuntu release is 16.04. ** Possible reason - Kubuntu 14.04 - the system libraries are too old? The up-to-date Kubuntu release is 16.04. ** Command (example): ** Command (example): +<font size='2'> bitbake libxau-native bitbake libxau-native +</font> ** log: ** log: +<font size='2'> | x86_64-linux-libtool: link: ar cru .libs/libXau.a AuDispose.o AuFileName.o AuGetAddr.o AuGetBest.o AuLock.o AuRead.o AuUnlock.o AuWrite.o | x86_64-linux-libtool: link: ar cru .libs/libXau.a AuDispose.o AuFileName.o AuGetAddr.o AuGetBest.o AuLock.o AuRead.o AuUnlock.o AuWrite.o | *** buffer overflow detected ***: ar terminated | *** buffer overflow detected ***: ar terminated Line 257: Line 269: | make: *** [all] Error 2 | make: *** [all] Error 2 | ERROR: oe_runmake failed | ERROR: oe_runmake failed +</font> OlegPoky manual
Setup
← Older revision Revision as of 17:55, 22 January 2018 (12 intermediate revisions by the same user not shown)Line 24: Line 24: ==<font color="blue">Required packages</font>== ==<font color="blue">Required packages</font>== −* Found in [http://www.yoctoproject.org/docs/2.0/mega-manual/mega-manual.html Yocto Project mega-manual] :+* For Poky 2.0 Jethro see [http://www.yoctoproject.org/docs/2.0/mega-manual/mega-manual.html Yocto Project Poky 2.0 mega-manual] −<font size='2'>+* For Poky 2.4 Rocko see [http://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html Yocto Project Poky 2.4 mega-manual] −Ubuntu and Debian − sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ − build-essential chrpath socat libsdl1.2-dev xterm device-tree-compiler − −Fedora − sudo dnf install gawk make wget tar bzip2 gzip python unzip perl patch \ − diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ − ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \ − findutils which SDL-devel xterm device-tree-compiler − −OpenSUSE − sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml \ − diffstat makeinfo python-curses patch socat libSDL-devel xterm device-tree-compiler − −CentOS − sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ − diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \ − perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue SDL-devel xterm device-tree-compiler −</font> ==<font color="blue">Other dependencies</font>== ==<font color="blue">Other dependencies</font>== Line 52: Line 33: ==<font color="blue">Output files</font>== ==<font color="blue">Output files</font>== The names are listed as they appear in the u-boot configuration header file - actual output files have different names: The names are listed as they appear in the u-boot configuration header file - actual output files have different names: −* '''boot.bin''' - u-boot as the first stage bootloader = Secondary Program Loader that boots '''u-boot-dtb.img'''+{| class="wikitable" −* '''u-boot-dtb.img''' - full size u-boot with a stripped device tree (''cat u-boot.img some_stripped_devicetree.dtb > u-boot-dtb.img'')+|- −* '''devicetree.dtb''' - device tree with listed interfaces, zynq registers, interrupts and drivers.+! File(s) −** ''elphel393/bootable-images/mmc/devicetree.dtb'' - mount rootfs from mmc partition+! Description −** ''elphel393/bootable-images/nand/devicetree.dtb'' - mount rootfs from NAND flash+|- −* '''uImage''' - kernel, drivers+| <font color='darkblue'>'''boot.bin'''</font> −* '''rootfs.ubifs''', '''rootfs.ubi''', '''rootfs.tar.gz''' - rootfs in different formats+| u-boot as the first stage bootloader = Secondary Program Loader (SPL) that boots '''u-boot-dtb.img''' +|- +| <font color='darkblue'>'''u-boot-dtb.img'''</font> +| full size u-boot with a stripped device tree (''cat u-boot.img some_stripped_devicetree.dtb > u-boot-dtb.img'') +|- +|valign='top'| <font color='darkblue'>'''devicetree.dtb'''</font> +| device tree with listed interfaces, zynq registers, interrupts and drivers +* ''elphel393/bootable-images/mmc/devicetree.dtb'' - mount rootfs from mmc partition +* ''elphel393/bootable-images/nand/devicetree.dtb'' - mount rootfs from NAND flash +|- +| <font color='darkblue'>'''uImage'''</font> +| kernel, drivers +|- +| <font color='darkblue'>'''rootfs.ubifs''', '''rootfs.ubi''', '''rootfs.tar.gz'''</font> +| rootfs in different formats - *.ubi* for NAND, *.tar.gz for mmc +|} −They are found at '''elphel393/bootable-images/''', which is a link (for convenience) to poky's deploy directory '''elphel393/poky/build/tmp/deploy/images/elphel393/'''+The file are located at '''elphel393/bootable-images/''', which is a link to poky's deploy directory '''elphel393/poky/build/tmp/deploy/images/elphel393/''' * complete set of files for rootfs in NAND Flash: ''elphel393/bootable-images/nand/'' * complete set of files for rootfs in NAND Flash: ''elphel393/bootable-images/nand/'' Line 92: Line 88: <font size='2'> <font size='2'> git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded − # then follow the same steps as for Jethro+ # then follow the same steps as for Rocko </font> </font> Line 126: Line 122: ===<font color="blue">All targets</font>=== ===<font color="blue">All targets</font>=== +<font size='2'> bitbake u-boot device-tree linux-xlnx core-image-elphel393 bitbake u-boot device-tree linux-xlnx core-image-elphel393 − +</font> ===<font color="blue">Bootloader</font>=== ===<font color="blue">Bootloader</font>=== <font size='2'> <font size='2'> Line 174: Line 171: ==<font color="blue">Notes</font>== ==<font color="blue">Notes</font>== −* <span style='color:green'>[FIXED]</span> lighttpd-1.4.39, mod-cgi+* <span style='color:green'>'''[FIXED]'''</span> lighttpd-1.4.39, mod-cgi compile warning: compile warning: +<font size='2'> implicit declaration of function 'chunkqueue_written' implicit declaration of function 'chunkqueue_written' +</font> results in lighttpd failing to start if mod-cgi is enabled: results in lighttpd failing to start if mod-cgi is enabled: +<font size='2'> Starting Lighttpd Web Server: 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/plugin.c.169) dlopen() failed for: /usr/lib/mod_cgi.so /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_w Starting Lighttpd Web Server: 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/plugin.c.169) dlopen() failed for: /usr/lib/mod_cgi.so /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_w 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/server.c.679) loading plugins finally failed 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/server.c.679) loading plugins finally failed lighttpd. lighttpd. +</font> Note: why 1.4.36?!! Note: why 1.4.36?!! Line 187: Line 188: * '''Invalidate chache/checksum on package code changes''' * '''Invalidate chache/checksum on package code changes''' ** SRCREV = "${AUTOREV}" - updates the checksum but the cache is not cleared/invalidated? ** SRCREV = "${AUTOREV}" - updates the checksum but the cache is not cleared/invalidated? +<font size='2'> SRCREV <- AUTOREV <- AUTOREV <- "${@bb.fetch2.get_autorev(d)}" (bitbake/lib/bb/__init__.py) SRCREV <- AUTOREV <- AUTOREV <- "${@bb.fetch2.get_autorev(d)}" (bitbake/lib/bb/__init__.py) Line 196: Line 198: BB_DONT_CACHE ?!!!!!!! BB_DONT_CACHE ?!!!!!!! − +</font> Force to always execute recipe starting from a certain task: Force to always execute recipe starting from a certain task: +<font size='2'> recipe-outside-of-task: <font size='2' color='green'><b>do_compile[nostamp]="1"</b></font> recipe-outside-of-task: <font size='2' color='green'><b>do_compile[nostamp]="1"</b></font> or or recipe-class-inside-task: <font size='2' color='green'><b>d.setVarFlag('do_compile', 'nostamp', '1')</b></font> recipe-class-inside-task: <font size='2' color='green'><b>d.setVarFlag('do_compile', 'nostamp', '1')</b></font> − +</font> * clone git repo over https in a recipe * clone git repo over https in a recipe +<font size='2'> SRC_URI = "git://git.elphel.com/project.git;protocol=https;branch=master" SRC_URI = "git://git.elphel.com/project.git;protocol=https;branch=master" +</font> ==<font color="blue">Errors</font>== ==<font color="blue">Errors</font>== Line 210: Line 215: ** Possible reason - Kubuntu 14.04 - the system libraries are too old? The up-to-date Kubuntu release is 16.04. ** Possible reason - Kubuntu 14.04 - the system libraries are too old? The up-to-date Kubuntu release is 16.04. ** Command (example): ** Command (example): +<font size='2'> bitbake libxau-native bitbake libxau-native +</font> ** log: ** log: +<font size='2'> | x86_64-linux-libtool: link: ar cru .libs/libXau.a AuDispose.o AuFileName.o AuGetAddr.o AuGetBest.o AuLock.o AuRead.o AuUnlock.o AuWrite.o | x86_64-linux-libtool: link: ar cru .libs/libXau.a AuDispose.o AuFileName.o AuGetAddr.o AuGetBest.o AuLock.o AuRead.o AuUnlock.o AuWrite.o | *** buffer overflow detected ***: ar terminated | *** buffer overflow detected ***: ar terminated Line 261: Line 269: | make: *** [all] Error 2 | make: *** [all] Error 2 | ERROR: oe_runmake failed | ERROR: oe_runmake failed +</font> OlegPoky manual
Errors
← Older revision Revision as of 01:17, 20 January 2018 (11 intermediate revisions by the same user not shown)Line 24: Line 24: ==<font color="blue">Required packages</font>== ==<font color="blue">Required packages</font>== −* Found in [http://www.yoctoproject.org/docs/2.0/mega-manual/mega-manual.html Yocto Project mega-manual] :+* For Poky 2.0 Jethro see [http://www.yoctoproject.org/docs/2.0/mega-manual/mega-manual.html Yocto Project Poky 2.0 mega-manual] −<font size='2'>+* For Poky 2.4 Rocko see [http://www.yoctoproject.org/docs/2.4/mega-manual/mega-manual.html Yocto Project Poky 2.4 mega-manual] −Ubuntu and Debian − sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ − build-essential chrpath socat libsdl1.2-dev xterm device-tree-compiler − −Fedora − sudo dnf install gawk make wget tar bzip2 gzip python unzip perl patch \ − diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ − ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \ − findutils which SDL-devel xterm device-tree-compiler − −OpenSUSE − sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml \ − diffstat makeinfo python-curses patch socat libSDL-devel xterm device-tree-compiler − −CentOS − sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ − diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat \ − perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue SDL-devel xterm device-tree-compiler −</font> ==<font color="blue">Other dependencies</font>== ==<font color="blue">Other dependencies</font>== Line 52: Line 33: ==<font color="blue">Output files</font>== ==<font color="blue">Output files</font>== The names are listed as they appear in the u-boot configuration header file - actual output files have different names: The names are listed as they appear in the u-boot configuration header file - actual output files have different names: −* '''boot.bin''' - u-boot as the first stage bootloader = Secondary Program Loader that boots '''u-boot-dtb.img'''+{| class="wikitable" −* '''u-boot-dtb.img''' - full size u-boot with a stripped device tree (''cat u-boot.img some_stripped_devicetree.dtb > u-boot-dtb.img'')+|- −* '''devicetree.dtb''' - device tree with listed interfaces, zynq registers, interrupts and drivers.+! File(s) −** ''elphel393/bootable-images/mmc/devicetree.dtb'' - mount rootfs from mmc partition+! Description −** ''elphel393/bootable-images/nand/devicetree.dtb'' - mount rootfs from NAND flash+|- −* '''uImage''' - kernel, drivers+| <font color='darkblue'>'''boot.bin'''</font> −* '''rootfs.ubifs''', '''rootfs.ubi''', '''rootfs.tar.gz''' - rootfs in different formats+| u-boot as the first stage bootloader = Secondary Program Loader (SPL) that boots '''u-boot-dtb.img''' +|- +| <font color='darkblue'>'''u-boot-dtb.img'''</font> +| full size u-boot with a stripped device tree (''cat u-boot.img some_stripped_devicetree.dtb > u-boot-dtb.img'') +|- +|valign='top'| <font color='darkblue'>'''devicetree.dtb'''</font> +| device tree with listed interfaces, zynq registers, interrupts and drivers +* ''elphel393/bootable-images/mmc/devicetree.dtb'' - mount rootfs from mmc partition +* ''elphel393/bootable-images/nand/devicetree.dtb'' - mount rootfs from NAND flash +|- +| <font color='darkblue'>'''uImage'''</font> +| kernel, drivers +|- +| <font color='darkblue'>'''rootfs.ubifs''', '''rootfs.ubi''', '''rootfs.tar.gz'''</font> +| rootfs in different formats - *.ubi* for NAND, *.tar.gz for mmc +|} −They are found at '''elphel393/bootable-images/''', which is a link (for convenience) to poky's deploy directory '''elphel393/poky/build/tmp/deploy/images/elphel393/'''+The file are located at '''elphel393/bootable-images/''', which is a link to poky's deploy directory '''elphel393/poky/build/tmp/deploy/images/elphel393/''' * complete set of files for rootfs in NAND Flash: ''elphel393/bootable-images/nand/'' * complete set of files for rootfs in NAND Flash: ''elphel393/bootable-images/nand/'' Line 126: Line 122: ===<font color="blue">All targets</font>=== ===<font color="blue">All targets</font>=== +<font size='2'> bitbake u-boot device-tree linux-xlnx core-image-elphel393 bitbake u-boot device-tree linux-xlnx core-image-elphel393 − +</font> ===<font color="blue">Bootloader</font>=== ===<font color="blue">Bootloader</font>=== <font size='2'> <font size='2'> Line 174: Line 171: ==<font color="blue">Notes</font>== ==<font color="blue">Notes</font>== −* <span style='color:green'>[FIXED]</span> lighttpd-1.4.39, mod-cgi+* <span style='color:green'>'''[FIXED]'''</span> lighttpd-1.4.39, mod-cgi compile warning: compile warning: +<font size='2'> implicit declaration of function 'chunkqueue_written' implicit declaration of function 'chunkqueue_written' +</font> results in lighttpd failing to start if mod-cgi is enabled: results in lighttpd failing to start if mod-cgi is enabled: +<font size='2'> Starting Lighttpd Web Server: 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/plugin.c.169) dlopen() failed for: /usr/lib/mod_cgi.so /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_w Starting Lighttpd Web Server: 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/plugin.c.169) dlopen() failed for: /usr/lib/mod_cgi.so /usr/lib/mod_cgi.so: undefined symbol: chunkqueue_w 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/server.c.679) loading plugins finally failed 2016-01-26 18:42:17: (/data/GIT_fresh/poky/build/tmp/work/cortexa9-vfp-neon-poky-linux-gnueabi/lighttpd/1.4.36-r0/lighttpd-1.4.36/src/server.c.679) loading plugins finally failed lighttpd. lighttpd. +</font> Note: why 1.4.36?!! Note: why 1.4.36?!! Line 187: Line 188: * '''Invalidate chache/checksum on package code changes''' * '''Invalidate chache/checksum on package code changes''' ** SRCREV = "${AUTOREV}" - updates the checksum but the cache is not cleared/invalidated? ** SRCREV = "${AUTOREV}" - updates the checksum but the cache is not cleared/invalidated? +<font size='2'> SRCREV <- AUTOREV <- AUTOREV <- "${@bb.fetch2.get_autorev(d)}" (bitbake/lib/bb/__init__.py) SRCREV <- AUTOREV <- AUTOREV <- "${@bb.fetch2.get_autorev(d)}" (bitbake/lib/bb/__init__.py) Line 196: Line 198: BB_DONT_CACHE ?!!!!!!! BB_DONT_CACHE ?!!!!!!! − +</font> Force to always execute recipe starting from a certain task: Force to always execute recipe starting from a certain task: +<font size='2'> recipe-outside-of-task: <font size='2' color='green'><b>do_compile[nostamp]="1"</b></font> recipe-outside-of-task: <font size='2' color='green'><b>do_compile[nostamp]="1"</b></font> or or recipe-class-inside-task: <font size='2' color='green'><b>d.setVarFlag('do_compile', 'nostamp', '1')</b></font> recipe-class-inside-task: <font size='2' color='green'><b>d.setVarFlag('do_compile', 'nostamp', '1')</b></font> − +</font> * clone git repo over https in a recipe * clone git repo over https in a recipe +<font size='2'> SRC_URI = "git://git.elphel.com/project.git;protocol=https;branch=master" SRC_URI = "git://git.elphel.com/project.git;protocol=https;branch=master" +</font> ==<font color="blue">Errors</font>== ==<font color="blue">Errors</font>== Line 210: Line 215: ** Possible reason - Kubuntu 14.04 - the system libraries are too old? The up-to-date Kubuntu release is 16.04. ** Possible reason - Kubuntu 14.04 - the system libraries are too old? The up-to-date Kubuntu release is 16.04. ** Command (example): ** Command (example): +<font size='2'> bitbake libxau-native bitbake libxau-native +</font> ** log: ** log: +<font size='2'> | x86_64-linux-libtool: link: ar cru .libs/libXau.a AuDispose.o AuFileName.o AuGetAddr.o AuGetBest.o AuLock.o AuRead.o AuUnlock.o AuWrite.o | x86_64-linux-libtool: link: ar cru .libs/libXau.a AuDispose.o AuFileName.o AuGetAddr.o AuGetBest.o AuLock.o AuRead.o AuUnlock.o AuWrite.o | *** buffer overflow detected ***: ar terminated | *** buffer overflow detected ***: ar terminated Line 261: Line 269: | make: *** [all] Error 2 | make: *** [all] Error 2 | ERROR: oe_runmake failed | ERROR: oe_runmake failed +</font> OlegPoky 2.0 manual
Oleg moved page Poky 2.0 manual to Poky manual also relates to Poky 2.4
OlegTmp manual
Proper shutdown
Show changes OlegPoky 2.0 manual
Setup
← Older revision Revision as of 18:51, 19 January 2018 Line 80: Line 80: ==<font color="blue">Setup</font>== ==<font color="blue">Setup</font>== −* Poky 2.4 Rocko (latest)+* Poky 2.4 Rocko <font size='2'> <font size='2'> git clone -b rocko https://git.elphel.com/Elphel/elphel393.git git clone -b rocko https://git.elphel.com/Elphel/elphel393.git −</font> −* Poky 2.2 Jethro −<font size='2'> − git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded cd elphel393 cd elphel393 ./setup.py ./setup.py Line 92: Line 88: . ./oe-init-build-env . ./oe-init-build-env bitbake u-boot device-tree linux-xlnx core-image-elphel393 bitbake u-boot device-tree linux-xlnx core-image-elphel393 +</font> +* Poky 2.2 Jethro +<font size='2'> + git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded + # then follow the same steps as for Jethro </font> </font> OlegPoky 2.0 manual
Setup
← Older revision Revision as of 18:51, 19 January 2018 (2 intermediate revisions by the same user not shown)Line 2: Line 2: * Building embedded Linux image for Zynq ARMv7 platform - Elphel 10393 board * Building embedded Linux image for Zynq ARMv7 platform - Elphel 10393 board −* Yocto Poky revision = 2.0 (Jethro)+* Yocto Poky revision = 2.0 (Jethro), recently updated to 2.4 (Rocko) ==<font color="blue">Features</font>== ==<font color="blue">Features</font>== Line 80: Line 80: ==<font color="blue">Setup</font>== ==<font color="blue">Setup</font>== +* Poky 2.4 Rocko <font size='2'> <font size='2'> − git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded+ git clone -b rocko https://git.elphel.com/Elphel/elphel393.git cd elphel393 cd elphel393 ./setup.py ./setup.py Line 87: Line 88: . ./oe-init-build-env . ./oe-init-build-env bitbake u-boot device-tree linux-xlnx core-image-elphel393 bitbake u-boot device-tree linux-xlnx core-image-elphel393 +</font> +* Poky 2.2 Jethro +<font size='2'> + git clone https://git.elphel.com/Elphel/elphel393.git # or git clone git@git.elphel.com:Elphel/elphel393.git # if ssh public key is uploaded + # then follow the same steps as for Jethro </font> </font> OlegTmp manual
Firmware images
← Older revision Revision as of 01:28, 19 January 2018 Line 267: Line 267: ==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>== −* [https://community.elphel.com/files/393/20180116/ '''20180116''']+* [https://community.elphel.com/files/393/20180118/ '''20180118'''] +* [https://community.elphel.com/files/393/20180116/ 20180116] * [https://community.elphel.com/files/393/20180109/ 20180109] * [https://community.elphel.com/files/393/20180109/ 20180109] * [https://community.elphel.com/files/393/20171120/ 20171120] * [https://community.elphel.com/files/393/20171120/ 20171120] OlegWorking with raw image data
Capturing and downloading
← Older revision Revision as of 01:27, 19 January 2018 (6 intermediate revisions by the same user not shown)Line 1: Line 1: −==<font color='darkblue'>Downloading</font>==+==<font color='darkblue'>Capturing and downloading</font>== +===raw.php (demo)=== +* capture (for ports 0 and 1): + <font size='2em'>http://192.168.0.9/raw.php?cmd=run&ports=0x3</font> +* download + <font size='2em'>http://192.168.0.9/raw.php?cmd=run&ports=0x1</font> + <font size='2em'>http://192.168.0.9/raw.php?cmd=run&ports=0x2</font> +* description: + <font size='2em'>'''<font color='darkblue'>help:</font>''' + 1. without parameters will print help + '''<font color='darkblue'>capture request:</font>''' + 2. decodes requested ports + 3. reads current frame_number + 4. sets buffers sizes + 5. triggers copying pixel data from video memory to system memory for the frame_number+1 (waiting is implemented in the videomem driver). + Image numbers might not match - this depends on fps. + 6. prints debug info and links to download raw images + '''<font color='darkblue'>download request:</font>''' + 7. decodes raw info from sysfs and calculates the number of bytes needed to be read + There is '''fullwidth''','''width''' and '''height''' - the raw image size is '''fullwidth x height x bytes_per_pixel/8''', + '''fullwidth''' is the '''width''' upped to the whole number of 128-bit bursts. + And so the '''width''' is the number of valid pixels. + 8. sets http response headers + 9. outputs pixel data</font> + +===raw.py (demo)=== +* run: + <font size='2em'>'''root@elphel393:~# raw.py'''</font> +* description: + <font size='2em'>1. scans all available ports, determines the trigger master + 2. reads current frame_number to be used later + 3. formats system memory buffers and mmaps to user memory (all available ports) + 4. selects position in video memory (0 or 1) + 5. triggers copying pixel data from video memory to system memory for the frame_number+1 (waiting is implemented in the videomem driver). + Image numbers might not match - this depends on fps. + 6. prints the first 16 bytes of the image + 7. prints raw image info for each port</font> + +===Command line=== * Available options (channels can be 0..3): * Available options (channels can be 0..3): <font size='2em'># set receiving buffer size in 4kB pages (thus 4096 equals to 16MB) <font size='2em'># set receiving buffer size in 4kB pages (thus 4096 equals to 16MB) Line 19: Line 57: '''echo 0 > /sys/devices/soc0/elphel393-videomem\@0/membridge_start2''' '''echo 0 > /sys/devices/soc0/elphel393-videomem\@0/membridge_start2''' '''cat /dev/image_raw2 > /tmp/test.raw'''</font> '''cat /dev/image_raw2 > /tmp/test.raw'''</font> − − ==<font color='darkblue'>Displaying</font>== ==<font color='darkblue'>Displaying</font>== Line 39: Line 75: ===Python=== ===Python=== * Camera settings: 2592x1936 JPEG: * Camera settings: 2592x1936 JPEG: +** a) + <font size='2em'>#!/usr/bin/env python + import cv2 + import numpy as np + + width = 2608 + height = 1940 + + with open("test.raw", "rb") as rawimg: + img = np.fromfile(rawimg, np.dtype('u1'), width * height).reshape(height, width) + img.tofile("test2.raw") + colimg = cv2.cvtColor(img, cv2.COLOR_BAYER_GB2BGR) + cv2.imwrite("test.jpeg", colimg) + #cv2.imshow("color", colimg) + #cv2.waitKey(0)</font> + +** b) for PC: <font size='2em'>''#!/usr/bin/python3'' <font size='2em'>''#!/usr/bin/python3'' from PIL import Image from PIL import Image OlegWorking with raw image data
Downloading
← Older revision Revision as of 01:02, 19 January 2018 (2 intermediate revisions by the same user not shown)Line 1: Line 1: −==<font color='darkblue'>Downloading</font>==+==<font color='darkblue'>Capturing and downloading</font>== +===Command line, demo script: raw.py === +* run: + <font size='2em'>'''root@elphel393:~# raw.py'''</font> +* description: + <font size='2em'>1. scans all available ports, determines the trigger master + 2. reads current frame_number to be used later + 3. formats system memory buffers and mmaps to user memory (all available ports) + 4. selects position in video memory (0 or 1) + 5. triggers copying pixel data from video memory to system memory for the frame_number+1 (waiting is implemented in the videomem driver) + 6. prints the first 16 bytes of the image + 7. prints raw image info for each port</font> + +===Command line=== * Available options (channels can be 0..3): * Available options (channels can be 0..3): <font size='2em'># set receiving buffer size in 4kB pages (thus 4096 equals to 16MB) <font size='2em'># set receiving buffer size in 4kB pages (thus 4096 equals to 16MB) Line 19: Line 32: '''echo 0 > /sys/devices/soc0/elphel393-videomem\@0/membridge_start2''' '''echo 0 > /sys/devices/soc0/elphel393-videomem\@0/membridge_start2''' '''cat /dev/image_raw2 > /tmp/test.raw'''</font> '''cat /dev/image_raw2 > /tmp/test.raw'''</font> − − ==<font color='darkblue'>Displaying</font>== ==<font color='darkblue'>Displaying</font>== Line 39: Line 50: ===Python=== ===Python=== * Camera settings: 2592x1936 JPEG: * Camera settings: 2592x1936 JPEG: +** a) + <font size='2em'>#!/usr/bin/env python + import cv2 + import numpy as np + + width = 2608 + height = 1940 + + with open("test.raw", "rb") as rawimg: + img = np.fromfile(rawimg, np.dtype('u1'), width * height).reshape(height, width) + img.tofile("test2.raw") + colimg = cv2.cvtColor(img, cv2.COLOR_BAYER_GB2BGR) + cv2.imwrite("test.jpeg", colimg) + #cv2.imshow("color", colimg) + #cv2.waitKey(0)</font> + +** b) for PC: <font size='2em'>''#!/usr/bin/python3'' <font size='2em'>''#!/usr/bin/python3'' from PIL import Image from PIL import Image OlegWorking with raw image data
Python
← Older revision Revision as of 18:10, 18 January 2018 (One intermediate revision by the same user not shown)Line 39: Line 39: ===Python=== ===Python=== * Camera settings: 2592x1936 JPEG: * Camera settings: 2592x1936 JPEG: +** a) + <font size='2em'>#!/usr/bin/env python + import cv2 + import numpy as np + + width = 2608 + height = 1940 + + with open("test.raw", "rb") as rawimg: + img = np.fromfile(rawimg, np.dtype('u1'), width * height).reshape(height, width) + img.tofile("test2.raw") + colimg = cv2.cvtColor(img, cv2.COLOR_BAYER_GB2BGR) + cv2.imwrite("test.jpeg", colimg) + #cv2.imshow("color", colimg) + #cv2.waitKey(0)</font> + +** b) for PC: <font size='2em'>''#!/usr/bin/python3'' <font size='2em'>''#!/usr/bin/python3'' from PIL import Image from PIL import Image OlegTmp manual
Accessing raw pixel values
← Older revision Revision as of 20:25, 16 January 2018 (2 intermediate revisions by the same user not shown)Line 267: Line 267: ==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>== −* [https://community.elphel.com/files/393/20180109/ '''20180109''']+* [https://community.elphel.com/files/393/20180116/ '''20180116'''] +* [https://community.elphel.com/files/393/20180109/ 20180109] * [https://community.elphel.com/files/393/20171120/ 20171120] * [https://community.elphel.com/files/393/20171120/ 20171120] * [https://community.elphel.com/files/393/20171115/ 20171115] * [https://community.elphel.com/files/393/20171115/ 20171115] Line 318: Line 319: ===Powering from batteries (12V or 48V)=== ===Powering from batteries (12V or 48V)=== [[10393_power#Powering_from_batteries| 12V and 48V power options]] [[10393_power#Powering_from_batteries| 12V and 48V power options]] +===Accessing raw pixel values=== +[[Working_with_raw_image_data|Working with raw pixel data]] ==<font color="blue">Known problems</font>== ==<font color="blue">Known problems</font>== Oleg10353
← Older revision
Revision as of 05:35, 14 January 2018
Line 1:
Line 1:
+{{Legacy}}
+See current products here: [[10393]]
+
[[Image:10353top_sm.jpeg|frame|[[Media:10353top.jpeg|10353 board, top view]]]] [[Image:10353top_sm.jpeg|frame|[[Media:10353top.jpeg|10353 board, top view]]]]
[[Image:10353bot_sm.jpeg|frame|[[Media:10353bot.jpeg|10353 board, bottom view]]]] [[Image:10353bot_sm.jpeg|frame|[[Media:10353bot.jpeg|10353 board, bottom view]]]]
Andrey.filippov