Frequently Asked Questions
From Pigmeo - .NET/Mono/CLI (C#, VB.NET, C++/CLI, Nemerle...) for microcontrollers (PIC, dsPIC, AVR...)
Frequently Asked Questions about the Pigmeo Project
What's its license?
All programs and libraries provided by the Pigmeo Project are open source and free software. See Pigmeo Licenses.
What hardware architectures are supported?
What microcontrollers are supported?
Are you affiliated to Microsoft, Novell or any other company?
Is it really free?
Absolutely. Free as in "no cost" and also as in freedom.
Do you have any problem with patents?
No. Pigmeo is free software, and everything used by Pigmeo is also free software of standarized languages (such as C#) and libraries (such as the .NET Framework) not prone to patent violations.
Does C#/.NET applications run on linux?
Yes. As in any other operating system you just need to install a CLI/.NET/Mono CLR (virtual machine). See Mono Project.
Can I use the .NET Framework in my apps for microcontrollers?
Yes, you can call any library from your programs, including those found in the Pigmeo Framework, .NET Framework, Mono Framework, or third-party libraries, as long as they are managed code.
I've just found some useful code (or library) in the forums (or somewhere else), can I use it?
Yes, as long as it is managed code, but we extremely discourage it. If that code is useful and good enough, it will be integrated into Pigmeo Framework. If we haven't integrated it into Pigmeo Framework that's because you shouldn't use it.
Aren't object-oriented and garbage-collected languages very inneficient?
It depends on what your program really does. Pigmeo Compiler can usually generate binaries as efficient as C or even assembly language code.
Also, Pigmeo Compiler has a bunch of optimizations not available in commercial C compilers, so it can generate binaries even more efficient than other compilers.
Anyway, you always have the choice to write your code not-object-oriented and without using the classes available in the Pigmeo Framework, the same way you write code in assembly or C.
What is a device library?
Device libraries are .dll files named after a specific microcontroller device that contains all the information required by Pigmeo Compiler about that device, plus all the variables, classes, objects, structs and functions you need when you are developing your application for that device.
Examples of device libraries: PIC16F877A.dll, PIC16F716.dll, dsPIC30F6010A.dll...
Can I access low-level registers instead of using classes from the Pigmeo Framework?
Of course. Those classes available in the Pigmeo Framework are designed to be easy to use, so you don't need to implement complex interfaces and protocols by yourself, but if you want to learn how things work you can access the microcontroller registers as you do in assembly and C.