Questions can be sent to: [email protected]
This guide is a list of frequently asked questions related to our products, and answers to these questions. The sections below are divided into general topics: Sales, Hardware, Software and General Troubleshooting. The Hardware section include a few subcategories for device-specific questions.
To navigate this page, use the table of contents in the side bar to navigate to a section, and then click on the question to toggle open the answer.
Some of the answers below contain links to third-party products like adapters and switches. None of these links are affiliate links; they are simply products we have tested and verify work with our devices.
If you have specific questions related to your system, feel free to reach out to our team of trained vision scientists and support staff at [email protected]
The VPixx Online Classroom and Library (VOCAL) is a growing set of online projects and resources for vision scientists using our products. You can also find more details about our tools for research in our Application Guide, and in the User Manuals and Demos section of MyVPixx.
Sales and Ordering Information
Our offices and manufacturing facilities are located just outside of Montreal, Canada. All orders are shipped from Canada.
If you are based in China, Taiwan, Korea, Japan or India, we work with distributors in these countries to facilitate import of our products. Please contact us at [email protected] and we will put you in touch with the distributor for your region.
We ship worldwide, including to the Americas, Europe, Australia and the Middle East. For sanctioned countries listed on the Global Affairs Canada website, please contact us at [email protected] to determine your eligibility.
If you are based in China, Taiwan, Korea, Japan or India, we work with distributors in these countries to facilitate import of our products. Please contact us at [email protected] and we will put you in touch with our distributors.
If you are interested in our products, you can contact our team via our contact portal (https://vpixx.com/contact/) or [email protected] to obtain an official quote. If you’re not sure what specific tools you need, our team of experienced staff scientists will be happy to provide you with a tailored consultation, either by video/phone call or email. These quotes are valid for 90 days from issue and include the cost of shipment to your institution.
If you would like to place an order, your institution will need to submit a purchase order referencing your quote. Once the purchase order is received, we will provide a Sales Order Acknowledgment for you to approve and sign (see What is an SOA and why do I have to sign it?). We will then manufacture your products.
When your order ships, our team will contact you with tracking information and the invoice.
Please contact us at [email protected] for enquiries related to payment methods and payment terms.
Our official lead time is 45 days from when the purchase order is received, to when the item ships. Please allow for some additional time for shipping. Unfortunately, we cannot guarantee a specific delivery date.
We will ship your order within 45 days of receipt of the purchase order. However, once the order leaves our facility, we cannot predict or prevent delays due to shipping agents or customs.
If you have a specific deadline by which you need our products, please notify a VPixx associate as soon as possible. We will do our best to accommodate your deadline. If you have an extremely strict deadline (e.g., expiring funding), we recommend placing orders as early as feasible.
If you are based in Canada, we will charge taxes that apply to your province or territory. These taxes will be included in your quote.
If you are outside of Canada we cannot directly charge taxes on our products. The taxes on shipped goods will be determined by a customs agent, and charged by the shipping agent. VPixx cannot pay these charges on behalf of the customer. If your university or institution has tax-exempt status, we ask that you provide us with the required documents to be included in the shipment. Please speak with your institution’s purchasing office to find out the specific documents required for your region.
SOA stands for “Sales Order Acknowledgment.” The SOA is a document created by VPixx which summarizes the order information. It includes the following details:
- A shipping address
- A billing address
- A contact at the university for financial inquiries and invoicing
- A contact at the university who can respond to inquiries from our shipping agent (Fedex)
- A summary of the ordered items
- A copy of our payment terms
This document must be reviewed and approved by a representative of the university.
The SOA provides an opportunity for all parties to verify the terms of the sale. It does not supersede the purchase order, although it may contain information (such as the shipping contact) which does not appear on the official order. This is especially useful in situations where the purchase order does not contain a descriptive list of the purchased items, is in a different language, or there is a long delay between the initial communication about the purchased items and the order being placed.
The researcher requesting the equipment, a trainee or administrator acting on their behalf, or a university purchasing agent are all qualified to sign the SOA.
You can change the shipping address by sending us a revised purchase order. We can accept this revision up until the product is packed and labelled for shipping.
Yes, you can. Please inform the VPixx associate who is managing your quote if you wish to use your own shipping arrangements.
We will need to know if you plan to arrange your own pick up, which carrier you intend to use, and we will need contact information for your shipping agent. If you are planning to use a University Fedex account, we will manage the shipping and provide Fedex with your account number for invoicing.
VPixx Technologies is monitoring the COVID-19 global pandemic as it unfolds. Our team must adhere to government travel directives.
We are currently reviewing in-person installation requests on a case-by-case basis. If you are interested in having your equipment installed by our team, please contact [email protected] with your location and approximate timeline for the installation.
Our technical support staff are always happy to provide live remote installation support. Please contact [email protected] for assistance.
Hardware
General
The short answer: our hardware is compatible with all recent major operating systems. We support:
- Windows 10 and up
- macOS 10.14 and up
- Linux (Ubuntu 18.04 and 20.04, or equivalent)
The long answer: it depends on what you are trying to do. While our hardware supports all major operating systems, some of them are better suited to research. On the one hand, for timing-sensitive experiments and low-level control, open-source advocates like the makers of Psychtoolbox strongly recommend Linux-based operating systems. On the other hand, some major high-level experiment software tools like Presentation and E-Prime are only supported on Windows.
If you need an out-of-the box solution that works, the dual boot Linux/Windows machine service is thoroughly tested and tweaked. It is the only complete system guaranteed to work with our devices and is backed by a 3-year manufacturer’s warranty.
[Updated Dec 23, 2021]
If you need an out-of-the box solution that works, our Linux/Windows machine service is thoroughly tested and optimized for use with our devices. It is the only complete system guaranteed to work with our hardware and is backed by a 3-year manufacturer’s warranty.
If you plan to use your own GPU or PC build, please read on for important information.
In the past, VPixx has tried to avoid being too strict with GPU recommendations. Our actual graphics requirements are fairly simple, as our hardware does the “heavy lifting.” In theory many commercial cards should work fine.
In practice, modern GPU drivers have a frustrating variety of bugs that affect our systems and cause headaches for our customers. In particular, some of our synchronization and high bit depth tools depend on something called pixel identity passthrough, which is the one-to-one mapping of pixel value assignment by software and GPU output. Many modern GPUs employ methods to jitter pixel values to ‘improve’ graphics, which disrupts passthrough and breaks our tools.
This is not a problem as long as these jittering methods can be disabled— which they often can be. Unfortunately we’ve had reports of serious GPU driver bugs which make it impossible to disable these methods, even via the low-level tweaks available via Psychtoolbox. This has happened on multiple cards across a variety of brands, price points and operating systems.
VPixx doesn’t have the ability to test all GPUs on the market for such bugs. There is a list of cards at the bottom of this message which are known to be a problem, most of them reported by VPixx customers.
If you are looking to buy a new card: Please consider purchasing our Linux/Windows machine service. It is guaranteed to work, and we test every unit ourselves. This may save you many headaches, especially if you plan to use our synchronization tools or high bit depth video modes.
If you want to use, or think you might be able to use, an existing experiment PC: Try it out! The GPU must support 1920 x 1080 @ 120 Hz and have one of the following outputs:
– Dual-link DVI
– DisplayPort
– DisplayPort mini/Thunderbolt 2
– USB-C/Thunderbolt 3
For the last three options you will need to use a specific video adapter to convert the video to dual-link DVI (see question on video adapters below). The one exception to this is the DATAPixx3 I/O hub, which uses a direct DisplayPort mini connection.
As soon as you set up your equipment, we recommend running through the diagnostic tests in our guide to dithering. This will tell you if passthrough might be an issue for your specific build, and give you some options to disable unwanted GPU behaviour. If disabling it doesn’t work, please get in touch with us so we can add your GPU to our list of problem cards. We can also try and suggest workarounds for your specific research needs. Unfortunately we cannot troubleshoot GPU drivers and may not be able to fix the problem.
Known problem cards:
Under Mac –
Under Windows – Nvidia Quadro series cards; AMD Pro series cards, including Radeon WX4100
Under Linux/Ubuntu – Nvidia GTX 1650, 20XX series, 30XX series; Nvidia Quadro series, including the P4000; AMD Pro series cards including Radeon WX4100
Note: We strongly recommend against using Nvidia Quadro or AMD Pro series graphics card as we have had issues with their drivers in the past.
- Single hardware clock for all I/O
- Up to 24 TTL-based digital outputs, manually programmed or automated through Pixel Mode
- Up to 24 TTL-based digital inputs (e.g., triggers, button box input)
- Ability to synchronize I/O via our register based synchronization system
- Timestamping visual stimuli onsets based on frame refresh or a custom sequence of pixels, option to lock signal output to these events
- Option to connect a “console” monitor that mirrors the main display without adding any load to the graphics card
- Software support via our high level programs and MATLAB/Psychtoolbox and Python APIs
- TRACKPixx3 users can stream gaze data via four configurable analog channels
- Audio output with deterministic timing
- Audio or microphone input
- Up to sixteen channels of analog input
- Up to four channels of analog output
Absolutely! All of our data acquisition systems are all field-upgradeable. Simply contact our sales team ([email protected]) and provide us with your device’s serial number. We will be happy to assist you.
Yes, you can. The easiest way to do this is to use a KVM switch. These switches allow you to toggle between different PC inputs to the same display hardware. We recommend the following models:
Almost all of our products require video in the form of dual-link DVI. The exception is the DATAPixx3 I/O hub, which uses DisplayPort. Below are our recommendations for converting to dual-link DVI from other video protocols.
DisplayPort/DisplayPort mini/Thunderbolt 2: Works fine. The adapter must be “active” like this one from Startech (we also carry it in stock). We recommend the Startech model specifically because we have tested it with our devices. We cannot guarantee all third-party active adapters will work.
USB-C/Thunderbolt 3: Possible by converting to DisplayPort via adapter (we have tested this one) followed by a conversion from DisplayPort to dual-link DVI (see above).
Single-link DVI: Not recommended due to limited bandwidth.
HDMI: The encryption protocols on HDMI can wreak havoc on the display timing, and we do not recommend HDMI adapters for timing-sensitive research. For other applications, such as showing movies from a DVD player, you can use a passive adapter like this one.
VGA: Not recommended. Analog video protocols are notoriously difficult to digitize and can create all kinds of display artefacts, if they work at all.
Best practice during data collection is to disable all secondary displays and only run the stimulus display. This reduces load on your graphics card and minimizes the risk of frame dropping and other latency issues associated with overtaxing your graphics processor.
Of course, in some labs this impossible, or at least very inconvenient. Your main display may be in another room, or you may be required to monitor specific trial metadata in an experimenter view.
There are two general solutions for running multiple displays during an experiment. First, you can connect a monitor to the secondary video port on the side of your VPixx device (available on all screens and I/O hubs except for the VIEWPixx /EEG). The hardware will generate a copy of the experiment display and show it on this secondary “console” display. You can then use the console to keep track of participant progress.
Because the console duplicates the video to the main display, it does not add any load to your graphics card; however, by default it can only mirror the main display. Some of our special video modes allow for an overlay on the console, which allows you to show some trial metadata specifically in the experimenter view. The console output for the TRACKPixx3 2 kHz eye tracker can also show a live camera feed, in addition to the participant’s view.
Please note that not all monitors will work well as a console display. We maintain a list of third party screens we have tested and verified work well with our devices. For an up-to-date list, please contact [email protected].
The second option for driving a secondary display is to drive it directly from a second port on the graphics card. The effect this will have on the performance of the main display will vary from system to system. A powerful graphics card may be able to manage both displays without significant frame dropping. If you decide on this route, it is a VERY good idea to run some synchronization tests prior to data collection, to ensure you have a tolerable rate of frame dropping and you are not compromising your stimulus presentation.
This response is focused on setting up hardware. For tips on how to set up triggers in software, please see our demos and our VOCAL guide to Pixel Mode. Pin assignment information can be found in your device user manual (MyVPixx > User Manuals).
VPixx hardware has several ports dedicated to input and output. Each port consists of a series of pins that are numbered according to an industry standard. Our I/O ports use a DB-25 connector, and so have 25 pins labelled 0-24.
Other common I/O port formats include BNC/coaxial (common in MRI/MEG systems) and other multi-pin D-sub connectors like DE-9. It is possible to have a cable with different types of connectors on each end, or a cable with one end that splits into multiple connectors or even exposed wires that can be slotted into other electronics.
In all cases, each pin on an I/O device has a specific role, or assignment. Pin assignments vary from system to system. Pin 1 on system “A” might listen for incoming digital signals, while pin 1 on system “B” acts as a ground.
In order to connect two I/O devices, you must know the specific pin assignments of both ends, and make sure your cable is wired to connect the appropriate pins to one another. Do not assume any cable with the correct number of pins is wired to work with your particular configuration. Connecting pins with incompatible assignments can do physical damage to your ports.
Pin assignment details for specific ports are typically provided by the manufacturer. Pin assignments for all VPixx I/O ports are listed in the specific device user manual (you can log in to MyVPixx and navigate to ‘User Manuals’ to find ours). The exception to this is a PC Parallel Port, which has a specific industry standard pin assignment.
Our team is familiar with many neuroimaging, eye tracking, and neurophysiological solutions and can provide advice on how best to connect hardware based on your specific synchronization needs. We manufacture a variety of trigger cables, custom cables and adapters in order to connect different systems safely. If you’re not sure how best to configure your system, we are happy to help.
For more details, please contact our team of trained vision scientists at [email protected].
Instructions for running our automated calibration routines for the VIEWPixx and VIEWPixx /3D CRT replacement monitors, and the PROPixx DLP projector, can be found on page 115 of our Product Application Guide [pdf].
Please note that the automated calibration routines available in our vputil and PyPixx utilities are designed to work with the specific versions of the X-Rite i1 Pro and i1Display Pro sold by VPixx. These tools have custom software designed to work with our devices. An X-Rite device purchased from a third party vendor, or from X-Rite directly, will NOT work with our calibration routines. The VPixx versions of these tools will not support X-Rite’s own calibration and measurement software.
Our displays use LED light sources that have a very long lifespan. They are are factory calibrated prior to shipment according to the following specifications:
- VIEWPixx /EEG
- Luminance with scanning backlight: 100 cd/m^2
- Luminance without scanning backlight: 250 cd/m^2
- VIEWPixx /3D
- Luminance with scanning backlight: 100 cd/m^2
- Luminance without scanning backlight: 250 cd/m^2
- White point: D65
- VIEWPixx:
- Luminance with scanning backlight: 100 cd/m^2
- Luminance without scanning backlight: 250 cd/m^2
- White point: D65
- PROPixx:
- Luminance: Depends on projection screen size, type and distance
- White point: D65
We have found that our displays maintain luminance and chromaticity characteristics consistently for a long time. Your displays should not require re-calibration for about 5-10 years, depending on how heavily they are used. After 5 years you may wish to take occasional measurements to verify your displays are still within an acceptable range of luminance/white point.
VPixx Technologies develops and manufactures research tools, which are not regulated for use as diagnostic or medical equipment.
To be rated as a medical diagnostic device, research equipment must go through comprehensive regulatory testing specific to each country (e.g., FDA, MHRA). This certification process takes many years, and may or may not be recognized by other countries and governing bodies.
VPixx Technologies’ goal has always been to enable researchers to push the boundaries of what can be studied in vision research. Our products and tools are often developed by request, and in response to specific, pressing research questions. We have chosen to dedicate our efforts to this fast-paced development, rather than attempting to acquire medical ratings for our devices.
There’s an entire VOCAL guide for that! You can find it here
PROPixx
Yes! We manufacture a variety of screen sizes and shapes for tabletop, standalone and in-bore use.
All of our screens use a solid plastic frame with a thin, flexible screen material that minimizes internal reflections. We have different materials optimized for front- or rear-projection, and 2D or 3D stimuli. Our screens use aluminum bases and are safe for use in MRI, MEG and other ferromagnatically sensitive environments.
We do not offer hard acrylic screens or roll-up screens.
Need a custom screen solution? Please contact our science team ([email protected]) and we will be happy to assist you.
Screen material optimized for 3D has a silver/grey coating and preserves the clockwise and anticlockwise polarization of light for left- and right-eye images. This coating sacrifices a bit of image brightness, and has less uniform luminance across wide viewing angles. Screen material for 2D stimuli produces a brighter image and has a more uniform luminance distribution.
For front projection, we stock a ‘5D’ solution which is a good compromise between 2D and 3D screens.
For rear projection, researchers must choose between 2D and 3D optimized screen materials. It is possible to show 2D images on a 3D screen, especially on smaller screens. Conversely, 2D material will scatter 3D polarization and is not compatible with 3D stimulus presentation.
The SHIELDPixx MRI shielding enclosure is designed specifically for in-room installations with the PROPixx MRI-safe projector. It is not sold as an independent unit and cannot be used with third-party projection systems.
The PROPixx uses DLP technology, which has an inherently linear gamma of 1.
Yes! If you are moving labs, or changing your testing layout, and your current lens does not support the distance/size requirements of the new space, you can purchase a new lens and install it on your current projector. Along with the new lens, we will provide you with instructions on how to swap your lenses out. The process takes less than 15 minutes.
Please note, we do not accept used or returned lenses.
Not sure what lens you need? You can check out our guide to PROPixx projection geometry, or contact our scientist team at [email protected].
The PROPixx uses RGB LED light sources with a lifetime of approximately 60,000 hours. Even with heavy use, this light source should last decades.
In the event the light source exceeds its lifetime and must be replaced, the unit can be shipped to VPixx Technologies for disassembly, LED chip replacement, and full factory calibration. If you require this service, please contact our technical support team ([email protected]) for more details and a quote for the LED replacement costs.
We do not have specific recommendations for mounting brackets for the PROPixx. The PROPixx has three M4 mounting holes with a 0.7 mm pitch on the base for bolting the device to a ceiling or wall plate. Please see page 13 of the PROPixx user manual for spacing (measurements are in inches).
The PROPixx weighs roughly 15 kg (33 lbs). Please ensure your mounting solution is capable of supporting this weight before installing your PROPixx.
Once mounted, the PROPixx can be set to “ceiling mount” in PyPixx to invert the display.
RESPONSEPixx
The RESPONSEPixx button boxes use a digital TTL triggering system and terminates in a DB-25 connector. These boxes are designed to work with the digital input port on our data acquisition systems, including the DATAPixx video I/O hubs, the VIEWPixx /3D and VIEWPixx CRT replacement monitors, and the PROPixx Controller. When paired with these systems, the RESPONSEPixx provides microsecond-precise measurements of button press/release times.
It is possible to connect a RESPONSEPixx to the parallel port on your PC with an adapter manufactured by VPixx. You can then use the button boxes in conjunction with experiment software that samples parallel port input.
The disadvantage to this strategy is that you are then constrained by the sampling rate of the port and your experiment software. Just as there is a limit to how quickly your PC can check for keyboard presses and mouse clicks, there is a maximum sampling rate with which you can read input from the parallel port.
The precise sampling rate will depend on your particular experiment program and what is happening in your checking loop. It will absolutely be slower than the sampling rate of a digital input log running on separate, dedicated hardware. Depending on your experiment this may not be an issue, but it is certainly something to keep in mind when designing timing-sensitive research paradigms.
We can create custom button layouts according to your specifications. Please contact [email protected] with your desired layout (including spacing and number of buttons) or colour requests.
We do not. However, the ‘full’ versions of our data acquisition systems are capable of receiving analog signals from third party devices, such as joysticks.
VIEWPixx /EEG, VIEWPixx and VIEWPixx /3D
Our VIEWPixx series of monitors are LCD displays that use modern-day technology, but have custom hardware to mimic the highly desirable temporal properties of old-fashioned CRT displays. To find out more, check out this section of our VOCAL guide to the VIEWPixx series.
There’s an entire VOCAL guide that explains this in detail: Choosing the Right VIEWPixx. You can jump to the end for a summary table that provides a side-by-side comparison.
The exact number varies slightly from unit to unit. A good rule of thumb for most LCD monitors, including our VIEWPixx displays, is a gamma of 2.2.
If your experiment requires extremely precise gamma correction, the best method to determine your display-specific gamma is to measure it directly with a spectrophotometer or colorimeter.
All three of our VIEWPixx monitors use the following mounting standards:
- VESA MIS-D/E, MIS-F
- Hole pattern: 100 x 100 mm & 75 x 75 mm
This size is an industry standard, and mounting bracket manufacturers should specify if they are compatible. Please note, our monitor casing is metal and is fairly heavy (around 13.6 kg /30 lbs including the removable stand). Any mounting solution must be rated to support this weight.
At the office, we mount our test displays on mobile relay racks like these, along with a fixed TV wall mount bracket similar to these. This wall mount is large enough to be fixed on the rack and has adjustable brackets that can be used to attach the monitor. This solution works well for a mobile display.
The VIEWPixx series of monitors are designed to run at 100 Hz or 120 Hz. When the video signal drops below 100 Hz, the display automatically implements an internal frame buffer and begins resampling the video signal to maintain a screen refresh rate of 120 Hz. A flashing red square will appear in the top left corner of the screen whenever your display is in resampling mode.
This resampling mode can cause problems for timing-sensitive experiment tools. For this reason, we do not recommend using 60 Hz in experiments where timing is critical for stimulus presentation or data collection.
The VIEWPixx can display up to 12 bits per colour (bpc), and the VIEWPixx /3D can display up to 10 bpc. By default, both displays will show 8 bpc, high definition full-colour video at 120 Hz. This is the maximum possible bandwidth supported by a dual-link DVI protocol.
In order to show video at higher bit depths, it is necessary to make a tradeoff to free up bandwidth for the additional bits. You can use a special video mode like M16, C48 or L48. Each of these modes implements a different strategy to achieve high bit depth on the display:
- M16 – full resolution 16-bit* greyscale with up to 256 custom colours via overlay
- C48 – full range of 16-bit* colours at half the vertical resolution
- L48 – up to 256 custom 16-bit* colours implemented via hardware lookup table
Which tradeoff is appropriate for you will depend on your experiment requirements. For more details see the documentation for the following commands:
Datapixx('SetVideoMode') PsychImaging(‘AddTask’, ‘General’, ‘EnableDataPixxM16Output’); PsychImaging(‘AddTask’, ‘General’, ‘EnableDataPixxM16OutputWithOverlay’); PsychImaging(‘AddTask’, ‘General’, ‘EnableDataPixxC48Output’); PsychImaging(‘AddTask’, ‘General’, ‘EnableDataPixxL48Output’);
Note that you may need to instruct Psychtoolbox to use 32-bit floating point colour values in order to use these modes, e.g.:
PsychImaging(‘AddTask’, ‘General’, ‘EnableDataPixxC48Output’);
*16-bit refers to the capacity of the digital video signal. The display bpc will depend on the hardware and its limitations (maximum 10 bpc for the VIEWPixx /3D and 12 bpc for the VIEWPixx). In cases where the video signal contains more bits than the display can show, the least significant bits will be ignored.
VPixx Software Tools
You can find all details and documentation related to our releases at:
MyVPixx > What’s New
In PyPixx, navigate to System > About us. You will see a list of software and firmware revisions below the information about our company.
Don’t see this content? You may be using an older version of our tools. You can also get this information in the VPutil command-line software using ‘rev’.
If you have a recent copy of our software tools, you can check for software and firmware updates in the PyPixx program by navigating to:
System > Check Software Update
System > Firmware Update (requires hardware to be connected and powered on)
Don’t see these options? You are running an older version of our software tools. You can update to the newest version manually by installing the tools from our website, here. Once installation is complete, you can use PyPixx to check for firmware updates.
Any time you perform a software update, you will need to manually add the updated API libraries to your Psychtoolbox and Python folders in order to use them. For instructions see the following:
– Installing MATLAB .mex files
– Installing pypixxlib in Python
Your VPixx purchase should include a USB stick containing a copy of VPixx Software Tools. This includes all programs and software packages needed to run our devices. There is one set of Software Tools that covers all VPixx hardware.
Misplaced your USB? No problem! You can download a copy of our software tools from our website, here.
In Windows, open the USB contents/Downloads folder and launch setup.exe, and follow the instructions in the installation wizard.
In Linux, download or copy the .deb file to your machine and then run the following to install all tools and dependencies:
sudo dkpg -i VPixx_Software_Tools.deb
In Mac, mount the DMG by double clicking on it, then double click the VPixx Software Tools.pkg to launch the installation wizard and follow the instructions.
Once you have installed our software tools, you will need to manually add our API libraries to your Psychtoolbox and Python folders in order to use them. For instructions see the following:
– Installing MATLAB .mex files
– Installing pypixxlib in Python
PyPixx is our standalone software utility that allows you to:
- Setup hardware configuration
- Run basic diagnostics for your devices and graphics card pipeline
- Run demos on your VPixx hardware
- Enable some automated settings like Pixel Mode
- Calibrate your VPixx eye tracking system and toggle on recording
- Obtain system information
- Run automated screen calibration procedures and collect luminance and spectral measurements using our VPixx Edition X-Rite measurement tools
- And more!
PyPixx is included in our VPixx Software Tools.
VPutil is a command-line tool that is included with our VPixx Software Tools. It allows you to change basic settings on your VPixx device, install firmware updates, manually read the device register for diagnostic purposes, and run several demos to test hardware performance.
Our free software tools include an API specifically designed to work with MATLAB/Octave and Psychtoolbox.
For more details on installing our MATLAB/Octave tools, and for some example code, check out our online resources.
Please note we no longer support 32-bit versions of MATLAB.
Our free software tools include a Python API that allows users to drive VPixx hardware via custom Python scripts.
In PsychoPy coder, these tools can be imported and their functions directly incorporated into your experiment code.
In PsychoPy’s builder interface, there is no integrated support for our tools. However, it is possible to insert custom code blocks into your routines that can drive our devices and record output. We recommend this code-based approach wherever possible, as low-level access to our devices allows the user to take advantage of the full range of our existing API and synchronization tools.
Not sure where to start? We are working on some VOCAL projects that demonstrate how to incorporate our tools into the PsychoPy builder. We will post a link to those here when they are available.
In the meantime, we are happy to provide one-on-one advice for integrating your devices into your PsychoPy builder project; please reach out to [email protected] if you would like assistance.
Absolutely. Our Python API comes in two flavours. Pypixxlib uses an object-oriented approach, while the libdpx wrapper permits more sequential programming. Which strategy you opt for is a matter of personal preference. Throughout several VOCAL guides we provide examples of both types of Python code.
For more details on how to install our Python tools, click here.
We do not currently provide software support for NeuroBehavioral Systems’ Presentation software. However, it is possible to configure our hardware to communicate with the Presentation PC via the parallel port and our DB25 digital output.
With this method, you can log button presses from our response boxes, capture automated frame-locked TTL triggers from our hardware via Pixel Mode, and synchronize your experiment code with eye tracking data from either of our eye tracking systems. For more details on how to set up this connection, please contact [email protected]
Presentation does have MATLAB extension that allows users to run MATLAB scripts. As of April 2021, this extension only supports 32-bit MATLAB (r2015 and earlier). As soon as the extension supports 64-bit MATLAB, in theory it will be possible to use our full MATLAB API in Presentation.
It is possible to use our MATLAB/Psychtoolbox tools in E-Prime by running a MATLAB server. You will need a copy of MATLAB and administrator privileges to do this.
Full instructions for how to use our devices in E-Prime can be found on page 128 of the VPixx Application Guide [pdf].
In a lot of cases, if a piece of software has some kind of extension or tool for running MATLAB or Python code, there is a chance our API can be integrated into it.
Even if your software does not support these APIs, there is still the possibility to run the systems in parallel and use TTL triggers to synchronize events. Alternatively, you can take advantage of our data acquisition system to stream data (like eye position coordinates) onto our devices and log them on the same clock as your visual events.
Not sure whether integration might be possible with your existing experiment pipeline? Reach out to our technical support team at [email protected] and we will help you investigate.
Troubleshooting
General
If you recently crashed out of an experiment program, your VPixx Device Server may have frozen. You can restart it via the following methods:
- Windows:
- Search for the “services” application in the menu, and open it (should have a gear icon)
- Scroll down the list of services to “VPixx Device Server”, right click this and select “restart”
- Mac:
- Open a terminal and enter:
sudo launchctl stop com.vpixx.deviceserver
sudo launchctl start com.vpixx.deviceserver
- Linux:
- Open a terminal and enter
sudo systemctl restart vpixx-device-server
If this does not resolve the issue, please contact technical support ([email protected])
If the console monitor is a make and model recommended by the VPixx team, or if it was purchased directly from us, this error is normal and should disappear on its own after about a minute. After this your screen will work normally.
If the message persists for several minutes, or is accompanied by other screen artefacts (like tearing or flickering), your monitor may not be suitable for use as a console. Please ensure it is set to 1920 x 1080 @ 120 Hz. If this does not resolve the issue, you may need to use a different monitor.
If you are using a DATAPixx I/O hub, specifically the DATAPixx3, the video output to the console display automatically defaults to the first natively supported refresh rate listed in the connected monitor’s internal specifications. For most standard commercial HD LCD monitors, this is 60 Hz.
The primary purpose of the console display is to monitor participant progress; 60 Hz is typically sufficient for this purpose. At the moment, there is no way to change this setting, although we plan to add this feature in a future release.
You may be sending video at an unsupported resolution or refresh rate. Check your graphics card and display settings and make sure they are set to one of our specified resolutions and refresh rates. Please also ensure your video cable is dual-link DVI, not single-link.
In some cases you may also need to specify your display EDID. The EDID is a setting on your display hardware that indicates to the graphics card the preferred resolution and refresh rate of the display.
If your desired resolution does not appear in your display settings, you can specify the display EDID in PyPixx in the Configuration widget. There are two ‘slots’ available, which you can set to two of your preferred settings. You may need to restart your VPixx device for the new EDIDs to take effect.
This is typically a sign that your video signal is being attenuated. This is common with longer cables. If you have a booster (small box connected to the video cable, located near the projector), you can try adjusting the dial on the side until you achieve a stable image. If you do NOT have a booster, you may want to try a different, shorter video cable.
The flashing red square in the top corner of the display indicates that your video frame rate has dropped below 100 Hz (usually to 60 Hz). When this happens, the VIEWPixx goes into “resampling” mode and repeats incoming video frames in order to continue displaying images at a rate of 120 Hz.
Resampling mode can cause problems for timing-sensitive experiments; the red square is a warning that is a bad idea to collect data while the display is behaving this way.
You can resolve the issue by changing your display settings such that the VIEWPixx is showing full HD (1920 x 1080) at 120 Hz. You can usually change this in your display settings.
If you don’t see an option for 1920 x 1080 @ 120 Hz, it may be that you are using a single-link DVI cable, not dual-link. In that case you may need to swap cables and restart the monitor to be able to change the display settings.
The flashing red square in the top corner of the display indicates that your video frame rate has dropped below 100 Hz (usually to 60 Hz). When this happens, the VIEWPixx goes into “resampling” mode and repeats incoming video frames in order to continue displaying images at a rate of 120 Hz.
Resampling mode can cause problems for timing-sensitive experiments; the red square is a warning that is a bad idea to collect data while the display is behaving this way.
You can resolve the issue by changing your display settings such that the VIEWPixx is showing full HD (1920 x 1080) at 120 Hz. You can usually change this in your display settings.
If you don’t see an option for 1920 x 1080 @ 120 Hz, it may be that you are using a single-link DVI cable, not dual-link. In that case you may need to swap cables and restart the monitor to be able to change the display settings.
You will need to install the missing dependency (libgcc-s1). For this, you will need superuser privileges. The commands to run are:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt install gcc-10
sudo apt-get -f install
These commands will ensure you can access the missing dependency, install it locally, and then install any other missing dependencies required by VPixx Software Tools.
MATLAB/Psychtoolbox
This error is usually caused by an outdated MATLAB executable (.mex file) in your Psychtoolbox folder. This file must be manually updated each time you update VPixx Software Tools. Please follow the steps here.
There are many possible reasons for this error, but common culprits are the following commands:
RegWrVideoSync
RegWrPixelSync
Both of these commands instruct your VPixx hardware to perform a register write when a specific event is detected in the video signal. They are non-blocking commands, so the rest of your MATLAB code will continue to run. However, your device is now in a “busy” state while it waits for the event, and any further attempts to perform a write or write-read to the device register will be queued until the event is detected and the write can execute.
Queuing many attempts to write to or read from the device register while it is “busy” can throw errors and crash your program. If this is happening to you, most likely your VideoSync or PixelSync commands are waiting for a very long time for their triggering event (or the event just doesn’t happen) and this is causing subsequent attempts to communicate with the device to stack up and crash the program.
If you are not using either of these commands in your code, you may want to check and see if one of your PsychDataPixx commands might be using them “under the hood.” PsychDataPixx commands that reference timing are almost certainly using these sync functions.
To fix these errors, please ensure the following:
- Video is running through your VPixx hardware to the display
- Your script calls VideoSync and PixelSync commands (or the PsychDataPixx functions invoking them) right before the screen flip which should trigger them, so there will be little delay
- For PixelSync: You are not applying blending, anti-aliasing or other display changes which could alter your PixelSync trigger after you have set it
- For PixelSync: Your graphics card is not dithering. Check out our guide to diagnosing and disabling dithering to learn more.
If these sync functions are not relevant or you want to get around them for debugging purposes, both functions have a timeout argument that can be set to 1-2 frames to cause them to execute right away and prevent queuing subsequent commands. Doing this renders their sync function useless and will definitely mess up any timing or synchronization that depends on them. We do not recommend doing this during data collection.
Python
As a first step, please follow the instructions here and install your pypixxlib file in the appropriate Python folder. This is usually something like:
C:\Users\user\AppData\Local\Programs\Python\Python37\Lib\site-packages
If you have done so already and the error persists, check for multiple instances of Python on your computer. Applications like PsychoPy and Anaconda have their own dedicated Lib\site-packages folders and you may need to install or copy pypixxlib into these folders to ensure your program sees it.
Depending on your software, you may also need to explicitly add site-packages to your path. Some Python IDEs have a PYTHONPATH manager that allows you to do this, usually in the “Tools” section of the menu
If you are using the PsychoPy builder, you can add locations to your path by navigating to File-> Preferences -> General and clicking on the little square with the ‘…’ from the row labelled “paths”.
Pixel mode is a method of sending automated TTL triggers, with timing locked to the onset of your visual stimuli. This is an easy and efficient method for sending triggers to external systems to synchronize them with display behaviour.
Pixel Mode can be used with any of our displays, or the DATAPixx series I/O hubs paired with a third party screen. For an in-depth discussion of the timing and principles of Pixel Mode, please see our VOCAL guide on the subject: Sending Triggers with Pixel Mode.
While your system is in Pixel Mode, TTL signals are sent automatically based on the colour of the top left pixel on your display, as it is detected by the video signal. If, for some reason, the pixel you define is altered by either your experiment software or your GPU, this can lead your trigger to be altered.
If you are using PsychoPy to draw your top left pixel on your target video frame, there are a few known PsychoPy elements that can impact your pixel output. Below is a list of things you can try to achieve a 1-1 mapping between pixel assignment and output.
By the way, if you want to check your digital TTL output without turning on your receiver, you can see the current states of the digital output ports in our PyPixx utility, under Demo > Digital I/O Demo.
- Make sure Pixel Mode is enabled. On some of our systems it is not on by default. The easiest way to turn this setting on is to navigate to our PyPixx software utility and go to Configuration > Output Mode. If this is a shared testing station, make sure to disable it after using.
- If you are using the Builder, consider drawing your pixel in the Coder rather than using a drag and drop item. This will give you full control over the parameters which may be hidden in the Builder view. Some example code is given below.
- Use the rgb255 colour space. This avoids rounding issues in colour assignment.
- Draw your pixel as a line, not a shape. PsychoPy shape classes have both a line and a fill colour parameter, which do not seem to be fully compatible with the rgb255 colour space. Lines seem to be much more reliable.
- Turn off interpolation. In PsychoPy pixel interpolation is on by default, and this can alter pixel values. Set this parameter to false for your specific line serving as your Pixel Mode pixel.
- Account for any gamma correction applied by the monitor center. If you are applying blanket gamma corrections to your pixel values, this will surely alter your pixel as it is drawn in your code. This is not a problem as long as you account for this and draw a pixel that, when gamma corrected, produces the desired output.
- Turn off the GUI feature. This feature adds a narrow interactive border to the window that can overwrite your pixel.
- Check for dithering. The issue may not be specific to PsychoPy, especially if it is intermittent. See our Guide to Diagnosing and Disabling Dithering for more details.
Below is a snippet of code demonstrating how to draw a pixel with PsychoPy visual elements:
from psychopy import visual def drawPixelModeTrigger(win, pixelValue): #takes an RGB255 pixel value and draws it as a single pixel in the top left corner of the window 'win' #window must cover top left of screen to work #interpolate must be set to FALSE before color is set #call this just before flip to ensure pixel is drawn over other stimuli topLeftCorner = [-win.size[0]/2, win.size[1]/2] line = visual.Line( win=win, units = 'pix', start=topLeftCorner, end=[topLeftCorner[0]+1, topLeftCorner[1]], interpolate = False, colorSpace = 'rgb255', lineColor = pixelValue) line.draw()
LabMaestro Pack&Go
Timing and precision
This is possible with Pack&Go, but as with all remote testing, you should not expect the same level of precision as in a controlled lab setting. There will be some degree of network latency fluctuation. If this is a concern, you can use the stream metadata file provide with each experiment run to filter out trials or sessions where network latencies where inadequate for your experiment.
Our plan is to eventually provide an API to fetch these network values in real time. Thus, you will be able to incorporate network variables in your experiment program to adjust stimulus presentation accordingly.
First of all, keep in mind that, as with all remote testing, there are uncontrolled variables such as the subject’s computer and display based latency.
Pack&Go being a streaming based solution, there is the added challenge that the network latency can vary during an experiment session. To address this, we record a lot of meta-data about latency and will provide tools to compensate for it in post-analysis.
Our plan is to eventually provide an API to fetch these values in real time from the experiment code.
Since PTB runs on the server side and the display is on the participant side, tests which require a minimum return time are likely to fail. CLUT and other GPU tests will test the server’s graphics processor, not the end user’s. In general the results of these tests are not reliable due to the nature of remote testing and we recommend skipping the default Screen/PsychImaging sync tests in your study to avoid the script crashing. Flip timestamps can still be used, and will reflect timestamps recorded on the server clock.
In order to achieve 30 and eventually 60hz through streaming, compression is indeed necessary.
Modern compression algorithms are fairly good so for most content the error is pretty low. Meaning the information will be conveyed reliably. For some low-contrast and slow changing stimulus, the current compression algorithms can however result in compression artefacts.
Our plan is to eventually offer a streaming strategy where fidelity is prioritized over framerate.
This has been a big focus for us since last year. We were aiming for 500ms frame delay and sub second round trip times.
In collaboration with a partner lab or ours, we ran an international experiment with participants from all around the globe, and we obtained the following preliminary results:
116ms median frame delay, with a standard deviation of 64ms
163ms median round trip delay, with a standard deviation of 90ms
Accuracy is always a big challenge with remote testing. We are really trying to raise the bar over time and hopefully make it viable for more and more experiment types.
Supported software and hardware
Yes, your MATLAB code runs on our servers as it would locally; the large majority of functions and features are supported.
For toolboxes that are not included in MATLAB’s base license, this will need to be discussed on a case-by-case basis with our staff.
Pack&Go is currently running MATLAB version 2021b and Psychtoolbox version 3.0.18.3.
We support both 32 and 64 bit installations.
Yes, the large majority of Psychtoolbox functions and features are supported, as it would be on a local MATLAB copy. This being said, precision will not be comparable to that of a controlled lab environment.
Yes, audio streaming is supported, but not audio recording for now.
Pack&Go also supports audiovisual synchronization. Based on preliminary results, synchronization is about 20% less precise than on a local windows machine. This is not subjectively perceptible.
Pack&Go supports third-party MEX files and MATLAB libraries. You can include all third-party MEX files in your experiment folder. Our servers run on Linux, so you will need to provide the Linux version of the MEX files.
This is not currently supported, but it is something we might support in future releases if requested by the community.
This is not currently supported, but it is something we are considering supporting if requested by the community.
However, this would restrict the participants to only those with the given hardware.
This is not currently officially supported, but android phones and tablets may be usable, provided the experiment does not require keyboard inputs.
This is not currently officially supported, but android phones and tablets may be usable.
Not officially supported. You will most likely need to adapt your code to be MATLAB compatible.
Currently, we support 1080p, 8bit depth, at 30hz.
We are considering supporting higher refresh rates in the future.
As for higher bit depth and resolution, this will depend on whether or not it is requested by the scientific community.
Yes, if you include them in your zip file, you can play them, given that they are using a standard codec.
Client side questions
You cannot control the refresh rate of the participant display. This is part of the challenge of online testing: very little control over participants’ hardware.
Currently, the offered streaming strategy runs at 30 Hz, and prioritizes latency; the experiment will not run above 30 Hz even if the participant’s monitor supports a higher refresh rate.
The experiment opens in a full-screen browser window. The participant can control which monitor this browser appears on.
We cannot control the hardware used by the participant, and gamma varies across individual monitors. There are subjective measures of gamma control that could be implemented to try and equalize stimuli across tests. For example, a pre-test calibration step could invite the participant to adjust stimulus intensity via a slider. This is often done in video games to adjust brightness settings to be optimal for a given monitor. This is not as tightly controlled as say, comprehensive gamma correction with a photometer. For that level of precision you wouldn’t be able to use remote testing.
For every experiment run, we supply meta-data that can be used to assess streaming quality and reject sub-optimal sessions in post-analysis.
We cannot control the hardware used by participants. In terms of display size and hardware quality, we may be able to gather some metrics, depending on their browser and operating system. In terms of viewing angle and setup, we cannot control how participant sit and how far they are from the display, nor can we know if they are distracted or focused on the task at hand. There are subjective calibration methods that can be implemented to have better control over stimulus characteristics such as visual angle. We will have examples of these in future demos. However, a certain amount of variability across individual setups is an inevitable part of remote testing.
Currently yes, it would still run. We may be able to catch some of these events in the future, but cannot monitor participants’ attention. Including random catch trials within your experiment is a good way to monitor attention.