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: 40 min 33 sec ago

New image sensors for 10393

Mon, 04/16/2018 - 18:32

Created page with "==Description== This page describes development and testing of any new sensors for 10393 system boards. It covers a driver-less mode where python scripts are used to get the f..."

New page

==Description==
This page describes development and testing of any new sensors for 10393 system boards. It covers a driver-less mode where python scripts are used to get the first images and the sensor driver structure.

==Application notes==
===Driverless mode===
* Read [[Driverless_mode_393|this article]]
===Developing a driver===
{|
|[[File:10393 sensor driver structure.png|thumb|700px|Fig.1 Sensor driver]]
|}
{|
|[[File:10393_cpu_fpga_i2c_records_table.png|thumb|700px|Fig.2 FPGA has a certain 256-line table (for all ports)]]
|}

* In device tree:
** record for sensor, like:
elphel393_mt9f002: elphel393-mt9f002@0 {
compatible = "elphel,elphel393-mt9f002-1.00";
};
** record for sensor i2c address, like:
elphel393_sensor_i2c: elphel393-sensor-i2c@0 {
compatible = "elphel,elphel393-sensor-i2c-1.00";
/* Add known devices: name, slave address (7-bit), number of address bytes, number of data bytes, SCL frequency (kHz) */
elphel393-sensor-i2c,i2c_devices = "mt9f002 0x10 2 2 500",
"mt9p006 0x48 1 2 500",
"el10359 0x08 1 2 500",
"el10359_32 0x08 1 4 500",
"pca9500_eeprom 0x50 1 1 100",
"sensor_eeprom 0x50 1 1 100",
"sensor_temp 0x18 1 2 100",
"cy22393 0x69 1 1 100";
} ;

** edit detected sensors:
elphel393_detect_sensors: elphel393-detect_sensors@0 {
compatible = "elphel,elphel393-detect_sensors-1.00";
elphel393-detect_sensors,port-mux = "none none none none"; /* "none", "detect" or "mux10359" */
elphel393-detect_sensors,sensors = "mt9f002", // Line per port, may contain up to 4 sensors (3 with 10359)
"mt9f002",
"mt9f002",
"mt9f002";
};

* edit '''autocampars.php''' - add a proper application
* set application through 10389's serial or more preferably through /etc/elphel393/default_10389.xml in a 10389-less setup

