chipKIT® Development Platform

Inspired by Arduino™

Microchip Harmony vs chipKIT

Created Wed, 08 Jan 2014 17:46:12 +0000 by ChristopheDupriez


ChristopheDupriez

Wed, 08 Jan 2014 17:46:12 +0000

I am a bit bewildered and I would like to have your opinion...

I am a professional programmer (not an electronician, not a long time embedded programmer) and I am looking for a platform to make good and reliable software for PIC32. I prefer real open source and moreover: "Open Innovation", collaboration with peers who are offering the same kind of services and have the same needs (reliable platform).

Does chipKIT community has similar aims? I am not 100% sure because Arduino style code is not 100% debugged and do not cover important aspects of PIC32 MCUs (for instance sleep mode, Serial output buffering, RTC and probably other things I did not experimented yet). I am not 100% sure also because Arduino style software does not provide elegant solutions for the "delay(x)" monopolizing the CPU in operation sequences (I still have to experiment with Protothread but I will have to rewrite a lot of things to do so)

Should I dig into the not fully open source FreeRTOS instead? Or "become professional" by switching to Harmony, buying the full version of XC32 and be a Microchip follower?

In other words, are we many aiming to create a "professional development platform" from chipKIT? I would propose each of us with such a aim put a small presentation of himself here under!

I am Christophe Dupriez, Twitter @ChristopheDupri, programming since the 70s when mainframes where less powerful than a PIC32MX512F128H and aiming to offer firmware development services to electronicians creating low power & reliable applications.


majenko

Wed, 08 Jan 2014 18:57:41 +0000

Arduino is designed as a student grade device. It is aimed at people learning about microcontrollers etc. It wasn't designed as a professional product, which is why it's not got any real debugging facilities. That's also why it's in a student's budget.

The chipKIT products purpose are twofold - 1) to provide a more powerful and more refined platform than Arduino at a similar price, and (this may be my inbuilt cynicism speaking) 2) tempt people away from Atmel to using Microchip products.

Since I started in Microchip even before I'd looked at any other platforms, reason 2 is redundant for me ;) but given the choice of platform (and I have lots to choose from at my fingertips) I go for PIC32 every time.

But the software is where it's a little let down, yes. Arduino software is made to make it easy to do things without knowing how it all works. As with many things in the Arduino world "it just works", with the emphasis on "just". There are other options though.

  1. You don't need to use the Arduino-style API, you can program it in pure C / C++ directly accessing registers.
  2. You can replace the Arduino-style API with another of your choice, maybe written by you from scratch. For the Arduino there is a very nice replacement API called Cosa which is 100% OO and very event oriented. Looks really nice, but only works on the Atmel chips. Maybe porting that would be a good option?
  3. Use some scheduling kernel. There's various options out there - if you want open source you could always bend the RetroBSD kernel to act as a scheduler ;)

As all this lot is open source you can pretty much bend it to your own uses.

Switching to pure Microchip moves you away from that open source-ness though. The compilers are pretty closed, the libs are very closed, etc. If you like Open Source you won't go there ;)

The pic32-gcc compiler that MPIDE and UECIDE use is better than the free version of XC32, but not as good as the paid-for version, so it's a good middle ground. It has better optimisation than the free XC32, and is open source and free. It's basically XC32 without some of the Microchip hard-core optimisation code.

So unless you have a specific need for what the paid-for version of XC32 can give you I certainly wouldn't bother with it.


ChristopheDupriez

Wed, 08 Jan 2014 20:01:45 +0000

Thanks a lot Majenko for this very informative message!

Cosa looks indeed like my "dreamed" chipKIT. My question remains: who in chipKIT community is aiming to something similar to Cosa, a "professionalized" Arduino?

Have a nice evening!

Christophe


majenko

Wed, 08 Jan 2014 21:09:05 +0000

