Calibrating a Benq monitor with DisplayCal

Each time I decide to be brave and calibrate my screens I always end up with more doubts than before (not to mention the feeling of being immensely stupid).

I’m trying to keep it simple (so things like gamma 2.2, 6500K, 120 cd/m2 etc, for those who already know these details); I perform the calibration in the evening, with the usual light that I have, no other variables.

I decided this time to describe what I do and perhaps someone in this community will tell me on what is right or wrong.

Details first: I’m calibrating a Benq SW2700P monitor with the DisplayCal-py3 fork by @eoyilmaz and an XRite Colormunki Display (bought in 2013, no longer produced). All of this on Linux (Ubuntu 21.04), using r-darktable / dt 4.0.

Tab “Display & Instrument” of DisplayCAL:

The only thing here is to choose a colorimeter correction for my colormunki, I have found this old thread on the DisplayCAL forum where @fhoech attached a “correction file” to be used for this Benq SW2700, so I use this.

Then, I have understood that maybe this monitor has a “hardware calibration” which makes things even more complicated than they are; I have read this discussion here on the forum, featuring an old friend of us dealing with a similar monitor and could not come up with a final solution. Another discussion about internal monitor calibration didnt make things any clearer.
In this other thread @betazoid wrote

You need to use hardware calibration with the BenQ calibration (Palette Master Element) tool and a colorimeter with this screen. There is no way around this

What?? I don’t have windows! Can’t run Palette Master? What does it even mean “use hardware calibration”? Can’t I calibrate my Benq SW2700 with DisplayCAL?

In the meantime, I will skip over this problem, pretending it doesn’t exist.

Calibration tab

Here I check “Interactive display adjustment”; whitepoint, white level are set “as measured”, while tone curve is “Gamma 2.2”. Calibration speed is set to high, I don’t see any difference setting this to low.

The information here are also a bit confusing for me (1D LUT?), what I sort of understand is that in this way the colorimeter helps me set the appropriate starting points for my monitor w/regards to brightness and rgb colors, using this tool:


Now the white level is straightforward (I set brightness using the physical buttons of my monitor to 34 to match the 120 cd/m2 which I understand is a ‘standard’), while for the whitepoint/color temperature I need to fiddle with my monitor; which means that in here, instead of choosing “Adobe RGB” in Color Mode:

I will instead go to Color Temp, choose User Define and play with the RGB sliders until I see all three bars in the DisplayCAL calibration window reach the midpoint (as you see from screen shot below I only have to lower R and G a little)

So… again, is this correct? Is this the way is supposed to work? Should I instead choose Adobe RGB as Color Mode, match the brightness and move to profiling?

Profiling tab

Alright, in here I don’t touch anything, I’ve always read just run the defaults and this I do happily. The computer and the colorimeter do their funky psychedelic things for half an hour and then I have an .icc file. Good!

Now, is there anything else I should know? DisplayCAL sets this icc file as the system default, and it appears right away in settings/Color:

in dt prefs/image processing I have not checked “always use LittleCMS 2 to apply output color profile”.

I have learnt here that

in DT, it’s important to use the correct monitor profile for the display profile.

Alright, so that means that both in lightable:


and darkroom:


I should have the same .icc file above set as “Display Profile”… but what I have instead is “system display profile” which to me sounds the same that I have set globally in Ubuntu prefs?

Following the docs, this is what I have running darktable-cmstest:

(base) aadm@psion:/opt/rdarktable/bin $ ./darktable-cmstest 
darktable-cmstest version 501fbbf
this executable was built with colord support enabled
darktable itself was built with colord support enabled

primary CRTC is at CRTC 0
CRTC for screen 0 CRTC 1 has no mode or no output, skipping
CRTC for screen 0 CRTC 2 has no mode or no output, skipping
CRTC for screen 0 CRTC 3 has no mode or no output, skipping
CRTC for screen 0 CRTC 4 has no mode or no output, skipping
CRTC for screen 0 CRTC 5 has no mode or no output, skipping
CRTC for screen 0 CRTC 6 has no mode or no output, skipping

DP-0	the X atom and colord returned the same profile
	X atom:	_ICC_PROFILE (969444 bytes)
		description: SW2700 #1 2022-08-04 00-18 2.2 F-S XYZLUT+MTX
	colord:	"/home/aadm/.local/share/icc/SW2700 #1 2022-08-04 00-18 2.2 F-S XYZLUT+MTX.icc"
		description: SW2700 #1 2022-08-04 00-18 2.2 F-S XYZLUT+MTX

Your system seems to be correctly configured

Now, for the purpose of checking how other people looking at the same photo on a smartphone or a simple sRGB monitor with no calibration etc, I hope it is correct to have as softproof profile ‘sRGB’. Anything I’m missing here?

And what should I do to check the output of my prints? I mean so far what I do is simply do a test print and match print vs monitor, but this is not time nor money efficient.

the end

Ok, if you’ve made it this far, thanks for reading this. I am really struggling and the older I get the less I seem to understand or find my way out of this.

1 Like

PME don’t run on linux (and also doesn’t support colormunki display if i remember correctly), it however does hw calibration, changes also settings inside monitor hw. Sw calibration (e.g with displaycal) only manipulates the gpu output.

Checkout a youtuber…ArtisRight…he is a BenQ ambassador and has many many videos on calibration…including displaycal I believe…for sure he does a nice run down of hardware calibration…He does it only on Mac and Windows but the general points should be transferrable…

As for the darktable part. The preview refers to a second monitor…do you have 2…if not doesn’t likely matter what goes in there. As for the display profile. I add the icc I want to use for the display to the config/color/out directory…I would have to look it up for Linux…its under Appdata in Windows. THat way you know what profile is being used and you let DT handle that. At least that is what i do for Windows… I don’t trust the OS to put or pass the correct info to DT…

Thank you for your question. You describe exact then Problem I have with my SW240.
For now, my setting is on “ADOBERGB” and I ignored the whitepoint in displaycal. As you see in your screenshot, I will get a horrible greenish. For now, for me , it looks ok, but have I disimproved?
I will checkout ArtisRight on YT…

Yes Danny I know that PM doesnt run on Linux, this is why I was asking about the possibility to simply disregard this “hardware calibration” business which I don’t understand how that would work (*);

my main point was, ok then so setting aside PM, how should I use DisplayCAL on Linux with my monitor? Is the procedure I described above correct at least in theory?

Also, you said:

Sw calibration (e.g with displaycal) only manipulates the gpu output.

…alright so what does that mean? I can see a difference between using one icc profile and the other when choosing it under ubuntu prefs/color… and that’s because I am using the GPU… so it does work… apologies if this sentence makes perfect sense to you, to me it doesn’t?..

(*) I suppose I could connect my work laptop (Windows) and try to run PM to calibrate the monitor in ‘hardware’ but then where would this profile go? Will it be stored under one of the main “modes” (see screenshot above of my OSD… perhaps it will be store permanently under color adjustment/color mode/Calibration 1 or 2?) But then how is the sytem (Ubuntu… and darktable) know that this is all “calibrated”? What should I specify under ‘display profile’ in dt… what to do under the Color tab in Ubuntu prefs? these are all things that are very unclear to me.

thanks for the comments Todd, I will check artisright, but the thing is, I’ve read so many things that explain the theory and that is more or less ok, like the great post put together by our own Glenn @ggbutcher, but it’s when it comes to putting everything in practice, the little details using a specific application, a specific environment that things fall apart for me… that’s why I assembled the step-by-step procedure I have been following above, to see if there’s a fault somewhere or to clearly state what are the steps that don’t make sense to me or where I have doubts. I appreciate though your inputs obviously, knowing that you’re on windows too!

Hey you and me both…Just when I think I am all set I learn something new… Basically I think it true in Linux as well if you get a good icc and put it in the Darktable icc color out folder then DT will use it and you should have good color if the color calibration went well… it should then be in the list and you should be able to select it for display profile…

