Mikro Pro Compilers: How does the AI fit in?
Michael Havenga
Embedded Solutions - PIC Microcontroller Consultant (8BIT) | PCB & Firmware | APPs
If like me you are or were looking for an affordable and easy-to-use high-level language compiler for your PIC projects, then MikroC was just what you needed just in time. The MikroC Compiler also offered a demo version that allowed you to do enough for testing or basic things and once you went on to something more complicated and by implication commercial, you bought your license.
MikroC Pro followed suit, and along with this regular updates and a compiler that, although not perfect or bug-free, was also supported by a growing ecosystem and toolchain of bits and pieces to help you develop your projects and applications.
Then along came mikroBus. MikroBus, as a development standard, looked really great at the outset. A shield or click board with a standard pinout across the range was supplied with sample code. This was great and was almost a no-brainer. Buy the board, test the code, and viola we either use it in the design or chalk it up to fun with something new.
Then things started to change. The MikroBus SDK made its debut and when you work with it there are many positives. A coding pattern that can make it easier, and a set of drivers that work with the standard Mikroe Development ecosystem across the many architectures they support.
However, this new coding pattern means a complete change from you what you are used to, to a Mikroe centric coding pattern not clearly documented or explained anywhere - well, unless fudging your way through many code samples and figuring things out is tantamount to documentation.
The downside to the SDK is that (and correct me if I am wrong), the SDK really supports the Mikroe development boards. So, that means that if your micro has two comports and the dev board 1, then you have to mix and mash legacy coding with the MikroBus standard to access and get the second comport to work.
Mikro Pro Compilers and their Future
I have has some email communication from MikroE about the compilers. And the questions I posed, I felt were reasonable.
1. When will MikroC get its next update?
2. Will Mikroe support both the Pro and AI compilers concurrently?
To both the above questions, the answers were that there was no update planned for the Mikroe PRO compilers and that no official decisions have been made.
If you are a Mikro PRO user, you will notice that the recent click boards being released don’t have code samples for the Pros anymore, just the AI compilers. What can we infer from this?
It does seem that MikroE is trying to push the client base into the AI arms. You can download the current version as a fully working compiler with a 90 day trail. The AI compilers do allow you to choose from many project types, one which includes what they call “Legacy Project” - so your older Mikro Pros are supported . . . maybe. I would need to play more with the AI Compiler.
I have personally downloaded and started using the AI for PICS C and apart from a few nuances to get it running, it does seem to be going to great lengths to be “cool”.
I am however concerned about a number of things, the foremost of which is my initial investment in the license purchase. To be sure, I am sure my $249 dollars for the MikroC Pro was used up a long time ago and the term “ product lifetime” perhaps meant something different then.
Since I am a PIC user, I want to get stuck in with the new Q families and the support desk confirmed that the MikroC PRO would most likely not be updated to support them. So, I am looking down the barrel of purchasing the AI license.
While, “looking down the barrel” may seem a bit dramatic, that does seem to be the unavoidable outcome. While I am aware that the actual programming philosophy, the architecture behind the Mikroe Pro compilers is aging and maybe even holding Mikroe back as potential product liability, I still have to consider the future planning of my business.
While there are alternatives to the Mikroe PRO and AI compilers, the Mikroe guys offer support in the form of libraries and a toolchain that is adaptive and continues to offer value.
The one grudge point is that for the new click boards, I have to use the MikroBus SDK. Ie there is no free-standing code sample. From a design and engineering perspective, this means my deployed application hardware has to mimic the logical architecture of a Mikroe development board to work… that can be a bit of a problem, especially if the device you want to use is on the fringes of popularity and unsupported or not fully supported by the SDK. Also, what if there are just issues or bugs that are a low priority to fix. A stand-alone code sample for each micro click board would have made sense to me, but then I don’t have the tope down, bird’s eye view of Mikroe.
We will know soon enough where we stand when MikroE either official or unofficially makes that move which makes it clear what the future of the Mikro Pro compilers is. Until then, I have found that some of the older pics pack a lot of punch vs their newer buddies in the Microchip arsenal. True, they may be more expensive, but I can code and support them and with Microchip's no end-of-life policy, I may very well be able to dodge the AI bullet for the time being.
Disclaimer: All trademarks in this article remain the intellectual property and their respective owners. The opinions and content are for information purposes only and are considered correct at the time of publishing, however, no liability is accepted where there are errors or omissions.
[E]