Author Topic: MPLAB X a PIC inhibitor! Alternatives ?  (Read 8443 times)

0 Members and 1 Guest are viewing this topic.

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
  • Interested in all things green/ECO
MPLAB X a PIC inhibitor! Alternatives ?
« on: November 04, 2017, 06:17:48 AM »
I have been using PIC micro's for years using MPLAB 8.92 apparently being the last release before MPLAB X was introduced, I did try X when it first came out, didn't like it and stuck to plain MPLAB.

Recently needing extra power I was looking at several of the DsPIC33 series, everything was fine till I discovered they were not supported in MPLAB 8.92 so downloaded the latest MPLAB X.

OMG how horrible! firstly it is very very super slow apparently due to it's Java base, but IMOP it is very unfriendly, I keep code with all the other project documents and expect to invoke the toolchain from there, not so with X. It probably falls into the classification of trying to do to much and none of it well.

I have no intention of wasting my time on such junk so will abandon any idea of using chips exclusively supported by it. Does anybody have experience of faster and more user friendly tool chains supporting 16/32 bit micro's that are free and run on windows (assembly only is fine) ?
 

Offline eugenenine

  • Frequent Contributor
  • **
  • Posts: 673
  • Country: us
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #1 on: November 04, 2017, 06:38:53 AM »
My laptop is at least 5 years old and I don't find it slow.  But there are other tool chains such as sdcc.
 

Offline gocemk

  • Regular Contributor
  • *
  • Posts: 79
  • Country: mk
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #2 on: November 04, 2017, 06:41:17 AM »
I have the same problem. Currently i'm working on a project with dsPIC33EP512MU810 and MPLAB X under windows 10. The IDE is soooooo slow, even on SSD! Was searching the net these days for a better alternative, but couldn't find any. EmBitz: https://www.embitz.org] [url]https://www.embitz.org[/url] sounded like a good candidate, but unfortunately dsPIC33EP is not supported. Installed MPLAB X v.4.05 today and it doesn't feel any better. Also, the code parser is still giving false errors and highlighting on startup.   :palm:
 
The following users thanked this post: fourtytwo42

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
  • Interested in all things green/ECO
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #3 on: November 04, 2017, 06:54:11 AM »
My laptop is at least 5 years old and I don't find it slow.  But there are other tool chains such as sdcc.
I think (maybe wrong) these are all 8 bit micro's, I use mplab 8.92 for those with no problems but I need a 16 or 32 bit micro with either dsp extensions or so many mips it doesn't matter!
 

Offline Bruce Abbott

  • Frequent Contributor
  • **
  • Posts: 530
  • Country: nz
    • Bruce Abbott's R/C Models and Electronics
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #4 on: November 04, 2017, 06:58:43 AM »
Which DsPIC33s are you looking at?
 

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
  • Interested in all things green/ECO
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #5 on: November 04, 2017, 07:01:23 AM »
https://www.embitz.org sounded like a good candidate, but unfortunately dsPIC33EP is not supported. Installed MPLAB X v.4.05 today and it doesn't feel any better. Also, the code parser is still giving false errors and highlighting on startup.   :palm:
That's why I am thinking something ARM based would be far better insofar as toolchains are concerned and capable of doing the job.
 

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
  • Interested in all things green/ECO
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #6 on: November 04, 2017, 07:04:12 AM »
Which DsPIC33s are you looking at?
Things like dsPIC33EV32GM102 to get a 16 bit SPI to run external dacs as well as a good selection of analogue peripherals.
 

Offline JPortici

  • Super Contributor
  • ***
  • Posts: 1847
  • Country: it
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #7 on: November 04, 2017, 06:06:30 PM »
Eh, they wanted a multiplatform IDE (netbeans) that wans't eclipse. I actually dislike eclipse very, very much so i don't mind..
i'm afraid all your concerns (slow, parser errors - you have to click reparse project from project right click menu, other quirks) are really netbeans problems.
Why not move everything to visual studio? I wish, but then you'll lose mac and linux users
Maybe they should make it easier to use the compilers with other IDEs but i bet this would bring in a lot of headache if you have to fix bugs for N IDEs rsther than for just one

In the end i don't care if X is slow.. it's actually slow if you have some 20+ projects loaded as the parser will keep scanning them for external changes (you can force the parser to use just one thread or how many as you wish)
First loading and the very first compilation of the day are the slow ones. Just long enough so i can make a cup of tea
 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 1042
  • Country: 00
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #8 on: November 04, 2017, 07:15:09 PM »
OMG how horrible! firstly it is very very super slow apparently due to it's Java base, ...

No problems here, probably because I use Linux. Windows & Java is not a good combination imho.
On Linux, Java runs like a rocket.

Apart from that, the XC compilers can be slow due to the license checking mechanism.
For the XC16 and XC32 compilers this can be easily fixed with a little editing described somewhere else
on this forum. Nice side effect is that you will be able to use higher optimization settings.
The difference between theory and practice is less in theory than
the difference between theory and practice in practice.
Expensive tools cannot compensate for lack of experience.
 

Online mrpackethead

  • Super Contributor
  • ***
  • Posts: 1397
  • Country: nz
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #9 on: November 04, 2017, 07:31:51 PM »
I use MPLABx 4.05 every day on windows and mac, and it works just fine for us. 
 

Online Howardlong

  • Super Contributor
  • ***
  • Posts: 3883
  • Country: gb
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #10 on: November 04, 2017, 07:45:15 PM »
I agree regarding speed, but you get used to it.

In comparison to other IDEs I’ve used, from a performance perspective, MPLAB X is a painful development environment, and long running bugs, such as the parser breaking, they don’t seem to give a crap about. Anecdotally, I think the parser “feature” only seems to affect the 16 bitters IME, but it’s been there for several versions of MPLAB X and XC16.

In the edit-compile-program-debug cycle, it is painful compared to MPLAB 8.xx. I strongly suspect this is due to the JNI Java/native interface with a very chatty application/debugger protocol. You can alleviate some of it by telling it to maintain a debugger connection.

I find that MPLAB X is also unstable particularly when using hardware debuggers. It simply stops talking to debuggers for no apparent reason. On one occasion the only way I could restart a debug session was a full reboot each time it crashed as it left a Java shim in memory that I just couldn’t terminate. It’s frustrating and time wasting to say the least.

The compiler licensing check thing was fixed some time ago, but it was more evidence, it were ever needed, that their QA is shit.

Another way to speed things up is to limit the number of projects you have open, although if you have a lot of cores on your machine it does scale.

I just wish they’d invest their efforts in making a fluid UI rather than fannying around with bug infested code generators. I started using Atmel Studio a year or so ago for a couple of projects, it’s just so much slicker, I even thought the debugger wasn’t working, it’s so quick to program. I’m afraid that won’t please the non-Windows folk.
 
The following users thanked this post: fourtytwo42

Offline hans

  • Frequent Contributor
  • **
  • Posts: 824
  • Country: nl
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #11 on: November 04, 2017, 08:59:13 PM »
I use MPLAB X from time to time, but I'm usually disappointed.

Netbeans is not very stable. I'm not sure if it's better than Eclipse, even though I really hate Eclipse but that could be more due to bad plugins than Eclipse itself.

In alot of cases the code scanner stops working, as such syntax highlighting and auto completion is completely broken. To fix, restart the IDE. But being the clunky JAVA IDE that it is, it needs to pull a full load briefly on this i7 quad-core+HT machine with Linux.

For other microcontrollers I tend to program in an editor like Qt Creator or CLion, which works absolutely fine. Sure CLion is also quite a heavy tool to use, but atleast it's fluent in usage while in the background processes are hammering along to scan your code and libraries.
If only they would release something like a GDB server for PIC24s and PIC16s, then it should be quite easy to integrate the XC compilers into any GNU compatible IDE.
« Last Edit: November 04, 2017, 11:53:07 PM by hans »
 
The following users thanked this post: fourtytwo42

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
  • Interested in all things green/ECO
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #12 on: November 04, 2017, 09:16:04 PM »
Thank you for all your replies, it seems I am not the only one that finds this toolchain unacceptably clunky, I don't expect tools to get in the way of code development!

I started this quest as I have an application that needs at least a 10 bit flash DAC along with at least an 8x8 multiply, unfortunately DAC's are far and few between on PICs, the audio ones not being flash. A simple alternative I thought was an external SPI device however I soon found many PIC SPI interfaces are hobbled at 8 bit only whereas the SPI DACS have at least a 16 bit protocol.  I have compiled a very short list of those pic's supported by MPLAB 8, available in DIP packages and having a 16 bit SPI for anybody interested :)

