Jump to content

New Leica codename "Warp" - is it the SL3-S? (+ list of codenames)


Recommended Posts

Advertisement (gone after registration)

Hi there. I’m currently working on reverse engineering much of the proprietary Leica PTP extensions, to provide camera setup functionality without Leica Fotos for M11 cameras. That necessitates taking a closer look at what Fotos is doing. That's all going great, but time for a little detour.

More or less accidentally, I came across several lists of camera code names that are part of Leica Fotos 4.8.1 (Oct 2024), and libleica, the native SDK that handles PTP IP and many other lower level tasks.

Code names from Leica Fotos have been used before to identify the release of the Q3 (Wilson) and M11M (Rene).

First, let’s take a look at the current list. If you ever wondered what name you should call your camera, now you know 😉. Over time, the code names tend to be replaced with a shortened version of the product name, but here I’ve restored all that I could find across a range of Fotos versions: LINK TO TABLE.

But hold on! There’s a new one: Warp. Indeed, this could be an internal test product or catch-all value or whatnot. But there are signals pointing to this being the SL3-S, indeed we even get more insight into some of its capabilities (scroll to the end if you're impatient). Warp has been added with Fotos 4.5.0 (2 Jul 2024).

The first clue is that the app seems to be configured with a solo feature flag to hide or show Warp in the list of cameras. We can see the flag mechanism in action in the app boot up code:

default:
    kotlin.jvm.internal.k.f(deliverToView, "$this$deliverToView");
    boolean a10 = this.f15825e.f15832n.f41104a.a("sso_skip_enabled");
    C0917i c0917i3 = (C0917i) deliverToView;
    if (c0917i3.getActivity() == null) {
        dh.d.f23787a.m("Activity is null - do not show app introduction", new Object[0]);
    } else if (c0917i3.requireActivity().isFinishing()) {
        dh.d.f23787a.m("Activity is finishing - do not show app introduction", new Object[0]);

where f41104a is the flag provider and "sso_skip_enabled" is the flag that is checked. This flag isn’t relevant to this discussion (it skips the login). But there is another:

public final List a() {
    Sd.b bVar = EnumC1605D.f24471Z;
    Md.b e9 = Ld.r.e();
    e9.addAll(this.f24627b);
    if (this.f24626a.f41104a.a("warp_enabled")) {
        e9.remove(EnumC1605D.f24475u);
    }
    return Ld.q.X(bVar, Ld.q.w0(Ld.r.d(e9)));
}

This snippet assembles the camera list, and if the flag isn’t set, it’ll boot Warp from the list. This implies that some people, either just Leica or likely testers, have access to the device and can use it with Fotos.

Here’s where the list item (f24475u) is coming from - notice the proximity to the SL3, which is mirrored with the SL2 & SL2-S setup:

EnumC1605D enumC1605D4 = new EnumC1605D("LeicaWarp", 3, "WARP", bVar3, R.string.camera_model_name_warp, R.string ...)
f24475u = enumC1605D4;
EnumC1605D enumC1605D5 = new EnumC1605D("LeicaSL3", 4, "SL3", Oc.b.f9880C, R.string.camera_model_name_picard, R....)
f24476v = enumC1605D5;
Oc.b bVar4 = Oc.b.f9879B;
EnumC1603B enumC1603B = EnumC1603B.f24441f;
C1607a c1607a2 = new C1607a(z10, i10);
d0 d0Var = new d0(true, Ld.J.n(b0Var), Ld.J.n(c0Var));
EnumC1631z enumC1631z3 = EnumC1631z.f24660t;
EnumC1605D enumC1605D6 = new EnumC1605D("LeicaSL2S", 5, "SL2-S", bVar4, R.string.camera_model_name_sl2s, R.strin...)
f24477w = enumC1605D6;
EnumC1605D enumC1605D7 = new EnumC1605D("LeicaSL2", 6, "SL2", Oc.b.f9878A, R.string.camera_model_name_sl2, R.str...)
f24478x = enumC1605D7;

At this point, I’m pretty convinced this is an SL camera. But to confirm, we can dig deeper and take a look at how picard (SL3) is used in Fotos. The remote shooting mode for picard is unique, in that it has discrete continuous drive mode configuration flags. Only the Q3 shares this feature. Helpfully, the flags tell you exactly what you get:

public static final int picard_remote_settings_drive_mode_continuous_02fps = 0x7f140448;
public static final int picard_remote_settings_drive_mode_continuous_04fps = 0x7f140449;
public static final int picard_remote_settings_drive_mode_continuous_05fps = 0x7f14044a;
public static final int picard_remote_settings_drive_mode_continuous_06fps = 0x7f14044b;
public static final int picard_remote_settings_drive_mode_continuous_07fps = 0x7f14044c;
public static final int picard_remote_settings_drive_mode_continuous_09fps = 0x7f14044d;
public static final int picard_remote_settings_drive_mode_continuous_15fps = 0x7f14044e;

Other cameras have more generic flags like “slow”, “fast”, etc.

And here’s what we get with Warp:

public static final int warp_remote_settings_drive_mode_continuous_05fps_14bit_af = 0x7f14071e;
public static final int warp_remote_settings_drive_mode_continuous_07fps_12bit_af = 0x7f14071f;
public static final int warp_remote_settings_drive_mode_continuous_15fps_12bit_af = 0x7f140720;
public static final int warp_remote_settings_drive_mode_continuous_30fps_12bit_af = 0x7f140721;

Up to 30fps with AF? Neat.

Edited by summarity
add version details
  • Like 4
  • Thanks 7
Link to post
Share on other sites

2 hours ago, summarity said:

Hi there. I’m currently working on reverse engineering much of the proprietary Leica PTP extensions, to provide camera setup functionality without Leica Fotos for M11 cameras. That necessitates taking a closer look at what Fotos is doing. That's all going great, but time for a little detour.

More or less accidentally, I came across several lists of camera code names that are part of Leica Fotos 4.8.1 (Oct 2024), and libleica, the native SDK that handles PTP IP and many other lower level tasks.

Code names from Leica Fotos have been used before to identify the release of the Q3 (Wilson) and M11M (Rene).

First, let’s take a look at the current list. If you ever wondered what name you should call your camera, now you know 😉. Over time, the code names tend to be replaced with a shortened version of the product name, but here I’ve restored all that I could find across a range of Fotos versions: LINK TO TABLE.

But hold on! There’s a new one: Warp. Indeed, this could be an internal test product or catch-all value or whatnot. But there are signals pointing to this being the SL3-S, indeed we even get more insight into some of its capabilities (scroll to the end if you're impatient). Warp has been added with Fotos 4.5.0 (2 Jul 2024).

The first clue is that the app seems to be configured with a solo feature flag to hide or show Warp in the list of cameras. We can see the flag mechanism in action in the app boot up code:

default:
    kotlin.jvm.internal.k.f(deliverToView, "$this$deliverToView");
    boolean a10 = this.f15825e.f15832n.f41104a.a("sso_skip_enabled");
    C0917i c0917i3 = (C0917i) deliverToView;
    if (c0917i3.getActivity() == null) {
        dh.d.f23787a.m("Activity is null - do not show app introduction", new Object[0]);
    } else if (c0917i3.requireActivity().isFinishing()) {
        dh.d.f23787a.m("Activity is finishing - do not show app introduction", new Object[0]);

where f41104a is the flag provider and "sso_skip_enabled" is the flag that is checked. This flag isn’t relevant to this discussion (it skips the login). But there is another:

public final List a() {
    Sd.b bVar = EnumC1605D.f24471Z;
    Md.b e9 = Ld.r.e();
    e9.addAll(this.f24627b);
    if (this.f24626a.f41104a.a("warp_enabled")) {
        e9.remove(EnumC1605D.f24475u);
    }
    return Ld.q.X(bVar, Ld.q.w0(Ld.r.d(e9)));
}

This snippet assembles the camera list, and if the flag isn’t set, it’ll boot Warp from the list. This implies that some people, either just Leica or likely testers, have access to the device and can use it with Fotos.

Here’s where the list item (f24475u) is coming from - notice the proximity to the SL3, which is mirrored with the SL2 & SL2-S setup:

EnumC1605D enumC1605D4 = new EnumC1605D("LeicaWarp", 3, "WARP", bVar3, R.string.camera_model_name_warp, R.string ...)
f24475u = enumC1605D4;
EnumC1605D enumC1605D5 = new EnumC1605D("LeicaSL3", 4, "SL3", Oc.b.f9880C, R.string.camera_model_name_picard, R....)
f24476v = enumC1605D5;
Oc.b bVar4 = Oc.b.f9879B;
EnumC1603B enumC1603B = EnumC1603B.f24441f;
C1607a c1607a2 = new C1607a(z10, i10);
d0 d0Var = new d0(true, Ld.J.n(b0Var), Ld.J.n(c0Var));
EnumC1631z enumC1631z3 = EnumC1631z.f24660t;
EnumC1605D enumC1605D6 = new EnumC1605D("LeicaSL2S", 5, "SL2-S", bVar4, R.string.camera_model_name_sl2s, R.strin...)
f24477w = enumC1605D6;
EnumC1605D enumC1605D7 = new EnumC1605D("LeicaSL2", 6, "SL2", Oc.b.f9878A, R.string.camera_model_name_sl2, R.str...)
f24478x = enumC1605D7;

At this point, I’m pretty convinced this is an SL camera. But to confirm, we can dig deeper and take a look at how picard (SL3) is used in Fotos. The remote shooting mode for picard is unique, in that it has discrete continuous drive mode configuration flags. Only the Q3 shares this feature. Helpfully, the flags tell you exactly what you get:

public static final int picard_remote_settings_drive_mode_continuous_02fps = 0x7f140448;
public static final int picard_remote_settings_drive_mode_continuous_04fps = 0x7f140449;
public static final int picard_remote_settings_drive_mode_continuous_05fps = 0x7f14044a;
public static final int picard_remote_settings_drive_mode_continuous_06fps = 0x7f14044b;
public static final int picard_remote_settings_drive_mode_continuous_07fps = 0x7f14044c;
public static final int picard_remote_settings_drive_mode_continuous_09fps = 0x7f14044d;
public static final int picard_remote_settings_drive_mode_continuous_15fps = 0x7f14044e;

Other cameras have more generic flags like “slow”, “fast”, etc.

And here’s what we get with Warp:

public static final int warp_remote_settings_drive_mode_continuous_05fps_14bit_af = 0x7f14071e;
public static final int warp_remote_settings_drive_mode_continuous_07fps_12bit_af = 0x7f14071f;
public static final int warp_remote_settings_drive_mode_continuous_15fps_12bit_af = 0x7f140720;
public static final int warp_remote_settings_drive_mode_continuous_30fps_12bit_af = 0x7f140721;

Up to 30fps with AF? Neat.

Great find, nice job @summarity!

Link to post
Share on other sites

9 hours ago, summarity said:

Hi there. I’m currently working on reverse engineering much of the proprietary Leica PTP extensions, to provide camera setup functionality without Leica Fotos for M11 cameras.

 

This for me is what's interesting, "without Fotos", that's very desirable...........the rest for me is pure mumbo-jumbo, I haven't the ability to comprehend any of that coding stuff at all.

  • Like 1
Link to post
Share on other sites

8 hours ago, nameBrandon said:

Well, I guess we know what category / setting 0x7f14 is.. wonder why the value is unique per camera, seems repetitive.

Good thought, but the number has no meaning in this context, this is a running index generated by the decompiler based on a long list of all possible Fotos settings. It's unique per camera since all cameras have different burst shooting rates, bit depths, and communicate slightly differently with Fotos.

5 minutes ago, Smudgerer said:

This for me is what's interesting, "without Fotos", that's very desirable...........the rest for me is pure mumbo-jumbo, I haven't the ability to comprehend any of that coding stuff at all.

No need to, I just wanted to show my workings. The TL;DR is that there's an unnamed new product code-named Warp introduced in June this year, it seems closely related to Picard (SL3), and has a faster drive mode. That's all we know for now. The M11 project is a tangent, I will post separately on this once I'm happy with the results. :)

8 minutes ago, JohnathanLovm said:

So no data about the S4 huh…

Not that I can see, no.

Link to post
Share on other sites

5 hours ago, hdmesa said:

SL3-S stacked sensor. 30 fps would mean the A1 sensor, right? If so, looks like this would move into the halo position above the SL3 and at a higher price.

AFAIK, only A1 and Z9/Z8 can do 30 fps. I’m not sure if the SL3-S gonna price at $5500 above considering how fast the SL2 gen depreciation and without the proper professional support like the trinity brands. 

Link to post
Share on other sites

WARP? Engage ...

 

Welcome, dear visitor! As registered member you'd see an image here…

Simply register for free here – We are always happy to welcome new members!

  • Haha 1
Link to post
Share on other sites

public static final int warp_remote_settings_drive_mode_continuous_05fps_14bit_af = 0x7f14071e;
public static final int warp_remote_settings_drive_mode_continuous_07fps_12bit_af = 0x7f14071f;
public static final int warp_remote_settings_drive_mode_continuous_15fps_12bit_af = 0x7f140720;
public static final int warp_remote_settings_drive_mode_continuous_30fps_12bit_af = 0x7f140721;

Panasonic S52

 

 

Mechanical shutter, electronic front curtain

Electronic shutter

Live View when taking burst pictures

[SH]

30 frames/second

None

[H]

(High speed)

9 frames/second ([AFS]/[MF])

7 frames/second ([AFC])

9 frames/second ([AFS]/[MF])

8 frames/second ([AFC])

None ([AFS]/[MF])

Available ([AFC])

[M]

(Medium speed)

5 frames/second

Available

[L]

(Low speed)

2 frames/second

Available

bullet02The burst rate may be lower depending on the settings for recording such as [Picture Size] and focus mode.

Link to post
Share on other sites

If SL3-S is based on the S5ii sensor - which sounds reasonable based on past Panasonic and Leica camera models - the readout time is 21 ms (or thereabout), which is too slow for fast-ish moving objects when using the electronic shutter. This is at least my conclusion based on birds in flight and running dogs. Would prefer an L-mount body with a readout time of 10 ms or less. Yes, it will come, but apperently not in the next generation of bodies.

More/Most importantly - which wrap-bag to Warp...?

Edited by helged
  • Like 1
Link to post
Share on other sites

5 hours ago, JohnathanLovm said:

AFAIK, only A1 and Z9/Z8 can do 30 fps. I’m not sure if the SL3-S gonna price at $5500 above considering how fast the SL2 gen depreciation and without the proper professional support like the trinity brands. 

 

4 hours ago, jaapv said:

If Leica goes for 24 MP  for the SL3-S they will most likely use the sensor they co-developed with Panasonic which is in the S5ii - max burst rate is 30 fps.

 

3 hours ago, Planetwide said:
public static final int warp_remote_settings_drive_mode_continuous_05fps_14bit_af = 0x7f14071e;
public static final int warp_remote_settings_drive_mode_continuous_07fps_12bit_af = 0x7f14071f;
public static final int warp_remote_settings_drive_mode_continuous_15fps_12bit_af = 0x7f140720;
public static final int warp_remote_settings_drive_mode_continuous_30fps_12bit_af = 0x7f140721;

Panasonic S52

 

 

 

Mechanical shutter, electronic front curtain

Electronic shutter

Live View when taking burst pictures

[SH]

30 frames/second

None

[H]

(High speed)

9 frames/second ([AFS]/[MF])

7 frames/second ([AFC])

9 frames/second ([AFS]/[MF])

8 frames/second ([AFC])

None ([AFS]/[MF])

Available ([AFC])

[M]

(Medium speed)

5 frames/second

Available

[L]

(Low speed)

2 frames/second

Available

The burst rate may be lower depending on the settings for recording such as [Picture Size] and focus mode.

 

2 hours ago, helged said:

If SL3-S is based on the S5ii sensor - which sounds reasonable based on past Panasonic and Leica camera models - the readout time is 21 ms (or thereabout), which is too slow for fast-ish moving objects when using the electronic shutter. This is at least my conclusion based on birds in flight and running dogs. Would prefer an L-mount body with a readout time of 10 ms or less. Yes, it will come, but apperently not in the next generation of bodies.

More/Most importantly - which wrap-bag to Warp...?

If Leica uses the S5II sensor, then the only thing "Warp" will refer to is the rolling shutter.

  • Haha 5
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...