chipKIT® Development Platform

Inspired by Arduino™

Official Release 20120903 Open Source Compiler

Created Fri, 07 Sep 2012 14:38:24 +0000 by ricklon


ricklon

Fri, 07 Sep 2012 14:38:24 +0000

HI All,

Finally, a new release. We've got a lot of good stuff in this one. This includes Jason Kajita's open source newlib based pic32 compiler.

This includes all the features of our test builds for the last several months. Several new boards, and updated boards are supported. Digilent has done an amazing job adding more boards, updating existing ones, and enhancing the quality of libraries being used by them. The ChipKit and MPIDE platform is continuing to support a wide variety of MPIDE/ChipKit compatible boards like the FubarinoSD, Pontek quicK240, and PontekUAV100.

The SD library is much more stable. We will continue to evolve it into the next version which will allow multiple open files. Which is a major bonus for those running http servers from the ChipKit Wifi shield.

Additionally, Digilent has contributed many Open Source libraries like SPI, and SoftSPI. These libraries are well worth trying out. Also, the CoreTimer, http://www.chipkit.org/wiki/index.php?title=Core_Timer_Service_Overview, and Task Manager, http://www.chipkit.org/wiki/index.php?title=Task_Manager_Overview features are great. These are updates that I recommend the Arduino team take a look at I think it enhances the ease of use for working with advanced features.

It also sets the stage for new features in our next round of updates. Which are already being worked on.

A complete list of resolved issues can be found here: https://github.com/chipKIT32/chipKIT32-MAX/issues?page=1&state=closed

The release build was created 20120903 so that's that date on build. They can be downloaded here.

Mac OS X https://github.com/downloads/chipKIT32/chipKIT32-MAX/mpide-0023-macosx-20120903.dmg

Linux https://github.com/downloads/chipKIT32/chipKIT32-MAX/mpide-0023-linux-20120903.tgz

Windows https://github.com/downloads/chipKIT32/chipKIT32-MAX/mpide-0023-windows-20120903.zip

As always feel free to discuss here on the forums, and for issues please file them at https://github.com/chipKIT32/chipKIT32-MAX/issues?state=open

There are lot of great next steps for the pic32 core, and the MPIDE.

--Rick


ricklon

Fri, 07 Sep 2012 14:44:04 +0000

A quick URL to get the builds: http://bit.ly/getchipkit

Making sure the Compiler got updated to a fully Open Source status was a priority. So no Arduino API 1.0.x support.

--Rick


WestfW

Fri, 07 Sep 2012 22:15:18 +0000

This is the first "official release" based on newlib, right?

Cool.

So has microchip open-sourced the .h files from proc/ ? I notice that the "license header" has changed quite a bit...


avenue33

Fri, 07 Sep 2012 22:24:42 +0000

A quick URL to get the builds: http://bit.ly/getchipkit Making sure the Compiler got updated to a fully Open Source status was a priority. So no Arduino API 1.0.x support. --Rick

Neat and clear decision! Great!


EmbeddedMan

Fri, 07 Sep 2012 23:15:14 +0000

This is the first "official release" based on newlib, right? Cool. So has microchip open-sourced the .h files from proc/ ? I notice that the "license header" has changed quite a bit...

Yup. They're all now basic 3-clause BSD licence. Open source baby!

*Brian