Device/series   MPLAB   16b SPI   SrcPincl/moq   3/5V   MIPS   ADCb/ssec   Cmp/Oa   Prog/ramK   Pins
PIC24F16KA102   Y   Y   FNK270/1   3   16   10/0.5M   2cmp   16/1.5   28
PIC24FJ32GA002   Y   Y   FNL296/1   3   16   10/0.5M   2cmp   32/8   28
PIC24HJ32GP202   Y   Y   FNL365/1   3   40   10/12/1M/0.5M   0   32/2   28
dsPIC33FJ32GP302   Y   Y   RS448/1   3   40   10/12/1M/0.5M   2cmp   32/4   28
PIC24HJ32GP302   Y   Y   FNL501/1   3   40   10/12/1M/0.5M   2cmp   32/4   28
PIC24HJ64GP502   Y   Y   FNL527/1   3   40   10/12/1M/0.5M   2cmp   64/8   28
PIC24HJ128GP502   Y   Y   FNL576/1   3   40   10/12/1M/0.5M   2cmp   128/8   28

Note RS = Radiospares and FNL = Farnell, I dont bother with high moq parts.
 

Offline Ash

  • Regular Contributor
  • *
  • Posts: 95
  • Country: au
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #13 on: November 04, 2017, 10:00:42 PM »
Yep, its crap... MPLAB X is just terribly slow on my PC. It often gets confused and had non-stopping "parsing project xxxxx" messages, especially if I have several projects open at once.

I have a whole list of gripes but it does come down to being used to something like Visual Studio (there is a Linux version call "Visual Studio Code",  I think, I've not used it).

Also because I'm working on PIC32MZ project almost exclusively in C++ (XC32 compiler is actually pretty good/modern thanks to is being gcc, the shipped std library I avoid though, I use ETLCPP http://www.etlcpp.com) but the C++ support in MPLAB is essentially non-existent. Errors and warning constantly in the code that is actually perfectly fine..

Also don't get me started on Harmony.. Argh.. But that is another gripe altogether :) (basically just don't is my advice). |O

Once I get some time, I'll be reverting to manual Makefiles and XC32 directly I think.

Also I get very little use from the debugger - mostly it can't tell me anything, almost all variables I try to inspect are not found.. totally useless I think in my project. I have to debug using logging/pin toggling/'scope anyway so I'm not loosing anything and I'll be able to use an editor of my choice rather than the stuff in MPLAB X.

My suggestion: get familiar with the makefile flavour of your choice and use command line builds, then use what ever editor you find most comfortable :) If you build a bootloader as the first part of your project, you then won't even need a PIC programmer much after that (assuming your device support self programming)...

Ash.
 

Online Howardlong

  • Super Contributor
  • ***
  • Posts: 3883
  • Country: gb
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #14 on: November 04, 2017, 11:10:11 PM »
What speed 10-bit DAC are you after, and how many channels?
 

Online bookaboo

  • Frequent Contributor
  • **
  • Posts: 605
  • Country: ie
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #15 on: November 05, 2017, 12:15:07 AM »
Something to mitigate the compile cycle courtesy of Mike:

https://youtu.be/jXVWk-7OFvY?t=16m45s
 
The following users thanked this post: fourtytwo42

Offline jpanhalt

  • Frequent Contributor
  • **
  • Posts: 426
  • Country: us
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #16 on: November 05, 2017, 12:50:57 AM »
Here's a link to a thread with comments from some quite knowledgeable individuals who describe  workarounds for using MPLabX with chips that are not and presumably never will be included in MPLab 8.92:

http://www.electro-tech-online.com/threads/assembly-on-the-mplab-x-ide-how.152124/

John
 
The following users thanked this post: fourtytwo42

Offline fourtytwo42

  • Frequent Contributor
  • **
  • Posts: 276
  • Country: gb
  • Interested in all things green/ECO
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #17 on: November 05, 2017, 03:29:16 AM »
What speed 10-bit DAC are you after, and how many channels?
Only one channel but settling in <= 25uS. The other key is in combination with one clock multiply so sadly the 16F cores wont do.

Also thanks for the links guys, I have to say they don't inspire me with confidence, right bag of worms for us assembly programmers, and before you say it I do write in C but not time critical stuff on itsi little processors!
« Last Edit: November 05, 2017, 03:33:20 AM by fourtytwo42 »
 

Offline westfw

  • Super Contributor
  • ***
  • Posts: 2354
  • Country: us
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #18 on: November 05, 2017, 06:21:43 PM »
Quote
I don't expect tools to get in the way of code development!
Hmm.  I do.  Always.  Figuring out how to properly bash your head against whatever toolset you're using is usually a significant percentage of any project.  Especially if you're NEW to that toolset.
 

Online mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 10199
  • Country: gb
    • Mike's Electric Stuff
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #19 on: November 05, 2017, 07:00:01 PM »
I had a similar aversion to MPLABX for a long time, but have recently had to use it for newer devices and actually now prefer it.
The one thing I discovered that makes it a lot less painful is the option   "Maintain active connection to hardware tool" in options->embedded. This makes it behave more like MPLAB8 and speed is now similar.

