Arduino Studio 0.1a - 006 Cross Platform (runs on Windows, Mac & Linux)

RELEASED: Arduino Studio 0.1a - 006

A Cross Platform Mono (.NET) Application (runs on Windows, Mac & Linux) that reads and writes to the serial device of your Arduino UNO/MEGA. It behaves much like the serial monitor that comes with the Arduino Software but with a few tweaks ...

For this software to work you must have the Mono-Framework installed on your system. Please visit http://www.mono-project.com and download the mono-framework according to your Platform.

Download Arduino Studio 0.1a - 006 HERE. (Windows 7)

Download Arduino Studio 0.1a - 006 HERE. (MAC OSx >= 10.6)

Download Arduino Studio 0.1a - 006 HERE. (Linux Ubuntu 11.04)

Notes:

  • In OSx and Linux the Arduino UNO/MEGA gets automatically reset upon initial serial connection.

  • In Windows, the Arduino UNO/MEGA doesn't get automatically reset upon initial serial connection.

  • Added AutoScrolling to the TextView (AutoScrolling is Enabled by Default)

  • Added KeyPressEvent CMD+d (Toggle AutoScrolling On/Off)

  • Added KeyPressEvent CMD+e (Show/Hide the CHANGELOG.txt file)

  • Added KeyPressEvent CMD+f (Toggel Set Serial String Terminator or exit the window with "Enter" or "Escape")

  • Added KeyPressEvent CMD+q (Quits the Application)

  • Added KeyPressEvent CMD+s (Saves the entire Textbuffer to a file named ArduinoStudio-{DateTime}.log in your homedirectory)

  • Added KeyPressEvent CMD+w (Toggle WordWrap On/Off)

TODO:

  • iEntryOnActivated -> sends \n , if String Terminator is Empty the \n must be removed ...

CHANGELOG:

  • 0.1a 006
  • The Cross Platform Release ...
  • Added support for Windows, Mac & Linux
  • ...
  • 0.1a 005
  • Performed Code Cleanup
  • ...
  • 0.1a 004
  • New Alpha Icons
  • Added AutoScrolling to the TextView (AutoScrolling is Enabled by Default)
  • Added KeyPressEvent CMD+d (Toggle AutoScrolling On/Off)
  • Added KeyPressEvent CMD+e (Show/Hide the CHANGELOG.txt file)
  • Added KeyPressEvent CMD+f (Toggel Set Serial String Terminator or exit the window with "Enter" or "Escape")
  • Added KeyPressEvent CMD+q (Quits the Application)
  • Added KeyPressEvent CMD+s (Saves the entire Textbuffer to a file named ArduinoStudio-{DateTime}.log in your homedirectory)
  • Added KeyPressEvent CMD+w (Toggle WordWrap On/Off)
  • Added Plist support that stores the SerialPort,BaudRate and String Terminator values
  • Fixed the STOP-button so it no longer exits the application but just stop the thread
  • ...
  • 0.1a 003
  • FineTuning UserInterface
  • ...
  • 0.1a 002
  • Added UserInterface
  • Added Multi-Threading
  • ...
  • 0.1a 001
  • Proof of concept
  • ...

Good start!
you mean MONO, as in .NET application? => does it compile under win/linux too?

I use serial tools for Mac (it's available through the programmer's website) native application in Objective-C.

It does what's expected... although, I'd like to have the ability to change the string terminator like in the Arduino interface. But you can't have everything... :frowning:
Will you implement that on your version? That would be the push to try it. :wink:

robtillaart:
Good start!
you mean MONO, as in .NET application? => does it compile under win/linux too?

Yep MONO , as in .NET. :slight_smile:

I didn't do/take the effort yet to compile and run/test it in windose or linux ...
I'll put it on my todo list ...

bubulindo:
I use serial tools for Mac (it's available through the programmer's website) native application in Objective-C.

It does what's expected... although, I'd like to have the ability to change the string terminator like in the Arduino interface. But you can't have everything... :frowning:
Will you implement that on your version? That would be the push to try it. :wink:

I see, well, ... changing the string terminator ... I think I can do that ... >> TODO

Stay Tuned ...

What to expect in the next version ...

  • implemented autoscrolling and a plist that reads and stores the serialport and baudrate upon start and end of the program,
  • added a keypress event to quit on a Mac (CMD+q),
  • added a keypress event to Enable or Disable Autoscrolling (CMD+d),
  • added a keypress event to save the entire buffer of the textview to a logfile for later analysis (CMD+s),
  • ...

Automatic word wrap is another. :wink:

If I remember correctly, both the word wrap and send on the Serial Tools software are missing. So the data is sent as I type, instead of when I push "Send" or Enter. Which is where the line terminator (none, Line Feed, Carriage Return, both) comes in handy. :slight_smile:

bubulindo:
Automatic word wrap is another. :wink:

If I remember correctly, both the word wrap and send on the Serial Tools software are missing. So the data is sent as I type, instead of when I push "Send" or Enter. Which is where the line terminator (none, Line Feed, Carriage Return, both) comes in handy. :slight_smile:

I'll put Word Wrap on the TODO.

FYI, the data is not send to the arduino while you're typing in the entry field ...
Only after an "Enter" does the string get send to the arduino device.

WordWrap ... Done ...

Let us know when you reach 1.0 :slight_smile:

Released ArduinoStudio 0.1a - 005

See top post for more information ...

This is way off-topic... but, maybe interesting for some, so here's an idea.

I have noticed from some people that ask me for advice, that they haven't got a clear idea of what a protocol is, and how to implement it. So, an idea for your program (or a completely new one altogether) would be to create a communication protocol to work with Arduino and a program on the computer.

Example:

Arduino is controlling the level of a tank. It has a level sensor, operation mode (manual, auto), and a valve to fill up the tank.
So, while sending this data to the computer is easy, creating a program that takes this data and displays it isn't. So, my idea would be to create a program that would read the data, interpret and display it in the right place. This would be sort of a poor man's SCADA. See what I mean?
If we define the protocol on how to send the data and how to display it on a nice screen with info and create an object to be used in Arduino to send this up to the computer, the entire problem of having some supervision would be fixed for most people using Arduino.

Also, since you're using Mono, porting it to Windows would be simple (or so I think).

Get what I mean? It's a more demanding project, but something that would be quite interesting for most people.

You're referring to a standard library communication protocol on top of the serial port driver I presume ...
That would be something to consider but I doubt that it would be a one-person's project but more like a team-effort project ...

Yes, it would be a library that would effortlessly put the Arduino and a computer sharing the data and control of a system.

You would define signals in Arduino, say:

B1, B2, R1, R2... (so you'd save space in the comms) and then on the computer side, you'd just create a new box that would correspond to B1, B2, R1, R2...

It's just an idea really, and if it got created, it would be the very first (that I know of) SCADA system for Mac. I don't know if anyone would be interested in developping something like that. Maybe constructing a better definition of what's intended would allow more people to join in. Programming for the Arduino side would be easy... not so easy for the Mac (although if you are using Mono, we could port it to Windows). Wanna give it a try in defining what it should do and post it on the forum to see who would be interested?

But again, it's just an idea, really. :\

We would need a blueprint, plan or scheme that defines the signals you're discribing before I get the total picture I think.
But I'm willing to do some efforts to get the idea realised ...

I'll try to get something written down and post it here. :slight_smile:

Released: Arduino Studio 0.1a - 006

The Cross Platform Release , runs on Windows, MAC & Linux ...