Hi all,
I am trying to set up a Bits# box with PsychoPy (1.85.2) on a Mac Pro (OS 10.12) connected to two mirrored monitors. I followed the installation instructions in the Bits# manual, including editing the Bits# config file to turn off USB-MSD and turn on USB-CDC. I can also can communicate with the Bits# box using terminal and screen. To connect to the Bits# box in PsychoPy, I run the following code:
from psychopy import visual
from psychopy.hardware import crs
# we need to be rendering to framebuffer
win = visual.Window([1024,768], useFBO=True)
bits = crs.BitsSharp(win, mode = 'mono++')
# You can continue using your window as normal and OpenGL shaders
# will convert the output as needed
print(bits.info)
if not bits.OK:
print('failed to connect to Bits box')
core.quit()
core.wait(0.1)
…but every time I run this code, I get stuck on the CRS test screen. Once I get back to the Psychopy command window, I am presented with the following warning (pasted below) indicating that I don’t have a config file and that PsychoPy was unable to converge on an identity LUT.
################ Running: /Users/105tuser/Documents/bits++test #################
2021-01-21 12:56:16.467 python[4503:60470] ApplePersistenceIgnoreState: Existing state will not be touched. New state will be written to (null)
We need to run some tests on your graphics card (hopefully just once).
The BitsSharp will go into status mode while this is done.
It can take a minute or two…
3.1971 WARNING no config file yet for <psychopy.hardware.crs.bits.BitsSharp object at 0x1083f15d0>
3.1971 WARNING The graphics card or its driver has changed. We’ll re-check the identity LUT for the card
5.4118 WARNING getVideoLine() timed out: only found 0 pixels in 1.00 s
6.4120 WARNING getVideoLine() timed out: only found 0 pixels in 1.00 s
Checking ‘0-65535’ LUT:mean err = 0.242 per LUT entry
Checking ‘1-65536’ LUT:mean err = 0.242 per LUT entry
Checking ‘intel’ LUT:mean err = 6.441 per LUT entry
Checking ‘0-255’ LUT:mean err = 0.223 per LUT entry
Best was ‘0-255’ LUT (mean err = 0.223). Optimising that…
-0.22265625 -0.09375000 -0.03125000 -0.00781250 -0.00781250 -0.00781250
-0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250
-0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250
-0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250
-0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250
-0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250
-0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00781250 -0.00390625
-0.00390625… x1000 … failed to converge on a successful identity LUT. This is BAD!
I tried running the same code in PsychoPy3 (2020.2.6) and got the same set of warnings. Basically, it seems that the identity LUT optimization procedure is very close to converging, but doesn’t quite get there. I am not sure how to resolve this LUT convergence problem. Does anyone know what might be causing this failure to converge?
I am happy to provide additional information if necessary!