Pages: 1 [2] 3   Go Down
Author Topic: Arduino 1.0 IDE Compatibility with previous versions  (Read 8789 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I only started Arduino 1 week ago, and what a nightmare!
I was about to go back to Labview and direct programming of microcontrollers, until I found this thread.

Nothing with libaries would compile, the help files where no help at all, because they refered to a Wprogram.h that I couldn't find anywhere.

I have downloaded 023, and I am willing to try Arduino again, because for small tasks/ prototyping, it makes programming so easy (now that it will compile).

I've been developing software / hardware for 20+ years now, and I must say, this 1.0 is a real flop guys, sorry smiley-sad

Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 141
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You're wrong kaor. Why don't you RTFM?
Quote
· Renamed WProgram.h to Arduino.h.
Quote
* The WProgram.h file, which provides declarations for the Arduino API,
  has been renamed to Arduino.h. To create a library that will work in
  both Arduino 0022 and Arduino 1.0, you can use an #ifdef that checks
  for the ARDUINO constant, which was 22 and is now 100.  For example:

  #if defined(ARDUINO) && ARDUINO >= 100
  #include "Arduino.h"
  #else
  #include "WProgram.h"
  #endif

I doubt you don't understand my goal, just quoted the code smiley)
this code is supposed to be inserted in project not in library, therefore old projects should be modified and that isn't the best way imho smiley
There are many libraries that hasn't been updated (most of them!)
« Last Edit: January 03, 2012, 12:19:42 pm by kaor » Logged

რასაცა გასცემ შენია, რაც არა - დაკარგულია!

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've been reading this highly interesting thread because I've been experiencing the same problems as everybody since I switched to IDE 1.0.
Does seem a shame to excessivly bad programmers like myself to have to dig into library fixing tasks when we just want to get our projects up and running. Even worse - from what I read, it sounds like the future versions of the IDE might be paying versions? What a nightmare!
I've been using Arduino for 3 years and really enjoy the whole "easy to use" philosophy - I'd given up on microcontrollers after some heroic efforts on the 87C752/752 family in assembler a few years ago...
I like the look and feel of the 1.0 IDE but I think I'll stick to 0023 untill things settle down a bit.
Keep up the good work!
And thaks for all your valuable input for people like myself smiley
Logged

SE USA
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3783
@ssh0le
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I always linger a few versions behind, but I really struggle with "movin on up" to 1.0, just recently I had linux mint 10 installed on my bench machine, which lost support as of this month. It is a older release and thus even older packages, I was running arduino v.18.

I was working on a project using TV out library, which makes things pretty tight in the ram department, with the old .18 which I actually like the best I had 333 bytes of ram free. Then I upgraded linux to xbuntu, apt-get arduino got the .22 version ... ok whatever theres some handy things there, bam 220 bytes free.

I have 1.0 installed on my main / windows desktop for when I need to test some code when trolling the forums so I plopped my project into that, uploaded and bam 186 bytes free.

So while I am stressing to pinch bytes to ensure I have enough for my project + a little wiggle room, the newer software packages are eating more room for zero gain (not to mention the hex files increased significantly each time as well), which really puts me into a rush to get the bleeding edge ...

Hell I am seriously contemplating rolling back to .17 or .18, though I might have to fix a couple things here and there, why not? Sounds like I am going to have to anyway, might as well save ram and program space while I am at it.
Logged


Left Coast, CA (USA)
Online Online
Brattain Member
*****
Karma: 361
Posts: 17263
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've been reading this highly interesting thread because I've been experiencing the same problems as everybody since I switched to IDE 1.0.
Does seem a shame to excessivly bad programmers like myself to have to dig into library fixing tasks when we just want to get our projects up and running. Even worse - from what I read, it sounds like the future versions of the IDE might be paying versions? What a nightmare!
I've been using Arduino for 3 years and really enjoy the whole "easy to use" philosophy - I'd given up on microcontrollers after some heroic efforts on the 87C752/752 family in assembler a few years ago...
I like the look and feel of the 1.0 IDE but I think I'll stick to 0023 untill things settle down a bit.
Keep up the good work!
And thaks for all your valuable input for people like myself smiley

It's not just a one or the other version choice, as actually the best solution is have both v23 and v1.0 installed on your PC.

Lefty
Logged

Global Moderator
Dallas
Offline Offline
Shannon Member
*****
Karma: 200
Posts: 12779
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Even worse - from what I read, it sounds like the future versions of the IDE might be paying versions?

Paying versions?  As-in the Arduino folks will try to charge money for it?
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 50
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The Arduino Team considered including a WProgram.h, but ultimately they decided against it:

http://code.google.com/p/arduino/issues/detail?id=609

Personally, I would not have made that choice.  In Teensyduino, I kept WProgram.h and also added Arduino.h, so either new or old libs can work.

I strongly agree with Paul on this.  I think many of the choices made for Aduino 1.0 were less than farsighted and have probably created a great deal of confusion for new, or novice users (which I'm told are a primary target for Arduino.)  In my opinion, the real value proposition in Arduino is the vast array of user libraries that handle a lot of complex details and make it possible to use sophisticated components, such as accelerometers, barometric pressure sensors by just importing a library and defining a few parameters.  yet, the changes made to Wire API, for example, have broken many of these libraries and left users who depended on them in a weird kind of ("gee, everything broke when I updated to 1.0" limbo.  Would it really have been that hard to include additional methods to allow for backwards comparability with these libraries until their respective authors could have time to update them and, more important, have time for these updated libraries trickle down into all the secondary sources, projects and books that reference them.

Wayne
Logged

Belgium
Offline Offline
Edison Member
*
Karma: 68
Posts: 1906
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

All
As we are complaining; I'll add one. smiley-cool
I think the change in flush is worst of all. As I already implied in other posts: Removal of flush would have been "not smart, but acceptable". Reusing flush for a different purpose is "Stupid and unacceptable" (any professor would rightfully sack you for this  smiley-twist)
The strongest argument for removing flush was: "there is no possible need for a function like that" (That is for the original implementation throwing away data)
Some heroic discussions on the usefulness of throwing away data have been held on this forum. Separating the community in 4 groups; The believers  smiley-evil, the non believers smiley-twist, the readers smiley-cry and the ignorant smiley-sleep

Later on -when I copied some Arduino IDE code into my eclipse plugin- I was at least astonished smiley-eek-blue. Because in the Arduino IDE the flushed functionality (in the "throw away data" sense) of serial data is used smiley-eek. I guess that proves the usefulness of the code.

Don't get me wrong. I switched to 1.0 because it supports DHCP for the Ethernet shield and I'm happy I did. But the lack of a transition period brought some clouds which could easily have been avoided.
And yes anyone who re purposes a function in my class can forget deliberation. smiley-cool

Best regards
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

0
Offline Offline
God Member
*****
Karma: 26
Posts: 606
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

yet, the changes made to Wire API, for example, have broken many of these libraries and left users who depended on them in a weird kind of ("gee, everything broke when I updated to 1.0" limbo.  Would it really have been that hard to include additional methods to allow for backwards comparability with these libraries until their respective authors could have time to update them and, more important, have time for these updated libraries trickle down into all the secondary sources, projects and books that reference them.

Several weeks ago, actually on March 11, I tried to bring this exact idea up on the Arduino developer mail list, to be included in 1.0.1.  

Of the many lingering 1.0 incompatibility issues, legacy sketches and examples using Wire seems to be the most persistent.  Nearly all widely used libraries have been updated, so the initial pain of changes like WProgram.h to Arduino.h have largely been solved.

I submitted issue 854 with a patch.  Here's the URL:

http://code.google.com/p/arduino/issues/detail?id=854

You can read the developer list archives on March 11-12 if you want to see the conversation.

Eight people gave opinions, where 3 of those 8 were from the Arduino Team.  Tom Igoe replied "That's a good idea."  Massimo Banzi wrote "Personally I think we warned people well in advance that we were going to break a few things in order to have a more consistent 1.0 release.  We clearly stated that 1.0 was going to be stable in the future."  David Mellis responded (on the issue tracker) "I'm not quite convinced this is a good idea, but if we're going to do it, we should do it for 1.0.1.  Will consider."

Responses from others also varied, with some in favor, some against, and some neutral, including Todd Krein (who's actively working on Wire) willing to go with whatever the decision ended up being.

With Massimo and David seemingly against, I decided not to advocate this patch further.  It's still on issue 854, and I'm planning to keep it as part of the Teensyduino installer for the forseeable future, so at least people using Teensy will automatically have pre-1.0 sketches using Wire work automatically.  I honestly believe it would benefit so many Arduino users if included in the upcoming 1.0.1 release, with no practical downside.  That's why I went to the trouble to create it for Teensy users, and the additional effort to prepare an issue+patch and write up a lengthy post to the developer list to advocate it.  Much as I'd like to see this in Arduino 1.0.1, it's simply not my decision, nor within my ability to convince those who do.

Sadly, the playground, old forum and numerous websites will probably never be fully updated or purged of old Wire library examples.
« Last Edit: April 24, 2012, 04:50:19 am by Paul Stoffregen » Logged

Belgium
Offline Offline
Edison Member
*
Karma: 68
Posts: 1906
Arduino rocks; but with my plugin it can fly rocking the world ;-)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

All
If you feel compatibility is an important issue I propose you star or comment issue 854 from Paul

http://code.google.com/p/arduino/issues/detail?id=854

I did, I hope you do  smiley
Best regards
Jantje
Logged

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 63
Posts: 2649
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

All
If you feel compatibility is an important issue I propose you star or comment issue 854 from Paul

http://code.google.com/p/arduino/issues/detail?id=854

I did, I hope you do  smiley
Best regards
Jantje

Why bother? They are going to do whatever they want anyway.
The best way to get this and other things resolved is to fork the IDE.
So my recommendation would be to go over and work with the mpide guys and see if they
will accept the modifications.
That way users that want/need this and other capabilities could
simply switch to mpide and leave the Arduino's team IDE behind.

--- bill
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 50
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

With Massimo and David seemingly against, I decided not to advocate this patch further.  It's still on issue 854, and I'm planning to keep it as part of the Teensyduino installer for the forseeable future, so at least people using Teensy will automatically have pre-1.0 sketches using Wire work automatically.  I honestly believe it would benefit so many Arduino users if included in the upcoming 1.0.1 release, with no practical downside.  That's why I went to the trouble to create it for Teensy users, and the additional effort to prepare an issue+patch and write up a lengthy post to the developer list to advocate it.  Much as I'd like to see this in Arduino 1.0.1, it's simply not my decision, nor within my ability to convince those who do.

Sigh, I used to follow the developer list, but it quickly became apparent that some pigs are more equal than others when it comes to the decisions that drive the Arduino project.  I suppose it's their game so they can do whatever they want, but I find it sad that something as basic as backwards compatibility would be a point of contention, even actively rejected when volunteers are willing to make it happen.  Frankly, there are a lot of things about the governance of the Arduino project that baffle me.  So, perhaps this is a good place and time to rant a bit.

First, there's this almost disingenuous logic used to justify some of the decisions that get made.  For example, on the one hand, the user target is defined as "artists, designers, hobbyists, and anyone interested in creating interactive objects or environments"."  This user definition is then used to justify certain kinds of decisions, such saddling the basic I/O function with all kinds of protective logic that slows down performance.  Then, a completely different kind of user definition is used to justify decisions like this where novice users upgrading to 1.0 will somehow know how to diagnose broken libraries and fix them because they were "warned" that libraries might break in 1.0.

Wayne
Logged

0
Offline Offline
God Member
*****
Karma: 26
Posts: 606
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I really don't think merely "starring" (a.k.a. voting for) the issue on google code will be noticed.
David does monitor the issue list, at least for reading new issues, but I doubt old ones get much attention unless brought up in a conversation.

Obviously the Arduino developers do participate on the developer mail list.  My frustration with that list is involves the philosophical responses, usually without having even read, not to mention actually compiled and used the code in question!  Often it seems a useful bit of code or a practical idea gets lost in a swarm of off-topic responses.

Logged

SF Bay Area (USA)
Offline Offline
Tesla Member
***
Karma: 124
Posts: 6653
Strongly opinionated, but not official!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So you think that the library authors who aren't updating their "completely broken in 1.0" libraries would have gotten around to updating their code faster, if there had been a compatibility mode that meant they didn't have to ?

Sometimes a clean break is needed for anything at all to happen.  :-(
Logged

Dallas, TX USA
Offline Offline
Faraday Member
**
Karma: 63
Posts: 2649
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So you think that the library authors who aren't updating their "completely broken in 1.0" libraries would have gotten around to updating their code faster, if there had been a compatibility mode that meant they didn't have to ?

Sometimes a clean break is needed for anything at all to happen.  :-(


But if 1.0 was handled differently, in many cases their libraries wouldn't have been "broken" in the first place
and would have continued to work in 1.0 so there would be no need for them to have to update their code
to make it work in 1.0
And who cares if the pre 1.0 libraries NEVER got updated?

The bottom line is most people, especially library users, want things to "just work".
They really don't care about the mundane little details under the hood.

The libraries didn't break on their own, the 1.0 IDE package broke them. I see that as a big difference.
The net result of how 1.0 was handled, was that the wants of the few out weighed the needs of the many.

A small group of people decided that they wanted things to now be done a certain way and at the same time decided that
even though in some cases the old way of doing things could still be supported, they will not allow anybody to do things
the old way anymore.

Sure it's the Arduino Teams prerogative to modify and change things anyway they want in their release, but
I still can not understand the logic of  deciding to intentionally break things when it was possible to provide
transparent mechanisms that allowed many (but not all) of the existing pre 1.0 libraries to continue working.
Particularly right as the s/w goes into it's first official 1.0 release.

The point everyone seems to be saying is that it didn't have to be this way.

The most infuriating part is that this tiny little decision by the Arduino team to not support any of the pre 1.0 libraries
does not seem to really affect them very much, but it affects 100's if not 1000's of others as they have to deal with
the aftermath of that decision.

I just don't don't get it.

--- bill


Logged

Pages: 1 [2] 3   Go Up
Jump to: