Need testers for a new IDE

I've been working on a brand new Arduino IDE written from scratch (though it borrows some code from the existing IDE). The goal is to be easier to use, clearer, and with some fun new features. (see attached image. note that the visual design isn't started yet.)

Right now the IDE is very alpha but I'm ready to start sharing it with people. I'm look for some Mac users who would like to test it. Don't worry, it will be fully cross platform but I've only built the Mac.app bundles so far. (With luck we can eventually get it into the Mac store tool!).

Interested?

  • J

StartScreenSnapz001.png|1280x800

I like the look, nice and clean, better font, line numbers, reference on hand etc. But I'd rather chew my own arm off rather than use a Mac :)

Let us know when you have it on the PC.

Does the serial monitor stay open so you don't have to relaunch it every time?


Rob

The serial monitor is attached to the code window, that way there is never any doubt about which serial port goes with which sketch. The port will be automatically closed and reopened when uploading a sketch.

Graynomad: I like the look, nice and clean, better font, line numbers, reference on hand etc. But I'd rather chew my own arm off rather than use a Mac :)

Let us know when you have it on the PC.

Does the serial monitor stay open so you don't have to relaunch it every time?


Rob

The port will be automatically closed and reopened when uploading a sketch.

Something people have been wanting for a long time.

One more thing, does the program remember it's size and position between invocations?


Rob

Yes. Per sketch.

Graynomad:

The port will be automatically closed and reopened when uploading a sketch.

Something people have been wanting for a long time.

One more thing, does the program remember it's size and position between invocations?


Rob

Good, that's a real PITA with the standard IDE.


Rob

very interested in PC release Mac - nah!

I've overhauled the build system and set up a server to make the builds repeatable. That means we now have a Windows version. Here's the zip:

http://hudson.joshy.org:9001/job/ArduinoX/lastSuccessfulBuild/artifact/dist/ArduinoX-win.zip

Just unzip it and run the EXE. It has Java and the compiler bundled with it. It runs on Windows 8. It should run on older versions of Windows down to XP, but I haven't actually tried them yet since I'm using Win8 for my job.

This build only has support for a few devices and examples, but it's easy to add more. Please try it out and tell me what bugs/features you want next.

Thanks. Josh

Thanks Josh, at 92Mb I’ll just have to look at this month’s data usage, but I’ll grab it as soon as I can.


Rob

Yes, the downloads are a bit beefy still. I haven't had a chance to trim out unnecessary files from the JRE and gcc bundles.

Graynomad: Thanks Josh, at 92Mb I'll just have to look at this month's data usage, but I'll grab it as soon as I can.


Rob

It's no bigger than a standard IDE download (much smaller than 1.5) so I wouldn't worry about it too much. I just did a 240Mb download though so I have to count the pennies for a while :)


Rob

I've just put up a new build that fixes a ton of bugs. BTW, the Windows build is 64bit only. I'm working on a 32bit build.

Another new build is up. Fixes some build issues and adds a settings screen to turn off full compiler output. I've also managed to slim down the Mac build by about 20 MB. It's still my goal to get under 100MB.

http://hudson.joshy.org:9001/job/ArduinoX/lastSuccessfulBuild/artifact/

Actually, that build isn't any slimmer because I broke something. Fixed now. Just over 100MB now.

I've also started a wiki page for the design and roadmap.

https://github.com/joshmarinacci/arduinox/wiki/Design-and-Roadmap

I've added a Windows 32 build now. The avrtools seem to work underneath it, so I don't know if there's really a 32/64bit difference on the tools themselves. The IDE and it's version of Java are now 32 or 64 bit depending on which zip you download. Please try it out. Thanks!

http://hudson.joshy.org:9001/job/ArduinoX/lastSuccessfulBuild/artifact/dist/

OK, downloaded and runs.

First thing, it looks good, I don't often use the IDE but when I do I'm inclined to use this one just because it is a more modern look and feel.

There is a list of examples in the right panel, how do you load them? Clicking, double-clicking, clicking the "Clone" button all have no obvious affect.

So to get some source code I ran the normal IDE to get the blink sketch.

It fails to compile

