chipKIT® Development Platform

Inspired by Arduino™

UECIDE First Impressions

Created Sat, 15 Feb 2014 17:11:36 +0000 by Jacob Christ


Jacob Christ

Sat, 15 Feb 2014 17:11:36 +0000

So I just downloaded the Windows zip (lite, then full) versions of UECIDE and these are my first impressions.

First I downloaded the lite version, thinking it would work without issue (since I run MPIDE and Arduino IDE). It did not. Nor did it even display any kind of error message when I tried to launch the app. So I figured that the issue was I needed the full version.

Then I downloaded the full windows zip version. This version indeed ran when unziped. However, I don't seen any examples, nor can I select a Board.

I didn't know what to do next so I started this post... Somewhere in the middle of writing it I remembered a post from Matt saying something about plug-ins and thought maybe the cores need to be installed after the fact. Humph, an extra step, I have no patience for extra steps...

I found the plug in page, and wanted to install lots of plugins but found I could only do one at a time (control-click or shift-click would have been nice here).

I was very presently surprised to see a RetroBSD plugin, I'm not sure what to do with it, but I installed it.

I also thought it was a nice touch that dependencies for compilers were detected when a core was selected, but would have like to seen a the dependency for the core detected when a board was selected. I selected an avr-Arduino Uno, but I don't know what core I need (just putting my self in the shoes of a new user, actually wasn't that hard to figure out).

I also wish there was a way to expand all plugin trees so that I can easily see whats installed and whats not. When I clicked the refresh button all my recently expanded trees collapsed (argh).

So, in general as I've gotten older, I get very frustrated when I have to learn a new tool, I think mainly because it keeps me from the task at hand. So this makes me skeptical and frustrated, which I was when I started this post. However, as I played with the plugins I could see the potential and I started getting really excited and thinking UECIDE is really fucking cool. It sets out to finish the job that MPIDE set out to accomplish.

Here are two things I think it needs to be a great candidate to replace MPIDE and Arduino IDE.

  1. In a new install for a new user, a dialog should pop up and tell them that "I notice that there are no plugins installed for any boards, please select some boards you wish to work with".
  2. Core dependencies for boards should be automatic.

A lesser issue for beginners, but one that's bugging me is where did all the cores go once they were installed? Minimally I want to be able to pass an installation around on a thumb drive (because its faster than a network and sometimes a network is not an option, say at a meetup and internet is down).

Jacob


majenko

Sat, 15 Feb 2014 17:51:07 +0000

In order to use the "lite" version you have to have the 32-bit version of the JRE (minimum version 6) installed on your PC. Not included with another system, like Arduino, but installed as a proper installation downloaded from Oracle.

The full version has the JRE bundled with it, just like MPIDE and Arduino do.

All that is detailed on the download page:

The "full" version contains the Java Runtime version 7. If you already have JRE 7 (32-bit) installed on your PC you can use the lite version. Also, if you already have the full version installed the lite version can be used to upgrade it. Note that UECIDE does not support 64-bit Java on Windows at this time.

The way the board -> core -> compiler hierarchy works doesn't lend itself to dependencies. The core -> compiler dependency works only because it is a 1:1 relationship (something which is actually going to change in the future). With a 1:N relationship you can't know which core to install as a dependency.

I am in the process of overhauling the plugin manager a little, so the interface should improve in the future.


majenko

Mon, 24 Feb 2014 22:57:38 +0000

I have just spent a week or so overhauling the whole of the plugin manager system, and also changing the whole way the cores work. Under the hood things have changed drastically:

  1. I have removed the N:1 relationship between cores and compilers. Like boards, it's now N:N, so a core can use many compilers, and many cores can use the same compiler.

  2. The way a core finds its files to compile has been re-written. Cores now compile separate chunks of source into smaller libraries, rather than one huge libcore.a. This makes it possible to split a core down into smaller subdirectories, or include library source code from other projects without having to integrate it into your own API source tree. A number of Arduino-esque systems already have this kind of arrangement of split sources, such as the Due and Maple boards (libmaple), so this now means that a core doesn't have to be as manually hand crafted to work. Instead of the variable "core.path" you now have a collection of "core.library.xxx" entries which define the path lists for each block of library code to compile.

  3. Boards and cores now have a "recommended" parent. Boards recommend which core you should use them with, and cores recommend which compiler you should use. When you install a board, and you don't have the recommended core installed, it will prompt you to auto-install it if you want. The same with a core - it will ask you if you want to install the recommended compiler.

  4. If you have no boards, cores or compilers installed at startup it pops up a message informing you of the fact, then opens the plugin manager for you.

  5. The internal config file parsing system has been changed and enhanced to support a certain amount of in-value scripting. Functions available include ${find:path-list,filename}, $ and ${foreach:list,replaced text with %0 in it}.

Version 0.8.4a is now available for download. It is recommended that you delete all your old downloaded plugins, boards, cores and compilers, as the format and name changes have introduced a certain amount of incompatibility with the old format.

In Linux they are located in the .uecide folder in your home folder. In Windows it's in c:\Users\UserName\AppData\Roaming\uecide, and in OS X it's (if I remember correctly) your user's Library/uecide folder.

Now I just need to deal with the interface to the plugin manager a little - it's still not all I want it to be. I want to implement some kind of download manager into it so you can easily see all your current downloads and their progress.


mikes

Tue, 04 Mar 2014 00:46:08 +0000

I like to include libraries in the sketch folder (for version control purposes)

#include "pic32lib/core.h"
#include "TokenParser/TokenParser.h"

This works with Mpide but does not seem work with Uecide :( Is there something I am missing?


majenko

Tue, 04 Mar 2014 00:57:59 +0000

No, it's something UECIDE is missing, and it's something I am actually working on at the moment. I'm hoping to have it support a proper "libraries" folder within the sketch folder that acts exactly like the sketchbook libraries folder, and takes precedence over all other libraries folders.

The problem I think with your way of doing it is that the code (.cpp files) doesn't get compiled as the IDE doesn't know where to look for it. If you place your libraries in a folder inside the sketch folder called "utility" it may work. I.e.,

MySketch/
MySketch/MySketch.ino
MySketch/utility/
MySketch/utility/TokenParser/
MySketch/utility/TokenParser/TokenParser.h
MySketch/utility/TokenParser/TokenParser.cpp

and still use

#include "TokenParser/TokenParser.h"

... worth a try, anyway...


ahnise

Fri, 06 Mar 2015 18:41:11 +0000

This may not be the right place to post this.. but ..

I just installed UECIDE 0.8.7z36 Build 565.

The plug in list is totally empty. Hitting the Green arrow brings up

Plug-in: Update List Action: Updating Progress 0%

This stays up for about half a second then goes away.

Any ideas ? I checked my firewall and made sure that JRE is not blocked.


Jacob Christ

Fri, 06 Mar 2015 18:43:21 +0000

I think you may need to select a board and version of the core you want to use first.

Jacob


majenko

Fri, 06 Mar 2015 19:07:16 +0000

Looks like the plugins cache has become corrupted again... :/ I'm just flushing it and rebuilding.

The beta uses a much more reliable repository system that doesn't suffer from this kind of problem...


ahnise

Fri, 06 Mar 2015 22:51:16 +0000

Yea.. I installed the beta again and it worked.

Ill follow up soon with my own first impressions..


ahnise

Sat, 07 Mar 2015 21:43:18 +0000

Got a bug UECIDE 0.8.8alpha7. If you bring up the software and then immediately paste into th editor you get a crash. If I put in a few carriage returns first it won't happen.

If this is not an appropriate forum for this post let me know .


majenko

Sat, 07 Mar 2015 22:13:57 +0000

Better to use the UECIDE forums for bug reports, but I'm everywhere anyway, so it doesn't really matter that much ;)

What is the crash you get? I can't replicate it. Also, which OS are you running?


ahnise

Sat, 07 Mar 2015 22:20:44 +0000

Ill reply on UECIDE...