Skip to main content

Library to control XY Screens projector screens and projector lifts.

Project description

Python library to control XY Screens projector screens and lifts

Python GitHub Release Licence Maintainer
Github Sponsors PayPal BuyMeCoffee Patreon


This python library lets you control XY Screens projector screens and lifts over the RS-485 interface.

XY Screens is an OEM manufacturer of projector screens and lifts, their devices are sold around the world under various brand names.


  • Calculates screen position
  • Synchronous and asynchronous methods
  • Uses Callbacks for asynchronous methods


I use a cheap USB RS-485 controller to talk to the projector screen where position 5 of the RJ25 connector is connected to D+ and position 6 to the D-.


See the documentation of your specific device on how to wire yours correctly.


If your devices follows the following protocol it's supported by this Python library:

2400 baud 8N1
Up command : 0xFF 0xAA 0xEE 0xEE 0xDD
Down command: 0xFF 0xAA 0xEE 0xEE 0xEE
Stop command: 0xFF 0xAA 0xEE 0xEE 0xCC

Supported projector screens and lifts

The following projector screens is known to work:

  • iVisions Electro M Series

The following projector screens and lifts are not tested but use the same protocol according to the documentation:

  • iVisions Electro L/XL/Pro/HD Series
  • iVisions PL Series projector lift
  • Elite Screens

Please let me know if your projector screen or projector lift works with this Python library so I can improve the overview of supported projector screens and lifts.


You can install the Python XY Screens library using the Python package manager PIP:

pip3 install xyscreens

xyscreens CLI

You can use the Python XY Screens library directly from the command line to move your screen up or down or to stop the screen using the following syntax:

Move the screen down: python3 -m xyscreens <serial port> <time> down
Stop the screen: python3 -m xyscreens <serial port> <time> stop
Move the screen up: python3 -m xyscreens <serial port> <time> up

Where <time> is the time in seconds to move the screen down, respectively up. The process will wait till the screen is down/up and show the progress.


You can add the --debug flag to any CLI command to get a more details on what's going on. Like so:

python3 -m xyscreens <serial port> <time> down --debug

Support my work

Do you enjoy using this Python library? Then consider supporting my work using one of the following platforms, your donation is greatly appreciated and keeps me motivated:

Github Sponsors PayPal BuyMeCoffee Patreon

Hire me

If you're in need for a freelance Python developer for your project please contact me, you can find my email address on my GitHub profile.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xyscreens-0.1.1.tar.gz (13.6 kB view hashes)

Uploaded Source

Built Distribution

xyscreens-0.1.1-py3-none-any.whl (11.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page