I did start writing an OO core like Cosa once, but didn't get very far (I got distracted). Many of my more complex libraries work around the principal of full OO like Cosa, so I was thinking of gathering them all together and wrapping them up into a single OO core with tasks and everything. I was also thinking of taking the RetroBSD kernel and stripping it down to the bare essentials, and using it as a task manager system for running multiple sketches concurrently on a chipKIT board. I don't know how "professional" you would count that ;)

As far as the IDE side of things go, I am trying to get UECIDE to be a professional product with the kind of facilities you'd expect from a full blown IDE, but without the weight of things like MPLAB-X and at the same time maintaining the simplicity of Arduino / MPIDE.

Of all the Arduino-like boards I'd count the chipKIT ones as the most professional. Arduino are pure student. Launchpad are pure TI sales. Others are pretty much pure community.

So yeah, I want to see chipKIT blossom in the professional market, and I like to think I'm working in that direction :P


ChristopheDupriez

Thu, 09 Jan 2014 06:31:04 +0000

I noticed Majenko that you are doing many things at a time! I especially appreciate your conversation but also UECIDE which compiles and upload a lot faster than MPIDE (and nicer interface).

One question is "Why UECIDE efforts are not merged in MPIDE?" (or vice versa): the community is not so large to benefit from forks... The same question will arise if some collective work is undertaken to beef up chipKIT core "à la Cosa" or whatever.

I know UECIDE is not "PIC only" but if somebody thinks twice, it is a big advantage (Newsweek was writing recently that France should encourage foreigners to invest locally rather than trying to "retain" local entrepreneurs: whenever somebody switches to UECIDE, (s)he will be presented the option to test her/his code on a PIC).

Many thanks for putting some lights on the motivations for the actions!

Christophe


majenko

Thu, 09 Jan 2014 09:48:05 +0000

Unfortunately ( ;) ) there will always be a place for MPIDE, as it is the IDE for the chipKIT boards. It's part of the identity. Yes, UECIDE can easily be rebranded to look like MPIDE, but it will never "be" MPIDE. I am always pushing for (and I'll bet everyone's sick of it) UECIDE to replace MPIDE, but I doubt that'll ever happen ;)

There is a certain amount of crossover between the two though, with code flowing both ways. The chipKIT API is not maintained by me as such, but is pulled from MPIDE, so any changes to the MPIDE API will be merged into UECIDE's core, and some things that are in UECIDE are back-ported to MPIDE. The internals of UECIDE are so different to MPIDE though (even though UECIDE was a fork of MPIDE originally) that back porting often isn't possible.

In an ideal world there would only be UECIDE, and everyone would contribute to it, but alas that can never be. Still, people have choice, it's just a matter of nudging them in the right direction...

And yes, I do do a lot of things at once ;)


ChristopheDupriez

Fri, 10 Jan 2014 09:10:08 +0000

I'm bit surprised Majenko you were the only one to answer "Who has chipKIT as a part of her/his professional (& commercial) development?". I understand that you create your own projects and retrofit your developments to chipKIT core when there is some demand for it. This is more "bazaar" than "cathedral". Personally, I am a bit tired from pure bazaar: I would like to be part of a bazaar wishing to build a cathedral!

Have a nice day!

Christophe


majenko

Fri, 10 Jan 2014 10:43:42 +0000

Probably because many of the others who are of the same league as us don't "use" chipkit as part of their professional life - chipkit IS their professional life. Employees of Microchip, Digilent, etc. Not all, of course, and I'm sure others will chip in given time. Unlike me, you see, they have a life and don't spend all day sat refreshing the chipKIT forums waiting for people to post questions ;)


ChristopheDupriez

Fri, 10 Jan 2014 11:26:14 +0000

:D I am sure you enjoy the nice (and sunny :mrgreen: ) UK countryside from time to time.

I get your points: they are useful to understand the current state of chipKIT community. I hope Digilent/Microchip will organize one day a chipKIT meeting in UK so we would have the opportunity to meet.

Meanwhile, I will do like you: build my own little cathedral (a chapel!) and see how it goes with it in the bazaar.

Christophe


Jacob Christ

