![]() | ![]() | |
| Make/Model | Device Version | Connection Type |
| PMS/Crystalio II | VPS-3300 and VPS-3800 | Serial |
The Pixel Magic Systems Crystalio II is a fully-featured 1080p scaler and video processor featuring HDMI, SDI and Analog video inputs as well as digital and analog audio inputs. It further boasts two HDMI outputs and an analog output that are active simultaneously (analog is active HDCP allowing) as well as digital and analog audio outputs. The VPS3800 further features HD-SDI inputs, a precision temperature-compensated oscillator and an internal media player with 250GB hard drive.
This is an initial release of this driver. More user testing and feedback is required.
- The Crystalio II does not respond to commands during startup (approximately 25 seconds) and shutdown (approximately 5 seconds). The driver recognizes this and will throw an error if commands are sent during these intervals. Interfaces should System::Pause as needed.
- This driver makes only a subset of the complete command set available.
- The Crystalio II does not asynchronously make status changes available at the RS232 connection, therefore this driver must poll for field updates. To be kind to the Crystalio II, the driver polls in a reasonably leisurely fashion.
- Some firmware versions for the Crystalio II have a bug that causes it to report the output resolution as a random string instead of the correct value. This driver assumes 1080p output should an unsupported value be reported. The author has only witnessed this when outputting 1080p with custom timings but the issue is not necessarily limited to this situation.
- When using the Media Player in the VPS3800 the response time for RS232 queries increases slightly. This driver is tuned to take this into account, but it is possible that future versions of the Crystalio II firmware may make this worse and thus outside the current tolerance.
- PMS have not (yet) implemented commands to control the Media Player component of the VPS-3800.
The Crystalio II runs at 38400 baud and this is not currently changeable. It uses a standard D-pin d-sub connector and PC users will need a null-modem cable to use it. Only three wires are needed: Rx, Tx and ground.
This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...
Name Type R/W Description/Limits AspectRatio String R/W Sets or reads the source video aspect ratio. This is an enumerated field. Allowed values are: 4:3, 16:9, 43LB, 169LB1.85, 169LB2.35, 169LB2.40, Full, 1:1, NLS, Customize. AspectRatioCus Int R/W Sets or reads the custom aspect ratio. This value is used only when AspectRatio is set to Customize. The allowed range of this value is from 100 to 300 where 100 means 1.00. AudioDelay Int R/W Sets or reads the audio delay. The allowed range of this value is -150 to 200. CropBottom Int R/W Sets or reads the amount by which the bottom of the source video is cropped. The allowed range is 0 to 180. CropLeft Int R/W Sets or reads the amount by which the left of the source video is cropped. The allowed range is 0 to 180. CropRight Int R/W Sets or reads the amount by which the right of the source video is cropped. The allowed range is 0 to 180. CropTop Int R/W Sets or reads the amount by which the top of the source video is cropped. The allowed range is 0 to 180. FilmBias Int R/W Sets or reads the bias for film detection. The allowed range is 1 to 9. FilmDetect String R/W Sets or reads the film detection window. This is an enumerated field. Allowed values are: Normal, Small. InputAudio String R/W Sets or reads the audio input. This is an enumerated field. Allowed values are: Analog1, Analog2, Analog3, Digital1, Digital2, Digital3, Digital4, HDMI1, HDMI2, HDMI3, HDMI4, MediaPlayer. InputPassthru_Component1 Boolean R/W When True, signal passthru is enabled for the Component1 input. InputPassthru_Component2 Boolean R/W When True, signal passthru is enabled for the Component2 input. InputPassthru_HDMI1 Boolean R/W When True, signal passthru is enabled for the HDMI1 input. InputPassthru_HDMI2 Boolean R/W When True, signal passthru is enabled for the HDMI2 input. InputPassthru_HDMI3 Boolean R/W When True, signal passthru is enabled for the HDMI3 input. InputPassthru_HDMI4 Boolean R/W When True, signal passthru is enabled for the HDMI4 input. InputPassthru_SDI1 Boolean R/W When True, signal passthru is enabled for the SDI1 input. InputPassthru_SDI2 Boolean R/W When True, signal passthru is enabled for the SDI2 input. InputSelect String R/W Sets or reads the video input. This is an enumerated field. Allowed values are: HDMI1, HDMI2, HDMI3, HDMI4, SDI1, SDI2, Component1, Component2, Component3, Component4, S-Video1, S-Video2, Video1, Video2, Video3, Video4, MediaPlayer. Invoke String W Writing to this field causes the supplied string to be sent to the device (with a line terminator appended). This would be useful for sending commands that this driver does not directly support. This field is always available. OutputBorderH Int R/W Sets or reads the horizontal border. The allowed range is 0 to 999. OutputBorderV Int R/W Sets or reads the vertical border. The allowed range is 0 to 999. OutputRes String R/W Sets or reads the current output resolution. This is an enumerated field. Allowed values are: 480p, 576p, 720p, 1080i, 1080p, 640x480, 800x600, 848x480, 852x480, 856x480, 960x540, 1024x576, 1024x768, 1024x1024, 1280x720, 1280x768, 1280x1024, 1360x768, 1360x1024, 1366x768, 1368x768, 1400x788, 1400x1050, 1440x864, 1440x960, 1440x1152, 1920x1080, 1920x1200. OutputSelect String R/W Sets or reads the current output. Whilst all outputs are active simultaneously, each output has its own set of configuration. This is an enumerated field. Allowed values are: HDMI1, HDMI2, Analog. Overscan Int R/W Sets or reads the overscan amount. The allowed range is -90 to 90. PIPPBPMode String R/W Sets or reads the Picture in Picture/Picture by Picture operating mode. This is an enumerated field. Allowed values are: OFF, PIP, PBP. PIPPBPSubSource String R/W Sets or reads the sub-source video input for Picture in Picture/Picture by Picture modes. This is an enumerated field. Allowed values are: HDMI1, HDMI2, HDMI3, HDMI4, SDI1, SDI2, Component1, Component2, Component3, Component4, S-Video1, S-Video2, Video1, Video2, Video3, Video4, MediaPlayer. Note that there are hardware limitations on which combinations of main-input and sub-input sources work. These do not seem to be enforced by the Crystalio II and simply fail to work. PositionH/PositionV Int R/W Sets or reads the horizontal/vertical position. The allowed range is -99 to 99. Power Boolean R/W Writing: Startup (True) or shutdown (False) the device. Reading: Device is powered on (True) or off (False). This field is always available. RecallImageProfile Int W Loads the specified Image profile. Profiles are numbered from 0 to 9. RecallInputProfile Int W Loads the specified Input profile. Profiles are numbered from 0 to 9. RecallOutputProfile Int W Loads the specified Output profile. Profiles are numbered from 0 to 9. Unless otherwise indicated, these fields are placed into an error state when the power is off to the Crystalio II.
The complete RS232 command set and associated documentation for the Crystalio II can be found in a PDF at this support page. Further descriptions of the functions of these fields may be found in the Crystalio II user manual, also available at the PMS support site.