i think that you are really busy and you might not have time to develop c510 driver further....but i think most of us are really waiting for next release
by the way...maybe it's me that haven't found out this before...but Twilight mode + EV +2.0 gives good night shots
at least it seems that in this mode LED is sinchronized well...i'll try to make more shots to see if that wasn't just an accident
Sorry, one big problem...i don't have any tester...think to stop next c510's project...and i felt i just make everythings worst...
no no no!!! don't stop!!! we need you soooo much! do you see any other person making driver for c510? no i don't and really doubt that there's one except you with Number 1 and brazzuka at your back
made som more shots with Twilight mode + EV +2.0 and can say that some shots come out great some don't... seems that's it's still not stable
synchronization of LED seems quite good and it fails maybe only 1 or 2 out of 5 times...but the other thing is that at times LED stays longer giving more light to cam module and therefore pictures coming out good...but most of the times it stays for short period thus not giving enough light..
the other thing Code is i think is Focus issue in dark places as it seems to fail to focus properly most of the times
it's in video recording mode... when you zoom in you get red pixels all over the video (some kind of distortion)...
i think other c510 owners should try this and report back if they get same results in video mode + zoom in
the driver messed my C510 pictures taken were totally not acceptable, either with strips of green or white...updated again my firmware to its original settings working ok now
as long as you give us stuff we are more than happy to test it so i think you have plenty of testers here
p.s.: i know it's off topic but just a couple of words of gratitude for your work which will hope encourage you to carry on with what you started
Thanx bro...but im not at my home for a few days. Maybe check it out later and make some tweak based on its stock camdriver. Any information bout new C510's firmware released? I've checked setool support website and i saw there's a new version. Maybe someone here have been tested it and there's a new version camdriver. I need it for you.
i've tried myself SEUS and nothing new...i flashed from R1DA029 before to R1DA032 through SEUS but this time it says nothing new...i checked WOTAN client now and they offer R1DA035 but i don't know why it's not on SEUS...hmmm
Nordic R1DA035 has been out for a while.
// Kate camera driver setup file
//************************************************************************
//
//
// Revision history:
//
// 2.1 Fix for DMS00508656 GTCCPRTC: phone crashes in video view finder when press # shortcut key.
// 2008.12.15
// 2.0 Fix for Yellow pictures cause by Autoflash fix. 2008.11.28
// 1.9 Fix for DMS00444457 2008.11.24
// Fix for DMS00436227
// 1.8 Fix for DMS00441559 2008.10.22
// [Camera] The zoomlevel is not reseted when changing between still mode and video mode
//
// 1.7 Add Property 0x17 into property table. 2008.09.01
// 1.6 Fix for DMS00415100. 2008.08.26
// Fix for DMS00409838
// Add Auto Flash threshold value to property 23.
// 1.5 Add cam_vf_buffer= 0006 for semi transparancy. 2008.08.12
// 1.4 Fix for video recording application errors. 2008.07.23
// 1.3 DMS00393553 Camera: [Kate] There is no differense between a nightmode on or off
// DMS00393566 Camera: [Kate] The framerate is 5 fps instead of 7.5 fps
// when recording a video with night mode on 2008.07.21
// 1.2 Set reg07 as Auto draft flag to improve startup speed. 2008.07.21
// 1.1 Change GPIO setting according to HB108 spec. 2008-05-04
// 1.0 First release based on Ning version 2.6 2008-04-14
// Change power setting according to Kate HW spec.
//
//*****************************************************************************
//---------------------------------------------------------
// Description of internal register usage:
//
// a: used to select EXIF parameter to read
// e: used to remember last size id for snapshot burst mode
//
//---------------------------------------------------------
//Information section
//=========================================================
info_name=MCB850;
info_vendor=Sony;
info_major_ver=2;
info_minor_ver=1; // use HEX foramt
//Camera characteristics section
//=========================================================
//=========================================================
// Kate 3M camera Power on sequence
//=======================================================
cam_power_on_0 = 5, 0, 00, 1, 05; // Active Main Camera RST pin, delay 5ms
cam_power_on_1 = 5, 2, 91, 1, 05; // Videocamera standby (AppGPIO_09 = GPIO_91)
cam_power_on_2 = 5, 2, 96, 1, 02; // Vcam_SA (AppGPIO_14=GPIO_96) delay 2ms
cam_power_on_3 = 5, 2, 85, 1, 00; // Vcam_Core_AF (AppGPIO_05=GPIO_85)
cam_power_on_4 = 5, 2, 95, 1, 05; // Vcam_IO (AppGPIO_13=GPIO_95) delay 5ms
cam_power_on_5 = 5, 3, 09, 32C8, 05; // Turn on 13 MHz clock, delay 5ms
cam_power_on_6 = 5, 0, 00, 0, 32; // Disable RST , delay 50ms
//=========================================================
// Kate 3M camera Power off sequence
//=======================================================
cam_power_off_0 = 5, 0, 00, 1, 10; // Active Main Camera RST pin, delay 16ms
cam_power_off_1 = 5, 3, 09, 0, 05; // Turn off 13 MHz clock and wait 5 ms
cam_power_off_2 = 5, 2, 85, 0, 00; // Vcam_Core_AF (AppGPIO_05=GPIO_85)
cam_power_off_3 = 5, 2, 95, 0, 05; // Vcam_IO (AppGPIO_13=GPIO_95) delay 5ms
cam_power_off_4 = 5, 2, 96, 0, 05; // Vcam_SA (AppGPIO_14=GPIO_96) delay 5ms
cam_power_off_5 = 5, 2, 91, 0, 05; // Release Videocamera standby (AppGPIO_09 = GPIO_91)
//=========================================================
//================================================
// DATA
//================================================
// TODO: define any of these that are needed:
// cam_i2c_clock_freq=
// The desired I2C clock frequency in kHz (hexadecimal). Default is 100 kHz
// cam_data_offset=
// The number of bytes in the data stream to be
// skipped before the image data appears when
// taking a snapshot (hexadecimal)
// cam_frame_skip=
// The number of frames to be skipped before the
// final image frame is captured when taking a
// snapshot (hexadecimal)
// cam_ss_retries=
// The number of times to retry taking a snapshot
// cam_ss_jpeg_buf_size_1=
// cam_ss_jpeg_buf_size_2=
// cam_ss_jpeg_buf_size_3=
// cam_ss_jpeg_buf_size_4=
// Suggested snapshot buffer size in bytes (hexadecimal)
// cam_post_processing_x=
// Post processing for size configuration x:
// 0 = 0 degrees rotation
// 1 = 90 degrees clockwise rotation
// 2 = 180 degrees clockwise rotation
// 3 = 270 degrees clockwise rotation
//================================================
cam_i2c_address=1F;
cam_vf_clock_freq=9,32C8; // clock ID 9 is SYSCON_SYSCLK_13MHZ,Clock #9 on, frequency 13MHz
cam_ss_clock_freq=9,32C8; // clock ID 9 is SYSCON_SYSCLK_13MHZ,Clock #9 on, frequency 13MHz
cam_i2c_clock = ; // Default 100 kHz
cam_vf_format=B100;
cam_ss_format=0001; // JPEG default
cam_ss_format_10 = B100; // YCbCr
cam_ss_format_11 = B100; // YCbCr
cam_data_offset=2; // JPEG default
cam_data_offset_10 = 0; // YCbCr
cam_data_offset_11 = 0; // YCbCr
cam_vf_sync=5;
cam_ss_sync=5;
cam_vf_buffer= 0006; // YUV420 Separated
cam_ss_retries=9;
//-- Rotation setting
cam_post_processing_20 = 1; // viewfinder rotation
cam_post_processing_25 = 1; // videotelephony
cam_post_processing_26 = 1; // videotelephony
cam_post_processing_29 = 1; // video recording
//-- JPEG buffer sizes
cam_ss_jpeg_buf_size_1=25800; // 150 KB buffer for 640x480 snap
cam_ss_jpeg_buf_size_2=64000; // 400 KB buffer for 1280x960 snap
cam_ss_jpeg_buf_size_4=96000; // 600 KB buffer for 1632x1244 snap
cam_ss_jpeg_buf_size_5=E1000; // 900 KB buffer for 2048x1536 snap
//================================================
// SUPPORTED SIZES
//================================================
//-- JPEG snapshot resolutions
// 1 = 640 x 480 2 = 1280 x 960
// 4 = 1632 x 1224 5 = 2048 x 1536
//-- YUV422 snapshot resolutions
// 10 = 320 x 240 11 = 640 x 480
//-- Viewfinder resolutions
// 20 = 320 x 240
// 25 = 96 x 128
// 26 = 144 x 176
// 29 = 144 x 176
// 2a = 320 x 240
// 2b = 320 x 240
// 2c = 320 x 240
// 2f = 320 x 240
//=================================================
sup_sizes =
1[280,1E0,0], // SS 640 x 480 JPEG VGA
2[500,3C0,0], // SS 1280 x 960 JPEG 1M
4[660,4C8,0], // SS 1632 x 1224 JPEG 2M
5[800,600,0], // SS 2048 x 1536 JPEG 3M
10[140, F0,0], // SS 320 x 240 YCbCr
11[280,1E0,0], // SS 640 x 480 YCbCr
20[140,F0,BB8], // VF 320 x 240 YCbCr 30 fps
25[60,80,4B0], // VT 96 x 128 YCbCr 12 fps max
26[90,B0,4B0], // VT 144 x 176 YCbCr 12 fps max
29[90,B0,3E8], // VR 144 x 176 YCbCr 10 fps fixed
2a[140,F0,BB8], // VR 320 x 240 YCbCr 30 fps fixed
2b[140,F0,5DC], // VR 320 x 240 YCbCr 15 fps fixed
2c[140,F0,2EE], // VR 320 x 240 YCbCr 7.5 fps fixed
2f[140,F0,BB8], // VF 320 x 240 YCbCr 30 fps
;
//=========================================================
// Platform registers used
//=========================================================
// 0, Used in CLEAR_EVENT_FIFO,
// WAIT_FOR_MODE,
// jpeg_qtable_selector
// WAIT_FOR_TRIG
// Property 23 Xenon Flash Required
// 1, Used in SET_REG,
// CLEAR_EVENT
// SEND_COMMAND,
// jpeg_qtable_selector
// 2, Used in CLEAR_EVENT (Event info stored),
// CLEAR_EVENT_FIFO,
// WAIT_FOR_MODE,
// jpeg_qtable_selector
// 3, Used in CLEAR_EVENT (Event id stored),
// CLEAR_EVENT_FIFO,
// WAIT_FOR_MODE,
// 4, Used in READ_REG (value stored)
// Property 6
// Property 23 Xenon Flash Required
// 5, Used in Property 6
// Property 23
// UPDATE_MIN_FRMRATE
// UPDATE_ISO
// UPDATE_PHOTO
// UPDATE_WB
// Property 10
// 6, Used for burst mode. 0 = OFF, 1 = ON
// 7, JPEG -> draft auto 1 = Done 0 = Not done
// 8, Used for face dectection input, which is stored in reg g, h, i and f.08
// 9, 0:Init 1:ReadyForBurstOutput 2:WaitForEV_RECORD_STATUS 3:BurstOutput
// a,
// b, Used in Property 29, BestPic operation
// seq_pv_verify
// c, Used to remember ISO setting since one has to change AE_MODE
// to "auto" for IS.
// d, Used to remember LED flash mode (property 23)
// e, Used for picture readout, 0 => normal, burst 1 => read out pict 1 ...
// f, Used as 32 flags:
// bit 0, Image stabilization, 1 = ON, 0 = OFF
// bit 1, High sensitivity, 1 = ON, 0 = OFF
// bit 2, Any draft mode, 1 = YES, 0 = NO
// bit 3, Snapshot format, 1 = JPEG, 0 = YCbCr
// bit 4, Xenon flash needed, 1 = Yes, 0 = NO
// bit 5, JPEG compression 1 = Normal, 0 = Low compression
// bit 6, Flash was used 1 = True, 0 = False
// bit 7,
// bit 8, Face detection 1 = ON, 0 = OFF
// bit 9, Focus range 1 = Full, 0 = Normal
// bit A, Photometry spot 1 = ON, 0 = OFF
// bit B,
// g, Used for x-coordinate of AF-area
// h, Used for y-coordinate of AF-area
// i, Used for width of AF-area
//================================================
// MACROS
//================================================
// MCB850 UI COMMAND
// Send command 0x3E 0x06 0x02 0x00 0x01 CommandParameter Command
// Command replay 0x3F 0x04 Cause CommandParameter Command
// Polling 0x3E 0x05 0x01 0x00 0x03 0x03
// Receive Event 0x3F 0x04 Cause StatusParameter Status
// Set parameter 0x3E 0x05 0x02 0x00 REG Parameter
// Read parameter 0x3E 0x05 0x01 0x00 REG 0x01
// 0x3F 0x02 Parameter
// Set INT_RELEASE Register 0x3E 0x05 0x02 0x00 0x06 0x01
//================================================
// Sets register to value SET_REG(REG,VAL)
SET_REG = 05 02 00 !0 !1 $f $r2 01 $d0002;
// Reads register READ_REG(REG,$r2 01)
READ_REG = 05 01 00 !0 01 $f !1 ;
CLEAR_EVENT = // Clears event register. FIFO is not cleared
05 01 00 03 03 $f // Packet length, access code, id number, reg to read (int source), req packet length
$r4 1 123 $d0002 // Put Int_source in reg 1, Event_info in reg 2 and Event_id in reg 3
$c3 00 // If internal register 3 holds 0 (means the queue was empty)
$"CAMDRIVER0: Queue_was_empty"
$cl
$"CAMDRIVER0: Cleared_Int_Source_%1_Event_Info_%2_Event_ID_%3"
$cx
#SET_REG(06,03) // Clears the event
;
CLEAR_EVENT_FIFO = // Clears the event FIFO
$"CAMDRIVER0: Clear_event_fifo"
$s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start)
[ 0 ff // Loop 0xff times or quit looping when internal register 0 holds 0
#CLEAR_EVENT // Read the event and clear it
$c3 00 // If internal register 3 holds 00 (= if EVENT_ID equals 00, meaning the queue is empty)
$s0 00 // Set internal register 0 to 0x00 in order to exit the loop
$cx
]
;
WAIT_FOR_TRIG = // Listen to TRIG APP GPIO_02=GPIO_82
$h 0 82 5 1000 // Listen to trig on Application GPIO_02 = TRIG
$c0 00
$"CAMDRIVER0: TRIG_Timeout" // No event occured
$cl
$"CAMDRIVER0: TRIG_Recieved" // Event occured
$cx
;
// Only send command, no reply is read out
COMMAND = 06 02 00 01 !1 !0 $f $r3 012 $d0002; // Change delay time from 5ms to 2ms.
// Waits for signal on TRIG, and clear the event register when it has arrived
CAPTURE_EVENT =
#WAIT_FOR_TRIG
#CLEAR_EVENT
;
// This sends a command and waits for reply
// In most cases this is the command that should be used, isn't it?
COM_EVENT =
#CLEAR_EVENT_FIFO
#COMMAND(!0,!1)
#WAIT_FOR_TRIG
#CLEAR_EVENT
;
// Use poll instead of TRIG. It is difficult to use TRIG if reply
// and mode transfer comes to close
// Reads and clears events until the specified event occurs.
WAIT_FOR_MODE = // Syntax: WAIT_FOR_MODE($s4 Event_Identification)
$"CAMDRIVER0: Wait_for_mode"
!0 // "Execute" the first parameter
$s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start)
[ 0 ff // Loop 0xff times or quit looping when internal register 0 holds 0
#CLEAR_EVENT // Clear event. If the event id (which the CLEAR_EVENT-makro will store in
// internal register 2) is equal to 0xea (= EV_MODE_CHANGED)
$-3 r4 // Subtract the contents of internal register 4 from the contents of register 3 (EVENT_ID)
// and store the result in internal register 3
$c3 00 // If internal register 3 holds 0
$"CAMDRIVER0: Successfully_acknowledged_Event_ID_%4"
$s0 00 // Set internal register 0 to 0x00 in order to exit the loop
$cx // End if
]
;
WAIT_FOR_MODE_A = // Syntax: WAIT_FOR_MODE($s4 Event_Identification)
$"CAMDRIVER0: Wait_for_mode"
!0 // "Execute" the first parameter
$s0 01 // Set internal register 0 to 0x01 (otherwise the loop won't even start)
[ 0 05 // Loop 0x05 times or quit looping when internal register 0 holds 0
#CLEAR_EVENT // Clear event. If the event id (which the CLEAR_EVENT-makro will store in
// internal register 2) is equal to 0xea (= EV_MODE_CHANGED)
$-3 r4 // Subtract the contents of internal register 4 from the contents of register 3 (EVENT_ID)
// and store the result in internal register 3
$c3 00 // If internal register 3 holds 0
$"CAMDRIVER0: Successfully_acknowledged_Event_ID_%4"
$s0 00 // Set internal register 0 to 0x00 in order to exit the loop
$cx // End if
]
;
// Used to change mode, TRIG is not used, instead event register is polled.
CHANGE_MODE =
#CLEAR_EVENT_FIFO
#SET_REG(06,03)
#COMMAND(!0,!1)
#WAIT_FOR_MODE($s4 ea)
#SET_REG(06,03)
;
CHANGE_MODE_A =
#CLEAR_EVENT_FIFO //Only used for Burst mode (4 times taking picture)
#SET_REG(06,03)
#COMMAND(!0,!1)
#WAIT_FOR_MODE_A($s4 ea) // Using 5 times loop to avoid long time waiting for 0xEA events.
#SET_REG(06,03)
;
// Used where HALF_RELEASE should be done
HALF_RELEASE =
$"CAMDRIVER0_Half-release"
#CLEAR_EVENT_FIFO
#SET_REG(06,03)
#COMMAND(31,03) //No AF, AE hold, ACC locked
#WAIT_FOR_MODE($s4 e9) //Wait for half release
#SET_REG(06,03)
;
READ_AF_STATUS=
05 01 00 03 03 $f $r4 4 4 4 5
$c5 E9 //Use halfrelease do AF operation, so change E6 -> E9
$cl
$s4 03
$cx
;
// Used in scene selection
UPDATE_WB =
$p5 01
$c5 00 // WB is auto?
$cl
$d0032 // Delay 50 milliseconds
$u01 // Update WB
$cx
;
UPDATE_PHOTO = // Updates photo metering
$p5 16
$c5 00 // Photo metering is not spot?
$cl
$u16 // Update photo metering => spot
$cx
;
UPDATE_MIN_FRMRATE = // Updates minimum framerate
$p5 10
$c5 03
#SET_REG(08,04) // DRAFT_MIN_FRMRATE 2 fps
$cl
#SET_REG(08,0A) // DRAFT_MIN_FRMRATE 5 fps
$cx
;
UPDATE_ISO = // Updates ISO
$p5 11
$c5 00 // ISO is auto
$cl
$u11 // Update ISO
$cx
;
CMD_END=$f $d0002; // Change delay time form 5ms to 2ms.
DOC_MODE = // Updates special doc scene settings
#COM_EVENT(55,02) // Increase contrast to 2
#COM_EVENT(56,08) // Increase sharpness to max (8)
#COM_EVENT(06,02) // Increase exposure to 2
#SET_REG(2B,04) // Setting AF range to Macro
#COM_EVENT(05,00)
;
NOT_DOC_MODE = // Reverses special doc scene settings
#COM_EVENT(02,00) // AE_AUTO
#COM_EVENT(55,00) // Reset contrast
#COM_EVENT(56,00) // Reset sharpness
#COM_EVENT(06,00) // Reset exposure
#SET_REG(2B,00) // Reset AF range to Normal
#COM_EVENT(05,00) // Set ISO to Auto.
;
TO_DRAFT = // Changes to draft (but not on display)
$cf.02 0 // If not draft
$sf.02 1 // Set draft flag to 1
$cl
$cx
;
DISP_REG =
$"CAMDRIVER0: REG00_%0_REG01_%1_REG02_%2_REG03_%3"
$"CAMDRIVER0: REG04_%4_REG05_%5_REG06_%6_REG07_%7"
$"CAMDRIVER0: REG08_%8_REG09_%9_REG0A_%A_REG0B_%B"
$"CAMDRIVER0: REG0C_%C_REG0D_%D_REG0E_%E_REG0F_%F"
;
DISP_GET_REG = //#COM_EVENT(72,00) // Update the registers, INFO_GET_DATA
#READ_REG(0E,$r2 3 3) // Put shutter(H, MSB) in reg 3
#READ_REG(0F,$r2 2 2) // Put shutter(L, LSB) in reg 2
#READ_REG(10,$r2 1 1) // Put ISO(H, MSB) in reg 1
#READ_REG(11,$r2 0 0) // Put ISO(L, LSB) in reg 0
$"CAMDRIVER0_GetEXIF1_%3_%2_%1_%0"
;
AUTO_AE_SETTING = #COMMAND(09,01) //Set AE_SPEED High.
#COMMAND(14,01) //Set CC_SPEED High.
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
//---------------------------------------------------------
//These two lines controls the locked frame rate in VR.
//Use them to test different settings!
//The value entered is the desired frame rate * 2.
//Example: 14 means 0x14 = 20 => frame rate 20 / 2 = 10 fps
VR_30_FR=3C; // 30 fps
VR_15_FR=1E; // 15 fps
VR_12_FR=18; // 12 fps
VR_10_FR=14; // 10 fps
VR_7_5_FR=0F; // 7.5fps
//================================================
// OTHER SEQ
//================================================
seq_init= // $d0014
$sf 00 // Set all flags to zero
$sf.05 1 // Normal JPEG compression
$sf.02 1 // Set draft flag to YES
$s7 01 // Quick start
$se 00 // Normal snapshot operation
$sd 00 // Flash mode "auto"
$s6 00 // Not in burst mode
$"CAMDRIVER0_CAMDRIVER0_init"
#CAPTURE_EVENT // e1 EV_CAM_READY
#CAPTURE_EVENT // ec EV_MUTE_OFF
#SET_REG(19,00) //JPEG continuos mode infinite
#SET_REG(0C,D0)
#SET_REG(0D,07) //JPEG retry time max 2 sec
#COMMAND(09,01) //Set AE_SPEED High.
#COMMAND(14,01) //Set CC_SPEED High.
;
seq_ping=;
//================================================
// PROPERTIES
//================================================
//
//Properties:
// 0 = Exposure Set Implemented
// 1 = White balance Set Implemented
// 2 = Flicker Mode Set Implemented
// 3 = Vertical mirror Set Implemented
// 4 = Horisontal mirror Set Implemented
// 5 = JPEG Compression level Set Implemented
// 6 = Zoom Set/Get Implemented
// 7 = Night mode Set Implemented
// 8 = Effects Set Implemented
// 9 = Focus mode Set Implemented
// a 10 = Focus operation Set/Get Implemented
// b 11 = Get Exif information 1 Get Implemented
// c 12 = Get Exif information 2 Get Implemented
// d 13 = LED support Set Implemented
// e 14 = Xenon Flash support Set NOT VALID FOR MCB 850
// f 15 = Optical zoom Set/Get NOT VALID FOR MCB 850
// 10 16 = Scenes Set Implemented
// 11 17 = ISO Set Implemented
// 12 18 = Low Framerate Mode Set Implemented
// 13 19 = Get face det.AF Set/Get Not Implemented
// 14 20 = Set AF area Set Implemented
// 15 21 =
// 16 22 = Photo Metering Set Implemented
// 17 23 = Xenon Flash Required Get NOT VALID FOR MCB 850
// 18 24 = Image Stabilization Set NOT VALID FOR MCB 850
// 19 25 = Continuous Zoom Set Implemented
// 1a 26 = Get zoom value Get Implemented
// 1b 27 = Snapshot operation Set NOT VALID FOR MCB 850
// 1c 28 =
// 1d 29 = Burst (BestPIC) Operation Set NOT VALID FOR MCB 850
// 1e 30 = ITP test (Test Pattern) Set Implemented
// 2,3 for FD test and 4 for temp test.
// 1f 31 = ITP test
// 20 32 = ITP test (Spot)
//================================================
sup_properties =
0[3,f,9], 1[0,6,0], 2[0,3,0], 3[0,3,0], 4[0,3,0],
5[0,9,0], 6[a,28,a], 7[0,1,0], 8[0,4,0], 9[0,4,0],
a[0,2,0], b[0,0,0], c[0,0,0], d[0,1,0], e[0,4,0],
f[0,1,0],10[0,7,0], 11[0,9,0], 12[0,ff,0],
14[0,FFFFFFFF,0],15[0,11,8],16[0,1,0],17[0,0,0],19[0,2,0],1c[0,1,0],
1d[0,3,0],1e[0,3,0], 1f[0,1,0],20[0,7,0]
;
//************************************************
// Property 0 Exposure ***
//************************************************
//--------------------------------------------------
// 3 => -2 EV, 9 => -(0) EV .... f => 2 EV
//---------------------------------------------------
//TBD
seq_set_prop_0 =
#TO_DRAFT
$s5 %0
$-5 09
#COM_EVENT(06,$w5)
;
//************************************************
// Property 1 White balance ***
//************************************************
//---------------------------------------------------
// 0 => Auto 1 => Tungsten 2 => Fluorescent
// 3 => Outdoor clear sky 4 => Outdoor cloudy
// 5 => All pull-in
//---------------------------------------------------
//TBD
seq_set_prop_1_0 = #TO_DRAFT #COM_EVENT(11,00);
seq_set_prop_1_1 = #TO_DRAFT #COM_EVENT(11,03);
seq_set_prop_1_2 = #TO_DRAFT #COM_EVENT(11,04);
seq_set_prop_1_3 = #TO_DRAFT #COM_EVENT(11,05);
seq_set_prop_1_4 = #TO_DRAFT #COM_EVENT(11,06);
seq_set_prop_1_5 = #TO_DRAFT #COM_EVENT(11,02);
//****************************************************
// Property 2 Flicker correction, ***
//****************************************************
// 0 => auto, 1 => 50 Hz, 2 => 60 Hz, 3 => disable
//
//---------------------------------------------------
seq_set_prop_2_0= #COM_EVENT(21,01); //Auto detect
seq_set_prop_2_1= #COM_EVENT(21,02); //50Hz detect
seq_set_prop_2_2= #COM_EVENT(21,03); //60Hz detect
seq_set_prop_2_3= #COM_EVENT(21,00); //Disable
//***************************************************
// Property 3 Vertical mirror, ***
//***************************************************
// 0->OFF, 1->ON
//---------------------------------------------------
seq_set_prop_3_0 = #COM_EVENT(52,00); // OFF 0b00000000 Capt/draft
seq_set_prop_3_1 = #COM_EVENT(52,0A); // ON 0b00001010 Capt/draft
//***************************************************
// Property 4 Horizontal mirror ***
//***************************************************
// 0->OFF, 1->ON
//---------------------------------------------------
seq_set_prop_4_0 = #COM_EVENT(52,00); // OFF 0b00000000 Capt/draft
seq_set_prop_4_1 = #COM_EVENT(52,05); // ON 0b00000101 Capt/draft
//***************************************************
// Property 5 JPEG compression ***
//***************************************************
// 0 => normal (High compression)
// 1 => fine (Low compression)
//
//---------------------------------------------------
seq_set_prop_5_0 = $sf.05 1; // Normal compression
seq_set_prop_5_1 = $sf.05 0; // Low compression
//*********************************************************
// Property 6 Zoom ***
//*********************************************************
// 10 => 1.0 x zoom, 11 => 1.1 x zoom, ... 22 => 2.2 x zoom
//---------------------------------------------------------
// TBD
seq_set_prop_6 =
#TO_DRAFT
#SET_REG(32,01) // ZM_SMTH_INTERVAL = 1
$s4 %0
$"CAMDRIVER0_Cam_mag_R4_%4"
// $ma 4 // Set zoom level y = -15x/11 + 77
// $*4 0F $/4 0B
// $s5 4D $-5 r4
$c4 0A $s5 3F $cl $cx // Use searching table replace formula.
$c4 0B $s5 3E $cl $cx
$c4 0C $s5 3C $cl $cx
$c4 0D $s5 3A $cl $cx
$c4 0E $s5 39 $cl $cx
$c4 0F $s5 37 $cl $cx
$c4 10 $s5 36 $cl $cx
$c4 11 $s5 34 $cl $cx
$c4 12 $s5 33 $cl $cx
$c4 13 $s5 32 $cl $cx
$c4 14 $s5 31 $cl $cx
$c4 15 $s5 30 $cl $cx
$c4 16 $s5 30 $cl $cx
$"CAMDRIVER0_Cam_mag_value_%5"
#SET_REG(32,3C) // ZM_SMTH_STEP = 60
#COM_EVENT(61,$w5)
;
seq_get_prop_6 =
#TO_DRAFT
#READ_REG(31,$r2 4 4) // Get zoom level x = -11y/15 + 56, TBD
// $*4 0B $/4 0F $s0 38
// $-0 r4
$c4 40 $s0 0A $cl $cx // Use seraching table replace formula.
$c4 3F $s0 0A $cl $cx
$c4 3E $s0 0B $cl $cx
$c4 3D $s0 0B $cl $cx
$c4 3C $s0 0C $cl $cx
$c4 3B $s0 0C $cl $cx
$c4 3A $s0 0D $cl $cx
$c4 39 $s0 0E $cl $cx
$c4 38 $s0 0E $cl $cx
$c4 37 $s0 0F $cl $cx
$c4 36 $s0 10 $cl $cx
$c4 35 $s0 10 $cl $cx
$c4 34 $s0 11 $cl $cx
$c4 33 $s0 12 $cl $cx
$c4 32 $s0 13 $cl $cx
$c4 31 $s0 14 $cl $cx
$c4 30 $s0 15 $cl $cx
$c4 2F $s0 15 $cl $cx
$s1 00 $s2 00 $s3 00
$"CAMDRIVER0_Read_mag_value_%0"
;
//******************************************
// Property 7 Night mode, ***
//******************************************
// TBD
seq_set_prop_7_0=
$"CAMDRIVER0_property_7_0"
;
seq_set_prop_7_1=
$"CAMDRIVER0_property_7_1"
;
//***************************************************
// Property 8 Effects ***
//***************************************************
//
// 0 => normal, 1 => negative, 2 => solarize
// 3 => sepia, 4 => black&white, //inverted sepia and negative B&W
//---------------------------------------------------
//TBD
seq_set_prop_8 =
#TO_DRAFT
#COM_EVENT(53,%0)
;
//*********************************************
// Property 9 Focus setting, ***
//*********************************************
// 0--Nomal
// 1--Full range
// 4--Macro
// TBD
seq_set_prop_9 =
#TO_DRAFT
#SET_REG(2B,%0)
;
//************************************************
// Property 10 Focus operation, ***
//************************************************
//------------------------------------------------
// 0 => Stop AF scan and hold position
// 1 => Start AF scan
// 2 => Stop AF and go to infinity
// Return values:
// 3 Portrait 2 => Landscape
// 3 => Night 4 => Party 5 => Beach/Snow
// 6 => Sport
// Gives sensor value:
// 0 => normal 1 => Portrait 2 => Beach/Snow
// 3 => Party 4 => Night 5 => Sport
// 6 => Landscape 7 => Documents (Added by SEMC)
//
// 0 => Normal
// 1 => Portrait
// 2 => Landscape
// 3 => Night scene
// 4 => Night portrait (Custom scene)
// 5 => Beach & snow
// 6 => Sports
// 7 => Document (Custom scene)
// 8 => Night mode
//--------------------------------------------------------------------
seq_set_prop_10_0 = // Normal
#TO_DRAFT
#COM_EVENT(51,00) // Auto scene
#UPDATE_WB
#UPDATE_PHOTO
#NOT_DOC_MODE // Must be called before UPDATE_ISO
#UPDATE_ISO
;
seq_set_prop_10_1 = // Portrait
#TO_DRAFT
#COM_EVENT(51,01) // Portrait scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_2 = // Landscape
#TO_DRAFT
#COM_EVENT(51,06) // Landscape scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_3 = // Night
#TO_DRAFT
#COM_EVENT(51,04) // Night scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_4 = // Night portrait. TBD
#TO_DRAFT
#COM_EVENT(51,03) // Party scene
#UPDATE_WB
#NOT_DOC_MODE;
seq_set_prop_10_5 = // Beach & snow
#TO_DRAFT
#COM_EVENT(51,02) // Beach & snow scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_6 = // Sports
#TO_DRAFT
#COM_EVENT(51,05) // Sports scene
#UPDATE_WB
#NOT_DOC_MODE
;
seq_set_prop_10_7 = // Document
$"CAMDRIVER0: Documents settings"
#TO_DRAFT
#COM_EVENT(04,00) // AE Auto
#COM_EVENT(51,07) // Custom scene
#UPDATE_WB
#DOC_MODE
;
//************************************************
// Property 17 ISO, ***
//************************************************
//
// 0 => Auto 1 => 100
// 2 => 200 3 => 400
//
//
//---------------------------------------------------
seq_set_prop_11_0 = // Auto
#TO_DRAFT
$sc 00
#COM_EVENT(05,00)
;
seq_set_prop_11_1 = // ISO 100
#TO_DRAFT
$sc 01
#COM_EVENT(05,01)
;
seq_set_prop_11_2 = // ISO 200
#TO_DRAFT
$sc 04
#COM_EVENT(05,04)
;
seq_set_prop_11_3 = // ISO 400
#TO_DRAFT
$sc 07
#COM_EVENT(05,07)
;
//************************************************
// Property 18 Low Framerate Mode ***
//************************************************
// 0 => off 1=> on
//------------------------------------------------
seq_set_prop_12_0 = // Restore framerate
$z5 // Put res id in reg 5
$c5 29 // If res id 0x29
#SET_REG(08,#VR_10_FR) // DRAFT_FRMRATE 10 fps
$cl $cx
$c5 2c // If res id 0x2c
#SET_REG(08,#VR_7_5_FR)// DRAFT_FRMRATE 7.5 fps
$cl $cx
$c5 25 // If res id 0x25
#SET_REG(08,#VR_12_FR) // DRAFT_FRMRATE 12 fps
$cl $cx
$c5 26 // If res id 0x26
#SET_REG(08,#VR_12_FR) // DRAFT_FRMRATE 12 fps
$cl $cx
$c5 2b // If res id 0x2b
#SET_REG(08,#VR_15_FR) // DRAFT_FRMRATE 15 fps
$cl // Else
#SET_REG(08,#VR_30_FR) // DRAFT_FRMRATE 30 fps
$cx
#CHANGE_MODE(34,01)
;
seq_set_prop_12_1 = // Decrease framerate
#SET_REG(08,#VR_7_5_FR) // DRAFT_MAX_FRMRATE 7,5 fps
#CHANGE_MODE(34,01)
;
//************************************************
// Property 19 Get Face Detection Info ***
//************************************************
//
//
//
//---------------------------------------------------
seq_get_prop_13= ;
//************************************************
// Property 20 Set Autofocus area ***
//************************************************
//
//
//
//---------------------------------------------------
seq_set_prop_14 = // Set AF window
// $"CAMDRIVER0: Property_20_start"
$s8 00
$s8 %0 $mg 8 // Put H-position in reg g
$s8 %1 $mh 8 // Put V-position in reg h
$s8 %2 $mi 8 // Put Witdth and height of AE in reg i
$s8 %3 // Put FD ON/OFF
$c8 00 // FD Off?
#SET_REG(42,00) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,00) // SCAN_AF_AREA_OFFSET_V
#COMMAND(02,00) // AE_MODE = 0x00
$cl // Else FD ON
$cf.0a 1 // Spot ON?
#SET_REG(42,00) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,00) // SCAN_AF_AREA_OFFSET_V
#COMMAND(02,00) // AE_MODE = 0x00
$cl
// #SET_REG(8D,01) // Open AE Window, For debug
// #COM_EVENT(34,01)
#SET_REG(42,$wg) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,$wh) // SCAN_AF_AREA_OFFSET_V
#SET_REG(44,$wi) // AE_AREA_HALF_SIZE_H
#SET_REG(45,$wi) // AE_AREA_HALF_SIZE_V
#COMMAND(02,01) // AE_MODE = 0x01 (Start arbitrary frame mode)
$cx
$cx
// $"CAMDRIVER0: Property_20_stop"
;
//************************************************
// Property 21 ***
//************************************************
//
//
//
//---------------------------------------------------
seq_set_prop_15 = ;
//**************************************************
// Property 22 Photo metering ***
//**************************************************
// 0 => Multi Mode 1 => Spot Mode
//--------------------------------------------------
seq_set_prop_16_0 =
#TO_DRAFT
#COM_EVENT(08,00)
$sf.0A 0 // Spot flag OFF
; // Multimode
seq_set_prop_16_1 =
#TO_DRAFT
#COM_EVENT(08,01)
$sf.0A 1 // Spot flag ON
; // Spot
//**************************************************
// Property 23 Xenon Flash Required
//**************************************************
// This property also changes scenes when flash is used.
// Return values: 0 = No flash, 1 = flash
seq_get_prop_17 =
$"CAMDRIVER0: Start ---- Check if flash is needed"
#AUTO_AE_SETTING
$s0 00 // Initialize flash return value to No flash.
$sf.06 0 // Initialize flash flag
#COM_EVENT(72,00) // Update the registers
#READ_REG(29,$r2 4 4) // Read AE-value (LSB)in camera reg 29
#READ_REG(2a,$r2 5 5) // Rdad AE-value (MSM)in camera reg 2a
$"CAMDRIVER0:AE_LEVEL_%5_%4_h"
$cg5 23
#COM_EVENT(13,00) //Turn off cc_offset.
#SET_REG(3A,00) //AE_LED_Offset set to 0.
#SET_REG(3B,00)
#COM_EVENT(5A,00) //Force LED Fill Light Mode
$s0 00 // Return 0, no need flash
$sd 00
$cl
$cs4 55
#SET_REG(3A,00) //AE_LED_Offset set to 04.
#SET_REG(3B,04)
// #COM_EVENT(13,01) //Turn on cc_offset
#SET_REG(3c,2D) //CC_R_Offset & CC_B_Offset
#SET_REG(3d,54)
#COM_EVENT(5A,01) //Force LED Fill Light Mode
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,1C) // Exposure time 1/10
$s0 01 // Return 1, need flash
$sd 01 // Exposure adjustment, Scense change
$cx
$cx
$s1 00 $s2 00 $s3 00
$"CAMDRIVER0: End ----- Check if flash needed:_returned:_%0"
;
//**************************************************
// Property 24 Image stabilization ***
//**************************************************
// 0 => off 1=> on
//--------------------------------------------------
seq_set_prop_18_0 =;
seq_set_prop_18_1 =;
//***************************************************
// property 25 Continuous Zoom ***
//***************************************************
// 0 =>Stop continuous zoom
// 1 =>Start continuous zoom in
// 2 =>Start continuous zoom out
//---------------------------------------------------
seq_set_prop_19_0 = // Stop
$"CAMDRIVER0: Property_19_0"
#TO_DRAFT
#COM_EVENT(61,44)
;
seq_set_prop_19_1 = // Zoom in
$"CAMDRIVER0: Property_19_1"
#TO_DRAFT
#SET_REG(32,01) // ZM_SMTH_STEP = 1
#COM_EVENT(61,2F) // Fix to 2.13x
;
seq_set_prop_19_2 = // Zoom out
$"CAMDRIVER0: Property_19_2"
#TO_DRAFT
#SET_REG(32,01) // ZM_SMTH_SPEED = 1
#COM_EVENT(61,3F)
;
//***************************************************
// property 26 Continuous zoom level ***
//***************************************************
seq_get_prop_1a =
// #TO_DRAFT
// #READ_REG(31,$r2 4 4) // Get zoom level in percent 1-100
// $s0 63 $*0 40 $/0 r4 $-0 54
// $/0 0F $s3 00 $s2 00 $s1 00
;
//**************************************************
// property 27 Snapshot operation ***
//**************************************************
// 0 = Still Capture mode/IS Still Capture mode
// 1 = Burst output. Read out picture 1
// .
// .
// 9 = Burst output. Read out picture 9
//--------------------------------------------------
seq_set_prop_1b =;
//**************************************************
// property 28 BestPic image size ***
//**************************************************
//
//--------------------------------------------------
seq_set_prop_1c =;
//**************************************************
// property 29 Burst(BestPic Operation) ***
//**************************************************
//**************************************************
// Test pattern, property 30 ****
//**************************************************
// 0 => Reset 1 => test pattern 2...4 => temp test
//--------------------------------------------------
seq_set_prop_1e_0 = $gr 1 // Reset
$d0014
$gr 0
$d0140; // Delay 320 ms
seq_set_prop_1e_1 = 03 55 AA $f $r2 01 $d0005 // Testpattern
08 04 80 0C 04 00 01 00 $f $r2 01 $d0005
08 04 82 0C 04 00 05 00 $f $r2 01 $d0005;
seq_set_prop_1e_2 = // Test face detection ON
$sg 74 // Put H-position in reg g 137
$sh 48 // Put V-position in reg h 73
$si 05 // Put Witdth and height of AE in reg i
$sj 01 // Put FD ON/OFF in reg j
$cj 00
$sf.08 0 // FD OFF
$cl
$sf.08 1 // FD ON
$cx
$"CAMDRIVER0: H=_%g_V=_%h_AE=_%i_Flag=_%j"
#SET_REG(42,$wg) // SCAN_AF_AREA_OFFSET_H
#SET_REG(43,$wh) // SCAN_AF_AREA_OFFSET_V
#SET_REG(44,$wi) // AE_AREA_HALF_SIZE_H
#SET_REG(45,$wi) // AE_AREA_HALF_SIZE_V
#COM_EVENT(02,01) // AE_MODE = 0x1 (Start arbitrary frame mode.)
// #COM_EVENT(02,00) // AE_MODE = 0x0 (End arbitrary frame mode.)
;
seq_set_prop_1e_3 = // Face detection OFF
$sf.08 0 // FD OFF
#COM_EVENT(02,00) // AE_MODE = auto
;
//***************************************************
// Property 31, only for tests
//***************************************************
seq_set_prop_1f_0 =
$"CAMDRIVER0: Start ---- Check if flash is needed"
$s0 00 // Initialize flash return value to No flash.
$sf.06 0 // Initialize flash flag
#COM_EVENT(72,00) // Update the registers
#READ_REG(29,$r2 4 4) // Read AE-value (LSB)in camera reg 29
#READ_REG(2a,$r2 5 5) // Rdad AE-value (MSM)in camera reg 2a
$"CAMDRIVER0:AE_LEVEL_%5_%4_h"
$cg5 23
$s0 00 // Return 0, no need flash
$cl
$cs4 55
$s0 01 // Return 1, need flash
// Exposure adjustment, Scense change
$cx
$cx
$s1 00 $s2 00 $s3 00
$"CAMDRIVER0: End ----- Check if flash needed:_returned:_%0"
;
seq_set_prop_1f_1 =
$go 10 1 // AppGPIO_08 = GPIO_10
$d1000
$go 10 0
;
//***************************************
// Spot, property 32 ***
//***************************************
seq_set_prop_20=; //TBD
//================================================
//=============== SIZE CONFIGS ===================
//================================================
LOCK_30_FPS= #SET_REG(08,#VR_30_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_15_FPS= #SET_REG(08,#VR_15_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_12_FPS= #SET_REG(08,#VR_12_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_10_FPS= #SET_REG(08,#VR_10_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
LOCK_7_5_FPS= #SET_REG(08,#VR_7_5_FR); // Draft mode frame rate max x fps
// Transition to draft mode at half rate => x/2 fps
RELEASE_LOCK_FPS=
$"CAMDRIVER0_Lock_release"
$u07; // Set draft mode frame rate and do
// transition to draft mode according to property 7
VF_TRANSITION_DELAY=$d00c8;
//=========================================================
// Normal quality settings:
// MIN MAX TARGET COMPRESSION for initial, average and last quality
//
// 640 x 480: 10 150 55 75
// 1280 x 960: 60 400 200 75
// 1632 x1224: 150 600 400 75
// 2048 x 1536 400 800 600 75
//
//=========================================================
//---------------------------------------------------
//=========================================================
// Fine quality settings:
// MIN MAX TARGET COMPRESSION for initial, average and last quality
//
// 640 x 480: 10 150 80 90
// 1280 x 960: 150 400 300 90
// 1632 x1224: 400 600 500 90
// 2048 x 1536 600 900 800 90
//
//=========================================================
seq_ss_config_1 =
$sf.03 1 // JPEG flag to 1
#SET_REG(1A,09) // 640 x 480 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: VGA NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
96 00 // JPEG_MAX_CODE_SIZE = 150d
0A 00 // JPEG_MIN_CODE_SIZE = 10d
37 00 // JPEG_TARGET_CODE_SIZE = 55d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: VGA LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
96 00 // JPEG_MAX_CODE_SIZE = 150d
32 00 // JPEG_MIN_CODE_SIZE = 50d
50 00 // JPEG_TARGET_CODE_SIZE = 80d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_2 =
$sf.03 1 // JPEG flag to 1
#SET_REG(1A,06) // 1280 x 960 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: 1M NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
90 01 // JPEG_MAX_CODE_SIZE = 400d
3C 00 // JPEG_MIN_CODE_SIZE = 60d
C8 00 // JPEG_TARGET_CODE_SIZE = 200d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: 1M LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
90 01 // JPEG_MAX_CODE_SIZE = 400d
64 00 // JPEG_MIN_CODE_SIZE = 100d
2C 01 // JPEG_TARGET_CODE_SIZE = 300d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_4 =
$sf.03 1 // JPEG flag to 1
#SET_REG(1A,04) // 1632 x 1224 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: 2M NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
58 02 // JPEG_MAX_CODE_SIZE = 600d
96 00 // JPEG_MIN_CODE_SIZE = 150d
90 01 // JPEG_TARGET_CODE_SIZE = 400d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: 2M LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
58 02 // JPEG_MAX_CODE_SIZE = 600d
90 01 // JPEG_MIN_CODE_SIZE = 400d
F4 01 // JPEG_TARGET_CODE_SIZE = 500d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_5 =
$sf.03 1 // JPEG output
#SET_REG(1A,00) // 2048 x 1536 JPEG and JPEG IMST
$cf.05 1 // If normal compression
$"CAMDRIVER0: 3M NORMAL COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
20 03 // JPEG_MAX_CODE_SIZE = 800d
90 01 // JPEG_MIN_CODE_SIZE = 400d
58 02 // JPEG_TARGET_CODE_SIZE = 600d
46 // JPEG_INIT_QUALITY = 70d
3C // JPEG_FIRST_QUALITY = 60d
32 // JPEG_LAST_QUALITY = 50d
$f $ra 1111111111 $d0002
$cl // Else low compression
$"CAMDRIVER0: 3M LOW COMPRESSION"
0D 02 00 0E // Start sending 13 bytes at adress 0E
84 03 // JPEG_MAX_CODE_SIZE = 900d
58 02 // JPEG_MIN_CODE_SIZE = 600d
52 03 // JPEG_TARGET_CODE_SIZE = 850d
50 // JPEG_INIT_QUALITY = 80d
46 // JPEG_FIRST_QUALITY = 70d
3C // JPEG_LAST_QUALITY = 60d
$f $ra 1111111111 $d0002
$cx
;
seq_ss_config_10 =
$sf.03 0 // YCbCr output
#SET_REG(09,08) // 320 x 240 YCbCr and YCbCr IMST
;
seq_ss_config_11 =
$sf.03 0 // YCbCr output
#SET_REG(09,04) // 640 x 480 YCbCr and YCbCr IMST
;
seq_vf_config_20=
$"CAMDRIVER0 vf20"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#LOCK_30_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
seq_vf_config_25=
$"CAMDRIVER0 vf25"
#VF_TRANSITION_DELAY
#SET_REG(07,0E)
#LOCK_12_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
$cf.02 0 // If not in any draft mode
$sf.02 1 // Set draft flag to 1
$cl
#CHANGE_MODE(34,01) // normal draft
$cx
;
seq_vf_config_26=
$"CAMDRIVER0 vf26"
#VF_TRANSITION_DELAY
#SET_REG(07,0C)
#LOCK_12_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
$cf.02 0 // If not in any draft mode
$sf.02 1 // Set draft flag to 1
$cl
#CHANGE_MODE(34,01) // normal draft
$cx
;
seq_vf_config_29=
$"CAMDRIVER0 vf29"
#VF_TRANSITION_DELAY
#SET_REG(07,0C)
#LOCK_10_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
$cf.02 0 // If not in any draft mode
$sf.02 1 // Set draft flag to 1
$cl
#CHANGE_MODE(34,01) // normal draft
$cx
;
seq_vf_config_2a=
$"CAMDRIVER0 vf2a"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#COMMAND(04,00)
#COMMAND(05,00)
#SET_REG(08,3C) // 30fps => Normal mode
#COM_EVENT(03,3C) // 30 fps, AE_SLOW_SHUTTER
// #COMMAND(04,17)
;
seq_vf_config_2b=
$"CAMDRIVER0 vf2b"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#LOCK_15_FPS // 15fps,
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
seq_vf_config_2c=
$"CAMDRIVER0 vf2c"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#SET_REG(08,0F) // 7.5fps, Dark mode
// #COM_EVENT(03,0F) // 7.5fps, AE_SLOW_SHUTTER
#COM_EVENT(03,0F) // AE, 7.5fps
// #COMMAND(04,00) // Fix for about 8fps
// #COMMAND(05,00)
;
seq_vf_config_2f=
$"CAMDRIVER0 vf2f"
#VF_TRANSITION_DELAY
#SET_REG(07,05)
#LOCK_30_FPS
#COM_EVENT(03,00) // Auto operation for AE
#COMMAND(04,00)
#COMMAND(05,00)
;
seq_ss_config_30=$"CAMDRIVER0_ss_conf" 05 02 00 07 06 $f 06 02 00 01 01 34 $f $d0200
03 55 AA $f
08 04 12 80 00 05 AA 55 $se 30 $d0100;
//===============================================
//
--
Posted: 2009-05-19 09:14:35
Edit :
Quote
New Topic
Reply