/*-------------------------------------------------------------------------

  • chipKIT for Microchip PIC32 MCUs - PIC32MX110F016B processor header
  • This software is developed by Microchip Technology Inc. and its
  • subsidiaries ("Microchip").
  • Redistribution and use in source and binary forms, with or without
  • modification, are permitted provided that the following conditions are
  • met:
    1.  Redistributions of source code must retain the above copyright
      
  •     notice, this list of conditions and the following disclaimer.
    
    1.  Redistributions in binary form must reproduce the above
      
  •     copyright notice, this list of conditions and the following
    
  •     disclaimer in the documentation and/or other materials provided
    
  •     with the distribution.
    
    1.  Microchip's name may not be used to endorse or promote products
      
  •     derived from this software without specific prior written
    
  •     permission.
    
  • THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED
  • WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  • MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT
  • SHALL MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  • EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
  • PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS;
  • OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  • WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  • OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  • ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-------------------------------------------------------------------------/


dangeljs

Sun, 09 Sep 2012 20:49:09 +0000

Hey Guys,

I switch from using 'mpide-0023-windows-20111221' to 'mpide-0023-windows-20120903' and I'm having trouble with the atan2 function. Did anything change in the math library that would cause this. When I replace the atan2 with atan (putting the proper argument y/x) I get the right values for what atan is stable for. It isn't a big deal since I can fall back on the old version of MPIDE, but it may be something you guys would want to investigate.

Thanks,

Jason


WestfW

Mon, 10 Sep 2012 05:20:56 +0000

there were problems previously reported with atan2: http://chipkit.org/forum/viewtopic.php?f=7&t=250

I don't know if they were fixed or worked around in prior releases, and have snuck back in somehow, or whether atan2 has always been broken...


dangeljs

Mon, 10 Sep 2012 20:09:35 +0000

Thanks for the link; I'll try that work around when I get a chance. In looking through the library files between the two releases they are a bit different. I'm guessing the older one is Microchips and the newer one is the open source compiler.


fiddler

Mon, 10 Sep 2012 23:25:41 +0000

Well, on my system, the Blink example program compiles okay when selecting a Uno32 board but not when selecting a Uno board.

Kim


EmbeddedMan

Tue, 25 Sep 2012 02:18:40 +0000

dangeljs, try this to see if it fixes your atan problem.

Go into your MPIDE install directory\hardware\pic32\boards.txt There are groupings of settings. Each group is for a different board type. Find the board type that you're using (say uno32), and find the two lines

uno_pic32.compiler.c.flags=-O2::-c::-mno-smart-io::-w::-ffunction-sections::-fdata-sections::-G1024::-g::-mdebugger::-Wcast-align
uno_pic32.compiler.cpp.flags=-O2::-c::-mno-smart-io::-w::-fno-exceptions::-ffunction-sections::-fdata-sections::-G1024::-g::-mdebugger::-Wcast-align

and add

::-fno-short-double

to the end of each of those lines. (obviously, the beginning of the line will be different for each board type)

Then close all open MPIDE windows, and start it up again. Then see if you still have your math issue. This fixed a math issue I was having, so it might work for you. Let us know your result.

*Brian


dangeljs

Tue, 25 Sep 2012 04:38:14 +0000

Brian,

I won't be able to try it out until Wednesday, but I'll definitely let you know what I find out then.

Thanks,

Jason


EmbeddedMan

Tue, 25 Sep 2012 12:26:26 +0000

Note that if the board you are using does NOT have those lines in the boards.txt file, then it is already using ::-fno-short-double and my suggestion won't work for you.

*Brian


dangeljs

Wed, 26 Sep 2012 17:35:34 +0000

Brian, My file did not have the command appended at the end of each line, but as it turns out I am not having an issue after all. I had imported an Arduino library (PID) that required it's inputs to be doubles, so the variable I was working on was declared as a double not a float. I changed the PID library to use floats and also converted my variable to a float and I no longer have an issue with the angle returned from the ATAN function. A double in Chipkit is still 32bits correct? If so is there ever a need to declare anything as a double?

Thanks,

Jason


artbecker

Sat, 06 Oct 2012 04:22:53 +0000

Sorry, I posted this under the wrong topic yesterday.

20120903 fails on Ubuntu Linux 12.04. It works ok under Windows 7 and Mac OSX 10.8.2

A driver loads OK in linux (ttyACM0), but on starting MPIDE, I immediately get asked which directory to store my sketches in, and then, after either making a selection, or creating a new folder, the program just disappears.

Arduino IDE 1.0.1 works OK on Ubuntu 12.04

When running MPIDE in terminal mode, in Ubuntu, I see some java errors, such as "no rxtxSerial in java.library.path"

I am current with all linux updates for Ubuntu 12.04, though sometimes things like Java have to be downloaded externally, to get the latest version, rather than through software update.

=====

In Windows 7, when starting the 20120903 MPIDE, there is a temporary java file created, such as jna1515996498641544886.tmp, that triggers an alert from Microsoft Security Essentials (MSE), as being an unknown file, and thus potentially dangerous. Hoping for the best, I told MSE to always ignore files of the type jna*.tmp. I've never seen this happen before with MSE.

.


mikes

Sat, 06 Oct 2012 15:34:51 +0000

I don't have linux but on windows if C:\Users\YourName\AppData\Roaming\mpide\preferences.txt contains bad information it causes a silent failure. The cure is simply to delete the file and mpide recreates it with the default values. You might try finding the linux equivalent of that File.


ricklon

Wed, 10 Oct 2012 21:18:19 +0000

The upcoming test build has a working configuration for 64 bit. No 64 bit compiler, but will build properly.


JTRelectronics

Thu, 11 Oct 2012 11:07:51 +0000

This on the face of it looks like it could be a really good option for a PIC32 C compiler. Congrats to all those who have worked very hard on putting this together.

(I wonder if I can port my USB stack to it...)

Now I have a quick question. Does this support compiling in MIPS16 (and without time restriction.)

I do not need library support so that does not matter but rather I need to see the C calling conventions (I.E. reduced register set) to MIPS16 code and I am looking for a C compiler to reverse engineer this given I cannot find any microchip documentation on this.

Any heads-up appreciated.


EmbeddedMan

Thu, 11 Oct 2012 12:00:28 +0000

Yup. It does support MIPS16. It's really just C32, so any documentation you find for C32 will apply to the MPIDE compiler as well.

*Brian


JTRelectronics

Thu, 11 Oct 2012 12:55:07 +0000

Thanks for that Brain. Good to know for my future plans.


cmspider

Thu, 11 Oct 2012 22:08:07 +0000

I've noticed floating-point function problems with this release too. With an uno32, the floating point functions don't seem to get replaced with the single precision versions of them properly, unless the -f-no-short-double option is added as suggested above. I saw this with fabs, floor, and log. If I explicitly make them fabsf, floorf and logf then they are ok, but if I leave them without the final f (and compile without no-short-double), then seem to return 0.


EmbeddedMan

Fri, 12 Oct 2012 02:08:37 +0000

I believe that this is because the standard libraries (for this version of the compiler) are all compiled with -fno-short-double, so you have to have your code match that or it won't work. That's just a guess though- Jason K would know for sure.

*Brian


artbecker

Fri, 12 Oct 2012 03:43:23 +0000

Is any official attention going to be made for this latest MPIDE version being unable to install under Ubuntu Linux 12.04? It really is disappointing to be ignored this way in the official thread.

The helpful suggestion of the preferences.txt fix only applies to Windows, as that file is used differently under Linux.

I bought the ChipKit board but it doesn't work under Linux, and I can't get any official acknowledgement that anything is being done to fix the problem.


EmbeddedMan

Fri, 12 Oct 2012 12:46:16 +0000

I apologize for not being able to answer your question or help you out - I only know Windows, so I can't really help with the Linux side of things. Almost all of the developers on the chipKIT/MPIDE team are just donating their spare time to the project, so you never really know when they'll be able to have time to look at a particular problem or not. Hopefully one of the other users or devs who knows Linux can help you solve your problem. Do previous versions of MPIDE work properly for you? Maybe you could use one of them for the time-being?

*Brian


jumpin_jack

Fri, 12 Oct 2012 22:03:42 +0000

@artbecker It's usually best to start a new thread for each issue or question as they tend to get lost in the noise when adding something new to an existing thread. But anyway, could it be related to the rxtx library as described on this wiki page? http://www.chipkit.org/wiki/index.php?title=MPIDE_Installation


bperrybap

Sun, 28 Oct 2012 03:46:37 +0000

I was able to get the release working on Ubuntu 10.10 (I refuse to run any Ubuntu release beyond that release) Not sure about these days, but in the past I found that the LTS releases of ubuntu really lag on being up to date with latest tools, apps, and drivers and for me were less usable than the non LTS releases.

The one problem that I did have with the mpide release is that File Roller (ubuntu GUI archiver) was unable to extract the files from the .tgz or the .tar (if I uncompressed it with gunzip). File Roller got an error. However, if I used the command line to uncompress the .tgz with gunzip and then used tar to extract the files, it all worked as expected and I was able to upload the blink example to an UNO32 board.

I went and tried an install in the latest mint release (mint 13) with mate. I downloaded the release from the github server and then used the default mint13 gui archiver engrampa and that all worked flawlessly. Then the first run fails and will fail until you set up the default sketchbook area. Then when that is done you get the rxtx error. This is cured by installing the librxtx-java package Now compiles and links work.

The next error, andthis is a serious tool error in the IDE that needs to be bugged. The IDE wants to get the size of the binary to see if it is too large. The bug is that the IDE is running avr-size even when a non avr mcu is being used. While this is not an appropriate fix, you can temporarily work around this by installing the binutils-avr package. This installs the AVR version of the binutils tools which should not be needed but are currently needed do the bug in the IDE. Luckily all the binutil programs are the same so the avr-size command works on the pick32 images.

I'm guessing that nobody has ever tested mpide without any of the AVR tools installed.

Anyway, long story short, once the sketchbook directory is set, and librxtx-java and bnutils-avr packages are installed, I was able to build and upload the blink sketch to an uno32 board.

Since mint tends to draw quite a bit from Ubuntu, it is likely that this will also work on the more recent Ubuntu releases.

--- bill


cobra18t

Mon, 17 Dec 2012 18:49:53 +0000

@artbecker and any other Ubuntu users:

I have got MPIDE working on Ubuntu 12.04 thanks to a post by Samuel Toepke. MPIDE was crashing due to a lack of dependencies. Try running the following command (one line) in a terminal (CTRL+ALT+T):

sudo apt-get install openjdk-7-jdk librxtx-java ia32-libs libreadline6:i386 libelf1:i386 gcc-avr

I am running the 64bit version of 12.04 and have not tested anything on the 32bit version. This got it working for me and I hope it works for you!

For reference and further detail, here is the original post by Samuel:

http://www.samueltoepke.com/projects/mpide_ubuntu/public/index.html

-Thomas


dboechler

Sun, 07 Apr 2013 13:56:45 +0000

Cool project!

Anyway you can work in some enhancements to the MPIDE like this? [url]http://arduino.cc/forum/index.php/topic,118440.0.html[/url]

Thanks


YOBE.

Wed, 15 Jan 2014 13:05:16 +0000

Hello,

can anybody please explain. I use release 201209 because it is mentioned under this topic. But when I look futher, I see the page on "current latest versions". There I find 201307 as release version and 201311 as test version.

It seems there are 2 "official releases" 201209 and 201307.

What do you suggest that I use.

At this moment I use 201209 because this seemed to be the one stated under "anouncements".

Thanks,....


Ian_B

Wed, 15 Jan 2014 20:00:37 +0000

The release versions include the date they were released, so release 201209 was released in September of 2012, 201307 was released in July of 2013, etc. This announcement was made quite a while back, so it's safe to say 201209 is outdated.

Even though 20130715 is the latest release version, I would recommend going with 20131118-test. There is a rather significant bug for using Serial1 in 20130715, and each subsequent release (whether an official or test version) will have fixes or other changes, such as adding support for more boards.

The best place to get the current version of MPIDE is at: [url]http://chipkit.s3.amazonaws.com/index.html[/url]


YOBE.

Fri, 17 Jan 2014 06:02:00 +0000

Hi,

can somebody explain this issue. I have been using release 20120903 for a while and recently changed to 20131118. Hoped this included some updates.

One problem I now encounter: my USB-dongle is on COM9(needed to communicate with my HC05). BUT when I use serial monitor in version 20131118 it does not show COM9. Only COM3 (my UNO) and COM10 (no function)

When I use version 20120903 I can use COM3, COM9 and COM10 in my serial monitor.

So for some reason in version 20131118 I loose COM9 in serial monitor???

Thanks


majenko

Fri, 17 Jan 2014 10:43:56 +0000

You won't see any COM ports that are in use by other applications. Make sure that there is nothing else using COM9.


YOBE.

Sat, 18 Jan 2014 03:21:11 +0000

Hello,

yes I know this. All applications are closed.

When I open version 201209 I can see the COM9 port. When I open 20131118 I can not see COM9!!

After further analyze I remember that some while ago I upgraded teh rxtxSerial.dll file due to a problem with my USB-Bluetooth dongle. I use it to communicate with the Chipkit true HC05. On internet I found the upgrade .dll file to solve the issue.

I have now copied the .dll file to 20131118-test and now I see my COM9 port again :D :D :D :D So the problem was a different rxtxSerial.dll file.

Perhaps could be good to integrate this in the test version ;) ;)

Regards,


majenko

Sat, 18 Jan 2014 10:47:07 +0000

Or just switch to UECIDE which doesn't use rxtx at all and works with bluetooth out of the box...


Omera

Sat, 25 Jan 2014 10:22:55 +0000

Thanks for the link; I'll try that work around when I get a chance. In looking through the library files between the two releases they are a bit different. I'm guessing the older one is Microchips and the newer one is the open source compiler.


laputa

Fri, 14 Mar 2014 02:30:40 +0000

There has been some good SD lib work to speed things up across the pond.

Has that been brought in?


Jacob Christ

Sun, 16 Mar 2014 19:53:29 +0000

There has been some good SD lib work to speed things up across the pond. Has that been brought in?

Can you be more specific and provide a link to what you are referring too?

Jacob


majenko

Wed, 19 Sep 2018 09:33:00 +0000

You shouldn't be using MPIDE. It's not been supported for years. Any bugs or problems related to it will be ignored. If you can replicate the problem in the latest version of the chipKIT core in the Arduino IDE (by the way, we've had, I think, three, maybe four, new versions of the compiler since then), then we can look into it (or pass it on to Microchip...).

The current compiler is basically XC32 with the open source "newlib" libc rather than Microchip's proprietary one. If there is a problem with the math library in newlib then I think the whole of the open source community would know about it - almost everyone uses newlib or some variant of it.