MPLAB X is Microchip’s newest integrated development environment (IDE). It’s a follow-on from the venerable MPLAB IDE that is somewhere near version 8.8 these days, and probably won’t ever get to version 9.
We’ve been using Microchip’s development tools since the chips were one-time-programmable, and special UV light erasers were used to blank memory in windowed ICs between code tests. I can’t remember the name of the first programmer we used, but it seems like it was DOS based. Things have changed over the years, including the prices. At one point we were knee deep in $1,000 emulators with $250 device modules and $100 package adaptors. Now you can get 90% of that emulation for $50, using the PICKit3. C compilers ranged from a few hundred dollars to several thousand. Now they are free (if you can live without optimization). A lot has changed, and really for the better.
But whenever there’s a change like this I always get a little nervous. Part of that is because we make a living using these tools. Whenever a company comes up with some “new and awesome” software I wonder if it’s going to be a time vampire, and have me learning a new interface instead of doing engineering. I guess Microsoft’s operating system changes over the years have conditioned me to skip upgrades to avoid the early adopter morass. I think their may be some connection between Windows operating systems and Star Trek movies. Every-other-one seems to be good.
For embedded control engineering projects software upgrades creates some issues. It is common for a customer to come back to us after 5-10 years and want something changed. When our computers have changed, and our C compilers/development environments are different, then simple changes become time consuming tasks. However, if you don’t upgrade your software you end up missing efficiencies built into the new interfaces that take advantage of modern computing.
I avoided MPLAB X for a while. But in the last month I’ve started using it. The first effort was some simple tests using a PIC32 Ethernet Starter kit done as part of a research project. That experience did not go very well. In Microchip’s documentation you find pieces of information all over the place, and as the chips and designs get more complex there is an information overload that kicks in. I had one computer with half a dozen 200 page documents open, and another running the IDE. I was also using a pre-generated “application” that Microchip provides to evaluate an embedded TCP/IP stack. That made the entire effort opaque and cumbersome.
I eventually got some tests done, but MPLAB X seemed to hang, work in spurts, and regularly have the emulator drivers re-configured for MPLAB X using an external program. How much of this was the application, the IDE, the debugger built into the test board? Don’t know.
This week I took it up again for a much smaller project. I began writing code for the Servo and Motor Controller project that uses a PIC16F1829. I was able to start this design from scratch, and use Microchip’s XC8 free C compiler (causing even more trepidation). My experience so far though has been good. Microchip has implemented some neat features, including auto-complete when typing special function register structures/macro names. There’s a navigator window that displays structures, functions, and constants for the file you have under focus. Switching between production and debugger versions of the program you are writing is now a more automated process. I’m also using the PICKit3 which doesn’t require the driver switching between MPLAB X and earlier versions. I’ve had no hangs or restarts yet. Awesome.
The only issue I ran into that bugs me is that populating a “watch list” doesn’t have autocomplete when typing variable names. You have to scroll down the list for the variable you want to add. Older versions had this.
The fact that my project is smaller has allowed the program’s new features to be more prominent in my experience with MPLAB X. At this point I’ve probably only used it for a total of 4 or 5 days over the last couple of weeks, but my experience in this second effort is pretty positive. If things keep going well I think this interface will save me time. And that’s what good software is all about.