The editor is way better, with formatting, folding  and realtime syntax checking and prompting of constants ( e.g. you type "IFS0bits." and it pops up a list of values).

The things I don't like :
The error reporting is confusing with all the "xxx in recipie yyy" fluff before the real error message.
Unnecessarily deep nesting of directories
When you have mulltiple projects open , it's not immediately obvious which file belongs to which project  -Mouseover the tab shows the path, but it needs to be more obvious to avoid accidentally editing the wrong file, like changing the tab colour for the selected project
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Online mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 10199
  • Country: gb
    • Mike's Electric Stuff
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #20 on: November 05, 2017, 07:08:51 PM »
Here's a link to a thread with comments from some quite knowledgeable individuals who describe  workarounds for using MPLabX with chips that are not and presumably never will be included in MPLab 8.92:

http://www.electro-tech-online.com/threads/assembly-on-the-mplab-x-ide-how.152124/

John
It's quite easy to get MPLAB8 to work with minor chip variations, e.g. PIC32MX170 - from memory I think it's just one file that needs changing to alias the device ID and parameters onto an unused similar one.
 
Oh and by the way for anyone using ICD3 and swapping between MPLAB8 and X with different device families, there is an issue, that I think is related to FPGA versions,which sometimes makes it not work under 8 after using the switcher.
The fix is, when moving from X to 8, before using the switcher, run MPLAB IPE, select the target device you want to use with 8, connect, let it do whatever firmware update it wants, then exit and run the switcher.

It's nice that at least Microchip recognises that people still want to use 8 and provide the driver switcher.
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Online mikeselectricstuff

  • Super Contributor
  • ***
  • Posts: 10199
  • Country: gb
    • Mike's Electric Stuff
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #21 on: November 05, 2017, 07:11:31 PM »
I do wonder if maybe there are some machine or configuration-dependent things that make X slower for some people - I'm very sensitive to slow build/run cycles and I find it pretty tolerable, on not-crazy-fast hardware.
Youtube channel:Taking wierd stuff apart. Very apart.
Mike's Electric Stuff: High voltage, vintage electronics etc.
Day Job: Mostly LEDs
 

Online FrankBuss

  • Supporter
  • ****
  • Posts: 1808
  • Country: de
    • Frank Buss
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #22 on: November 05, 2017, 07:15:09 PM »
I find that MPLAB X is also unstable particularly when using hardware debuggers. It simply stops talking to debuggers for no apparent reason. On one occasion the only way I could restart a debug session was a full reboot each time it crashed as it left a Java shim in memory that I just couldn’t terminate. It’s frustrating and time wasting to say the least.

I use MPLAB X in Linux, works reasonable good. But sometimes the programmer stops working as well. Fortunately I can kill all Java processes with "killall -9 java" and it really does kill every java process, when a normal kill doesn't work.

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 5742
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #23 on: November 05, 2017, 07:20:09 PM »
One thing that may be causing a lot of people grief is the Microchip MPLAB X and compiler teams *DO* *NOT* run any virus checker that deep scans files on their development PCs.  As MPLAB X consists of a very large number of Jar files containing its Java code, if you don't exclude everything in and below the Microchip folder in 'Program Files' from your Antivirus solution's scan on read and scan on execute, you can experience an order of magnitude slowdown launching MPLAB X or changing operating modes within MPLAB X (i.e doing a build, or opening a different type of information or properties window or dialog).   Scan on write is permissible for the Microchip folder tree, but will slow down the compilers when building large projects, due to their use of intermediate files.
 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 1042
  • Country: 00
Re: MPLAB X a PIC inhibitor! Alternatives ?
« Reply #24 on: November 05, 2017, 07:49:32 PM »
I find that MPLAB X is also unstable particularly when using hardware debuggers. It simply stops talking to debuggers for no apparent reason. On one occasion the only way I could restart a debug session was a full reboot each time it crashed as it left a Java shim in memory that I just couldn’t terminate. It’s frustrating and time wasting to say the least.

I use MPLAB X in Linux, works reasonable good. But sometimes the programmer stops working as well. Fortunately I can kill all Java processes with "killall -9 java" and it really does kill every java process, when a normal kill doesn't work.

I use MPLABX on Linux a lot for PIC32 development using an ICD3. I never experienced that. But I never use the debugger.
The difference between theory and practice is less in theory than
the difference between theory and practice in practice.
Expensive tools cannot compensate for lack of experience.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf