[RELEASE] Epson Projector Driver

Releasing Epson Projector Driver that works with Epson Home Cinema projectors.

Installation Options

How to Use

  1. Install the driver
  2. Add a virtual device with the type set to the driver
  3. Set the IP address of the projector in the preferences
  4. Click "Save Preferences"


  • Turn on and off projector
  • Get status
  • Get and set source
  • Get lamp runtime hours
  • Poll projector every X seconds when offline

Turning On

You must set the Standby Mode to Standby Mode: Communication On or equivalent for your model so that the driver can turn on the projector when it is in standby. If you have this setup, you don't need to poll the projector every X seconds.


Tested on models:

  • Epson 4010UB Home Cinema
  • Epson 5050UB Home Cinema

Not Supported

Driver does not support projectors that require a password to access it over the network.


How do you use this? It installs a driver but i don't see any way to utilize it?

Create a new virtual device with the driver and set the IP address

I can confirm that this driver also works with the Home Cinema 4010. Thanks @amosyuen !

Good to know! Added it to the list of tested devices

So I wanted to mention something I've noticed after using this driver for a while - it seems to time out and go offline at some point. Here's the scenario: I have this device connected to Alexa, because that is how I want to turn it on and off. But when I run the Alexa routine the first time, it doesn't come on. If I wait 20-30 seconds and run it again, it works. So it seems after some time has elapsed, it stops listening for the on command. The first try on the routine wakes it up, and then the second one actually turns it on. Here's the log (if it helps):

