A Modern Crestron Programming Strategy

A large majority of end-users and businesses understand the pace at which technology advances in the modern world. As a Crestron Service Provider, we often have to be more pragmatic regarding the efficacy of programming strategies underlying our business processes. I would argue, that the primary goal should be to maximize value. This ensures that the decisions being made are optimized to reduce senseless changes that add little or no value to the business or your customers. Beneficial decisions will naturally follow with such a mindset.

SIMPL# Pro is one such technology that can add unparalleled value to your control system solutions. To many Crestron programmers with their adolescent knowledge of the Microsoft C# language, it seems unfamiliar and peculiar. This stems from the fact that many programmers were never required to learn C# programming in the past. Consequently, some programmers dismiss the idea entirely; a mistake that can lead to a myriad of lost opportunities. As a zealous C# programmer having an award from Microsoft on the topic, I believe I have enough credibility to suggest a case for both sides. Let’s discuss the disadvantages first, following a list of advantages.

Note: “SIMPL#” is a Crestron term for their programming solution that utilizes the Microsoft C# programming language. SIMPL# Pro allows Crestron programmers to write control system programs entirely in C#.


  1. SIMPL# Pro is more difficult to learn, in which the learning curve of both SIMPL Windows and SIMPL+ pales by comparison.
  2. SIMPL# Pro library documentation is still a work in process. (This makes many things a journey of trial and error, which can be added complexity for someone who is trying to learn the C# language at the same time. The libraries themselves also do not come without their quirks.)


  1. SIMPL# Libraries can be used to extend the functionality of a program written in SIMPL Windows, but not without limitations. (i.e. Types have to be “translated” to SIMPL+ compatible ones which can reduce the versatility of the underlying functionality, the SIMPL+ cross compiler contains bugs, etc.) This leads to an implied benefit in having everything encapsulated within the SIMPL# Pro environment, without having to adapt the information to comply with the limited boundaries of SIMPL+.
  2. You can create hardware at runtime dynamically. (In comparison to SIMPL Windows programs, where you have to hardcode the combined hardware definitions before compilation, regardless of whether you’re remapping devices or not.)
  3. The controller definition is entirely dynamic. What I mean, is that you can write a single program that is designed to support a DMPS of any type, or even have a program that can support a CP4 and a PRO4 simultaneously.
  4. C# source code allows you to utilize source control the way it was intended to be used. (SIMPL Windows files that define the symbols and signals within a program aren’t managed by the programmer directly, making diffs completely useless.)
  5. The C# language allows you to represent data without restricting you to a maximum of 16-bit integers. You can use primitive types that hold 64-bit values, and even use classes that can support much larger such as BigInteger. It also gives you the ability to use IEEE 754 floating point datatypes such as float and double, as well as the decimal type when you need greater precision.
  6. Being able to use IDE’s like Visual Studio or JetBrains Rider gives you the ability to be vastly more efficient with your workflow. These tools are used by millions of developers around the world, and are fine tuned to accommodate many different use cases and features.
  7. The ability to use a fully fledged CI/CD pipeline to automate build and deployment processes for agile software development is invaluable. We now have far more capabilities in the context of improving testability as well, with unit tests that can also be automated. (Note: This is made even easier with the 4-series platform, which relies on the Mono runtime.)
  8. Reusability is often an overlooked benefit, in the shadow of change that many old school Crestron programmers have a distaste for. The gates are now nearly wide open for programmers to use virtually any open-source .NET library they want, as long as they comply with any applicable license agreements. Abstract C# code when written properly, is also inherently more reusable than code written in SIMPL Windows due to the nature of true polymorphism.
  9. You can also create extremely useful console commands for a multitude of purposes. Unlike with user program commands in SIMPL Windows, inside of a SIMPL# Pro application, you have access to any part of the program memory in terms of “state.” In SIMPL Windows, that state is isolated between each symbol, unless you’ve created signal ties between symbols, or you’ve created a SIMPL# library that allows you to share memory between instances of an object that only those symbols use.

From a business perspective, it may be difficult to transition to SIMPL# Pro initially. Although, I suspect many will be forced to make the leap within the next few years, with the slow but obvious transition towards more open technology. With the advent of HTML5 and JavaScript inside the Crestron ecosystem, there may even come a point when SIMPL Windows and SIMPL+ are no longer viable solutions. Even if they are still remain available options in the future, I sure wouldn’t want to be the one bringing a knife to a gunfight!