Hardware calibration manipulates the monitor output (I think, but not exactly sure, it manipulates the monitor luts).
Software calibration manipulates the gpu output, by manipulating the gpu luts.

Why one is said to be better than the other I’m not totally sure, perhaps hardware calibration can achieve greater accuracy? About the only reason I dual boot into windows anymore is to use PME.

Ciao, @aadm

Quote from BenQ:
… BenQ’s hardware calibration … is kept in the monitor and does not change if you switch computer.

Longer PM sent.

Cord. Sal.,
Claes a Lund, Svezia

The built in calibration of such monitors is to let them re-calibrate their built in emulation modes, where they emulate the preset color spaces (such as sRGB, AdobeRGB etc.). Such modes are useful for displaying output from systems or programs that are not color managed.

Color profiling such as that provided by ArgyllCMS/DisplayCAL is for color interchange and management via computer systems. The aim should (ideally) to run the display in its widest gamut/native mode. So you would normally select this mode as the one to use when calibrating/profiling and using the display. This could be something like a “user” setting mode.
If the display lets you have control of the white point and brightness in this mode using its built in controls (OSD), then use them. If it doesn’t, then you can fall back on using your graphics card VideoLUT hardware to do this. So the calibration step consists of the option of using your OSD to meet your target white point and brightness, and then an automated calibration process for setting the graphic card 1D VideoLUTs to set the tone curve and final white point and brightness. The last step is characterizing the display to create an ICC profile. The VideoLUT calibration curves are added to the ICC profile so that they can be automatically loaded into the graphics card when that profiles is the one being used. Color Managed applications then make use of the profiles to display color correctly on your display.

The main advantage of color management is that it lets you make full use of your display capability - you aren’t artificially restricting its gamut - and a color managed application can simultaneously display images encoded in any and all colorspaces at the same time.


With this particular screen it is only possible to switch to the panel native setting if you use PME. There is a user something setting that you can select with the buttons on the screen but that color space is significantly smaller than panel native.

@gwgill thanks for the detailed explanation Grame. I think I’m understanding a bit more now and your description matched what I fuzzily understood.

Now, Anna @betazoid says that the “user setting mode” (let’s call it like this now, I’m away and don’t have access to my BenQ monitor right now) is limited to smaller color space… which would be a shame and also something I don’t understand, I mean why the manufacturer would do this? Also, I haven’t found anything on the official documentation that matches this information, so Anna – you sure about this? can I ask where’d you read this?

PS apologies for this late reply, I have ran out of internet in the past week due to network and smartphone ‘issues’!

From the YT channel I mentioned…he has covered albeit not for linux a large number of topics…

I don’t know the specifics of your monitor. If there is a way of getting the full gamut, then it will either be through some other mode that provides this, or by configuring the user mode to have the full gamut. Some displays have a “six color” configuration that (while generally doing terrible things to the color space uniformity) theoretically can be set to a “do nothing” state that gives you the full gamut.

I don’t have one but I have seen several videos offered up by the channel shown below… For Benq it seems clear the mode must be set to panel native to set it to the max gamut for that hardware… Video demonstrates it with a gamut map… the kicker is how to access this from Linux… I think only from Windows or Mac ???

I am absolutely sure because I tried it. I measured the color space of the screen with a spyder 5 with different settings and panel native which you can only choose inside Palette Master Element is the largest color space. I mean the difference is not extreme but noticeable and definitely measurable. Panel native is something like 110-120% Adobergb if I remember correctly.

1 Like

That seems about right based on what is shown in the video link I shared. He rotates the gamut in 3d so it’s easy to visualize

The problem I am having is that Palette Master cannot communicate with the monitor (it complains that I need an USB connection). However, the monitor is connected via a USB and programs like “Display Pilot” (from BenQ) have no problem communicating with the monitor and perform changes. I am using Windows 11 with an NVIDEA card.

From one of the videos by Art Suwansang it appears that the problem with the non-existant / existant USB connection may probably be solved by pulling the USB-connector out and reconnect it once more …