04/03/18 [linux-elphel][rocko] by Oleg Dzhimiev: fixed fps 2 (now after a bit of testing)
Oleg Dzhimiev committed changes to the Elphel git project :
fixed fps 2 (now after a bit of testing)
fixed fps 2 (now after a bit of testing)
Driverless mode 393
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]] OlegDriverless mode 393
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]] OlegDriverless mode 393
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
04/03/18 [linux-elphel][] by AndreyFilippov: Reverted CIRCBUF_START_OFFSET change from rocko
AndreyFilippov committed changes to the Elphel git project :
Reverted CIRCBUF_START_OFFSET change from rocko
Reverted CIRCBUF_START_OFFSET change from rocko
04/03/18 [x393][CMV300] by Oleg Dzhimiev: generator script
Oleg Dzhimiev committed changes to the Elphel git project :
generator script
generator script
04/03/18 [linux-elphel][] by Oleg Dzhimiev: added P_CLK_SENSPIX
Oleg Dzhimiev committed changes to the Elphel git project :
added P_CLK_SENSPIX
added P_CLK_SENSPIX
04/03/18 [imagej-elphel][master] by AndreyFilippov: added x3d model versions
AndreyFilippov committed changes to the Elphel git project :
added x3d model versions
added x3d model versions
04/02/18 [eyesis4pi-393-gui][master] by AndreyFilippov: added split_mov_jp4.php that creates jp4 with canonical name <sec>_<usec>_<chn>.jp4
AndreyFilippov committed changes to the Elphel git project :
added split_mov_jp4.php that creates jp4 with canonical name <sec>_<usec>_<chn>.jp4
added split_mov_jp4.php that creates jp4 with canonical name <sec>_<usec>_<chn>.jp4
04/02/18 [imagej-elphel][master] by AndreyFilippov: typo
AndreyFilippov committed changes to the Elphel git project :
typo
typo
04/01/18 [imagej-elphel][master] by Andrey Filippov: fixing strategies listing
Andrey Filippov committed changes to the Elphel git project :
fixing strategies listing
fixing strategies listing
04/01/18 [imagej-elphel][master] by AndreyFilippov: Fixing sensor geometric corrections
AndreyFilippov committed changes to the Elphel git project :
Fixing sensor geometric corrections
Fixing sensor geometric corrections
03/31/18 [imagej-elphel][master] by AndreyFilippov: fixing configuration and missing clt directory creation
AndreyFilippov committed changes to the Elphel git project :
fixing configuration and missing clt directory creation
fixing configuration and missing clt directory creation
03/30/18 [imagej-elphel][master] by AndreyFilippov: escaping "," in comments
AndreyFilippov committed changes to the Elphel git project :
escaping "," in comments
escaping "," in comments
03/30/18 [x393][CMV300] by Oleg Dzhimiev: 1. FRAME_FULL_WIDTH and FRAME_START_ADDRESS_INC globals 2. fixed typo
Oleg Dzhimiev committed changes to the Elphel git project :
1. FRAME_FULL_WIDTH and FRAME_START_ADDRESS_INC globals 2. fixed typo
1. FRAME_FULL_WIDTH and FRAME_START_ADDRESS_INC globals 2. fixed typo
03/28/18 [meta-elphel393][master-next] by Oleg Dzhimiev: pass EXTRACT_UNSAFE_SYMLINKS variable
Oleg Dzhimiev committed changes to the Elphel git project :
pass EXTRACT_UNSAFE_SYMLINKS variable
pass EXTRACT_UNSAFE_SYMLINKS variable
03/27/18 [imagej-elphel][master] by AndreyFilippov: added strategy comments, strategy list
AndreyFilippov committed changes to the Elphel git project :
added strategy comments, strategy list
added strategy comments, strategy list
03/27/18 [linux-elphel][rocko] by Oleg Dzhimiev: typo
Oleg Dzhimiev committed changes to the Elphel git project :
typo
typo
03/26/18 [imagej-elphel][master] by Andrey Filippov: fixed x-cam correction screws turn values
Andrey Filippov committed changes to the Elphel git project :
fixed x-cam correction screws turn values
fixed x-cam correction screws turn values
03/25/18 [imagej-elphel][master] by AndreyFilippov: Merge branch 'dct' of git.elphel.com:Elphel/imagej-elphel into dct
AndreyFilippov committed changes to the Elphel git project :
Merge branch 'dct' of git.elphel.com:Elphel/imagej-elphel into dct
Merge branch 'dct' of git.elphel.com:Elphel/imagej-elphel into dct
Pages