To learn more about SIMPL#, we have developed a popular SIMPL# Fundamentals course that allows people to get their foot in the door. The course has proven to be a valuable resource for Crestron Dealers and CSP’s, regardless of whether their programming staff has beginner or intermediate knowledge on the subject. This course can be found here: https://www.tbdenterprises.ca/product/simplsharp-fundamentals-course. In the next couple months, we also hope to be unveiling a brand new course that focuses exclusively on SIMPL# Pro. Our goal is to leverage our extensive knowledge of the C# language to fill in the gaps for those who still find this technology confusing in the context of Crestron control systems.

Are you maximizing efficiency in your workplace?


A ubiquitous goal among every business is to reduce unnecessary costs to maximize profit margins, like a balance scale of sorts. Successfully making progress regarding cost reduction, can lead to greater opportunities and greater potential. Having the ability to reinvest more money back into the business to provide a better workplace for your employees, and better goods and services for your customers, is quintessential to a company’s’ growth. With 2020 being a challenging year for many to say the least, it is almost fully underway and 2021 is finally around the corner. The New Year is a time for many individuals and companies to reflect on the past year to plan for success in the following year.

Reflecting on how your company conducts meetings, I want you to ask yourself a few questions:

  1. Have your meetings added enough value to your business in the past? (If the answer is no, what could be done better?)
  2. Were there any technical challenges? How much productivity was lost as a result?
  3. How much time are you spending on organizing, or preparing meetings?
  4. With the new COVID-19 era, what safety precautions have you determined to be a best fit for your business operations to proceed with less concerns around health and safety?

There are many issues with the way most meetings are run. Opening up the discussion to determine what problems your business is facing, becomes the first step towards a solution.

Studies at Harvard University have shown that the most successful meetings consist of smaller groups; typically between 5 to 8 people. Meeting organizers are sometimes unsure on who should be on the invite list. However, as with emails, this typically ends up with everyone being invited as a precautionary measure, leading to some inadvertent consequences. The problem, is that larger meetings tend to suffer from less collaboration and engagement, since larger groups are consequentially less “personal” than meetings consisting of smaller groups. A downward spiral can ensue, causing your attendees to take meetings less seriously, influencing them to be less prepared, and meetings can habitually drag on. Aside from re-educating the organizers to figure out who the key stakeholders are that should be in a given meeting, another strategy would be to make it easier for the organizer to create and finalize a scheduled meeting; allowing them to focus on forming a productive meeting. There are many technological solutions that can solve this problem, with the added benefits of simplicity, uniformity, standardization, as well as increased efficiency and health safety. Control system applications can be configured for room scheduling, availability, and even make ad-hoc meetings easier to organize more immediately.

Technical challenges can also be solved by integrating a well-planned control system solution; making difficult and/or menial/repetitive tasks a breeze! Psychologically, the brain fundamentally operates significantly better with a positive state of mind and less distractions. Don’t let technical difficulties alter the capacity of which your employees are conducting business operations.

Meetings are usually a critical part of any key business decision making process. If a meeting takes 10 or 15 minutes to set up, a substantial amount of time and productivity is being wasted. If you could buy that time back, it becomes a no-brainer when considering the aggregated measurement of productivity lost over the span of even just a single calendar year. Control system automation can be fine tuned for standard meeting rooms to ensure that the meeting is ready to go by the time the first participant shows up. Resources to train staff on how to use meeting rooms can also become less necessary, especially when the user experience can be standardized across an entire building. Simplicity adds great value in terms of efficiency, and your employees won’t lose their train of thought for the meeting agenda, due to meeting preparation.

Working from home

As COVID-19 took the world by storm, and opened many eyes, there became many new requirements to consider. One such consideration, is how to ensure that the digital workplace imposes less of a health risk to key stakeholders within a business? The workplace quickly transformed into variations, ranging from entirely remote operations, to hybrid meeting spaces, and even “touchless” solutions to reduce human to human germ transmission. Once infrastructure is in place, and security implications have been addressed, the cost savings of having the ability to collaborate remotely simply cannot be ignored. Technology, being the cornerstone of nearly every possible solution to these problems, has since been adopted by many organizations across the globe. Revisiting efficiency in the context of number of meeting participants, and in addition to controlling capacity, solutions which leverage machine learning can be deployed. A number of camera manufacturers now provide capabilities for people counting, which can be used to collect data for reasons regarding health and safety, compliance, and a myriad of other reasons. In a world where data is king, you’ll want to be sure that the data is there when you want to review it in the future. Without data, making smart decisions that can impact business operations becomes nearly impossible.

If your business is struggling to find the right solution that fits your operating requirements and key needs, don’t hesitate to reach out for assistance! We believe that it isn’t worth the headache and cost implications of not making improvements in these areas, or attempting to solve it by trial and error. Don’t hesitate to reach out to one of our experienced team members if you’d like to learn about how we can help you improve your business’ collaboration workflow. Our goal is to help you attain peace of mind while having the ability to focus on other areas of your business that require more urgent attention.