Kuuvik Capture 5 Coming to iPad

This isn’t a big surprise if you followed what I have been doing lately: a high performance imaging pipeline for Technical Camera, and then USB support in ShutterCount Mobile a month ago. I have technologies at my disposal that nobody else has, so it would be silly not to make it happen.

So I’m pleased to formally announce the development of the iPad version of Kuuvik Capture 5.

Let me stay for a moment with the prerequisites. In 2015 I had re-acquired the rights for Kuuvik Capture, and started paying royalties to my original business partners. But as the app evolved, keeping the old code separate from new (so that I can calculate the amount to be paid) became a headache and a roadblock to innovation. To resolve the situation, I did redeem all future royalty payments in February, opening the door for improvements across the board. You can already enjoy these in the Mac version of Kuuvik Capture 5.

Now on to the exciting stuff!

We’re aiming for the full Kuuvik Capture 5 feature set. Complete with overlays, dual histogram, multi-point live view, and so on. Of course a few things will work differently, since there are vast differences between how you interact with an iPad and a Mac. But the basic principles will remain the same.

Both USB and Wi-Fi connections will be supported. Actually, the complete camera control and sequence automation machinery is already working. I’m going to reiterate: at the time of writing nobody else in the world has the tech required to support pro-level USB and wireless tethering with Canons on iPadOS. Period.

The iPad and Mac versions will be offered as a universal purchase. That is, if you already purchased (or upgraded to) Kuuvik Capture 5, the iPad version will be a free download.

It will require an iPad running iPadOS 13.4 or later. This is a requirement for USB tethering, plus older iPads that can’t run iOS 13 simply aren’t powerful enough for the app. If you happen to have one of those, it is a great time to upgrade quickly, because…

It is planned to be released during the summer. If I were hard pressed, I would say June, but there are way too many things that can delay a development project.

I’m currently working 7 days a week on this project, and you could encourage me to push even harder by purchasing the Mac version right now. The iPad version will be yours for free soon.

Kuuvik Capture 5 – Leaner and Meaner

I’m proud to announce the immediate availability of Kuuvik Capture 5, our premium Canon EOS tethering app for macOS!

Kuuvik Capture saw the light of day on April 2, 2013, and some of its features are still unmatched after 7 years. Version 5 is by far the biggest update, elevating the app to a whole new level, all the while shrinking it to an almost unbelievable 3.9 MB.

I’ll cover the new stuff in separate posts, but let me go trough the most important bits in a nutshell. I also recommend to check out the release notes, plus the brand new Features and Screen Shots pages on the web site.

Adds the Most Requested Features

Number one is overlays. You can place an image overlay on top of both live view and captured images. It can be repositioned, resized, rotated, and of course can be made less or more transparent. And it works in magnified live view, helping in precise alignment. Overlays use our high-performance graphics engine, so you can expect the same swift and smooth operation as you are accustomed to with images.

Number two is hideable screen elements. While you were able to hide the browser in previous versions, people had asked for more. So now you can also hide the sidebar, the toolbar, and the rulers. Separately. Or you can quickly toggle the visibility of all bars (browser, sidebar, toolbar) by pressing Ctrl+Tab. Screen element visibility is remembered separately for full screen mode (where the default shows the info overlay with no bars and rulers). Ideal for culling or presenting images to a customer.

Number three is live view auto-rotation. Turning the camera to portrait orientation will automatically re-orient live view to match it. Well, it works in any of the four possible orientations. Manual rotation is disabled when auto is active, so auto is off by default. You can activate it from the View menu or by pressing Ctrl+A.

One Big, Plus One and a Half Dozen Smaller Things

Variable-step (or inhomogeneous) exposure bracketing allows you to disable individual frames. Just click the corresponding green (or yellow/red) square on the bracketing monitor. And click again to re-enable. This is a real time-saver in situations where you would only throw out frames in a part of the bracket.

Then there’s the AF feedback on the point of operation indicator – turns green on success, red on failure. Just like on the camera. And improved sliders with precise numeric display and entry. And the ability to disable user interface animations. And on and on…

Again, I would recommend to go through the release notes for the whole list.

Farewell to Legacy Technologies

There are times when legacy technologies get in the way of progress, and need to be eliminated. This is such a time.

The app no longer supports tethering with the 5D Mark II, as well as the previously obsoleted 1Ds Mark III and 50D. Files created with them can still be opened. These cameras used incomplete and buggy tethering interfaces that littered the code with – well – crap. On a side note, I got a mail from Canon a few months ago, noting that they no longer service the 5D Mark II. So its heydays are pretty much over.

We also moved forward with the minimum macOS version required, to 10.14. Mojave is a stable release (unlike Catalina), and works with each Mac released since 2012.

This is a Paid Upgrade

Free upgrades until eternity is unfortunately not a sustainable business model for professional apps. So to be able to provide the usual stream of new features and camera support updates, we had to change the model. But instead of going the “popular” and much hated subscription route, we decided to stick with good old-fashioned upgrades.

From now on, major versions will be a paid upgrades. We’ll continue to add new features to point releases, and these will be free updates. Without pre-announcing anything, I can tell you that very cool things are coming to Kuuvik Capture 5.x!

Kuuvik Capture 2.x-4.x users can upgrade with the Kuuvik Capture 5 Upgrade bundle on the Mac App Store. This is the usual “fair” upgrade provided by the App Store: the price is calculated from how much you paid for the previous version.

Kuuvik Capture 4.5 remains on the Mac App Store as it is required for upgrades to work. The price is reduced to make it a cost-effective solution to new customers needing 5D Mark II or older macOS support.

ShutterCount 4.4 Brings USB Connections to iOS

The history of my ShutterCount app is a story full of world’s firsts. Just to mention the most important innovations:

  • October, 2013: The world’s first Canon shutter count reader on macOS.
  • April, 2016: The world’s first Canon shutter count reader on iOS (for Wi-Fi equipped cameras).
  • June, 2017: The world’s first shutter count reader on Mac and iOS that supports post-2014 Canon cameras and that introduces live view counters and the Distribution Chart.
  • October, 2018: The world’s first shutter count reader that supports Canon mirrorless models.
  • March, 2020: The world’s first shutter count reader that supports Canon cameras via USB connection on iOS.

The complicated Canon Wi-Fi pairing interface was always a problem for users of the mobile app. I’ve written a long guide and produced a few videos that allowed lots of people to successfully navigate this mess. But what I always wanted was proper USB support on iOS.

Last fall, with the release of iOS 13.1, Apple partly delivered my requested feature. USB tethering appeared in the OS, but was completely defunct. We’ve provided extensive feedback to Apple during the last six months, and now finally have an OS where USB tethering works reliably. I have only one gripe (with permission prompts) that I’ll discuss shortly.

How Does It Work?

First, you’ll have to have a USB port on your iOS device. New iPad Pros have a USB-C port, that’s fine (although you may need a USB-C to A adapter if your camera doesn’t have a C-type port). But for all devices having a Lightning port, Apple’s Lightning to USB 3 Camera Adapter, or the former USB 2 version, will be a required accessory.

ShutterCount USB connection on iOS

The above image shows a typical setup, with my good old 7D Mark II hooked up to an iPhone 7 Plus using the Canon-provided USB cable and Apple’s adapter.

Once the camera is connected and turned on, you’ll be greeted with a series of permission prompts. These prompts are presented by iOS (not ShutterCount), in a very un-Apple-ish manner (three prompts for a single thing).

The first two ask for Files and Folders and Camera access permissions. As I mentioned regarding Catalina’s similar approach, this is not just terrible user experience, but also a security issue as you’ll have to grant much broader permissions than it would be necessary. An example of Apple ignoring its own guidelines…

And to add insult to injury, there’s the third prompt, which will appear every single time you connect a camera. This is a rather ridiculous one: it tells you what you already know, and you don’t have an option to block access (tapping Settings will bring up Settings, but the connection will succeed). I’ve already called out Apple multiple times to fix the permission mess around tethering – nothing happened yet.

So please don’t blame us for this thing. But I do encourage you to provide feedback to Apple. The more of us complain, the more pressure on Apple to make this right.

New Camera Support and Availability

Speaking of new cameras, we’ve added support for Canon’s new EOS-1D X Mark III in both the Mac and iOS versions.

ShutterCount 4.4 is available now on the respective App Store. To use USB tethering, iOS 13.4 is required, which Apple promises to release on Tuesday.

The update is free for existing users.

Notes on CFexpress

I’m gearing up for the arrival of the Canon EOS-1D X Mark III, and the first thing to consider was memory cards. My goal was to find the fastest card with the smallest size. At the moment 64GB is my preferred cards size with CF/CFast/SD, but since 64GB CFexpress cards are much slower than 128GB, I went ahead and bought a 128GB SanDisk Extreme Pro. Since a camera is a good month away, I did some preliminary testing with computer transfers.

USB 3.1 Gen 2 is Not Fast Enough

When it comes to USB, manufacturers always advertise physical link speeds, which is rather misleading to the customer. For example USB 3.0 and 3.1 Gen 1 is advertised being 5Gb/s, but the usable data link speed is just 4Gb/s (or 500MB/s) since it uses a 8-bit to 10-bit encoding to have a desired balance of 0 and 1 bits on the wire. USB 3.1 Gen 2 is a bit better with 128 to 132 encoding, so the data link speed is 1.21GB/s (and NOT 1.25).

Every single CFexpress card is advertised to have at least “up to” 1.5GB/s read speed. So if you want to utilize the highest possible download speed of a CFexpress card, you need something faster than USB 3.1 Gen 2. The sole option at the time of writing is Thunderbolt 3.

To continue the never-ending stream of marketing lies, Thunderbolt 3 is usually advertised as a 40Gb/s line. Thunderbolt carries up to 4 PCI Express 3.0 lanes, plus video. So the maximum data link speed is 3.94GB/s (and NOT 5GB/s), period. This may be even lower if you connect your reader to a Thunderbolt 3 port whose controller is shared with your monitor(s), or depending on the actual controller chip to port mapping. But if you don’t connect a high resolution monitor to the same controller as the reader, you are guaranteed to have 2 PCI Express lanes, which is 1.97GB/s. CFexpress also uses 2 PCIe 3.0 lanes, so this is a perfect match. Bingo, go for a Thunderbolt 3 reader!

While quite a few companies are selling their (as we learned by now) inadequately slow USB readers, there’s only one Thunderbolt 3 device. The big and heavy AFT Blackjet TX-1CXQ. It is much larger and heavier than my ProGrade Digital CF & SD reader, not to mention the minuscule Wise WA-CR05 CFast reader I use (both of these are USB 3.1 Gen 2 readers, which is mandatory to utilize a full bandwidth of a CFast card). So I bought the Blackjet.

“Up To”…

On paper the 128GB SanDisk sports up to 1.7GB/s read and 1.2GB/s write speeds. Of course you have to deduct bandwidth consumed by file system and block device access protocol overhead, so you’ll get smaller numbers in real world scenarios.

I did measure average read speed around 1.45-1.47GB/s, which is acceptable compared to the advertised 1.7GB/s. Oh yes, you’ll need a rather fast PCIe SSD in your computer to be able to download these cards at full speed. Plus macOS 10.13 or later is required to work with CFexpress cards.

Write speed is a completely different story, however. Blackmagic Disk Speed Test measured speeds fluctuating between 800 and 1100MB/s, and it suddenly dropped to 430MB/s.

Head scratching, and consulting with both AFT and SanDisk (AFT’s support is first class, but I’m still waiting for SanDisk to reply)… Switching benchmark software to AJA System Test Lite… And presto, the truth started to reveal itself.

The following is a write graph generated by AJA System Test. Just ignore “frame numbers”, as since it was a 4GB write test, vertical blue lines indicate gigabyte boundaries.

So the card is quite speedy with 1.1-1.2GB/s average for the first gigabyte, then drops to 430MB/s. This might be thermal throttling, but since it always happens after the first gigabyte, it might well be due to the internal architecture of the card. I don’t know, and still waiting for SanDisk to comment. This is the first time I saw such a thing with a memory card.

If you let the card sit idle and cool down a bit, you’ll again get 1.1-1.2GB/s for the first gigabyte. But if you keep pushing data, it will stay at 430MB/s. For short bursts, say 256MB or so, with a little time between them, write speed stays around 1.1-1.2GB/s.

But how much write speed do you actually need? The CFast cards I’m using in the 1D X Mark II have 400-410MB/s average write speed, and I can shoot RAW continuously until the card is full. CFast and CFexpress card prices are almost identical (although the 128GB CFexpress SanDisk is significantly cheaper than the CFast). So for less money, I get 3x faster download speed, with a little bit faster worst case and almost 3x faster best case write speed.

I’m going to use the 1D X Mark III almost exclusively for stills. 1GB is about 40 images = 2 seconds at 20fps before throttling kicks in (not counting the camera’s buffer). It may fare very well, but video guys might need to look elsewhere. Larger cards, more suited for RAW video footage, might also behave differently.

What About Other Brands?

Finding a trusted memory card vendor isn’t an easy task. During the last 18 years I grown to trust SanDisk (used lots of CF cards from them and still are my favorite SD card vendor), and Lexar for CF and CFast before they went Chinese with unknown quality. I don’t buy anything from Sony given how they ignore customer security (think firmware updates requiring root permissions). I have zero experience with Delkin, ProGrade or Wise cards, and a little bit reluctant to begin experimenting with expensive cards.

So it’s basically SanDisk only at the moment. Canon is also pushing SanDisk, so I suspect that these products were tested together and will provide the promised performance. The above results did cast a little shadow on this, but only time and further in-camera testing will tell. I’ll let you know.

  ☕ ☕ ☕

Did this post help you? Consider buying me a coffee if so.

Kuuvik Capture 4.5 : CR3 and M6 II Support

Version 4.5 of Kuuvik Capture, my premium Canon tethering app, is now available on the Mac App Store. Besides the usual camera support updates (this time for the M6 Mark II and EOS Ra), there are a few noteworthy things.

RAW Histogram and Exposure Warnings for CR3 Files

Proper support is finally here for Canon’s new RAW format. Initially I wasn’t a fan of the new format as it wastes a lot of space for unnecessary things (like duplicated metadata parts and an embedded, smaller resolution RAW image), but there’s one single feature that changed my view entirely. And this is the actual organization of the RAW image data.

My biggest gripe with the CR2 format is that the RAW data must be processed serially, on a single processor. No matter how many cores you have in your machine. But CR3 allows parallel processing! My very first CR3 decoder is roughly 2.3x faster compared to a same megapixel CR2 (EOS R vs 5D Mark IV, 0.22s vs 0.51s on my 8-core 2019 MacBook Pro). And I’m investigating architectural changes in Kuuvik Capture to allow extracting even more of the inherent parallelism in the new format.

Please note that like with sRaw/mRaw CR2, Kuuvik Capture doesn’t support the RAW histogram and exposure warnings for lossy compressed C-RAW CR3 files. I don’t think that in the age of dirt cheap storage, trading a little space for increased processing time and lower quality does worth it.

New Sequence Controller

Until now, exposure sequences were controlled by a variant of the original Kuuvik Capture 1 controller. But we had recently discovered a situation where actual exposure values could slip, resulting in two identical frames. Unfortunately the cause was the app’s architecture interfering with Canon’s exposure control mechanism, and the only solution was to completely rewrite the sequence controller.

The new code also allowed to resolve a long-time issue with the inability to stop sequences while the app waits between intervalometer shots. And there’s another pretty neat thing coming in a future release!

Tethering on macOS Catalina 10.15.2 and Later

Simply put: Apple made a huge mess, so we added extensive in-app guidance about what (seemingly unrelated Photos and Removable Volumes) access permissions you have to grant to ensure that macOS lets the app communicate with USB connected cameras. Failure to do so will prevent the app from doing its job.

Of course we had filed a bug report to Apple, proposing the way that it should be done: macOS should ask for a Tethering access permission. Their current solution is not just misleading, but poses a security risk as users must grant much wider permissions than it would be necessary, grossly violating the principle of least privilege. This is a prime example that security done the wrong way actually results in a less secure system… Just sayin’… If anyone at Apple happens to listen.

Availability

The update can be downloaded from the Mac App Store free of charge for existing Kuuvik Capture 2+ users. My eBook was also updated to reflect the changes in this release.

There’s one thing you must be aware of, though: the app now requires macOS 10.12 or later. This change allowed us to modernize parts of the code, and to get rid of the OpenCV dependency, which was only used for one purpose: resizing the RAW exposure warning layer on some old Macs. Removing it reduced the app’s size by 35%, to a mere 5.3MB. In comparison, Canon’s EOS Utility is a 75MB behemoth.

90D Support in ShutterCount and Kuuvik Capture

ShutterCount 4.2 and Kuuvik Capture 4.4 with Canon EOS 90D support are now available on the App Store.

ShutterCount also adds support for the Nikon Z50.

In these releases we had improved a few error messages. First and foremost, in case of any interference on a Mac, we remind you to quit Dropbox. Yes, they didn’t fix this bug despite we had reported it months ago, leaving no other choice for us but to explicitly point in their direction. Dropbox was the culprit in 100% of the connectivity-related support cases we resolved during the last 6 months or so.

We had also revised the Wi-Fi pairing instructions in ShutterCount’s Getting Started Guide, and updated the Wrong Connection Mode message’s description to mention the key points. I’m amazed that some people think this message is a joke and continue to bark up the wrong tree – in one occasion we had received a problem report showing that this message was displayed no less than 50 times. I can’t stress it enough: you must follow the instructions.