Microchip PIC chips could have been the Power Behind Arduino


Gerry Sweeney writes:

As I understand it Microchip are in the silicon chip business selling micro-controllers – actually Microchip make some really awesome parts and I am guessing here but I suspect they probably want to sell lots and lots of those awesome parts right? So why do they suppress their developer community with crippled compiler tool software unless you pay large $$$, after all, as a silicon maker they *NEED* to provide tools to make it viable for a developer community to use their parts? It is ridiculous charging for the tools – its not like you can buy Microchip tools and then use them for developing on other platforms so the value of these tools is entirely intrinsic to Microchip’s own value proposition. It might work if you have the whole market wrapped up but the micro-controller market is awash with other great parts and free un-crippled tools.

Join the Conversation


  1. It amazes me how many manufacturers of MCUs / Processors actually do that. Of course I understand the revenue side: The Toolchain is probably petty cash compared to other dev cost for professional commercial users. Yet at the same time, like Arduino proves every day, you reach a broader mass if your toolchain is free and easy. Many companies are, however, afraid of a heightened workload for their support team. Non-professionals often consume a lot of time of support teams and will never bring back enough revenue to pay for that.

    1. So they could do like Xilinx, provide a web download of the tools that explicitly says no support. I know the webpack isn’t the full tool suite but it supports most of the parts that people are willing to pay for

      1. Unfortunately Xilinx’s webpack is a poor example. Every time you invoke their “free” tools, the tools “call home” informing Xilinx that you’re invoking their tools, details of your development environment, and details of your project (number of slices used, etc).

        Personally I prefer when my “free” tools don’t spy on me! :-)

      2. better stop using google then. If you don’t want webpack to send stuff to xilinx just don’t let it access the internet, an internet connection is not required for webpack to work

  2. A few months back, Radio Shack was having a clearance on their Velleman PIC Programmer kits. Having programmed the Papilio FPGA and TI MSP 430 using Arduino and Energia “Processing/Wiring” platforms, I thought this might be a good challenge.

    The Velleman site has a decent compiling tool for this board but you have to edit the file in a text editor of your own. The board handles a pretty good variety of PIC chips. Although I’ve only worked with a couple of different PICs, I found the RISC assembly language not too terribly difficult to learn. I like that the registers, ports, and user locations are in a file that you simply access by address. You can make equates at the start of the assembly that identify a particular address as “PortA”, etc. The stumbling block comes when you aren’t familiar with the methods for programming the individual models of chips and the various functions that can be assigned to a particular pin. Once I started editing the example files for my own use though, things started going pretty well. I was able to implement this into an industrial hardware control project, which I didn’t figure was too bad for a first-time PIC user.

    If you want the powerful C tools, yes they are prohibitively expensive. Arduino/Energia programming systems have left Microchip in the dust. However, I imagine it’s only a matter of time before they release their own version of “Processing, Wiring” that will drive their chips.

  3. Very simple: AVRs are mostly for hobbyists. Open some commercial devices. You will almost never find AVRs in devices made by the tens of millions. Only in some made by hundreds of thousands. PICs have much better pricing for large quantities and tailor their services to that market. You are not their target consumer, you make them no money. Anyone who whines about $xxx tools is not their target.

    1. Hear that sound? That’s all the 8051 programmers chuckling to themselves at the cute little PIC guy talking about volume.

      I think Microchip would very much like to have those Arduino-related sales out there, and perhaps even more the future embedded developers who are getting comfortable with AVR. Yes, some of them will switch to PIC for more cost-effective designs, but having them learn your stuff first is a non-trivial advantage.

      1. I’ve opened lots of device (>40 types) and often found that pics are common in much more mass-produced devices

        i also worked in a few places making consumer electronics and have been in talks with both atmel and microchip, and saw the pricing – microchip was a LOT more willing to give good deals.

      2. Just some speculation, but wasn’t PIC very very popular 10-15 years ago for hobby projects (before avr-gcc I suppose) so all those engineers have their chips implanted in mass produced devices and we see that a lot now?

  4. Yep, that’s absolutely correct. I may want to add that the ‘targets’ mostly never actually pay for the tools. For instance, i develop with Analog Devices Blackfin processors from time to time. Never have I paid for Analog Devices CrossCore or Visual DSP++, ADI just gives licenses away to their target audience. And I am sure so do other manufacturers.

  5. How are Microchip’s tools crippled? As far as I know, the only differences between the free and paid versions are the level of code optimizations. You can develop code, for free, for any Microchip product you want.

    1. # Matthew
      Code optimization it’s far more important in MCU than in big scale microprocesors like in desktop computers.
      That’s what you have much less space for program, much much less ram, and of course cpu power.
      I for one am of those that choose to not develop with PIC because of that.

      If you take into account the impact of compilers optimization in the resulting machine code, and compares side to side the diference in speed, flash usage and ram usage between optimized and not optimized code, you have to realize that in fact we are talking about “diferent” MCUs and maybe.

      Now if you compare the real speed an memory (not optimized code) against a not cripled compiler MCU like AVR (in this case) maybe the advantages of more Mhz or memory now are in the other MCU, the one that in the datasheet has less Mhz or memory, but has a decent compiler.

      1. excellent way to sell parts to someone, give out a free evaluation tool that make it look slow and inefficient …….

      2. false
        eval compiler does do optimizations
        for 60days
        then if you commit to buy X million parts, they give you a permanent license for free

        source: 2 companies ago we had a PIC in our device and i worked on its code

      3. False.
        Free versions of Microchip compilers produce quite nice and optimized code, I use it for all my home projects. Paid version do somehow better optimization, but I wouldn’t bother to pay full license for the last few spared bytes.

      4. Of course the code produced is acceptable for some uses. I’ve produced 10+ boards with one or more PICs on them that ran at the speed I asked of them within my size constraints without a problem. That was between 1-16MHz, and 30-2000 lines of code. People write code all the time for AVRs that is based off of busy loops with NOPs.
        I can completely agree that there might be cases where your code is not optimized enough to fit in your size constraint, but as a hobbiest that deals almost exclusively with PICs, I have to say I’ve never yet had that problem. There are definitely some things I would change about PIC microcontrollers, but as of yet I have not switched to an AVR and my projects still work great.

  6. Well the code generated by the free version of compilers is pure crap piece of… anything. It has many absurd instructions inserted which only purpose is to increase the unefficiency of the code. I developed compilers so i notice it quickly.

    I don’t know the reasons, but i can suspect them. The point is not the tools generate non optimized code, just the code generated even in the simpliest operations is overloaded with useless instrucions (like moving several times the same data between GPR and W, when only 1 operation is enough). Or they are using automatic generators for that (i doubt it), or they are doing it on purpose…

    Btw, surely the hobbists aren’t the final customer they want, but… if you use some devices for long time you’ll try to use the same in the future. Many these hobbists are engineers in formation, and they will get an idea about them… what do u think it will happen when the engineer is working and is asked about Microchip?.

    I’m an engineer, i use PIC, i like them (with objetive reasons).. but the last tools are discouraging me use them and i’m looking for alternatives. Well maybe i’m only a little sale for Microchip, but if some day i need to buy a great volume of MCUs i’ll have in mind the problems currently i have.. then, perhaps i won’t choose Microchip, then Microchip will lost thousands instead one.

    The key is… you can’t talk about good or bad customers based if they buy 100000 or 1, item… because even the bigger company on the Earth, started from only 1 person getting few quantities of products…

    If Microchip doesn’t start doing something serious with its tools, they will have problems soon or later. MCUs need software, therefore they need tools to develop that software. Saying “i only sell hardware” is stupid, because you don’t provide the gas your car needs, then others could do or not. If they don’t do, then you’ll not sell anything.. bye bye Microchip.

  7. I just vote with my mouse-click and spend the effort to look for an equivalent or more useful product from a different vendor, if possible for the design scenaro.

  8. Microchip probably did make a mistake ignoring the Arduino platform for so long, the number of new engineers more comfortable with AVR will come to bite them in the bum as time goes by, however in my opinion healthy competition between AVR/PIC/ARM only makes the market better for everyone and good engineers should look at each new project through a clean pair of eyes as product lines can change over time.

    The PIC XC8 and XC32 compilers from my experience seem to add a few extra bytes in to loops once the optimisation free time runs out thus you get a small bloat in your memory footprint and therefore speed, I suspect these restrictions will quietly fade out over time. If every clock cycle counts in your project I would suggest your probably using the wrong microprocessor for the job and should not blame the compiler as your code size and speed will vary even with optimised/non-restricted compilers as improvements are made or libraries re-written all the time.

    The 8 Bit AVRs are as good or better in most circumstances than the PIC 8 bit ones and are also fine for commercial products (I have used both for commercial designs), even with AVR’s advantages I would still use a PIC if cost or availability counted.

  9. You can always use full-on MIPS32 arch GCC compiler for the PIC32 parts. That’s a fairly decent compiler. I’m sure there are alternatives for the other PICs.

    I really hate it when manufacturers bury their good parts with crappy IDE and tools. I’ve seen eval boards shipped with JTAG/SWD pins hidden away and proprietary “debug” co-processors attached instead. Oh, and flash programming utilities only compatible with MS Windows. Madness! I can’t evaluate the product if I can’t use it.

    1. From what I can tell, the official PIC32 compiler is more or less just MIPS32 GCC with extra DRM hooks added that disable most of the optimisations unless you pay them money for a license. Unfortunately, all their support libraries for PIC32 for stuff like peripheral access, device init, etc have license terms that forbid you from using them with anything other than the official DRM-encumbered version of GCC.

  10. Hard to recall now, but it seemed that Atmel innovated with the FLASH and/or ISP before Microchip. Before that, I had plenty of PICs and hated the instruction set. As soon as Atmel offered an alternative that was better, I switched. I think Microchip must have lost a lot of support from designers at that time. It is normally easier to retain a customer than to make a new customer. In that case, it was easier for them to lose a customer I suspect.
    Still, times change, and may the best products win. For me, I still avoid Microchip since that time if I can – and find a better alternative, depending on the scenario. Usually it’s not hard, unless, as people have mentioned, cost is the concern.

  11. I STILL have one of the original 5/25 inch floppy disks with the tools they used to supply with pic chips.
    This was WAYBACK in the 80’s when their attitude was better, about the same time as they were willing to do ANYTHING to get their silicon out into the market. (I even got a bag of free chips)

    It’s the same damned mentality as Xilinx and their tools (yep I understand charge for IP)
    but why the hell should you have to pay for tools so you have the luxury of using silicon THEY are trying to dump on you.

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.