Arduino 0007 available.

Arduino 0007 is now available:

Windows: http://www.arduino.cc/files/arduino-0007-win.zip
Mac (Intel): http://www.arduino.cc/files/arduino-0007-mac-intel.zip
Mac (PPC): http://www.arduino.cc/files/arduino-0007-mac-ppc.zip
Linux: http://www.arduino.cc/files/arduino-0007-linux.tgz

Merry Christmas.

Changes include:

  • Smaller core (about 3.5 KB instead of 4.5 KB).
  • Added a SoftwareSerial library (thanks to Antonio, Heather Dewey-Hagborg, and bigengineer for their help).
  • Implemented a Serial.flush() routine; see reference for details.
  • Digital pins 0 and 1 can be used for i/o until a call to Serial.begin().
  • Replaced avr-lib's uart routines with custom code for handling serial communication and modified C++ serial commands to call the C serial commands; the code may behave slightly differently in border cases (e.g. non-standard speeds, or on overflow).
  • Added attachInterrupt() and detachInterrupt() functions for handling of external interrupts on pins 2 and 3.
  • Implemented shiftOut() routine; see reference for details.
  • Defining binary constants: e.g. B1010 is 6.
  • Mac versions no longer require running of the macosx_setup.command script.
  • Windows version comes with the FTDI USB drivers already unzipped.
  • New Linux binary distribution (still requires some programs to be pre-installed).

Does this release include the patch mentioned in this article? This is the one that makes the runtime code into a library, so that the linker excludes anything your program doesn't call.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1164904468

(I have found this very helpful for squeezing more complicated algorithms into the limited space of the Atmega8.)

If not, I would like to volunteer to assist any way I can in getting this into the next release. Testing, coding, etc... just let me know.

  • Don

I tried the release on Debian. I already have installed and working version of Arduino 5 and 6, but when I try the binary release of Arduino 7 for Linux I get the following error message:

Exception in thread "main" java.lang.UnsupportedClassVersionError: processing/app/Base (Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)

Are there files missing? Here is the dir contents of my compiled version of Arduino 6:

~/bin/Arduino0006/work$ ls
arduino     classes  examples  librxtxSerial.so  sketchbook
bootloader  dist     lib       reference.zip

Here is the dir contents of version 7:

~/bin/Arduino0007$ ls
arduino  bootloader  examples  lib  reference  tools

Where are the classes?
Everything is installed correctly, what version mismatch is version 7 complaining about.

Thanks.
Tom

CosineKitty: that patch isn't included in Arduino 0007. It would be great to include in Arduino 0008, and I'd love your help. The main issues are that the patch breaks command line use of Arduino (with a Makefile) by removing main() from the core in lib/targets/arduino, and that emitting main() from within the Arduino preprocessor makes it difficult to maintain. I'd prefer to find a way to leave main() in a file in the lib/targets/arduino directory so that it can be appended to the user's sketch from either the Arduino environment or a Makefile. If you can help with that, there should be no problem including the patch in Arduino 0008.

tof: whoops, I had this problem with Arduino 0005 on the Mac, so I should have been on guard for it. The problem is that I compiled the source code of the Arduino environment with Java 1.5 and forgot the command line argument to make it backward compatible. I'll try to recompile and upload a new version of the release. If you don't want to wait, upgrading to Java 1.5 should fix the problem.

Hey Mellis,

Excellent! I will start working on that some time this week. I am trying to contact the original author of the library patch (nrolland) to see if he wants to collaborate, since it was his idea in the first place. If he is too busy I will be glad to take over for him. In any event, assuming this thing becomes part of Arduino 0008, he should get credit for the idea.

When I have some changes ready to propose, should I contact you? If so, what is the best way? I figure I should run it by somebody official before releasing it out into the wild!

Thanks,

  • Don

tof: I replaced the Arduino 0007 linux distribution. The new one should work with Java 1.4. Does it work for you?

CosineKitty: just send me a private message through this forum. Or just post it publically, if it seems to be working.

The new linux build loads and displays the IDE.
Will test it in depth later.
Thank you for the quick fix.

Tom

Hi CosineKitty,

I'll be glad if we can work together on it as I feel you have the same "open source spirit" as I have.
I'll be back home in 5 days, so don't expect to hear some news from me as I'm not connected (very hard for an arduino geek).

Nicolas

what are you saying ? that we don't have open source spirit? :slight_smile:

Nono, he is saying that we are not "connected" :stuck_out_tongue: