I wanted a camera that doesn’t exist — so I built it.

16 min read Original article ↗

Cristian Băluță

The Leica G9ii

This article is not a tutorial. It’s a record of what happens when a software person tries to solve a hardware problem the hard way.

The name of this camera comes from the fact that the internals are from a Lumix G9ii, and the body is a Leica M replica made at CNC. I also built new flex cables to go along with the repositioned buttons and dials.

Press enter or click to view image in full size

Why?

For many years I have this dream of writing my own camera software, or at least hiding unused menus, I wanted to remove all the boilerplate and keep the essentials. For example, beside the A and M modes I don’t really use much on my cameras as a hobby photographer. Although I’m a programmer, this would be an impossible task for me, I’m missing skills in reverse engineering a binary, hex code manipulation…, and probably also risk bricking the camera if one bit is wrong.

So what else qualifies me to do this camera? I was doing electronics at home in my childhood and I studied electrical engineering, but after that I had a career as a programmer. The most ambitious project I got working was to convert the play button of a portable Sony cassette player from mechanical to digital because I was too poor to buy directly a digital one. I basically designed a piece of metal that was moving the physical button when the motor started spinning.

Then there was this frustration with MFT losing its identity and companies officially killing their compact lineups and rangefinder style cameras. OM System eventually released OM-3 shortly after I started building this but it was not a rangefinder style nor very compact. Mine is not compact either unfortunately, I got it to a FF Leica M size (136x80x35mm) and this was the absolute minimum I could do.

I chose to modify a G9ii because it was the most capable MFT, highest resolution, phase detect autofocus, dual card, and so on… I also chose Lumix and not Olympus because the Lumix lenses are crippled on Olympus bodies, so the aperture ring which I very much love on my Pana-Leica 15mm F1.7 will not work on Olympus.

New body

I had few requirements for this body:

  • to look like a Leica M rangefinder, because it is the most beautiful camera ever made. My first inspiration was the Leica M 70 edition, I liked the tall bottom plate, bringing the lens to the middle. I was also looking at the Hasselblad x2d, I wanted to borrow the curved viewfinder area and buttons. And the Olympus Pen F
  • add only the essential buttons
  • the lens should be as centered as possible. I wanted to avoid that horrendous look of cameras with the lens as close to the left edge as possible (Sony a6000, I’m looking at you here). I didn’t manage as centered as a true Leica but I at least have a generous grip. Speaking of grip, I was not expecting that a flat grip can be this comfortable
  • no visible screws. Even some Leicas have some really ugly visible screws
  • high quality feeling. I’ve used aluminum and leather to achieve this. Magnesium was prohibitively expensive, for one part I was quoted $700

Let’s start

Before I bought the G9ii I made no research about its internals, I just assumed I will find a way to make it smaller. And I was in luck. The battery was a must to be rotated 90deg so I can get rid of the grip, and there was a huge empty gap between the sensor module and the battery. Sony for example filled that space with the shutter mechanism, but Panasonic and Olympus put it to the left.

I first disassembled it to take rough measurements of each component and think how could be rearranged. Then put it back together so I can play more with the camera because I was not familiar at all with its capabilities, what I need and what I don’t. Then disassembled it again to take more measurements, extract schematics. I left it like that for the whole process that took about a year.

Press enter or click to view image in full size

Original parts of the camera

To measure the original body screws positions I created two imaginary xy axis as a base for the measurements. I did this with a steel ruler kept pressed with my hands on the camera body and measured the distance from the ruler to the boss around the screw holes. To find the screw center I subtracted the radius of the boss. This was incredibly difficult to manage with a 50cm ruler moving around, uncomfortable positions, and every measurement giving different values. I spent days on this step, but got only one screw wrong.

Press enter or click to view image in full size

Press enter or click to view image in full size

The design program of choice was Fusion360. I had 0 experience with 3D softwares like this and my strategy was “do first, ask questions later”. I changed multiple strategies as I was learning but ended up with one file and multiple components, one per part. Thinking like a programmer with multiple files and parameters was not flexible at all, like it is in programming.

The body was split in 4 parts: bottom plate, top plate, front and back. All parts were connected at once with 6 transversal holes. This brings a small problem, the top and bottom plate will not press against the other parts, leaving potential gaps for water, vapors and sand to get in. For this reason I interconnected them with 1-2 steps on the edges.

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Looking inside the camera from the bottom plate POV

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Section showing parts fitted together through steps as a water and dust barrier

It gets real — and expensive

I made this parts with JLCPCB and generally I was surprised by the precision, most of the things came into place perfectly, but few of them, easy ones I might say, were surprisingly off.

I first made the front part, the most complex one holding most components of the camera, as a test to see how the finished product actually looks like. The part looked perfect with sharp edges and the finish very smooth looking, but abrasive.

Press enter or click to view image in full size

Thinking that I’ll save money I decided to not order threads from JLC and do them myself with a manual tapping tool. Well, that didn’t go well, it was hard to keep the tool straight, the threads were loose, and broke few taps rendering the holes useless. The extra amount for tapping was 0$ or insignificant.

Press enter or click to view image in full size

The tap broken inside the hole

The rest of the parts were 3D printed locally, the quality was so bad I couldn't believe someone is offering such a paid service, but it was enough to spot more mistakes and test the overall feel of the camera and convince myself it was worth continuing.

Press enter or click to view image in full size

Fit test with the 3D parts

After working on the fixes for few more months, and one month of traveling, I was ready to send all the parts to JLC. This time I chose hard anodizing. I don’t really know if it matters for my project but hard anodizing is more durable. I noticed some differences from the simple anodized part: the texture is not so smooth visually, but touching it slides like teflon; the edges are not as sharp.

Press enter or click to view image in full size

The texture of the hard anodized part

Press enter or click to view image in full size

The boss around the front lever hole is off center. There were few more mistakes like this

The body+heatsink weights 234g. The original magnesium body + heatsink weights 188g, so I was quite pleased I was so close considering the copper heatsink alone is very heavy.

With the buttons I had some problems. Initially I put them all in one object, I got the quote but when entering the production they rejected it, refunded me and ghosted after asking for tips on how to modify it. Producing one at a time would have costed way too much so I gave another shot by grouping buttons together in few simpler parts. This worked. I detached each button at home with a mini drill.

Press enter or click to view image in full size

Electronics

The mainboard didn’t fit in the new body in few places. First, all the ports must go, they are too big and I don’t need them. I made a massacre there by destroying the ports with pliers because I couldn’t desolder them with the soldering iron (I’m a bit more confident I can do it now after I bought a hot air gun). Also, two parts of the PCB needed milling. I had a surprise there to find 8 extra copper layers inside, so I was not sure if I broke any trace. Didn’t break any because they were all connected to the ground, but it was risky to continue milling so I had to go the other route and mill the body and reposition the whole PCB a bit. There is now 0mm clearance left to play with.

An unexpected problem after removing the jacks was that the camera started to show me microphone levels on the screen. I figured out that the camera thinks I have inserted a microphone, the fix was to short the corresponding jack pins.

I also broke the pads for one SD card detector that I was planning to turn 90deg so I can insert the card from the battery side. I will have to either fix the pads, either find where the trace is going, but I’m afraid it’s going straight to the CPU. The actual trace is routed on one of those 8 internal layers. The second SD card slot is left in place acting as an internal storage.

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

The flex cables

Since I did electronics in the past I thought this would be quite easy, just draw the circuits and solder few components. First attempts at soldering the original 0402 SMD components (1x0.5mm) were very ugly, I just couldn’t keep them straight and apply the right amount of solder. So I redesigned them with 0603 size (1.5x0.8mm) and bought new components. This was also so I can build it multiple times without reusing the same components. It went much better.

I’ve used KiCad to draw the schematics and boards. This program has only one feature missing from what I needed, it cannot transition smoothly from one trace width to another. Well, maybe I don’t need this but that’s how the original cables were designed. And generally drawing curves is hard. My first design had a mistake on the pads, they were not masked and when one got heated the whole pad popped out. Didn’t lost money here because I printed only one to see how it goes.

Press enter or click to view image in full size

