System Requirements

Maestro 3.x system requirements

    • Operating system: Windows 7, 32-bit version. Maestro 3.x is not supported on earlier Windows versions, nor on the 64-bit version of Windows 7.

    • RTX: IntervalZero's Real-Time Extension for Windows (32-bit) is required. Maestro's hardware controller runs as a process within the RTX subsystem. Maestro 3.x was built with the RTX2011 software development kit (SDK). The RTX 2011 runtime comes in different versions depending on the number of CPU cores supported. We strongly recommend the RTX 2011 Entry edition, which supports real-time processes running on up to 2 dedicated RTSS processors, with Windows processes running on any remaining cores. This edition should be adequate for a quad-core machine, with RTX configured to run on two cores and Windows on the other two. If you purchase a machine with more than 4 cores (which is overkill as far as running Maestro is concerned), you could go with an RTX 2011 Runtime edition that supports more RTX-dedicated cores, but this really is not necessary and will increase your costs. NOTE that the Solo runtime edition is not recommended, as Maestro may not perform adequately when it must share a single CPU with Windows processes.

    • Processor: 3GHz+ Intel processor with at least two and preferably four cores. This is pretty much the standard for Windows workstations purchased in 2011 or later. At least 4 cores are required if you plan to use Maestro (version 3.2.0 or later) with the EyeLink 10000+ eye tracker.

    • RAM: 2-4GB recommended. There's no point in installing more than 4GB, since 32-bit Windows cannot access the additional RAM. While Maestro does not use a lot of system memory, Windows certainly does! Also, Maestro's RTX-based hardware controller must run in the non-paged memory pool, and Microsoft recommends that this pool be kept to a small fraction (5% or less) of the total available system memory.

    • Hard disk space: 20 GB or more. Required files consume less than 5MB of disk space, but a large area should be reserved for storing files during an experiment. We recommend getting two hard drives, one for the operating system installation and the other for data storage.

    • *** Recommended plug-in hardware: The National Instruments PCIe-6363 multi-function IO card and the Intel Gigabit CT desktop network adapter. The PCIe-6363 handles analog input, analog output, and digital IO and event timestamping, while the Intel CT adapter provides the Maestro-RMVideo private Ethernet link. Each requires a PCI-Express x1 slot. Other legacy devices are still supported in Maestro 3, but we strongly recommend upgrading to these modern (as of mid-2011) cards. If you choose to use the supported legacy devices, you'll need a workstation with several open PCI slots and at least one ISA slot for the Lisberger Technologies' DIO timer board. If you have a functioning vector oscilloscope for displaying XYScope targets (unlikely!), you'll need the Detroit C6x or Dakar DSP card from Spectrum Signal Processing (however, these cards are no longer available!). Finally, if you will use Maestro with the EyeLink 1000+ eye tracker, you will need a second NIC for the private Ethernet connection to the EyeLink's "Host PC"; the Intel Gigabit CT will suffice for this purpose.

    • Message-signaled (MSI) vs line-based interrupts: Interrupts are enabled on Maestro's analog input device as well as the network adapter used for communications with RMVideo. Hardware line-based interrupts, or IRQs, are an extremely limited resource on a PC, and one of the most difficult issues to overcome when configuring a computer to run older versions of Maestro was getting device-exclusive IRQ access for both the AI device and the network card. This is no longer an issue in Maestro 3, so long as we use the PCIe-6363 and Intel Gigabit CT network card, which support the message-signaled interrupts.

*** About legacy device support: You will likely find it difficult to purchase a new workstation that can house any of the legacy devices. New Windows PCs lack ISA and conventional PCI slots, which have been replaced by the PCI-Express standard. And when you can find a motherboard that supports conventional PCI, you must ensure it conforms to earlier versions of the PCI specification that include support for 5V-only cards like the Detroit C6x or Dakar DSP cards. Newer motherboards comply with the PCI 2.3 specification, which drops support for 5V-only signaling. Maestro 4.x (see below) drops support for all legacy ISA and PCI boards (hence no support for the XYScope platform).

Maestro 4.x system requirements

    • Operating system: 64-bit Windows 10 Enterprise LTSB 2016 (Version 1607). This is the long-term support version of Win10 Enterprise that comes with security and critical updates for 10 years after release (through Oct 2026), and avoids the obnoxious semiannual "feature updates" that come with a standard Windows 10 Pro edition. Maestro 4.x is built and tested with this version of Windows 10; it may not run on more recent Win10 releases. NOTE: We have found that even the "quality updates" (security and otherwise) that come with Win10 Enterprise 1607 LTSB can break RTX64; another advantage of using the Enterprise edition is that you can disable automatic updates!

    • RTX: IntervalZero's RTX64 Version 3.4 is required. Which edition of the RTX64 runtime you select will depend on how many CPU cores you dedicate to RTX. At a minimum, RTX should get 2 dedicated cores, with the rest reserved for Windows. In that configuration, you can go with the Entry edition. However, we have only tested Maestro 4 on an 8-core workstation with 4 RTX cores and 4 Windows cores; this configuration requires the Professional edition, and we recommend that edition over the Entry edition.

    • RT-TCP/IP Stack: In addition to the RTX64 runtime license, you must also purchase a separate license for RTX64 TCP/IP support (in 32-bit RTX, TCP/IP Stack support is included with the runtime license).

    • Processor: 3GHz+ Intel processor with 4-8 cores. This is pretty much the standard for Windows workstations purchased in 2016 or later. A minimum of 4 cores is a must, but we recommend 8 cores. Maestro 4 was built on a workstation with an Intel Core i7 7820X (Skylake-X) processor having 8 cores. IMPORTANT: Be sure to check the IntervalZero website for information about Intel processors compatible with RTX64 Version 3.4. It is quite possible that RTX64 will fail to run on the "latest and greatest" Intel processor!

    • RAM: 16GB recommended. While this is much more than Maestro itself will need, the Windows OS tends to be a resource hog, so it can't hurt.

    • Use a discrete (add-in) graphics card instead of integrated graphics. While not an absolute requirement, it is recommended that the workstation avoid using video integrated into the motherboard. Integrated graphics share resources with the CPU and system memory, which can lead to longer timer interrupt latencies that could degrade the real-time responsiveness of Maestro 4.

  • Hard disk space: We recommend getting two hard drives, 250GB or more for the OS partition, and 1TB or more for storing data files during an experiment. Solid-state hard drives have become commonplace and are proving more reliable and longer-lived than traditional hard drives, so they are a good option if you can afford the extra expense.

    • Required plug-in hardware: The National Instruments PCIe-6363 multi-function IO card and an RTX64-supported network interface card. The PCIe-6363 handles analog input, analog output, and digital IO and event timestamping, while the NIC provides the Maestro-RMVideo private Ethernet link. Check the IntervalZero website for a list of RTX64-supported NICs; the Lisberger lab use the Intel CT Gigabit Desktop adapter (82574L chipset). Both the PCIe-6363 and the Intel CT Gigabit NIC require a PCI-Express x1 slot, but they will also work on higher-capacity slots (x4, x8, x16). Finally, if you will use Maestro with the EyeLink 1000+ eye tracker, you will need a second NIC for the private Ethernet connection to the EyeLink's "Host PC"; the Intel Gigabit CT or any other Windows-supported NIC will suffice for this purpose. Note that Maestro 4 drops support for all legacy devices, including the very old Detroit C6x and Dakar DSP board that controlled the XYScope target display. These legacy device require ISA or conventional PCI slots, which are not found in new workstations.

    • Message-signaled (MSI) vs line-based interrupts: The PCIe-6363 supports message-signaled interrupts; be sure that the NIC you choose for the RMVideo link also supports MSI (the Intel CT Gigabit adapter does). Hardware line-based interrupts, or IRQs, are an extremely limited resource on a PC, and one of the most difficult issues to overcome when configuring a computer to run older versions of Maestro was getting device-exclusive IRQ access for both the AI device and the RMVideo network card. Message-signaled interrupts eliminate this issue.