INFO: assembling sketch in directory: C:\Users\Rob\Documents\Arduino\Blink
INFO: using temp dir: C:\tmp\blah
INFO: generating C/C++ file: C:\tmp\blah\Blink.cpp
INFO: error!
INFO: null
INFO: java.lang.NullPointerException
    at com.joshondesign.arduino.common.CompileTask.assemble(CompileTask.java:129)
    at com.joshondesign.arduinox.Actions$2$1.run(Actions.java:73)
    at java.lang.Thread.run(Unknown Source)

Turns out C:\tmp\blah\Blink.cpp does not exist, at least not after the event but it may have been cleaned up.

I just repeated the exercise and the first line is now

INFO: assembling sketch in directory: C:\ArduinoX\win

A different folder to the last time.

Also it doesn't remember the window location and size and ^A doesn't highlight all the text even though the menu option does. I assume the "Meta" key is not set for Windows? ^C and ^V work.


Rob

Downloading it now. I'm trying out the Mac version. I'll give it a try for a few days and report back. Thanks for taking the time to do this. :)

Thank you for the feedback. That's the only way it will get better.

The clone button on the examples panel didn't work. I just implemented the code and pushed out a commit. In the newest build should work now. Press the clone button to open up a new instance of that example sketch. Eventually I'd like to make the example search be full text, including the example source, but for now it's just the description and tags.

Regarding the compile error, can you tell me more? Does c:\tmp not exist on your computer? I may need to find a different way of calculating the temp directories that is cross platform.

The window settings are stored per sketch. If it's not remembering them then it's because it's not saving the settings for some reason. Can you send me some console logs?

The keystrokes are hard coded right now for the Mac. ^C and ^V work only because they are built into Java. I will to create a new set for Windows. Since I'm not a regular Windows user I could use some suggestions on what you would like.

Thanks! - Josh

Graynomad: OK, downloaded and runs.

First thing, it looks good, I don't often use the IDE but when I do I'm inclined to use this one just because it is a more modern look and feel.

There is a list of examples in the right panel, how do you load them? Clicking, double-clicking, clicking the "Clone" button all have no obvious affect.

So to get some source code I ran the normal IDE to get the blink sketch.

It fails to compile

INFO: assembling sketch in directory: C:\Users\Rob\Documents\Arduino\Blink
INFO: using temp dir: C:\tmp\blah
INFO: generating C/C++ file: C:\tmp\blah\Blink.cpp
INFO: error!
INFO: null
INFO: java.lang.NullPointerException
    at com.joshondesign.arduino.common.CompileTask.assemble(CompileTask.java:129)
    at com.joshondesign.arduinox.Actions$2$1.run(Actions.java:73)
    at java.lang.Thread.run(Unknown Source)

Turns out C:\tmp\blah\Blink.cpp does not exist, at least not after the event but it may have been cleaned up.

I just repeated the exercise and the first line is now

INFO: assembling sketch in directory: C:\ArduinoX\win

A different folder to the last time.

Also it doesn't remember the window location and size and ^A doesn't highlight all the text even though the menu option does. I assume the "Meta" key is not set for Windows? ^C and ^V work.


Rob

BTW. I just added colorized output to the compiler console. Now you should see info and warnings in different colors and weights from compiler output and errors.

Does c:\tmp not exist on your computer?

The folder exists and has a subfolder names "blah" but no files.

Can you send me some console logs?

LIke this you mean?

ResourceManager resource configuration:
 - Resource category: JAVA
 - Current directory: C:\ArduinoX\win\
 - Property count: 18
 - Property:  =<>
 - Property: arguments=<>
 - Property: bundledvm=
 - Property: classpath=
 - Property: currentdir=<${EXECUTABLEPATH}>
 - Property: embedjar=
 - Property: javapropertiescount=<1>
 - Property: javaproperty_name_0=
 - Property: javaproperty_value_0=<./lib>
 - Property: jvmsearch=
 - Property: mainclassname=
 - Property: maxversion=<>
 - Property: minversion=<1.6>
 - Property: skel_Debug=<1>
 - Property: skel_JniSmooth=<0>
 - Property: skel_PressKey=<1>
 - Property: skel_SingleInstance=<0>
 - Property: skel_SingleProcess=<1>
Main class: com.joshondesign.arduinox.Start
Currentdir: C:\ArduinoX\win
Now searching the JVM installed on the system...
JVM Lookup: found VM (V(1)(6)(0)) in registry.
JVM Lookup: found VM (V(1)(6)(0)) in registry.
JVM Lookup: Env-Var JAVA_HOME not defined on this system.
JVM Lookup: Env-Var JRE_HOME not defined on this system.
JVM Lookup: Env-Var JDK_HOME not defined on this system.
Found a vm bundled with the application: (jre)
Current directory is C:\ArduinoX\win\
Running now <><0.0.0>, instanciate=no
Launching <><0.0.0>
RuntimeLibPath used: C:\ArduinoX\win\jre\bin\client\jvm.dll
No version, trying with 1.6.0
Saving jnismoothjar in C:\Users\Rob\AppData\Local\Temp\temp4.jar
Created temporary filename to hold the jar (C:\Users\Rob\AppData\Local\Temp\temp
4.jar)
ClassPath element is C:\ArduinoX\win\ + lib\ArduinoX.jar
ClassPath element 0=C:\ArduinoX\win\lib\ArduinoX.jar
ClassPath element is C:\ArduinoX\win\ + lib\RXTXcomm.jar
ClassPath element 1=C:\ArduinoX\win\lib\RXTXcomm.jar
ClassPath element is C:\ArduinoX\win\ + lib\arduinocompile.jar
ClassPath element 2=C:\ArduinoX\win\lib\arduinocompile.jar
ClassPath element is C:\ArduinoX\win\ + lib\jsyntaxpane-0.9.6.jar
ClassPath element 3=C:\ArduinoX\win\lib\jsyntaxpane-0.9.6.jar
ClassPath element is C:\ArduinoX\win\ + lib\swing-layout-1.0.4.jar
ClassPath element 4=C:\ArduinoX\win\lib\swing-layout-1.0.4.jar
ClassPath element is C:\ArduinoX\win\ + lib\XMLLib.jar
ClassPath element 5=C:\ArduinoX\win\lib\XMLLib.jar
VM Created successfully
DLL Setup on 1.6.0
Classpath: -Djava.class.path=C:\Users\Rob\AppData\Local\Temp\temp4.jar;C:\Arduin
oX\win\lib\ArduinoX.jar;C:\ArduinoX\win\lib\RXTXcomm.jar;C:\ArduinoX\win\lib\ard
uinocompile.jar;C:\ArduinoX\win\lib\jsyntaxpane-0.9.6.jar;C:\ArduinoX\win\lib\sw
ing-layout-1.0.4.jar;C:\ArduinoX\win\lib\XMLLib.jar;
Option added:-Djava.library.path=./lib
VM 1.2+ Created successfully !!
Looking up for class 
Looking up for class 
Looking up for class 
Looking up for class 
Looking up for class 
Looking up for class 
Looking up for class 
Result code on DLL: 1
Looking up for class 
Looking up for class 
Looking up for class 
Invoke Static main ([Ljava/lang/String;)V
the toolchain path = null
WARNING:  RXTX Version mismatch
        Jar version = RXTX-2.2pre1
        native lib Version = RXTX-2.2pre2
resources dir = C:\ArduinoX\win\resources
parsing: C:\ArduinoX\win\resources\hardware\boards\diecimila.xml
parsing: C:\ArduinoX\win\resources\hardware\boards\mega2560.xml
parsing: C:\ArduinoX\win\resources\hardware\boards\uno.xml
basedir = C:\ArduinoX\win\resources\examples
Loaded settings: 3
Nov 20, 2012 10:50:08 PM jsyntaxpane.DefaultSyntaxKit loadConfig
INFO: unable to load configuration for: class jsyntaxpane.syntaxkits.CSyntaxKit
from: jsyntaxpane/syntaxkits/CSyntaxKit/config.properties
installing font: java.awt.Font[family=Courier New,name=Courier New,style=plain,s
ize=12]
prop = componentPopupMenu
prop = document
preferred size = 26.0
prop = editorKit
prop = background
prop = caretColor
prop = selectionColor
installing font: java.awt.Font[family=Courier New,name=Courier New,style=plain,s
ize=12]
prop = componentPopupMenu
prop = componentPopupMenu
prop = font
preferred size = 28.0
prop = font
preferred size = 28.0
prop = ancestor
prop = ancestor
saved settings to : C:\settings.properties
serial port = COM11
saved settings to : C:\settings.properties
serial port = COM11

This is from an invocation after using the app with a maximised window. It came up at the standard small size.


Rob