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.
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:
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.
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!
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).