The flex cables I designed are for the top plate dials, back buttons, battery connector, EVF and USBC extender. In order to move the EVF to the left of the camera I needed to extend its flex cable. The FPC connector was something I got scared at first, 61 pins on 2 rows and 0.4mm pitch, how do you even solder something like this? To draw the tracks I had to go between this pads, reaching the absolute limit of the manufacturing capabilities, something like 0.07mm thick. However it was a bad idea to do this because I couldn't solder the connector without shorting the pads with the traces. That part of the trace couldn’t be masked, or at least it wasn’t. Bought a hot air gun especially for this operation but I realised a soldering iron can do it just fine if I don’t do traces between pads. Anyhow, I abandoned this version because the traces were also on the wrong side, so the camera has no EVF now. The USBC extender was also bad and incomplete, didn’t even try to solder it.

Press enter or click to view image in full size

Press enter or click to view image in full size

Comparison of a FPC between original (bottom) and redesigned (top). I had to cut 0.1mm to fit the socket

Press enter or click to view image in full size

The mode dial FPC with soldered components. The modes pads are connected in series through resistors of different values, the camera knows which mode is selected based on the total resistance to that pad.

Final assembly

Panasonic was already an easy camera to work with comparing to an Olympus, but I took it to the next level. There are less parts, more accessible, and the body comes together only through the screws on the side of the camera.

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Size comparison with the Lumix G9ii

The biggest problem I have are the dials, they are quite loose and only one of them actually works, the shooting modes dial. The axles of this dials are very short and wide, they can be improved by making them longer, like one of them already is and works very well. Another problem is that the sensor is not calibrated correctly, it stays on springs. I did many measurements before disassembly but I couldn’t find the numbers anywhere in my notes. There is no visible problem in the final photos though.

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Press enter or click to view image in full size

Jpegs and LUT in camera

Thermals

With the thermals I don’t know yet what to think. The camera body does get warmer than I thought, noticeable while holding, reaching 35C, and the heatsink itself 40C in the corner where I can reach it from the battery side (the CPU being in the center couldn’t measure it). This could be the result of the thermals doing a good job at spreading the heat, I don’t really know. I built the heatsink from copper for maximum heat transfer and connected it well to the body sides. The CPU is connected with thermal paste to the heatsink, which in theory is better than the original thermal pads. On the other side, everything is much more cramped inside. Curious enough, the hottest spot on the body is not above the CPU but on the right side of the screen where its flex cable starts.

Press enter or click to view image in full size

Wi-Fi

Since the body is all aluminum, there is a problem with the wifi signal. In Lumix the wifi module was in front of the grip, in an empty gap covered with plastic and ruber. In my body there was some place to do the same on the left side, but I chose not to weaken the body and introduce plastic parts. I thought that my best bet is to let the signal escape through the viewfinder and placed the module nearby. This will need more testings because it works only if I’m with my phone very close to the viewfinder. When testing this theory I placed the wifi module inside an aluminum SSD enclosure and it worked much better than in the camera, could be because the case was not grounded.

Costs

  • used G9ii with very low shutter count 1000eur. I suspect it was heavily used for video because I received a fake battery instead of the original
  • new battery from SmallRig 38$. It also performs poorly, now I’m sure the camera is just eating batteries
  • tools from Aliexpress: milling, soldering, ….: 315$
  • components to use as is or parts of them, from Aliexpress: screws, buttons, resistors, …: 127$
  • JLCPCB CNC machining: 870$
  • JLCPCB 3D printing: 6$
  • JLCPCB FPCBs: 148$

For a final build the cost might be lower because some of the components were made multiple times, but some others were made from plastic and should be aluminum.

In other words: less than a working Leica.

Conclusion

The hardest part of this build was deciding where to place each feature, what size to be, the gaps needed, how to make them work on a theoretical level by looking at the CADs, I couldn't go and make prototypes for each of them. With some of them I was happy, with others not so much, like the loose dials.

I am not yet convinced I will enjoy using it, there are some things I dislike about Lumix: the battery life (even if I was playing with the menus to learn about the camera, I was seeing battery lines gone. This is in line with the official shots this camera is rated for); the huge raw files I was not expecting for (like 40Mb for 25Mpx. Sony and Olympus have raws on par with the Mpx); the weight is also a bit too much for a MFT, about 700g including the lens.

I still don’t have the camera I imagined and it will not be possible to fully build it because I don’t have access to the software, but I‘m getting closer on the physical side. There will be a part 2 where I’ll rebuild this with fixes for each component.

Ultimately, this is proof that Panasonic can squeeze more performance in a GX body if they want.

Links