The ep5 Educational Broadcasting Foundation

education in technology for schools and public broadcasting

ep5BAS — How Will It Work?

control operator
This remarkably uninteresting image will be replaced with a picture
of our software testbed...once we finish assembling it

Axiomatically, the more general a tool is, the greater the number of potential applications for it. Thus, a screwdriver finds more uses than does a soldering iron. Numerous specialized automation software development tools exist, but their capability is limited to what has been designed into them. If your need to control something falls outside of this range, the tool does not work. What software tool can be more ubiquitous and therefore more powerful than a major general-purpose programming language, such as C#?

How does ep5BAS make automation feasible for the beginning programmer while remaining sufficiently powerful and sophisticated enough to get most jobs done? The key to making ep5BAS understandable is modularity accompanied by well-written explanatory documentation. Knowing what each block of functionality does means that the programmer with less experience can assemble a useful program without needing to reinvent the basics. In short, ep5BAS is from the inception designed to be programmer-friendly.


ep5BAS is essentially C# source code, organized into modules suited to incorporation into user programs as needed. It takes the form of complete Visual Studio 2022 solutions, downloadable as ZIPfiles. Precisely how it'll feature on GitHub remains to be decided. In all events, we will ensure that it's readily and easily available, enabling the individual user to do with it as she thinks best.

Emphasis will always be placed on documentation that actually provides useful insight into the code. Source code will be formatted for readability, with rational indenting and with source files of appropriate length.

Will there be usable-out-of-the-box automation applications, as well? At first, likely not, as the very nature of automation requires that it serve the specifics of the particular circumstances. However, finished programs demonstrating various features may well be incorporated into the ep5BAS business model.

We're flexible.


How does ep5BAS fit into the process of constructing a building automation system? It provides a convenient starting point, at once both singularly useful and usable. It can be thought of as a “toolbox” in the “programming cookbook” sense.

In software development, “reusability” has become a buzzword, a cliché bandied about routinely. However, ep5BAS is built on the concept of reusable/mutable modules which can easily be picked off the shelf, tweaked as necessary, and plugged into the user's program. For the part-time programmer, modifying an existing proven block of code to suit always works better than will struggling to write it from the ground up. It should be noted that ep5BAS is not a course in Computer Science at the local polytechnic; rather, it's a tool for the construction of working software, as quickly and as easily as possible.

The purpose of ep5BAS is not to run your building or process. That will always be the responsibility of the individual programmer. ep5BAS slots into the development cycle as a construction tool, usable by the part-time (or full-time) programmer to do a better job of creating the required automation software.


The ideal software developer knows everything about every aspect of programming and is able to quickly assemble applications which embody the highest levels of reliability, efficiency, and user-friendliness. Unfortunately, this paragon always works in someone else's shop. The rest of us find that, no matter how many times we read the LRMs and the APIs, a really good sample program works best to make a programming technique work in our own code. We may be able to swipe the code intact, we may need to make changes either simple or complex, we may need to devote hours to making it work on our terms, but that sample code is often a lifesaver. ep5BAS will be just that: sample code writ large, optimized to enhance its value to the not-quite-expert developer.