* In ''linux-elphel/src/drivers/elphel/''
** Create mt9f002.h and mt9f002.c
** Add to Makefile:
obj-$(CONFIG_ELPHEL393) += mt9f002.o
** Edit pgm_functions.c
** mt9f002.h - fill with registers addresses (from sensor's datasheet) and other constants
** mt9f002.c:
mt9f002_par2addr table
mt9f002_pages table
mt9f002_ahead_tab - no need to edit in the beginning
sensor_t structure - some fields are used, some - not
mt9f002_inits - registers that must be initialized
mt9f002_pgm_detectsensor func - remove mrst and read id via i2c, register other functions
mt9f002_pgm_initsensor func - applies init i2c commands, cable phase adjustment, gain table and shadow regs
mt9f002_pgm_sensorin func - this just set MT9F002_VACT_DELAY because of sensor's specifics
mt9f002_pgm_window func - uses mt9f002_pgm_window_common
mt9f002_pgm_window_safe func - uses mt9f002_pgm_window_common
mt9f002_pgm_window_common func - change window, also sets horizontal blanking
mt9f002_pgm_gains func
mt9f002_pgm_limitfps func
mt9f002_pgm_exposure func
mt9f002_pgm_triggermode func



[[Category:393]] Oleg

File:10393 sensor driver structure.png

Mon, 04/16/2018 - 17:52

Oleg uploaded File:10393 sensor driver structure.png

New page

== Licensing ==
{{CC }} Oleg

File:10393 cpu fpga i2c records table.png

Mon, 04/16/2018 - 17:52

Oleg uploaded File:10393 cpu fpga i2c records table.png

New page

== Licensing ==
{{CC }} Oleg

Tmp manual

Mon, 04/16/2018 - 16:59

‎Accessing raw pixel values

← Older revision Revision as of 22:59, 16 April 2018 (2 intermediate revisions by the same user not shown)Line 281: Line 281:     ==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>== −* [https://community.elphel.com/files/393/20180406/ '''20180406''']+* [https://community.elphel.com/files/393/20180416/ '''20180416''']  +* [https://community.elphel.com/files/393/20180406/ 20180406]  * [https://community.elphel.com/files/393/20180130/ 20180130] * [https://community.elphel.com/files/393/20180130/ 20180130]  * [https://community.elphel.com/files/393/20180118/ 20180118] * [https://community.elphel.com/files/393/20180118/ 20180118] −* [https://community.elphel.com/files/393/20180116/ 20180116]   ===Changelog=== ===Changelog=== −  <font size='1'>==20180406==+  <font size='1'>'''==20180416=='''  + * mt9f002: added triggered mode  + * mt9f002: added vertical and horizontal flips (mirror)  + '''==20180406=='''    * added initial support for MT9F002 sensor: no triggered mode, no binning/decimation   * added initial support for MT9F002 sensor: no triggered mode, no binning/decimation    * display serial number in http://camera-ip:port/meta   * display serial number in http://camera-ip:port/meta    * decode jp4s on the index page (http://camera-ip)   * decode jp4s on the index page (http://camera-ip)    * turn off auto wb button for all ports on the index page   * turn off auto wb button for all ports on the index page −  ==20180130==+  '''==20180130=='''    * added photo finish demo   * added photo finish demo    * fixed fps limit calcs for triggered mode   * fixed fps limit calcs for triggered mode −  ==20180118==+  '''==20180118=='''    * raw.py & raw.php, see wiki.elphel.com   * raw.py & raw.php, see wiki.elphel.com    * added python3 and python3-opencv   * added python3 and python3-opencv −  ==20180116==+  '''==20180116=='''    * raw pixel data downloading through membridge   * raw pixel data downloading through membridge    * added gcc,make   * added gcc,make −  ==20180109==+  '''==20180109=='''    * fixed autoexposure   * fixed autoexposure −  ==20171228==+  '''==20171228=='''    * + strace, ltrace, dmsetup   * + strace, ltrace, dmsetup    * added to drivers: register devs to sysfs - nodes then created by udev   * added to drivers: register devs to sysfs - nodes then created by udev −  ==20171226==+  '''==20171226=='''    * kernel updated to 4.9 (from 4.0)   * kernel updated to 4.9 (from 4.0)    * lots of drivers is updated to newer versions   * lots of drivers is updated to newer versions    * +dm-crypt and cryptsetup   * +dm-crypt and cryptsetup −  ==20171120==+  '''==20171120=='''    * bugfix - incorrect displaying of TRIG_PERIOD at init   * bugfix - incorrect displaying of TRIG_PERIOD at init −  ==20171115==+  '''==20171115=='''    * Fixed autocampars to let 10393 work with the mux board - 10359, see wiki.elphel.com for   * Fixed autocampars to let 10393 work with the mux board - 10359, see wiki.elphel.com for     docs    docs −  ==20170823==+  '''==20170823=='''    * Fixed autocampars for multiple sensors getting desynced at init   * Fixed autocampars for multiple sensors getting desynced at init    * Fixed Garmin GPS 18x USB driver   * Fixed Garmin GPS 18x USB driver −  ==20170802==+  '''==20170802=='''    * fixed a page for taking snapshots - works in chrome and firefox for bigger images (>2MB)   * fixed a page for taking snapshots - works in chrome and firefox for bigger images (>2MB)    * enabled "Access-Control-Expose-Headers: Content-Disposition" and CORS   * enabled "Access-Control-Expose-Headers: Content-Disposition" and CORS −  ==20170627==+  '''==20170627=='''    * viewing decoded jp4 format in camvc   * viewing decoded jp4 format in camvc −  ==20170623==+  '''==20170623=='''    * fixed incorrect default setting of the master channel   * fixed incorrect default setting of the master channel  </font> </font> Line 380: Line 383:  [[10393_power#Powering_from_batteries| 12V and 48V power options]] [[10393_power#Powering_from_batteries| 12V and 48V power options]]  ===Accessing raw pixel values=== ===Accessing raw pixel values=== −[[Working_with_raw_image_data|Working with raw pixel data]]+[[Working_with_raw_image_data|Working with raw pixel data (how to capture raw images)]]  +   ===Photo finish (linescan mode)=== ===Photo finish (linescan mode)===  [[Photo-finish|Photo Finish]] (works for JP4 image format) [[Photo-finish|Photo Finish]] (works for JP4 image format) Oleg

10398

Wed, 04/11/2018 - 11:05

‎Application notes

← Older revision Revision as of 17:05, 11 April 2018 (4 intermediate revisions by the same user not shown)Line 15: Line 15:  [[Media:10398_assy.tar.gz|10398 component placement files]] [[Media:10398_assy.tar.gz|10398 component placement files]]    −===Application notes===+===MT9F002 Application Notes=== −====Slave mode, not GRR====+====Slave mode====  +To enable:  +# R0x301A[8]=1  +# R0x3026[9:7]=0x1 for GPI1, after this step sensor operates in GPI1 triggered GRR switching to free running (ERS)  +# (undocumented) R0x3158[15]=1 - most likely '''slave mode enable''' - after this step senor operates in slave mode GRR  +# (undocumented) R0x3158[13]=1 - disable GRR? - after this step senor operates in slave mode, readouts on rising GPI1, see Fig.3  +   +{|  +|[[File:Mt9f002 slave mode.jpeg|700px|thumb|Fig.3 Slave mode]]  +|} Oleg

File:Mt9f002 slave mode.jpeg

Wed, 04/11/2018 - 10:44

Oleg uploaded File:Mt9f002 slave mode.jpeg

New page

== Licensing ==
{{CC }} Oleg

10398

Wed, 04/11/2018 - 10:21

← Older revision Revision as of 16:21, 11 April 2018 Line 14: Line 14:  [[Media:10398_gerber.tar.gz|10398 Gerber files]] <br/> [[Media:10398_gerber.tar.gz|10398 Gerber files]] <br/>  [[Media:10398_assy.tar.gz|10398 component placement files]] [[Media:10398_assy.tar.gz|10398 component placement files]]  +  +===Application notes===  +====Slave mode, not GRR==== Oleg

Presentations

Mon, 04/09/2018 - 19:30

added pfresentation

← Older revision Revision as of 01:30, 10 April 2018 Line 1: Line 1:  ==Presentations== ==Presentations==  +===2018/04/09 High Resolution Wide FoV CNN System for Target Classification, Ranging and Tracking===  +*Presentation:  +**[https://community.elphel.com/files/presentations/Elphel_TP-CNN_slides.pdf  Elphel_TP-CNN_slides.pdf (2MB)]  +**[https://community.elphel.com/files/presentations/Elphel_TP-CNN_slides.odp Elphel_TP-CNN_slides.odp (12MB)]  ===2016/12/30 The 33rd Chaos Communication Congress (33C3), Hamburg, Germany=== ===2016/12/30 The 33rd Chaos Communication Congress (33C3), Hamburg, Germany===  * Presentation:   * Presentation:   Andrey.filippov

Tmp manual

Fri, 04/06/2018 - 11:13

‎Firmware images

← Older revision Revision as of 17:13, 6 April 2018 Line 281: Line 281:     ==<font color="blue">Firmware images</font>== ==<font color="blue">Firmware images</font>== −* [https://community.elphel.com/files/393/20180130/ '''20180130''']+* [https://community.elphel.com/files/393/20180406/ '''20180406''']  +* [https://community.elphel.com/files/393/20180130/ 20180130]  * [https://community.elphel.com/files/393/20180118/ 20180118] * [https://community.elphel.com/files/393/20180118/ 20180118]  * [https://community.elphel.com/files/393/20180116/ 20180116] * [https://community.elphel.com/files/393/20180116/ 20180116]  ===Changelog=== ===Changelog=== −  <font size='1'>==20180130==+  <font size='1'>==20180406==  + * added initial support for MT9F002 sensor: no triggered mode, no binning/decimation  + * display serial number in http://camera-ip:port/meta  + * decode jp4s on the index page (http://camera-ip)  + * turn off auto wb button for all ports on the index page  + ==20180130==    * added photo finish demo   * added photo finish demo    * fixed fps limit calcs for triggered mode   * fixed fps limit calcs for triggered mode Oleg

Driverless mode 393

Tue, 04/03/2018 - 11:13

‎Example: other window sizes

← Older revision Revision as of 17:13, 3 April 2018 (11 intermediate revisions by the same user not shown)Line 7: Line 7:  * to load bitstream for MT9F002 appropriate changes need to be made to: * to load bitstream for MT9F002 appropriate changes need to be made to:  ** device tree ** device tree −  set sensors to '''mt9f002''' in ''elphel393-detect_sensors,sensors'' entry+  <font size=2>set sensors to '''mt9f002''' in ''elphel393-detect_sensors,sensors'' entry</font> −** /etc/elphel393/default_10389.xml for setup w/o 10389 or 10389's eeprom otherwise+** /etc/elphel393/default_10389.xml for setup w/o 10389 or 10389's eeprom otherwise write '''MT9F002''' as application − write '''MT9F002''' for application   * Disable driver * Disable driver −  root@elphel393~# touch /etc/elphel393/disable_driver+  <font size=2>root@elphel393~# touch /etc/elphel393/disable_driver −  # then reboot+  # then reboot</font>     ===init=== ===init===  * start python session: * start python session:    root@elphel393~# cd /usr/local/verilog/; test_mcntrl.py @hargs-after   root@elphel393~# cd /usr/local/verilog/; test_mcntrl.py @hargs-after −* init:+* init (if the driver is not disabled the i2c writes will not work): −    setup_all_sensors True None 0x1 False 4384 3280+ <font size=2>setup_all_sensors True None 0x1 False 4384 3280          −    write_sensor_i2c 0 1 0 0x31c08000 # hispi timing+ write_sensor_i2c 0 1 0 0x31c08000 # hispi timing −    write_sensor_i2c 0 1 0 0x030600b4 # pll multiplier+ write_sensor_i2c 0 1 0 0x030600b4 # pll multiplier −    write_sensor_i2c 0 1 0 0x31c68400 # hispi control status+ write_sensor_i2c 0 1 0 0x31c68400 # hispi control status −    write_sensor_i2c 0 1 0 0x306e9280 # datapath select+ write_sensor_i2c 0 1 0 0x306e9280 # datapath select −    write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming+ write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming          −    hispi_phases_adjust 0+ hispi_phases_adjust 0          −    write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming+ write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming          −    setup_all_sensors True None 0x1 False 4384 3280+ setup_all_sensors True None 0x1 False 4384 3280 −    compressor_control all None None None None None 2+ compressor_control all None None None None None 2 −    program_gamma all 0 0.57 0.04+ program_gamma all 0 0.57 0.04          −    write_sensor_i2c 0 1 0 0x3028000a # global gain+ write_sensor_i2c 0 1 0 0x3028000a # global gain −    write_sensor_i2c 0 1 0 0x302c000d # some gain+ write_sensor_i2c 0 1 0 0x302c000d # some gain −    write_sensor_i2c 0 1 0 0x302e0010 # some gain+ write_sensor_i2c 0 1 0 0x302e0010 # some gain −    write_sensor_i2c 0 1 0 0x30120080 # coarse exposure+ write_sensor_i2c 0 1 0 0x30120080 # coarse exposure          −    jpeg_acquire_write+ jpeg_acquire_write          −    #write_sensor_i2c 0 1 0 0x301a0018 # put to standby+ #write_sensor_i2c 0 1 0 0x301a0018 # put to standby</font>  * inspect image: * inspect image: −  http://192.168.0.9/img.jpeg+  <font size=2>http://192.168.0.9/img.jpeg</font>  +   +===Example: 1600x1200 window===  +====8-bit compress to jpeg====  +* setup:  + <font size=2>write_sensor_i2c 0 1 0 0x3002001e  + write_sensor_i2c 0 1 0 0x300604f5  + write_sensor_i2c 0 1 0 0x034e04d8  + write_sensor_i2c 0 1 0 0x300a056a  + write_sensor_i2c 0 1 0 0x30040090  + write_sensor_i2c 0 1 0 0x300806cf  + write_sensor_i2c 0 1 0 0x034c0640  + write_sensor_i2c 0 1 0 0x300c04c8  +  + setup_all_sensors True None 0x1 False 1600 1200  + compressor_control all None None None None None 2  +  + write_sensor_i2c 0 1 0 0x301a001c  + # wait  + write_sensor_i2c 0 1 0 0x301a0018  +  + jpeg_acquire_write</font>  +* inspect:  + <font size=2>refresh http://192.168.0.9/img.jpeg</font>  +====8-bit raw====  +   +* setup  + <font size=2>same as above, no need to repeat if already done</font>  +* capture (copy-pasting the code below with comments will work)  + <font size=2>setup_all_sensors True None 0x1 False 1600 1200  +  + write_sensor_i2c 0 1 0 0x301a001c  + # wait  + write_sensor_i2c 0 1 0 0x301a0018  +  + # notice '''membridge_start''' (under Setting membridge for sensor 0)  + # it can be different: '''0x2e000000''' or '''0x2dc00000'''  +  + membridge_start  + mem_save "/usr/local/verilog/sensor_dump" '''0x2e000000''' 0x400000</font>  +* copy (from an ssh session in another terminal)  + <font size=2>scp /usr/local/verilog/sensor_dump ip@host:/path/1600x1200_8bit.raw</font>  +* open:  + <font size=2>Use imagej: File > Import > Raw...</font>  +====16-bit raw====  +* setup  + <font size=2>same as above, no need to repeat if already done</font>  +* capture (copy-pasting the code below with comments will work)  + <font size=2># Notice that the window width in 16 bit mode is 2x  + setup_all_sensors True 18 0x1 False '''3200''' 1200  + set_sensor_mode 0 1 1 True True  + enable_memcntrl_en_dis 12 True  +  + write_sensor_i2c 0 1 0 0x301a001c  + # wait  + write_sensor_i2c 0 1 0 0x301a0018  +   + # notice '''membridge_start''' (under Setting membridge for sensor 0)  + # it can be different: '''0x2e000000''' or '''0x2dc00000'''  +  + membridge_start  + mem_save "/usr/local/verilog/sensor_dump" 0x2e000000 0x400000</font>  +* copy (from an ssh session in another terminal)  + <font size=2>scp /usr/local/verilog/sensor_dump ip@host:/path/1600x1200_16bit.raw</font>  +* open:  + <font size=2>Use imagej: File > Import > Raw...</font>  +   +===Example: other window sizes===  +* Download and run [https://git.elphel.com/Elphel/x393/blob/master/py393/mt9f002_window_generator.py mt9f002_window_generator.py]  +* Then edit the code snippets for 1600x1200 according to the new window size  +* If getting raw sensor data 8-bit and 16-bit the membridge buffer is 4MB, so calculate accordingly:  + for 8-bit : '''WxH < 4M'''  + for 16-bit: '''WxH < 2M'''  + If not then - the buffer is circular which will result in overwriting of the beginning of the image     [[Category:393]] [[Category:393]] Oleg

Driverless mode 393

Tue, 04/03/2018 - 10:55

‎Example: 1600x1200

← Older revision Revision as of 16:55, 3 April 2018 (7 intermediate revisions by the same user not shown)Line 7: Line 7:  * to load bitstream for MT9F002 appropriate changes need to be made to: * to load bitstream for MT9F002 appropriate changes need to be made to:  ** device tree ** device tree −  set sensors to '''mt9f002''' in ''elphel393-detect_sensors,sensors'' entry+  <font size=2>set sensors to '''mt9f002''' in ''elphel393-detect_sensors,sensors'' entry</font> −** /etc/elphel393/default_10389.xml for setup w/o 10389 or 10389's eeprom otherwise+** /etc/elphel393/default_10389.xml for setup w/o 10389 or 10389's eeprom otherwise write '''MT9F002''' as application − write '''MT9F002''' for application   * Disable driver * Disable driver −  root@elphel393~# touch /etc/elphel393/disable_driver+  <font size=2>root@elphel393~# touch /etc/elphel393/disable_driver −  # then reboot+  # then reboot</font>     ===init=== ===init===  * start python session: * start python session:    root@elphel393~# cd /usr/local/verilog/; test_mcntrl.py @hargs-after   root@elphel393~# cd /usr/local/verilog/; test_mcntrl.py @hargs-after −* init:+* init (if the driver is not disabled the i2c writes will not work): −    setup_all_sensors True None 0x1 False 4384 3280+ <font size=2>setup_all_sensors True None 0x1 False 4384 3280          −    write_sensor_i2c 0 1 0 0x31c08000 # hispi timing+ write_sensor_i2c 0 1 0 0x31c08000 # hispi timing −    write_sensor_i2c 0 1 0 0x030600b4 # pll multiplier+ write_sensor_i2c 0 1 0 0x030600b4 # pll multiplier −    write_sensor_i2c 0 1 0 0x31c68400 # hispi control status+ write_sensor_i2c 0 1 0 0x31c68400 # hispi control status −    write_sensor_i2c 0 1 0 0x306e9280 # datapath select+ write_sensor_i2c 0 1 0 0x306e9280 # datapath select −    write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming+ write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming          −    hispi_phases_adjust 0+ hispi_phases_adjust 0          −    write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming+ write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming          −    setup_all_sensors True None 0x1 False 4384 3280+ setup_all_sensors True None 0x1 False 4384 3280 −    compressor_control all None None None None None 2+ compressor_control all None None None None None 2 −    program_gamma all 0 0.57 0.04+ program_gamma all 0 0.57 0.04          −    write_sensor_i2c 0 1 0 0x3028000a # global gain+ write_sensor_i2c 0 1 0 0x3028000a # global gain −    write_sensor_i2c 0 1 0 0x302c000d # some gain+ write_sensor_i2c 0 1 0 0x302c000d # some gain −    write_sensor_i2c 0 1 0 0x302e0010 # some gain+ write_sensor_i2c 0 1 0 0x302e0010 # some gain −    write_sensor_i2c 0 1 0 0x30120080 # coarse exposure+ write_sensor_i2c 0 1 0 0x30120080 # coarse exposure          −    jpeg_acquire_write+ jpeg_acquire_write          −    #write_sensor_i2c 0 1 0 0x301a0018 # put to standby+ #write_sensor_i2c 0 1 0 0x301a0018 # put to standby</font>  * inspect image: * inspect image: −  http://192.168.0.9/img.jpeg+  <font size=2>http://192.168.0.9/img.jpeg</font>     +===Example: 1600x1200 window===  +====8-bit compress to jpeg====  +* setup:  + <font size=2>write_sensor_i2c 0 1 0 0x3002001e  + write_sensor_i2c 0 1 0 0x300604f5  + write_sensor_i2c 0 1 0 0x034e04d8  + write_sensor_i2c 0 1 0 0x300a056a  + write_sensor_i2c 0 1 0 0x30040090  + write_sensor_i2c 0 1 0 0x300806cf  + write_sensor_i2c 0 1 0 0x034c0640  + write_sensor_i2c 0 1 0 0x300c04c8  +  + setup_all_sensors True None 0x1 False 1600 1200  + compressor_control all None None None None None 2  +  + write_sensor_i2c 0 1 0 0x301a001c  + # wait  + write_sensor_i2c 0 1 0 0x301a0018  +  + jpeg_acquire_write</font>  +* inspect:  + <font size=2>refresh http://192.168.0.9/img.jpeg</font>  +====8-bit raw====  +  +* setup  + <font size=2>same as above, no need to repeat if already done</font>  +* capture (copy-pasting the code below with comments will work)  + <font size=2>setup_all_sensors True None 0x1 False 1600 1200  +  + write_sensor_i2c 0 1 0 0x301a001c  + # wait  + write_sensor_i2c 0 1 0 0x301a0018  +  + # notice '''membridge_start''' (under Setting membridge for sensor 0)  + # it can be different: '''0x2e000000''' or '''0x2dc00000'''  +  + membridge_start  + mem_save "/usr/local/verilog/sensor_dump" '''0x2e000000''' 0x400000</font>  +* copy  + <font size=2>scp /usr/local/verilog/sensor_dump ip@host:/path/1600x1200_8bit.raw</font>  +====16-bit raw====  +* setup  + <font size=2>same as above, no need to repeat if already done</font>  +* capture (copy-pasting the code below with comments will work)  + <font size=2># Notice that the window width in 16 bit mode is 2x  + setup_all_sensors True 18 0x1 False '''3200''' 1200  + set_sensor_mode 0 1 1 True True  + enable_memcntrl_en_dis 12 True  +  + write_sensor_i2c 0 1 0 0x301a001c  + # wait  + write_sensor_i2c 0 1 0 0x301a0018  +   + # notice '''membridge_start''' (under Setting membridge for sensor 0)  + # it can be different: '''0x2e000000''' or '''0x2dc00000'''  +  + membridge_start  + mem_save "/usr/local/verilog/sensor_dump" 0x2e000000 0x400000</font>  +* copy (from an ssh session in another terminal)  + <font size=2>scp /usr/local/verilog/sensor_dump ip@host:/path/1600x1200_16bit.raw</font>  [[Category:393]] [[Category:393]] Oleg

Driverless mode 393

Tue, 04/03/2018 - 10:32

Created page with "==Description== Instructions on how to disable sensor driver and get images from image sensor (for MT9F002 sensor) ==Instructions== ===pre=== * to load bitstream for MT9F002..."

New page

==Description==
Instructions on how to disable sensor driver and get images from image sensor (for MT9F002 sensor)


==Instructions==
===pre===
* to load bitstream for MT9F002 appropriate changes need to be made to:
** device tree
set sensors to '''mt9f002''' in ''elphel393-detect_sensors,sensors'' entry
** /etc/elphel393/default_10389.xml for setup w/o 10389 or 10389's eeprom otherwise
write '''MT9F002''' for application
* Disable driver
root@elphel393~# touch /etc/elphel393/disable_driver
# then reboot

===init===
* start python session:
root@elphel393~# cd /usr/local/verilog/; test_mcntrl.py @hargs-after
* init:
setup_all_sensors True None 0x1 False 4384 3280

write_sensor_i2c 0 1 0 0x31c08000 # hispi timing
write_sensor_i2c 0 1 0 0x030600b4 # pll multiplier
write_sensor_i2c 0 1 0 0x31c68400 # hispi control status
write_sensor_i2c 0 1 0 0x306e9280 # datapath select
write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming

hispi_phases_adjust 0

write_sensor_i2c 0 1 0 0x301a001c # reset and start streaming

setup_all_sensors True None 0x1 False 4384 3280
compressor_control all None None None None None 2
program_gamma all 0 0.57 0.04

write_sensor_i2c 0 1 0 0x3028000a # global gain
write_sensor_i2c 0 1 0 0x302c000d # some gain
write_sensor_i2c 0 1 0 0x302e0010 # some gain
write_sensor_i2c 0 1 0 0x30120080 # coarse exposure

jpeg_acquire_write

#write_sensor_i2c 0 1 0 0x301a0018 # put to standby
* inspect image:
http://192.168.0.9/img.jpeg

[[Category:393]] Oleg

103891

Wed, 03/21/2018 - 17:50

‎Links

← Older revision Revision as of 23:50, 21 March 2018 Line 12: Line 12:     ==Links== ==Links==  +* [[10389|10389 board]]: interface board  +* [[Trigger_393]]: triggering NC393 camera  * J2 connector: [http://www.digikey.com/product-detail/en/cui-inc/SJ1-42534-SMT-TR/CP1-42534SJTR-ND/659908 SJ1-42534-SMT-TR] ([http://www.cui.com/product/resource/sj1-4253x-smt-series.pdf datasheet]) * J2 connector: [http://www.digikey.com/product-detail/en/cui-inc/SJ1-42534-SMT-TR/CP1-42534SJTR-ND/659908 SJ1-42534-SMT-TR] ([http://www.cui.com/product/resource/sj1-4253x-smt-series.pdf datasheet])  * Sync cable example: [http://www.digikey.com/product-detail/en/tensility-international-corp/10-00331/839-1029-ND/2350237 839-1029-ND] * Sync cable example: [http://www.digikey.com/product-detail/en/tensility-international-corp/10-00331/839-1029-ND/2350237 839-1029-ND] Andrey.filippov

10389

Wed, 03/21/2018 - 17:47

← Older revision Revision as of 23:47, 21 March 2018 (One intermediate revision by the same user not shown)Line 24: Line 24:  * [[Media:10389b.pdf|10389 Circuit Diagram, Parts List, PCB layout]] * [[Media:10389b.pdf|10389 Circuit Diagram, Parts List, PCB layout]]  * [[Media:10389b gerber.tar.gz|10389 Gerber files]] * [[Media:10389b gerber.tar.gz|10389 Gerber files]]  +  +  +[[Category:393]] Andrey.filippov

Trigger 393

Wed, 03/21/2018 - 17:43

‎Links

← Older revision Revision as of 23:43, 21 March 2018 Line 90: Line 90:  ==<font color="blue">Links</font>== ==<font color="blue">Links</font>==  * [[10389]] extension board * [[10389]] extension board  +* [[103891]] adapter board for external trigger connection     [[Category:393]] [[Category:393]] Andrey.filippov

Trigger

Wed, 03/21/2018 - 17:41

← Older revision Revision as of 23:41, 21 March 2018 Line 1: Line 1: −#REDIRECT [[Trigger 353]]+[[Trigger 393 | Triggering NC393 cameras]]  +   +[[Trigger 353 | Triggering NC353 cameras]] Andrey.filippov

Trigger

Wed, 03/21/2018 - 17:39

Andrey.filippov moved page Trigger to Trigger 353 more cameras

Andrey.filippov

103982

Mon, 03/12/2018 - 12:57

‎103982

← Older revision Revision as of 18:57, 12 March 2018 Line 16: Line 16:  [[Image:103984.png|thumb|400px| [[Image:103984.png|thumb|400px|  [[Media:103984.pdf|103984 (development adapter for 103982, 103983) circuit diagram, parts list]] <br/> [[Media:103984.pdf|103984 (development adapter for 103982, 103983) circuit diagram, parts list]] <br/> −[[Media:103984_gerber.tar.gz|103982 Gerber files]] <br/>+[[Media:103984_gerber.tar.gz|103984 Gerber files]] <br/>  [[Media:103984_assy.tar.gz|103984 placement files]] [[Media:103984_assy.tar.gz|103984 placement files]]  ]] ]] Line 31: Line 31:  File:103984.png| File:103984.png|  [[Media:103984.pdf|103984 (development adapter for 103982, 103983) circuit diagram, parts list]] <br/> [[Media:103984.pdf|103984 (development adapter for 103982, 103983) circuit diagram, parts list]] <br/> −[[Media:103984_gerber.tar.gz|103982 Gerber files]] <br/>+[[Media:103984_gerber.tar.gz|103984 Gerber files]] <br/>  [[Media:103984_assy.tar.gz|103984 placement files]] [[Media:103984_assy.tar.gz|103984 placement files]]  </gallery> </gallery>  --> --> Andrey.filippov

Elphel camera assemblies

Sun, 03/11/2018 - 23:17

← Older revision Revision as of 05:17, 12 March 2018 Line 2: Line 2:     [[Elphel_camera_parts | Elphel_camera_parts_0353]] [[Elphel_camera_parts | Elphel_camera_parts_0353]]  +  +[https://blog.elphel.com/2015/12/x3d-assemblies-from-any-cad/ Blog post about the software used to create these models]  ==Camera assemblies == ==Camera assemblies ==  === MNC393-XCAM camera === === MNC393-XCAM camera === Andrey.filippov

103982

Sat, 03/10/2018 - 19:12

‎103982

← Older revision Revision as of 02:12, 11 March 2018 (One intermediate revision by the same user not shown)Line 1: Line 1:  ==103982== ==103982== −Sensor front end for CMOSIS CMV12000.+Sensor front end for CMOSIS CMV12000. Can be connected to 1, 2 or 4 [[10393]] system boards. Four system boards provide continuous recording to internal m2 SSD or external eSATA SSD/HDD at full CMV12000 frame rate.     [[Image:103982.png|thumb|400px| [[Image:103982.png|thumb|400px| Line 7: Line 7:  [[Media:103982_assy.tar.gz|103982 placement files]] [[Media:103982_assy.tar.gz|103982 placement files]]  ]] ]]  +  +[[Image:103983.png|thumb|400px|  +[[Media:103983.pdf|103983 (power supply for 103982) circuit diagram, parts list]] <br/>  +[[Media:103983_gerber.tar.gz|103983 Gerber files]] <br/>  +[[Media:103983_assy.tar.gz|103983 placement files]]  +]]  +  +[[Image:103984.png|thumb|400px|  +[[Media:103984.pdf|103984 (development adapter for 103982, 103983) circuit diagram, parts list]] <br/>  +[[Media:103984_gerber.tar.gz|103982 Gerber files]] <br/>  +[[Media:103984_assy.tar.gz|103984 placement files]]  +]]  +<!--  +<gallery widths=400 heights=500 mode=nolines>  +File:103982.png|  +[[Media:103982.pdf|103982 circuit diagram, parts list]] <br/>  +[[Media:103982_gerber.tar.gz|103982 Gerber files]] <br/>  +[[Media:103982_assy.tar.gz|103982 placement files]]  +File:103983.png|  +[[Media:103983.pdf|103983 (power supply for 103982) circuit diagram, parts list]] <br/>  +[[Media:103983_gerber.tar.gz|103983 Gerber files]] <br/>  +[[Media:103983_assy.tar.gz|103983 placement files]]  +File:103984.png|  +[[Media:103984.pdf|103984 (development adapter for 103982, 103983) circuit diagram, parts list]] <br/>  +[[Media:103984_gerber.tar.gz|103982 Gerber files]] <br/>  +[[Media:103984_assy.tar.gz|103984 placement files]]  +</gallery>  +--> Andrey.filippov

Pages