Christie Series 2 TPC Alternatives

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Caleb Williams
    Pro Film Handler
    • Jun 2022
    • 149
    • Casper, Wyoming, USA

    #1

    Christie Series 2 TPC Alternatives

    Based on inspiration from the thread here: https://www.film-tech.com/vbb/forum/...s-2-tpc-issues

    This thread will include information about alternatives to the oem Christie touch-panel used to control series 2 projectors. The goal of this thread is to provide another way to restore a series 2 projector to full function after the failure of an oem TPC.

    Any solutions posted in this thread are "experimental" and unsupported by Christie. The solutions in this thread aim to provide options where an oem replacement is too expensive, less reliable, or completely unavailable for purchase.

    In this thread we will explore virtualizing the oem TPC software using both Linux and Windows Hyper-V hosts, as well installing the oem TPC software on modern Windows 10 & Windows 11 systems. We will discuss networking requirements, and various caveats to each approach.

    All methods and software in this thread are provided without warranty implied or otherwise. No contributors to this thread will be held responsible for damage to equipment by following the guides herein.

    If you need official repair guides and/or parts please reach out directly to Christie support.
    I'm seeing a trend on the Christie S2 projectors that we support. If one power cycles the projector (full power off, not just going to standby), the TPC (Touch Panel Controller) may not power back on. If one power cycles the system again (sometimes multiple times) it boots back up. Once booted, it behaves. Changing the
  • Caleb Williams
    Pro Film Handler
    • Jun 2022
    • 149
    • Casper, Wyoming, USA

    #2
    TPC Virtualization

    Using a stripped down Debian 12 install, we will create a compact and efficient host to virtualize an instance of the oem TPC system. By virtualizing the TPC in this way, we allow the original Windows XPe system to run exactly as it was intended to run on the oem hardware. This reduces the chance that some functionality might break due to missing dependancies or unsupported hardware. On Debian, we will use qemu-system-i386 as the emulation engine. We will also configure a network interface in bridge mode so that the Debian host system is transparent to the vTPC system. In this way, the projector and the vTPC should communicate the same as they would if the TPC system was not virtualized.

    Minimum recommended host system requirements:
    1x dual-core x86 CPU; 12th generation Celeron or better
    >4GB RAM
    40GB disk space (Debian will use 20GB)
    1x ethernet interface

    Building the system:
    1) Create a Debian 12 netinstall usb stick. Link to Debian mirrors is here: http://ftp.us.debian.org/debian/dists/

    2) On the target system, boot into UEFI settings.
    2a. Enable Power On after power loss setting
    2b. Disable Secure Boot if that is required to boot to usb
    2c. Boot to the usb stick created in step 1.

    3) Install Debian with only the ssh server enabled (No desktop environment or web server)
    3a. When setting up the user, you can specify a root password but it is recommended to skip this step so the regular user has access to sudo
    3b. Create the regular user account (will be used to start minimal desktop environment+X window server). This guide will use the username "kiosk", but it can be personalized
    3c. Once installation has completed, remove the usb and reboot. You should be dropped into a terminal login prompt if everything worked

    4) Log in as kiosk user using the password set in step 3b.
    4a. Install updates using "sudo apt update; sudo apt upgrade -y"
    4b. Install openbox, x11 window server, unclutter, and qemu using the command "sudo apt install -y openbox xorg unclutter qemu-system qemu-utils"
    4c. Set up autologin for kiosk user:
    4ci. Create a tty service using "sudo systemctl edit getty@tty1.service". If it asks to set the default editor, recommend using nano
    4cii. In the file in the open space add the lines:
    [Service]
    ExecStart=
    ExecStart=-/sbin/agetty --autologin kiosk --noclear %I 38400 linux



    ​4ciii. Press control+o to save the file, then control+x to exit the editor
    4civ. Enable the autologin service using the command "sudo systemctl enable getty@tty1.service"
    4cv. Add the following lines to the end of /home/kiosk/.bashrc using "nano /home/kiosk/.bashrc"
    if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then exec startx -- &>/dev/null;
    fi


    4cvi. Repeat step 4ciii.
    ​4cvii.Run "sudo /usr/sbin/reboot"

    After the above steps you should have a basic Debian 12 system that logs in automatically to the "kiosk" user, then starts openbox. If you used a different username, make sure to use that username in the config files

    Virtualizing the TPC
    Obtain a disk image of a real TPC. The best source is a working oem TPC that does not have any known issues. You can use a CF card reader from amazon similar to this one https://www.amazon.com/dp/B08FD423B2...p_mob_ap_share to create a disk image I will attempt to host a copy running 4.8.1 software version on github, however I cannot promise that it will last long-term. Github is here: https://github.com/geekwilliams/christie_vtpc To get to a terminal press "ctrl+alt+f2" or right-click on openbox and select "Terminal emulator".

    1) Use Linux tool "dd" to create a disk image from known-good TPC.
    1a. Power off the TPC completely, then remove the CF card from the known-good unit
    1b. Using the CF reader, plug in the card, then plug the reader into the host system. Use the command "lsblk" to find the CF card's designation. It should be something like /dev/sd[x], (where "x" is the desinator)
    1c. Copy the CF card to a dd image using the command "sudo dd if=/dev/sd[x] of=/home/kiosk/tpc_t650H.dd bs=1M conv=notrunc,noerror status=progress"
    1ci. "dd" is the utility, "if" is the source, "of" is the out-file, "bs" is block size, "conv" is extra options, "status" enables dd to output the progress to the screen
    1cii. Create a backup of the disk image using the command "sudo cp /home/kiosk/tpc_t650H.dd /home/kiosk/tpc_t650.dd.backup

    2) Test the image taken in step one using qemu and make sure it works. In a terminal window on the openbox desktop run the command below to test:
    sudo qemu-system-i386 -drive format=raw,file=/home/kiosk/tpc_t650H.dd -m 2048 -display sdl,gl=off,show-cursor=on -vga std -boot c -cpu host -enable-kvm


    You should see a new window open and the Christie loading screen very quickly.

    3) Configure the network interface:
    3a. Open /etc/network/interfaces using the command "sudo nano /etc/network/interfaces". This file should have contents similar to the following:
    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    source /etc/network/interfaces.d/*

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    iface enp1s0 inet manual

    # bridge interface
    auto br0
    iface br0 inet manual
    bridge_ports enp1s0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0


    Replace "enp1s0" with whatever network interface appears as the primary interface before editing. It could be enp1s0 or something else entirely. Make sure that the option "bridge_ports" also matches the primary interface.

    3b. Run "sudo /sbin/reboot" and confirm that the computer boots. Then open a terminal and type "ip a" You should see output similar to the following:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether e8:ff:1e:d0:96:71 brd ff:ff:ff:ff:ff:ff
    inet 10.120.160.110/24 brd 10.120.160.255 scope global dynamic enxd8eb97bd37d2
    valid_lft 85029sec preferred_lft 85029sec
    3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether da:e9:e0:bc:e9:53 brd ff:ff:ff:ff:ff:ff

    The last two lines should indicate that the bridge interface br0 is UP​
    ​
    4) Now we can add our bridge interface to the qemu instance by adding the lines "-netdev bridge,id=net0,br=br0 -device rtl8139,netdev=net0" to the qemu command. The full command should now be :
    sudo qemu-system-i386 -drive format=raw,file=/home/kiosk/tpc_t650H.dd -m 2048 -display sdl,gl=off,show-cursor=on -vga std -boot c -cpu host -enable-kvm -netdev bridge,id=net0,br=br0 -device rtl8139,netdev=net0

    4a. Confirm that the network interface drivers are installed on the vTPC system. Login to the vTPC using the Christie username and password, then go to Menu->Service Setup->System Access, then click on Computer Management. In the Computer Management window, click on Device Manager, then Network Adapters and confirm the driver is installed for nic. If it not, it will have a question mark next to it. Proceed to the next steps

    4b. Realtek drivers for the T650H oem TPC are available on the github here: https://github.com/geekwilliams/chri...nt/rtl8139.iso I created this iso by using the utility genisoimage. The command was similar to the following: "genisoimage -o rtl8139.iso -J -R /path/to/unzipped/driver/" After obtaining/creating the iso, attached it to the vm by running it again with additional parameters like so:
    sudo qemu-system-i386 -drive format=raw,file=/home/kiosk/tpc_t650H.dd -m 2048 -display sdl,gl=off,show-cursor=on -vga std -boot c -cpu host -enable-kvm -netdev bridge,id=net0,br=br0 -device rtl8139,netdev=net0 -usb -device usb-tablet -cdrom rtl8139.iso
    Repeat step 4a, and install device drivers if necessary
    4c. Configure the interface: After logging into the vTPC go to Menu->Service Setup->System Access->Network Connections. Double click on the "Local Area Connection" then click on the "Properties" button. Double click on "Internet Protocol (TCP/IP), and configure the interface to have an IP address of 192.168.254.242, subnet of 255.255.255.0, and a gateway of 192.168.254.241. Then click OK and exit out of the dialogs.

    4d. Connect the vTPC host to the projector using the network cable inside of the oem TPC housing. Restart the vTPC by logging in and triggering a restart, or by typing ctrl+c in the terminal window that started it, then running the full qemu command again

    4e. To automatically start the vTPC on bootup, work needs to be done to allow the kiosk user to run the command with elevated priveleges and without prompting for a password. This work is in progress

    ONLY RUN ONE INSTANCE OF vTPC AT A TIME WHILE CONNECTED TO A PROJECTOR

    Comment

    • Owen Yang
      Newbie
      • Oct 2025
      • 5
      • china

      #3
      Have you tried installing a TPC virtual machine on ESXi?

      Comment

      • Caleb Williams
        Pro Film Handler
        • Jun 2022
        • 149
        • Casper, Wyoming, USA

        #4
        Originally posted by Owen Yang
        Have you tried installing a TPC virtual machine on ESXi?
        I'm not familiar with ESXi. I've read that it is a VMware product? It really should work. Your only potential hangup is going to be the driver for the network card on XPe. It's so stripped down you have to manually provide and install a driver package for virtualization to work. Would be interested in the result if you end up testing this

        Comment

        • Owen Yang
          Newbie
          • Oct 2025
          • 5
          • china

          #5
          Originally posted by Caleb Williams

          I'm not familiar with ESXi. I've read that it is a VMware product? It really should work. Your only potential hangup is going to be the driver for the network card on XPe. It's so stripped down you have to manually provide and install a driver package for virtualization to work. Would be interested in the result if you end up testing this

          This takes up less space than using Debian, and supports multiple virtualization images

          Comment

          • Caleb Williams
            Pro Film Handler
            • Jun 2022
            • 149
            • Casper, Wyoming, USA

            #6
            For the purposes of this project, I've used Debian and qemu just because they are familiar. There's really no other reason than that.

            After some light reading I've gathered that ESXi could potentially bring performance benefits, at the cost of ease of VM management. ESXi is also proprietary. So if anyone took this and ran with it to try to make a proper product, they would have to pay licensing fees.

            Because of the nature of the system we're trying to virtualize, I don't think it's a good idea to attempt to emulate additional machines with the same computer. The ultimate goal was to make a ~$200 TPC replacement. The NUC used in this project has plenty of power to make a single XPe VM snappy, but I doubt it could handle very many more VM's at the same time.

            It may also be difficult to get devices to work correctly on an XPe VM hosted by ESXi because of EXSi's limited hardware support. You may run into issues on the VM but also connectivity on the host system.

            I did run into some issues with qemu and the router of the projector that would need addressing via the virtual network stack. I think I have some solutions I'll have to post here. Again, ESXi would be interesting to see here

            Comment

            • Leo Enticknap
              Film God
              • Jan 2020
              • 3572
              • Loma Linda, CA

              #7
              Thanks for all this work, Caleb. I've saved a PDF dump of your instructions safely in case they are ever needed. The only potential stumbling block I can encounter is obtaining a good TPC image to work with, but if the CF card in the broken TPC that one is trying to replace is still OK, that should be a good enough donor (with the added bonus that it's pre-configured, and you won't then have to reconfigure the projector from scratch).

              I had a couple of cases during and just after covid involving customers with broken Series 2 TPCs and Christie guesstimating 6-12 months for a replacement being available. This option would have been invaluable then.

              Comment

              • Ryan Gallagher
                Film God
                • Nov 2022
                • 2855
                • Austin, Texas, USA

                #8
                Originally posted by Leo Enticknap
                Thanks for all this work, Caleb. I've saved a PDF dump of your instructions safely in case they are ever needed. The only potential stumbling block I can encounter is obtaining a good TPC image to work with, but if the CF card in the broken TPC that one is trying to replace is still OK, that should be a good enough donor (with the added bonus that it's pre-configured, and you won't then have to reconfigure the projector from scratch).
                From a non-tech single booth perspective, I haven't had time to try Caleb's method yet, and hope I never need to. But I did go ahead and image our CF card in case I ever need to do so from a non-working card situation.

                Our CP2220 is probably on the way out here "soon" though, so unlikely to come up for me.

                Comment

                Working...