Announcement

Collapse
No announcement yet.

Christie Series 2 TPC Alternatives

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

  • #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

    Working...
    X