Previously, I posted about what a debugger is. Other than all the great features I described in my debugger post, you may be wondering–why does Digilent care?


As you probably know, we use many of Microchip’s wonderful products in our chipKIT and chipKIT Pro boards. James briefly covered the differences between two specific boards in the chipKIT series and the chipKIT Pro series in his post chipKIT Uno32 vs. chipKIT Pro MX4. However, we still want to address the overarching differences between the user experience using chipKIT and chipKIT Pro boards. Many people didn’t even know that there were two different chipKIT series. I’ve created a table to show the differences between the two.


The main difference has everything to do with debuggers. MPLAB is more intended for use with the chipKIT Pro series of boards, while MPIDE lends itself more to being used with on the chipKIT boards. In order to use MPLAB with chipKIT boards and really know what’s going on with your code, you have to use the chipKIT PGM programmer/debugger, which has more limited uses. Of course, MPLAB doesn’t offer as streamlined and simple of a user interface as MPIDE, so which platform is preferable is really up to the user.


I personally much prefer being able to use a debugger when building code from scratch. Here is an example of using a debugger in the MPLAB environment:


Upon opening MPLAB, you can see that it has a much more complex integrated development environment (IDE).


You can put a break point wherever you want to stop the code from running. On the bottom of the window, you can see the variable tab where you are able to create watch variables. If you create a watch variable, you can see the values change between each step. Through the next through images, watch the value of t1.


When I step to the next line, I am using a logical AND to change the value of t1. You can watch it change in the watch variables.


This next step is a shift left logical. You can see the value of t1 in hexadecimal shift to the left.


This next step stores the value of t1 into LATB. You can see both of those variables now share the same value.


The final step doesn’t change any of my watch variables, it just jumps back to the loop label.

Being able to watch variables like this is immensely helpful when writing complex code. You can find exactly which lines and which variables aren’t working correctly and easily fix the problem.


However, using a debugger isn’t really necessary with all the help MPIDE offers, especially if you are writing simple code and using any of the many, diverse libraries. Within the MPIDE interface, there are an abundant number of examples in C. On top of that our Learn site and Instructables offer more in-depth examples and explanations.

mpide opening - Copy

MPIDE when first opened.

mpide complile

MPIDE example code.

Now that I’ve highlighted some of the differences and features of MPIDE and MPLAB, go to the Microchip website and try them out for yourself! Depending on your intended project, you might find one to be more useful than the other. With all of the features available in both programs you might find you like using both.

Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on RedditShare on TumblrShare on LinkedInShare on StumbleUponEmail this to someone

About Author

When I started school I wasn’t interested in any of things I’m passionate about now. In fact originally I started out wanting to study art. But then I decided I didn’t want to have people telling me what to create, so I changed to music. Then I decided I didn’t want to ruin a hobby by making it my career. At the same time my Physics class was teaching a unit on the physics of music, and I thought that was way interesting, so I changed to physics. Then by the time physics was over I decided that the coolest part of physics was electricity and magnetism, and I may as well get a degree that transfers directly into a career. So while all this was happening, I was attending Shoreline Community College, and during that time I found my passion, or rather presented itself repeatedly, until I realized, maybe I should take a hint from the universe. While at community college, I was asked to help at the high school by tutoring chemistry students. Then I was asked to help at the elementary school by being a math Olympiad coach. I continued both because I found I really enjoyed it. I also had an opportunity, and was hired to be a tutor in the Math Learning Center at the Community College, a job I really loved. At the same time I was working as a Nanny, which I had been doing for several years, the main reason because I could and would answer the hard questions the kids asked honestly (i.e. why is the sky blue). I then was recommended by the patrons of the MLC to the transfer tutoring center (private tutoring,) and developed a wait list of students. Through all these opportunities at some point I realized that I loved watching people go from totally lost, to masters of a subject. I was also forced to admit that having all these opportunities continually renewed, I must have been somewhat good at it. So I decided I wanted to teach, which fits with my mission oriented personality. I saw a serious lack of passionate ECE professors in the institutions I attended. At WSU I continued this trend by being ask to TA for computer science and electrical engineering, being a TA for a total of 4 semesters. This continued by getting an amazing opportunity in my first semester at Washington State University to work at Digilent, an educational company. So even if I didn’t want to teach, turns out I can’t avoid it. Luckily it is my main passion.


  1. Hi Larissa/ Digilent

    Will MPLABX – IDE work with Microblaze softcore from Xilinx on Artis board ?
    Any docs/ codes to make sure it works , before we decide on buying the hardware?


Leave A Reply