UECIDE: A New Fork of the IDE

I downloded the UECIDE, then registered on forum to leave some comments, activated my account. Tried to post and got error that message is flagged as SPAM, no matter what I write. A few minutes later when I open uecide.org I get this message

"Your IP address has been denied access to this service

This is most likely because your computer has been identified as a source of spam of one form or another.""

FIX THIS.

Fixed now. Akismet (anti-spam module) was denying all messages (I was wondering why I wasn't getting any).

I had to take extreme measures a bit back against spammers as I was getting upwards of 1,000 spammer registration attempts per hour, so I made it automatically block any IPs that were flagged as spam. That was fine for the ones flagged by StopForumSpam, but Akismet turned out to be a bad idea. Akismet is now turned off, and the auto-blocker is also disabled; we'll see how the site copes.

Thank you, you fixed this. I can browse the site, and I can post in the forum.

A new version of UECIDE – version 0.8.2a – is now available for download.

The major change in this update is the addition of what I am calling “SAR” files. These are “Sketch ARchives”, which are basically a JAR file (which itself is just a special ZIP file) which contains information about a sketch, the sketch folder itself, and any contributed libraries the sketch uses.

You can now export your sketch as a SAR file, email it to someone, post it on a forum, whatever, and someone else can then import that SAR file, and it should just compile straight off for them. No hunting around for the right libraries, etc – just one file with it all in.

You can also use it for archiving sketches. Because it bundles all the required libraries in with the sketch you won’t have the problem of hunting the internet for the right libraries when you dust off that old project you started two years ago.

And because it’s basically a ZIP file you can even unzip it manually to get at the data in it, so you’re not really restricted to using it with UECIDE. It’s just easier if you do.

UECIDE.ORG

it bundles all the required libraries in with the sketch you won’t have the problem of hunting the internet for the right libraries when you dust off that old project you started two years ago.

Nice feature.

I'm not doing any programming at present but I'll grab the latest version and have a play.


Rob

SAR - nice! Would it be possible to store the sketch under different name (ie. when importing a package and the sketch with the same name does exist already)? Also having a settable path to my_sar_folder (a .sar repo) in preferences would be nice to have.

Good ideas, yes. I'll roll them into the next release, which I hope to do soon as I have introduced a small bug:

I have moved the serial port detection routine to the serial port menu. With the latest version, if you have no serial ports when you load up, then plug in a serial port, you can't get to the serial ports menu to trigger a re-scan).

I am thinking I may have a "Re-scan Serial Ports" menu entry in there and do away with the automatic re-scanning - that way when you open the serial port menu it doesn't reset all the arduinos you have connected - it will only do it when you ask it to.

Thoughts on that one?

Could you use something like this to detect when a USB device has been attached and then rescan?
I suppose that would on USB devices and not Bluetooth.

That's a great idea - I'll look into that.

Sorry if this question has been answered. I wish to know what version of avr-gcc this IDE supports.

I wish to add C++11 features to a library and need to test out optimizations of features like lambdas, SFINAE and variadic templates.

A minimum I would like to use is: 4.6.X: Status of Experimental C++0x Support in GCC 4.6 - GNU Project

I'm simply looking for the easiest route to using a modern standard compiler. On that note, what gives, Arduino?? 4.3.3/c99 is no longer a modern C++ standard. Textbooks are starting to document C++ features without specifying that the features are C++11 or higher. Just a cause for more questions that shouldn't need answering. The API has been broken once with the release of 1.0, hell break it again, this time with good cause. The bloated API could do with a fresh compiler to make the most of small flash sizes. Phew...

UECIDE uses what Arduino uses - 4.3.1. There is, however, (if you are on Linux, as that is all I have been able to compile it for) an experimental 4.8.1 core and compiler combination in UECIDE. If someone fancies compiling avr-gcc et al for Windows and OS X for me I can roll it out to everyone instead of just the privileged Linux users.

A quick search found this: Redirecting to Google Groups

It seems Massimo is keen to get a new compiler in, also the conversation is about 4.8.1.

I'm going to check out this, might have a compiled version.
https://groups.google.com/a/arduino.cc/d/msg/developers/21G5w2HbUOg/bJtG94vEEhkJ

Code to build the toolchain on linux32, linux64, mac32 and windows is
available on the atmel-3.4.3 branch at
GitHub - arduino/toolchain-avr: The AVR toolchain used by the Arduino IDE

Nice find. I'll look at integrating those binaries.

Right, you should have access to the "arduino481" core in the UECIDE Plugin Manager now. If you install that, it should install the avr-gcc-481 compiler as well. Then you can select the arduino481 core in the hardware menu and give it a whirl.

Will try right now, thanks for putting it together.

Hello,

I am discovering UECIDE but I am facing an issue with my Arduino Due : I am able to compile but when trying to upload the sketch to my board, I got the following error : "No upload command defined for board".

Could you help me ?

Thanks,
Thierry

ThierryFrance:
Hello,

I am discovering UECIDE but I am facing an issue with my Arduino Due : I am able to compile but when trying to upload the sketch to my board, I got the following error : "No upload command defined for board".

Could you help me ?

Thanks,
Thierry

Which operating system are you using?

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}, ${if:value=value,true value,false value} 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.

Things have been leaping on ahead with UECIDE recently. There have been many big changes.

Today's big change is to allow multiple locations for user libraries. You can now specify many places for the IDE to look for libraries, and each location has its own menu entry and everything.

Read more here: http://www.uecide.org/forum/viewtopic.php?f=9&t=167

Change-log for version 0.8.5e

833c432 Fixed compile abort on sketch error

I bug in the compiler system meant that if the sketch (which is compiled
first in the list) has an error the compilation continued right to the end
resulting in the error being lost up the top of the output. It now aborts
the compilation immediately the sketch compilation fails.

2a7cf68 Created basic sketch backup system

You now have the option to, when saving your sketch, to create a number
of backup copies. The number (and the option) to save is in preferences,
and if enabled, it keeps the last N versions of your sketch files in a
"backup" folder inside the sketch. The backups are named -1
through to -N, with -1 being the most recent copy. At the
moment it only backs up the files that are able to be edited directly by
the IDE, so doesn't include sketch libraries, binary files, etc.

3b87588 Better default Linux sketchbook location

The Linux version now doesn't prompt for a sketchbook location the
first time you start the program. Instead it now, like the other
platforms, creates a "UECIDE" folder in your documents folder
(/home/foo/Documents/UECIDE) for your sketches. Of course, if you
already have a sketchbook folder elsewhere set up in the preferences.txt
file, it will keep using that.

86f348b Removed the windows JRE from the repo

The JRE distribution is now stored online at
http://uecide.org/support/jre-7-windows.zip
This makes tarball downloads of the repository considerably smaller.
The repository will also be pruned to remove the large files
historically too.

3ade2a5 Added version.plist file generation

When compiling UECIDE outside of git (say from a downloaded tarball)
the version information is not available. Now, if it's not being
compiled inside git, the version information is obtained from a
version.plist file. That file is updated automatically by the
build script when compiled from within git.

23bbb97 Porting to FreeBSD

This is the start of an effort to port UECIDE cleanly to FreeBSD, including
the ability to build and package it through the FreeBSD ports system.

518dbc9 Removed early jre version

There was a left-over large zip file of JRE 6 for windows hanging
around in the Windows dist folder. It has been removed.