Sun, 09 Feb 2014 18:17:45 +0000

Christophe,

I've been programming for about 30 years and doing embedded development for about 24 years and using PIC processors about 22 years ago. For the first 10 years I programmed there was a lot of "Shareware" that was mostly considered crap compared to commercial software but then came along Linux. I was working at a place that sold Silicon Graphics work stations used for 3D CAD/CAM and Linux was a low cost way to network SGI's that made it easy to throw NC files down to the shop floor.

Much of the last 20 years I've been doing embedded development as part of my company ProLinear/PONTECH (pontech.com). Over this time we developed many libraries for parsing and communicating with EEPROMs, DAC's, ADC's, RTC's, GPS, wireless radios, pressure sensors and the like. The library was getting to the point where we could get new products up and running really quickly. I had heard about Arduino but dismissed it due to a lack of understanding (I got the impression that the embedded code was written in Java and some Java interpreter was running on the board, due to the Processing tie in). We had dismissed Arduino until chipKIT came out, which forced a re-evaluation since we were so heavily involved with Microchip parts. chipKIT was also introduced at a point in time where we had just spent two years fighting compiler bugs in Hi-Tech and Boost C that both vendors dismissed. We were pretty sure we knew what the problem with the compiler was and would have dug into fix the complier bugs ourselves but they were closed source. Also, we could see the advantage of the years we spent working on our libraries was being eroded by an open library that was nearly as good. Our love of open source and project (chipKIT) that so closely matched what we were doing in house caused us to embrace it fully. Quickly we could see the benefit, it felt like our engineering team grew from three to thirty plus over night. Also, with the few contributions we've made it makes us feel like we are helping others too. chipKIT was not our first endevor into PIC32, but we have released two products that specifically have chipKIT in mind, the UAV100 and the Quick240 (quick240.com).

I've been told by some that you can't be a commercial entity and open at the same time. I disagree. As I see our primary business as servicing our customers and not the products themselves (We would need to sell thousands and thousands of boards per year to match the profitability of our service business), though I'm willing to try.

So I would say our aims are in line with yours and I welcome you to our extended team.

Jacob


ChristopheDupriez

Mon, 10 Feb 2014 12:17:42 +0000

Thanks Jacob for this introduction! I like very much the Quick240 project! Let us all know about your KickStarting of it! Christophe


Jacob Christ

Tue, 11 Feb 2014 02:38:00 +0000

Christophe,

We are thinking about skipping the Kickstarter and just launching... We have 100 Quick240 motherboards assembled and tested and 400 assembled and tested Drive Kards. We have parts for 400 ISO Kards ready to go to the CM. Its been designed in to several of our customers products and judging the other chipKIT projects on Kickstarter I'm not sure if it worth the effort to finish a video to get $1000 in sales... Rather we would just put the effort into sample projects and helping existing customers.

Plus Kickstarter take 5% and Amazon takes another 5%...

What do you think?

Jacob


ChristopheDupriez

Tue, 11 Feb 2014 06:53:12 +0000

It depends of your established channels to market: if these channels will pump all you need to have a decent load of work and revenues, why bother with KickStarter?

In another hand, KickStarter would expose Pontech and ChipKit to a large public and it would also test the market potential of the "Modular Microcontroller" where your design is pretty unique (I can tell because I searched for a year in that direction and settled for something else: this is another discussion!). My (yet unconfirmed) belief is that small (industrial / food / etc.) producers should be happy to invest in a technology where the functions can evolve with the needs.

But the key is the software and this is where I think ChipKit is still not in perfect marching order. My conclusion would be either you strongly invest in software and Kickstarter could fund a part of that; either you launch immediately with what you have in hand. KickStarter without debugged modular software functions (making your system "Plug and Play") would not be a good idea, I think. KickStarter is also much more than a video: it is many months of coordinated efforts for a whole team with many talents: I would go for a budget over 50 grands: your layered products offering allows that.

Good luck anyway: one always needs some!

Christophe