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.

EIZO CG279X – A Truly Superlative Monitor

I had been using an EIZO ColorEdge CG241W for the last eleven and a half years, and during that time grown to love and trust that monitor. Well, in fact also grown to not trust any other brand when it comes to high-end color correct displays (no, it’s not prejudice, it’s experience).

While the CG241W still works perfectly, my recent upgrade to the current (2019) 8-core MacBook Pro having 10-bit per component color capability was a good cause to get a new monitor.

I did think about going larger than 24″ for a while. But also didn’t want the super tiny pixels of a 31″ 4K display.

Here I have to note that Retina-style (high DPI) displays are totally unusable for photo editing – you simply can’t see what’s sharp and what’s not. Unfortunately the CG319X, having an even superior panel than the 279X, fell out because of its tiny pixels (at 149 PPI vs the 109 PPI of the 27″ size).

From EIZO’s current lineup two monitors matched my size/resolution criteria: the CG2730 and the CG279X (the latter replacing the CG277). The 2730 was quickly ruled out because it doesn’t support Gray Balance priority I’m used to with the CG241W. Plus the CG279X can be fed with a single USB-C cable (for both DisplayPort signal and upstream USB), which greatly reduces cable clutter on my desk (more on this in a later post).

The monitor arrived six days ago, and I’m still in awe. It is a very rare occasion to see me running out of (positive) superlatives when describing a device. This is because it is very rare to have a device that doesn’t exhibit even a tiny fault within a week.

The EIZO ColorEdge CG279X is such a device.

Setup

It is pretty straightforward: connect the cables, and install ColorNavigator 7. But since the monitor’s main market is HDR video editing, it has to be reconfigured for a better fit for photo editing and print proofing. The setting I’m referring to is called DUE Priority, which needs to be set to Uniformity (which is also the one recommended by EIZO). My unit arrived set to Brightness, so you at least need to check it before calibration.

Well, my only minor gripe with the monitor is that this setting isn’t trivial to access. You either have to go to the administration menu (hold the leftmost button and the power switch for two seconds when turning on the monitor) or use ColorNavigator. In the latter case you have to manually enable the Monitor option setting extension in the app’s preferences for the DUE Priority item to appear under the Monitor settings menu. Both are documented in the user manuals, so it’s worth reading them.

Calibration

My usual practice is to set the monitor to 80 cd/m2, D50, L* gamma (my complete workflow, even working spaces, revolves around L* gamma) and Gray Balance priority.

The CG279X calibrates beautifully, with the average deltaE 2000 being less than 0.5, and the highest deviation not being more that 2.

Note that this is a hardware calibrated device, so the calibration curves are stored in the monitor’s internal LUT. It’s worth mentioning that all monitors drift over time, so regular re-calibration is mandatory.

Calling any monitor that lacks hardware calibration abilities a professional device is pure marketing bullshit in my book (yes, I’m referring to Apple’s new Pro Display XDR, for example).

The CG279X removes another pain from my life: assembling the spectrophotometer for calibration. It has a built-in colorimeter for the job. It is so much easier to just fire up ColorNavigator and let it do everything without human intervention.

There’s even self-calibration ability: you can program the monitor to wake up in the middle of the night, sit for 30 minutes to warm up and do an automatic calibration. The only downside is that your display profile won’t be updated, so I prefer to do it the good old way.

10-bit per component color

Or 30-bit color, in Photoshop parlance. As I mentioned earlier, this was one of my excuses to get this beast. Please keep in mind that you need a cooperating graphics card, operating system and applications for proper 10-bit color. The Radeon Pro Vega 20 in my 15″ MacBook Pro supports it. macOS 10.14.5 supports it. The weakest link is application support.

At the time of writing, I get 10-bit color in Photoshop CC 2019 and Capture One 12.1. Maybe in earlier versions, and other apps, but these are what I’m using and can say anything about. Lightroom doesn’t handle 10-bit color. In Photoshop you should check whether 30-bit display is enabled (in Preferences > Performance… > Advanced Settings…), but Capture One automatically engages it.

Pricing – in different light

Retailing for around 1700 EUR net, it isn’t a cheap shot. But if you are only using the monitor for the five-year warranty period, that’s 0.93 EUR a day. My former CG241W did cost me about 0.33 EUR a day (during its 11.5 year service time). And this doesn’t include the resale value. So for less than the price of a coffee a day, you can get the best monitor money can buy for photo editing and print proofing. Think about it.

  ☕ ☕ ☕

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

Downgrading AirPort Extreme to 7.6.1

I made a mistake last Thursday evening: upgraded my AirPort Extreme base station’s firmware to 7.6.3. Until Sunday afternoon WAN routing stopped three times (for which I first blamed our ISP), but when WiFi is also stopped last afternoon I decided to go back to the very well behaving 7.6.1.

But, to rephrase what Mr. Scott said: downgrading is easy, finding the file – that’s hard. Apple’s respective firmware page is an insult: it contains no link to the firmware update itself. Google turned up nothing, so I decided to go after a solution myself.

Note that I’m still using AirPort Utility 5.6. I consider 6.0 a huge step backward.

AirPort Utility stores the firmware files under the ~/Library/Application Support/Apple/AirPort/Firmware folder. You have a numbered subfolder for each model. My 4th generation AirPort Extreme’s number is 114. Here I found just one file: 7.6.3.basebinary.

So I knew that I had to look for 7.6.1.basebinary and put it into that folder. I also found a file named version.xml under the Firmware folder. Opening it quickly revealed that it contains actual download links for firmware images under the firmwareUpdates key (it’s actually an array of dictionaries, with each element corresponding to a firmware file). To find your file look for a dictionary containing your product number under the productID key, 7.6.1 under the version key, and you’ll get the download link in the location key, as you can see below:

<dict>
    <key>location</key>
    <string>http://apsu.apple.com/data/114/041-3395.20120130.Ka1Br/
        7.6.1.basebinary</string>
    <key>productID</key>
    <string>114</string>
    <key>version</key>
    <string>7.6.1</string>
    <key>sourceVersion</key>
    <string>76100.4</string>
    <key>sizeInBytes</key>
    <integer>6364116</integer>
</dict>

Also note that I had to download the firmware directly attaching the ADSL modem to my Mac, as at the end routing was so hectic that I was not able to do it via the AirPort Extreme. Having downloaded the file the actual downgrade procedure was seamless: put the file in the aforementioned folder and choose “Upload Firmware…” from the “Base Station” menu in AirPort Utility 5.6.

I also noticed a strange thing: while on 7.6.3 the Upload Firmware dialog only allowed me to upload 7.6.3 and nothing else. Now that I’m back on 7.6.1, it allows me to choose between 7.5.2, 7.6, 7.6.1 and 7.6.3.

All is well since then.

  ☕ ☕ ☕

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

Sleepless External Display on a Mac

The original frustrating issue: my other half’s 13″ retina Macbook Pro was unable to put the external display into sleep. Video signal was off, but something kept the display always on (it’s a Samsung SyncMaster 213T – which isn’t a young one, but still a very capable monitor). So I tried a crazy idea: swapped my Mini Displayport to DVI adapter with hers.

And the result was – to my biggest surprise – proper display sleep. I was curious whether it is a faulty adapter or what, so tried the non-sleeping adapter with my EIZO CG241W. The result? Proper sleep behavior again.

The only difference between the two MiniDP to DVI adapters is that mine is almost three years old, while hers is from last December. They look exactly the same, have the exact same part number, etc.

Conclusion: if you encounter display sleep issues, the culprit might be compatibility between your adapter and monitor. Try to get an older Apple adapter or try an aftermarket one.