Imaging solutions with Free Software & Open Hardware

Who's online

There are currently 0 users online.

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

Photo-finish

Mon, 01/22/2018 - 15:25

← 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

Mon, 01/22/2018 - 15:25

← 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

Mon, 01/22/2018 - 15:25

← 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

Mon, 01/22/2018 - 15:25

← 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

Mon, 01/22/2018 - 15:25

← 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

Mon, 01/22/2018 - 14:48

‎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. Oleg

Photo-finish

Mon, 01/22/2018 - 14:02

‎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. Oleg

Poky manual

Mon, 01/22/2018 - 10:55

‎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> Oleg

Poky manual

Mon, 01/22/2018 - 10:55

‎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> Oleg

Poky manual

Fri, 01/19/2018 - 18:17

‎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> Oleg

Poky 2.0 manual

Fri, 01/19/2018 - 17:57

Oleg moved page Poky 2.0 manual to Poky manual also relates to Poky 2.4

Oleg

Tmp manual

Fri, 01/19/2018 - 17:49

‎Proper shutdown

Show changes Oleg

Poky 2.0 manual

Fri, 01/19/2018 - 11:51

‎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>    Oleg

Poky 2.0 manual

Fri, 01/19/2018 - 11:51

‎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>    Oleg

Tmp manual

Thu, 01/18/2018 - 18:28

‎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] Oleg

Working with raw image data

Thu, 01/18/2018 - 18:27

‎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 Oleg

Working with raw image data

Thu, 01/18/2018 - 18:02

‎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 Oleg

Working with raw image data

Thu, 01/18/2018 - 11:10

‎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 Oleg

Tmp manual

Tue, 01/16/2018 - 13:25

‎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>== Oleg

10353

Sat, 01/13/2018 - 22:35

← 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

Pages