← Back to list

The Camera I Love Told Me to Buy a New One

I’m 20. I Love Hasselblad. I Spent My Nights Trying to Make Its Autofocus Better — Then Gave the Work Away for Free.

Chan Kam Chi · 2026-06-11 13:17 · 106 claps · 5.6 min read
#hasselblad #photography #cameras #medium-format #autofocus
Open on Medium ↗
Wiki topics: ⏱️ · Productivity 💑 · Relationships 📷 · Photography

The Camera I Love Told Me to Buy a New One

Everyday Curves — X2D 100C

Everyday Curves — X2D 100C

I’m 20. I Love Hasselblad. I Spent My Nights Trying to Make Its Autofocus Better — Then Gave the Work Away for Free.

My first Hasselblad was a 500C. It was built in the 1950s, and it still works in my hands today.

That is what made me fall in love — not a spec sheet, not a sensor size, but a promise. A Hasselblad is a tool meant to outlast the number on its box. Handed across generations of people who see. I bought into that promise at twenty, second-hand, because it was what I could afford — but I bought Hasselblad, and nothing else.

This is a story about what happened when I asked that promise to hold.

The question

I own an X2D 100C. It is, genuinely, extraordinary — the rendering at base ISO, the dynamic range in mixed light, the mechanical feel of the focus ring, the quiet of the leaf shutter. None of that is in question for me, and none of it ever will be.

But there is one part of the experience that does not match the rest: the autofocus. It hunts. On low-contrast subjects it searches, overshoots, and sometimes gives up. The same scene, half-pressed twice, sometimes snaps and sometimes wanders.

So I asked a simple question: how much of that is the hardware, and how much is just the firmware deciding what to do with the hardware’s signal?

I didn’t want to just complain. Complaints are cheap. I wanted to know.

The work

So I built a simulation.

Not a sketch — a full, reproducible testbench, modelled on the X2D’s actual sensor: a 294-zone phase-detection array at its real pixel pitch. It renders the left/right sub-aperture views the focus pixels actually see, runs phase correlation, and feeds the result to different decision policies — the stateless threshold I believe the camera uses now, and the kind of temporal, multi-zone logic that modern autofocus systems use.

1,000 trials per configuration on a 294-zone sensor model. A simple temporal filter (C, D) takes low-contrast focus from ~9% to ~91%. Binning alone (B) barely helps.

1,000 trials per configuration on a 294-zone sensor model. A simple temporal filter (C, D) takes low-contrast focus from ~9% to ~91%. Binning alone (B) barely helps.

A thousand independent trials per configuration. Honest about its own limits — when I found bugs in my own model, I fixed them in the open and wrote down what changed.

It’s free. It’s public. Anyone can run it: github.com/Konamill-bot/x2d-pdaf-sim

Here is what it suggested:

  • Simply making the autofocus run faster doesn’t help. Without memory, a faster camera just makes more bad decisions per second.
  • A simple temporal filter — remembering where focus was a frame ago — is the single biggest lever. In simulation it took a low-contrast scene from failing almost every time to succeeding nine times in ten.
  • And most striking: my simulated baseline — the stateless version — reproduced the exact stochastic behaviour I see on my real camera. Sometimes it locks. Sometimes it hunts. Same scene. I never tuned it to do that. It just fell out of the math.

Much of the X2D’s hunting, in other words, does not look like a wall in the silicon. It looks like the decision logic. And decision logic is firmware.

The reply

So I wrote to Hasselblad. Politely. I laid out six concrete questions and offered to pay — €200 to €500 — for the feature as a licensed upgrade, the way Sony and Panasonic already let owners pay to unlock firmware features, like Panasonic’s paid V-Log key.

They answered one of the six.

“The hardware cannot meet our standards for this feature,” they said — and suggested I buy the newer camera, the X2D II, which has it.

They skipped the other five questions entirely.

And in the same reply, they told me something they may not have noticed they were telling me. They wrote that the X2D’s firmware already does face detection — finding a face and following it, in real time, as it moves through the frame.

Face detection is continuous, frame-after-frame computation. It is the same kind of work continuous autofocus requires. In one letter, they told me both that the hardware cannot sustain continuous focus, and that it already does.

Those two sentences cannot both be true.

Light in the Dark — X2D 100C

Light in the Dark — X2D 100C

What I decided

I’m not angry at the camera. It’s coming with me on a trip this entire month — it is still the camera I want in my hands for a journey that matters to me. The disappointment isn’t in the X2D. It’s in an answer that hid instead of telling me the truth.

So I made a decision, and I’ll say it plainly.

I am not going to buy the X2D II, or the 907X, or anything else from Hasselblad — not out of spite, and not forever. I will buy again the day this brand is honest with the people who love it. That is the only condition. I am not refusing because the camera let me down. I am refusing because I will not reward a company for hiding from a customer who came to it in good faith, did the work, and asked real questions.

And then I did something that might not make sense.

I gave them the work anyway. All of it — free, public, licensed for them to use however they like. Not to change their mind. Because I built it out of genuine love for these cameras, and good work should not be wasted just because the answer was no. That is a standard I hold myself to.

I would have liked to think Hasselblad held it too.

Given, Like Luck — X2D 100C

Given, Like Luck — X2D 100C

Why I’m telling you

I’m twenty. An adult, I’m told, would have accepted the reply and moved on — filed it under “that’s how companies are,” shrugged, and bought the next thing or left quietly.

I don’t have that reflex yet, and I don’t want it.

I still believe a camera can become more than it shipped as. I still believe a brand can keep its word across generations — the way my 500C, built before my parents were born, still keeps its word in my hands today. I still believe that one person who cares enough can move something the people inside have stopped questioning.

Every dreamer who picks up a Hasselblad wants the same thing I do: for it to be the legend the 500C promised. We are not asking them to give away the new camera’s features. We are not asking for an apology. We are asking them to remember who they are.

One owner is a support ticket. Ten thousand dreamers are a brand’s conscience.

If you have ever loved a Hasselblad — an X1D, an X2D, an H6D, a 907X, a 500-series, any of them — and quietly feared it would be closed the moment the next one shipped, I’d like you to say so. Not with anger. With the thing that is harder to dismiss: a calm, collective voice that says we are still here, we still believe, and we are watching whether the legend holds.

The 500C still works.

Let’s ask Hasselblad to make sure the X2D — and everything built after it — can say the same in seventy years.

Hasselblad runs a program called Project//21 — it celebrates creators under 21 who pursue photography with everything they have. I am that age. This simulation, this letter, this whole repository — this is what that pursuit looks like when it’s pointed back at you. I didn’t do it to win an argument. I did it because I love this camera, and I wanted the legend to be worthy of the people who are still young enough to believe in it.

— Chan Kam Chi Hasselblad 500C/A12 · X2D 100C · Hasselblad Masters 2026 entrant The simulation, free and open: github.com/Konamill-bot/x2d-pdaf-sim


메타데이터
post_id
b7852d77d8b0
slug
the-camera-i-love-told-me-to-buy-a-new-one-b7852d77d8b0
url
https://medium.com/@Konamill/the-camera-i-love-told-me-to-buy-a-new-one-b7852d77d8b0
canonical_url
https://medium.com/@Konamill/the-camera-i-love-told-me-to-buy-a-new-one-b7852d77d8b0
author_url
https://medium.com/@Konamill
status
ok
fetched_at
2026-07-25 01:02:52