How Extron Programming Enhanced the AV Experience at Lawrenceville School


Extron provides ControlScript, their fully-formed and well-documented Python library for use when interfacing with its equipment, making working with devices such as touchpanels and switchers very easy.

 David Glassman, Senior Software Engineer, Control Concepts

New AV for a Historical Institution

Located in central New Jersey, the Lawrenceville School is a private boarding school with a 200-year history of providing excellent educational opportunities. The school’s Abbott Dining Hall uses an Extron DTP CrossPoint 108 4K IPCP SA with multiple DTP transmitters and receivers for local inputs and outputs to route signals to projectors and displays. The system is controlled via two Extron TLP Pro 720M touchpanels through the built-in IPCP Pro control processor within the DTP Crosspoint. All of this is programmed using ControlScript ® and Extron Global Scripter ® Integrated Development Environment.

Overall Experience

Though I had previous experience and was confident in doing general purpose Python programming, the Lawrenceville School project was the first AV system I programmed using Global Scripter, Extron’s Python programming environment. Going into it, I was unsure what challenges might arise that I would not normally encounter while configuring systems. I am happy to say that everything went very smoothly and, though there was a small period of acclimatizing to new processes, surprises were few and far between.

In addition to having access to most of the standard Python library features that I’m used to, Extron also provides ControlScript, their fully-formed and well-documented Python library for use when interfacing with its equipment, making working with devices such as touchpanels and switchers very easy. Third-party device control was also available using Extron’s collection of device modules. Pretty much every module I needed was already available to me when I started the project. Only a single module for a device I needed was unavailable and, rather than requiring me to spend the time, Extron quickly created one for me and it worked the first time.

Why we Chose Python Programming over Configuration

The system wasn’t immensely complex and could have potentially been done using configuration. However, the system design required some functionality that would have made even advanced configuration challenging. In addition, it would have been difficult to make changes should anything in the design have changed during the project. Configuration is very good for what it is, but sometimes you just need a little more flexibility than it offers.

I love Python in general so the experience of programming the system was very pleasurable. It’s a simple yet very powerful language so there was nothing that I wanted to do that I was unable to. I chose to program the system primarily in an object-oriented fashion, passing custom objects around the program, making decisions, and performing actions based on the object and its state. This type of programming makes for very efficient, contained code and it’s just not something that you can do in configuration. Global changes are another reason I preferred Python over configuration in a system like this. Being able to store data in real variables and objects allowed me to make a change in one place and apply it program-wide, which is definitely a time saver.

What Led Towards Successful Completion?

Familiarity with the Python language in general was a big plus for me. In addition, Extron support was top-notch. They provided a dedicated, in-house engineer/programmer to be my primary point-of-contact and help me through any issues on my first project. That was a huge benefit and it gave me the confidence to plow ahead knowing that help, if needed, was only a phone call away. When I did have questions, they were resolved quickly, allowing me to focus on the next task. Overall, programming using Global Scripter with ControlScript and Python was a terrific experience. I’m looking forward to my next project.