IXUS 950 (SD 850) 1.00C port

  • 33 Replies
  • 10019 Views
*

Offline quietschi

  • ***
  • 116
  • Ixus70 102a
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #10 on: 04 / February / 2008, 15:12:12 »
    Advertisements
    Such is, for example, the range between 2 and 70 at wide angle ("2" is then the smallest setting, and surely it doesn't give you 2mm distance...)

    Hi
    I tested it with my ixus70_sd1000 and it works. But it don't give me values smaller than 61(means i can choose 2 but the focus stopped at 61). after all great work.

    That's a real advantage. Unfortunately, not all IXUS cams have a living MFon(). They need to go the other way.
    ...
    But a magnified live-view would be really helpful... see http://chdk.setepontos.com/index.php/topic,419.msg3008.html#msg3008

    On the ixus850_sd800 there's no MFon(), but you are right magnified live-view would be great.

    cheers quietschi



    *

    Offline whoever

    • ****
    • 280
    • IXUS950
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #11 on: 05 / February / 2008, 03:44:28 »
    Such is, for example, the range between 2 and 70 at wide angle ("2" is then the smallest setting, and surely it doesn't give you 2mm distance...)
    I tested it with my ixus70_sd1000 and it works. But it don't give me values smaller than 61(means i can choose 2 but the focus stopped at 61). after all great work.
    You are right -- in ixus950_sd850 the smallest SD is 69 at wide and ~500 at any other angle, so the statement that you quoted is indeed misleading/wrong. I picked 2 as minimal setting, since it always brings the lens to the shortest SD at any zoom (setting to 0 or 1 produced no effect at all).

    *

    Offline quietschi

    • ***
    • 116
    • Ixus70 102a
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #12 on: 05 / February / 2008, 04:50:19 »
    Hi whoever
    How about Bracketing in continious mode (SD Bracketing) works for you?

    cheers quietschi

    *

    Offline whoever

    • ****
    • 280
    • IXUS950
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #13 on: 05 / February / 2008, 05:18:41 »
    Hi whoever
    How about Bracketing in continious mode (SD Bracketing) works for you?

    cheers quietschi

    Yes it does. In MF mode, of course, i.e. override SD factor different from "Off".

    By the way, I haven't quite figured how to determine the values for the focal length table fl_tbl[] = {5800,...}. Have you?
    P.S. Aah, have already figured -- from EXIF.
    « Last Edit: 05 / February / 2008, 05:44:21 by whoever »


  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #14 on: 05 / February / 2008, 05:51:39 »
    By the way, I haven't quite figured how to determine the values for the focal length table fl_tbl[] = {5800,...}. Have you?
    P.S. Aah, have already figured -- from EXIF.

    ixus800_sd700 has the the same 4x lens, look there.

    nirschi
    « Last Edit: 05 / February / 2008, 12:56:53 by nirschi »

    *

    Offline quietschi

    • ***
    • 116
    • Ixus70 102a
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #15 on: 05 / February / 2008, 13:43:03 »
    Yes it does. In MF mode, of course, i.e. override SD factor different from "Off".
    By the way, I haven't quite figured how to determine the values for the focal length table fl_tbl[] = {5800,...}. Have you?
    P.S. Aah, have already figured -- from EXIF.

    Hi whoever
    Bracketing works, i was on the wrong way.
    If you don't find out the right values for focal length table, i get my from Adobe Bridge EXIF, because they are the whole number like 10093 not only 10.09.

    BTW, when are you going to add your port to the trunk? Is everything working so far?

    cheers quietschi

    *

    Offline whoever

    • ****
    • 280
    • IXUS950
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #16 on: 06 / February / 2008, 04:34:25 »
    i get my from Adobe Bridge EXIF, because they are the whole number like 10093 not only 10.09.
    I see that you are quite a perfectionist! ;) Well, I have no problem sacrificing a couple of digits, especially if I don't see any physical means to verify them: ;)
    Code: [Select]
    //ixus800_sd700
    //static const int fl_tbl[] = {5800, 6600, 7500, 8600, 10000, 11800, 14300, 18600, 23200};
    //ixus950_sd850 (from EXIF), basically the same as in ixus800_sd700 (4x zoom lens)
      static const int fl_tbl[] = {5800, 6630, 7470, 8640, 9970,  11820, 14330, 18630, 23200};
    As for the trunk, it is not my intention to ever add anything myself. In any event, I think one shouldn't add anything that had not been tested by at least a couple of people. It doesn't seem anybody is testing at the moment.

    EDIT: And some things still have to be re-written. For instance DOF calculator, in view of the fact that the aperture is fixed (linked to zoom) -- by the way, this applies in your case too. And I am yet to learn uBasic, where there is plenty to test/verify.
    « Last Edit: 06 / February / 2008, 04:41:11 by whoever »

  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #17 on: 06 / February / 2008, 21:44:48 »
    And some things still have to be re-written. For instance DOF calculator, in view of the fact that the aperture is fixed (linked to zoom) -- by the way, this applies in your case too.

    Nobody will ever merge your port with the trunk if you are trying to bend the DOF calculator.

    There is nothing wrong with it. It is based on optical principles discovered 200 years ago and is in effect for every lens, even yours!
    All IXUS(SD) cameras miss a motor driven variable iris, and all pinhole cameras 200 years ago...

    EDIT:

    //ixus950_sd850 (from EXIF), basically the same as in ixus800_sd700 (4x zoom lens)
                    static const int fl_tbl[] = {5800, 6630, 7470, 8640, 9970,  11820, 14330, 18630, 23200};

    ixus800_sd700:
     'XnView' readout focal length [mm]: 5.8  6.63  7.466  8.636  9.975  11.818  14.333  18.632999  23.200001

    There are even more perfect perfectionists than quietschi!   :D
    « Last Edit: 06 / February / 2008, 22:56:57 by nirschi »


    *

    Offline whoever

    • ****
    • 280
    • IXUS950
  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #18 on: 07 / February / 2008, 03:36:59 »
    I don't quite see your point, nirschi. DOF was just an example. Indeed, there is nothing wrong with the calculator except that it produces meaningless results in 1/2 cases. And indeed, for all IXUSes.

  • Publish
    Re: IXUS 950 (SD 850) 1.00C port
    « Reply #19 on: 07 / February / 2008, 11:07:08 »
    Hi whoever. It's not a technical but a communication problem: You tend to use fulsome and therefore missleading terms.
    AllBests subject distance override - fully manual focus mode? Sorry, not quite.
    3 lines of code to fix the IXUS(SD) DOF problem - a rewrite? Sorry, far from.

    You are doing great work with you port - no doubt. But try not to emphasize it that much. OK?

    EDIT: Please try this "major rewrite" ;) with your port and report.

    Code: [Select]
    void gui_osd_calc_dof() {

        int av, av_min, c_of_c, fl, v, v1, m;
        //long lfpfl=lens_get_focus_pos_fl();

        av=shooting_get_real_aperture();
    [color=red]#if defined(CAMERA_ixus700_sd500) || defined(CAMERA_ixus800_sd700) || defined(CAMERA_a560) || defined(CAMERA_ixus850_sd800) || defined(CAMERA_ixus70_sd1000) || defined(CAMERA_ixus950_sd850)
        if (av>=shooting_get_aperture_from_av96(shooting_get_aperture_sizes_table_prop_id(shooting_get_aperture_sizes_table_size()/2))) av/=2; // nd filter in
    #endif[/color]
        fl=get_focal_length(lens_get_zoom_point());
        dof.far_limit=-1.0;
        dof.near_limit=-1.0;
        dof.depth_of_field=-1.0;
        dof.hyperfocal_distance=-1.0;
        dof.subject_distance=-1.0;

        if ((av!=0) && (fl!=0)) {
          if (conf.dof_subj_dist_as_near_limit) {
          v1=(fl*fl);
          dof.near_limit=shooting_get_canon_subject_distance();
          av_min=shooting_get_min_real_aperture();
            c_of_c=circle_of_confusion*10;
            if ((av_min!=0) && (c_of_c!=0)) dof.hyperfocal_distance=v1/(c_of_c*av_min);
        if ((dof.near_limit>0) && (dof.near_limit<65500)) {
        v=(dof.hyperfocal_distance-dof.near_limit);
        m=dof.hyperfocal_distance*dof.near_limit;
        if ((v>0) && (m>0)) dof.subject_distance=m/v;
            }
            dof.hyperfocal_distance=v1/(c_of_c*av);
            if ((dof.subject_distance>0) && (dof.subject_distance<65500)) {
              v = (dof.hyperfocal_distance-dof.subject_distance);
              m=dof.hyperfocal_distance*dof.subject_distance;
              if ((v>0) && (m>0))  dof.far_limit=m/v;
              dof.depth_of_field=dof.far_limit-dof.near_limit;
            }
         }
         else {
           dof.subject_distance=shooting_get_canon_subject_distance();
           dof.hyperfocal_distance=(fl*fl)/(10*circle_of_confusion*av);
           if (dof.subject_distance>0 && dof.subject_distance<65500) {
              m = dof.hyperfocal_distance*dof.subject_distance;
              v = (dof.hyperfocal_distance+dof.subject_distance);
              if ((v>0) && (m>0))  dof.near_limit=m/v;
              v = (dof.hyperfocal_distance-dof.subject_distance);
              if ((v>0) && (m>0))  dof.far_limit=m/v;
              dof.depth_of_field=dof.far_limit-dof.near_limit;
            }
         } 
        }
    }
    « Last Edit: 08 / February / 2008, 01:39:12 by nirschi »

     

    Related Topics