An Open Source Building Automation System based on the Raspberry Pi featuring a rich hardware and software architecture targeting small and large commercial buildings. Protocols supported include Bacnet and Modbus over both Ethernet IP and RS485.
| Travic CI(Mono) | AppVeyor |
|---|---|
- msvc14+/mono4.5+/.NET Framework 4.5
- [mail] register3 (at) temcocontrols (dot) com
T3000 Building Automation System - for Linux-Win-Android deployment
-
Install the executable project(Right click on T3000 Project and select the "Set as StartUp Project"

-
Start up(F5 or click to Start)
Preinstall:
sudo apt install mono-complete git nuget
It's install Mono(libraries), Mono-tools(like xbuild), git(for git clone) and nuget(for nuget restore)
Launch:
rm -r -f T3000_CrossPlatform
git clone https://github.com/temcocontrols/T3000_CrossPlatform
nuget restore T3000_CrossPlatform/T3000_CrossPlatform.sln
xbuild T3000_CrossPlatform/T3000_CrossPlatform.sln /p:Configuration=Release
T3000_CrossPlatform/T3000/bin/Release/T3000.exe
Comments:
- Clean directory T3000_CrossPlatform(if exists). It's need for exclude some bugs with reinstall
- Clone the remote repository to the T3000_CrossPlatform directory
- Download all require libraries for the solution from Nuget
- Build project with Configuration=Release
- Run the obtained exe file
Plan:
- Gradually merge Windows T3000 project to this repo.
Here is an overview of the T3 controller hardware , the main processor is the BCM2837 which is on the Raspberry compute module at Tab1. The compute module has 1G ram and 4G flash which gives plenty of room for the typical building automation application.
The Pi compute gpio pins are mainly used up with connecting to peripherals like the LCD, clock and communications ports. The few remaining gpio are allocated to the analog and relay outputs which are on the lower PCB at tab 3. The upper PCB is shown at tab2 and is managed by an auxiliary CPU which communicates to the Pi over SPI. The upper PCB has terminals for the universal inputs, the LEDs and hand-off-auto switches. There many peripherals and communications ports including the Ethernet chip and HDMI port on the lower board at Tab4.
We have refactored the 'Control Basic' language interpreter which is used to write the user programming on the T3 controllers and are working on some Pi hardware drivers.
The control basic language was formally re-created using "Extended Backus-Naur form" or EBNF which is a way of formally specifying a programming language. This eliminates the ambiguities of a written description and allows us to extend the language in a structured way as the project moves along. Here is a graphical representation of the EBNF file for the user programming language in the controller:
Clients have asked for a more modern version of the editor including visual programming options, this is on the roadmap once the main project has been ported over from Windows.
There's plenty of porting and lots of communications drivers to work on still. If you're interested in helping out contributions are welcome.
Maurice



