== CS-100A Luminance & Color Meter == *https://sensing.konicaminolta.us/products/cs-100a-luminance-and-color-meter/ *Gitlab repository *https://gitlab.com/aplabUR/colormeter == Instructions == *Fix the color meter onto the tripod. Position color meter ~1m away from screen. Use viewfinder to ''aim and focus color meter on the center of the monitor.'' Position of color meter relative to monitor does seems to impact readings. Record view distance in data collection notes (quick picture is good too). See color meter manual for detailed setup and view distance range. *Connect the adapter via the cable to the color meter. *Connect the adapter to the computer via a USB cable and switch on the color meter device. *Use 'seriallist' command in Matlab to check which port the device is connected to. You can also go to Device Manager and see under Ports. *Set the port in 'serial('COM?')' in ColorMeterWrapper.m script. *CalibrateLuminance.m is used to run luminance calibration. It has parameters set to default values. To change the number of measures (nMeasures) and which channels to use (RGBW) use the command 'mycal=CalibrateLuminance(struct('nMeasures',17,'RGBW',4))'. This will give you 17 measures on only White(gray) channel. *Similarly, 'mycal=CalibrateLuminance(struct('nMeasures',17,'RGBW',1:4))' will give you 17 measures on all channels Red, Green, Blue, White(gray). *In case of any Matlab error in getting reading from the color meter, restart Matlab. This happens because any interruption in communicating with the device doesn't allow that connection to be properly closed. *The NVIDIA settings for the monitor must be set in NVIDIA control panel like shown below. [[attachment:nvidia-all1.png|{{attachment:nvidia-all1.png}}]] *After running CalibrateLuminance, it will fit the raw luminance values using a variety of methods and then plot these out to a figure like below. [[attachment:gray1.png|{{attachment:gray1.png}}]] *As you can see the luminance values are not linear. The gamma model fit shows a gamma correction value of 2.03 could give you linear luminance values. *Now we change the NVIDIA settings to the one shown below. Note we've changed the gamma from 1 to 2.03. [[attachment:nvidia-all2.png|{{attachment:nvidia-all2.png}}]] *Running CalibrateLuminance now gives a plot like shown below [[attachment:gray2.png|{{attachment:gray2.png}}]] *As you can see the luminance values are linear, hence a gamma correction of 2.03 gives a calibrated monitor. == TroubleShooting == * Make sure matlab is set to communicate over it's serial port at 9600 Baud * reupload the arduino code using the arduino IDE == Future work == *Currently, the script can give luminance readings from 0-99 cd/m2 which is fine for calibrating a monitor. For higher values, the script needs to use the multiplier bits (see Page 34 of the manual). Data sets 5,9 contain that data, the lookup for those bits needs to be implemented according to the data-output table on Page 34.