This page covers some of the frequently asked questions about SITCore product family and its TinyCLR OS.
SITCore is a family of chipsets and modules that allows companies to build IoT and embedded devices using .NET C#. Coding and debugging is done through Microsoft Visual Studio.
The .NET runtime environment is called Common Language Runtime (CLR). SITCore runs a “tiny” version of that runtime, suitable for tiny devices. This tiny version of the CLR is called TinyCLR!
Yes, this is an option; however, unless you are building millions of devices, using one of the off-the-shelf SITCore offerings is more economical and has lower risk.
Safe and secure IoT (Internet of Things) really shines on SITCore devices. You will have a great deal of resources, while running on low-cost, low-power hardware. TinyCLR OS includes sockets for network connection, TLS commercial-grade security, and high-level services like HTTP and MQTT.
In theory, any .NET compiler can be used; however, we are focused on using one of the best and most common development environments, Microsoft’s Visual Studio, today. Using a Windows machine is required.
Students should learn something they will eventually use professionally. Learning C# while using hardware is more engaging and gives the user instant gratification of their work.
The SITCore Experimenter Kit is ideal for new learners, and it is also perfect for C# professional developers who are still hardware novices.
SITCore is like everything else, a tool to help in achieving goals. Not every tool is good for every job, but SITCore covers a wide range and hits a sweet spot between a very low-level, difficult-to-develop system and a large bulky operating system. SITCore will reduce development time with its modern features, running on a simple and economical low-power system. We believe SITCore’s TinyCLR OS is the most rounded tiny operating system that can run on small microcontrollers.
With SITCore, any C# PC/mobile developer can jump in and start coding for hardware. This increases productivity and decreases the need for specialized developers. Also, SITCore is a proven technology that is used by many commercial companies in multiple industries. The provided USA-based support comes directly from the engineers behind SITCore and its TinyCLR OS.
Chances are you already use Microsoft’s Visual Studio or have in the past. This means you already know how to program, and the learning curve to program SITCore devices will be small. If you know C#, you already know how to code any SITCore device. The SITCore Experimenter Kit is the ideal place to get started.
C and C++ languages are the “go to” languages when it comes to microcontrollers. In fact, SITCore’s TinyCLR OS is built using C and C++.
Coding in C and C++ is very powerful, but the problem is that the code is non-portable between systems, there is no run-time error checking, and the tools for compiling and debugging on a commercial level are very costly. C# uses the a similar C syntax and TinyCLR OS includes many libraries, simplifying the developers’ tasks.
There are typically two options for embedded systems. The first is an easy maker-level option, which is probably the easiest way to blink an LED, but the challenges start when the code grows large and debugging becomes necessary. The second option is through using commercial tools, which cost thousands of dollars and require specialized skillsets.
Thankfully, there is now SITCore as a third option, running TinyCLR OS! The intuitive and high level .NET C# is easier to learn, plus code completion available in Microsoft’s Visual Studio makes programming and debugging a breeze. Instead of spending hours looking through documentation, you will spend hours creating and innovating.
TinyCLR OS is not designed to be a real-time operating system. Actually, it promotes the idea of using threads and events to handle tasks. However, since the system is only running your application, there is a level of timing that can be achieved with proper planning.
The managed C# code is compiled to CIL (Common Intermediate Language). On larger systems, the compiled CIL instructions are then compiled to machine code. TinyCLR OS interprets the CIL instructions on the hardware. It is important to remember that while the interpreted code runs slower, the majority of TinyCLR OS is not interpreted. For example, when executing a line to write a string to a file, a few CIL instructions will be executed to pass that string to native file write function. The remainder of the code is all native. Typically 10% of the application is interpreted and 90% is native.
A modern programming language such as C# is managed, meaning there is a system in the back-end to help in managing resources. For example, objects are automatically created when needed and then disposed once no longer in use. The managed system also checks for proper boundaries when using arrays. Memory leaks and attempted access of out of boundary arrays are typically not a concern in a managed system.
You are already halfway there since you already know Visual Studio and C#! The SITCore Experimenter Kit would be the ideal starting point.
Theoretically, any .NET language that is compiled to CIL (Common Intermediate Language) can run on TinyCLR OS. Today, however, we only support C#. Most language features are supported. The limitations docs page has more details.