RMVideo system requirements

The Remote Maestro Video application -- RMVideo for short -- runs on a separate Linux workstation and communicates with Maestro's hardware controller over a dedicated, private Ethernet connection (not part of a local intranet). RMVideo does not have as stringent hardware and OS requirements as Maestro. The Linux host should be a reasonably well-equipped machine (3+ GHz processor, 2GB RAM or better, 2 cores or better), and we recommend using an up-to-date version of the Linux kernel. It must have a fast, modern NVidia graphics card, plus a 100/100Mbps network card for the the Ethernet link with Maestro.

For details on RMVideo's system requirements and on how to configure on off-the-shelf Linux machine to run the application, see the How to install RMVideo page.

Why RTX/RTX64?

A key requirement for running Maestro is the Real-Time Extension package from IntervalZero. RTX serves 32-bit versions of Windows up to Windows 7, while RTX64 works with 64-bit versions of Windows 7, 8/8.1, and 10. (Throughout this guide, the acronym RTX refers to both the 32-bit and 64-bit versions unless otherwise noted.) RTX brings to Windows the real-time performance, fine-grain thread scheduling, and easy hardware access that makes Maestro feasible as a Windows-based application.

Maestro's hardware controller must do many different tasks during each one-millisecond epoch of a trial, and it must stay in synch with the trial timeline, which is set by once-per-millisecond interrupts from the analog input device. The associated interrupt service routine (ISR) updates critical runtime variables and sets a "frameshift" flag to abort the trial if the controller's runtime service loop has fallen a full cycle behind the data acquisition timeline. Had we designed the controller as a Windows process, we would observe occasional frameshifts because Windows is not a real-time operating system. In fact, some frameshifts could be missed altogether because interrupt latencies in Windows are sometimes many milliseconds long. The occasional aborted trials, not to mention the far worse possibility that it might fail to detect and discard out-of-synch trials, would render Maestro unusable.

RTX's real-time subsystem (RTSS) provides the solution. Interrupt latencies in RTSS are on the order of 50us or less, averaging ~10us. RTSS threads are always scheduled to run ahead of Windows threads, including those in the kernel. By designing Maestro's hardware controller to run as an RTSS process, we get the real-time deterministic performance we require. Meanwhile, the less time-critical user interface is implemented as a Windows process, taking advantage of the large collection of Windows APIs available for user interface design.

With a Windows-based GUI and the RTX-based hardwared controller running on the same machine, thread scheduling becomes an issue. While executing a trial, the controller must own the CPU during the majority of each 1-ms epoch. On the other hand, when the user is editing experimental protocols in the GUI, the hardware side is idle and should use very little CPU time. Thus, to get the necessary performance on the hardware side without degrading the user’s experience on the GUI side, the application requires adjustable, fine-grained control of process and thread scheduling. One way to achieve this is to strategically place "sleep()" calls throughout the controller's code, but such an approach is unwieldy and difficult to maintain. Instead, using RTX's high-resolution timer and thread management functions, we developed a simple thread suspension manager that periodically suspends the controller's thread to yield the CPU to other threads, including the GUI. By changing the manager's duty cycle and suspend duration, we can easily modify the hardware controller's CPU usage as appropriate to the current operational mode. More recently, with the advent of multi-core processors and RTX support for them, we can improve performance even more by restricting Windows to one core and dedicating the rest to Maestro's hardware controller.

A final benefit of RTX is streamlined device communications. Using the RTX device management API, Maestro's controller can "talk" directly to the hardware, without going through a vendor-supplied driver. Device interactions are narrowly tailored to the minimum device functionality we require, leaving more time during each 1-ms epoch for additional control logic and more device accesses – thereby permitting a richer repertoire of experimental designs.