dev:228-2021-07-25 13:21:16.666 traceparse: value=
dev:228-2021-07-25 13:21:16.655 traceparse: hex=
dev:228-2021-07-25 11:22:41.837 debugrefresh
dev:228-2021-07-25 11:22:31.800 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:31.797 traceparseResponse: response=IMEVENT=0001 01 00000000 00000000 T1 F1
dev:228-2021-07-25 11:22:31.791 traceparse: value=IMEVENT=0001 01 00000000 00000000 T1 F1
dev:228-2021-07-25 11:22:31.787 traceparse: hex=494D4556454E543D303030312030312030303030303030302030303030303030302054312046310D3A
dev:228-2021-07-25 11:22:28.765 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:28.763 debugparseResponse: Unhandled response=ERR
dev:228-2021-07-25 11:22:28.760 traceparseResponse: response=ERR
dev:228-2021-07-25 11:22:28.746 traceparse: value=ERR
dev:228-2021-07-25 11:22:28.744 traceparse: hex=4552520D3A
dev:228-2021-07-25 11:22:28.654 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:28.652 traceparseResponse: response=IMEVENT=0001 04 00000000 00000000 T1 F1
dev:228-2021-07-25 11:22:28.636 debugsendCommand: cmd=534F555243453F0d
dev:228-2021-07-25 11:22:28.632 debugupdateStatus: status=cooldown value=3 on=true
dev:228-2021-07-25 11:22:28.630 traceparseResponse: response=PWR=03
:IMEVENT=0001 04 00000000 00000000 T1 F1
dev:228-2021-07-25 11:22:28.611 traceparse: value=PWR=03
dev:228-2021-07-25 11:22:28.604 traceparse: hex=5057523D30330D3A494D4556454E543D303030312030342030303030303030302030303030303030302054312046310D3A
dev:228-2021-07-25 11:22:28.349 debugsendCommand: cmd=5057523F0d
dev:228-2021-07-25 11:22:28.132 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:28.120 traceparse: value=:
dev:228-2021-07-25 11:22:28.118 traceparse: hex=3A
dev:228-2021-07-25 11:22:28.060 debugsendCommand: cmd=505752204F46460d
dev:228-2021-07-25 11:22:28.058 debugoff
dev:228-2021-07-25 11:22:27.333 debugrefresh
dev:228-2021-07-25 11:22:17.298 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:17.280 debugparseResponse: lampHours=on
dev:228-2021-07-25 11:22:17.278 traceparseResponse: response=LAMP=116
dev:228-2021-07-25 11:22:17.258 traceparse: value=LAMP=116
dev:228-2021-07-25 11:22:17.255 traceparse: hex=4C414D503D3131360D3A
dev:228-2021-07-25 11:22:17.129 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:17.120 debugsendCommand: cmd=4C414D503F0d
dev:228-2021-07-25 11:22:17.117 debugparseResponse: source=A0
dev:228-2021-07-25 11:22:17.115 traceparseResponse: response=SOURCE=A0
dev:228-2021-07-25 11:22:17.100 traceparse: value=SOURCE=A0
dev:228-2021-07-25 11:22:17.098 traceparse: hex=534F555243453D41300D3A
dev:228-2021-07-25 11:22:16.995 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:16.984 debugsendCommand: cmd=534F555243453F0d
dev:228-2021-07-25 11:22:16.980 debugupdateStatus: status=on value=1 on=true
dev:228-2021-07-25 11:22:16.979 traceparseResponse: response=PWR=01
dev:228-2021-07-25 11:22:16.947 traceparse: value=PWR=01
dev:228-2021-07-25 11:22:16.945 traceparse: hex=5057523D30310D3A
dev:228-2021-07-25 11:22:16.851 debugsendCommand: cmd=5057523F0d
dev:228-2021-07-25 11:22:15.813 debugrefresh
dev:228-2021-07-25 11:22:05.772 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:05.755 debugparseResponse: lampHours=on
dev:228-2021-07-25 11:22:05.752 traceparseResponse: response=LAMP=116
dev:228-2021-07-25 11:22:05.738 traceparse: value=LAMP=116
dev:228-2021-07-25 11:22:05.736 traceparse: hex=4C414D503D3131360D3A
dev:228-2021-07-25 11:22:05.644 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:05.634 debugsendCommand: cmd=4C414D503F0d
dev:228-2021-07-25 11:22:05.631 debugparseResponse: source=A0
dev:228-2021-07-25 11:22:05.629 traceparseResponse: response=SOURCE=A0
dev:228-2021-07-25 11:22:05.614 traceparse: value=SOURCE=A0
dev:228-2021-07-25 11:22:05.612 traceparse: hex=534F555243453D41300D3A
dev:228-2021-07-25 11:22:05.466 debugparse: Confirmation of command
dev:228-2021-07-25 11:22:05.457 debugsendCommand: cmd=534F555243453F0d
dev:228-2021-07-25 11:22:05.453 debugupdateStatus: status=on value=1 on=true
dev:228-2021-07-25 11:22:05.452 traceparseResponse: response=PWR=01
dev:228-2021-07-25 11:22:05.437 traceparse: value=PWR=01
dev:228-2021-07-25 11:22:05.435 traceparse: hex=5057523D30310D3A
dev:228-2021-07-25 11:22:05.383 debugsendCommand: cmd=5057523F0d
dev:228-2021-07-25 11:22:04.345 debugrefresh
dev:228-2021-07-25 11:21:54.310 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:54.295 debugparseResponse: lampHours=on
dev:228-2021-07-25 11:21:54.293 traceparseResponse: response=LAMP=116
dev:228-2021-07-25 11:21:54.278 traceparse: value=LAMP=116
dev:228-2021-07-25 11:21:54.273 traceparse: hex=4C414D503D3131360D3A
dev:228-2021-07-25 11:21:54.133 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:54.124 debugsendCommand: cmd=4C414D503F0d
dev:228-2021-07-25 11:21:54.121 debugparseResponse: source=A0
dev:228-2021-07-25 11:21:54.120 traceparseResponse: response=SOURCE=A0
dev:228-2021-07-25 11:21:54.108 traceparse: value=SOURCE=A0
dev:228-2021-07-25 11:21:54.106 traceparse: hex=534F555243453D41300D3A
dev:228-2021-07-25 11:21:53.983 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:53.974 debugsendCommand: cmd=534F555243453F0d
dev:228-2021-07-25 11:21:53.970 debugupdateStatus: status=on value=1 on=true
dev:228-2021-07-25 11:21:53.969 traceparseResponse: response=PWR=01
dev:228-2021-07-25 11:21:53.956 traceparse: value=PWR=01
dev:228-2021-07-25 11:21:53.955 traceparse: hex=5057523D30310D3A
dev:228-2021-07-25 11:21:53.863 debugsendCommand: cmd=5057523F0d
dev:228-2021-07-25 11:21:52.826 debugrefresh
dev:228-2021-07-25 11:21:42.788 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:42.773 debugparseResponse: lampHours=on
dev:228-2021-07-25 11:21:42.771 traceparseResponse: response=LAMP=116
dev:228-2021-07-25 11:21:42.759 traceparse: value=LAMP=116
dev:228-2021-07-25 11:21:42.757 traceparse: hex=4C414D503D3131360D3A
dev:228-2021-07-25 11:21:42.634 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:42.624 debugsendCommand: cmd=4C414D503F0d
dev:228-2021-07-25 11:21:42.621 debugparseResponse: source=A0
dev:228-2021-07-25 11:21:42.620 traceparseResponse: response=SOURCE=A0
dev:228-2021-07-25 11:21:42.608 traceparse: value=SOURCE=A0
dev:228-2021-07-25 11:21:42.606 traceparse: hex=534F555243453D41300D3A
dev:228-2021-07-25 11:21:42.483 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:42.474 debugsendCommand: cmd=534F555243453F0d
dev:228-2021-07-25 11:21:42.470 debugupdateStatus: status=on value=1 on=true
dev:228-2021-07-25 11:21:42.468 traceparseResponse: response=PWR=01
dev:228-2021-07-25 11:21:42.456 traceparse: value=PWR=01
dev:228-2021-07-25 11:21:42.454 traceparse: hex=5057523D30310D3A
dev:228-2021-07-25 11:21:42.407 debugsendCommand: cmd=5057523F0d
dev:228-2021-07-25 11:21:41.362 debugrefresh
dev:228-2021-07-25 11:21:31.306 debugparse: Confirmation of command
dev:228-2021-07-25 11:21:31.292 debugparseResponse: lampHours=on
dev:228-2021-07-25 11:21:31.290 traceparseResponse: response=LAMP=116
dev:228-2021-07-25 11:21:31.278 traceparse: value=LAMP=116
dev:228-2021-07-25 11:21:31.276 traceparse: hex=4C414D503D3131360D3A
dev:228-2021-07-25 11:21:31.155 debugparse: Confirmation of command

Is it possible to send a notification to the projector like if LG tvs? I’d love to be able to notify on screen when kids are out of their bedrooms. Lol.

I’m running remux files through Plex on a nvidia shield pro.