Arduino ControlWare v.1.0 Beta

I had a bit of an experience developing GUI`s and Data Visualization in Processing.Processing is very cool to work with and the designs are highly scale-able. There are tons and tons of separate examples and libraries available for processing especially the Serial Library which eases the task.

During this week , i tried to make myself a GUI using Visual C#. It was a really great experience.Although you can make buttons in processing too..but its a lot easier in Visual C# Express.However, it seems not many DIY`ers use C# and its used mainly by hardcore coders and developers..but still i managed to find some cool references via MSDN and a demo(of his work) by my friend to put together a simple and easy way to talk to Arduino on a windows machine!

You can monitor Analog Inputs , control digital pins and connect to the COM Port of your choice.Since i am still building upon it.So i am leaving a gist of how the GUI/program currently looks.

You will see that the Digital Pin 13 is missing. Actually i have used it to indicate an Active Serial Session.This makes it a lot easier while debugging.

ControlCom from Indian Tinker on Vimeo.

Edit: 02 Oct`12 : Thank You Guys for appreciating my work!I gave the same to few of my folks at my college for beta testing. Here is the link to the final executable on Windows Only!

ControlWare.exe

The Arduino Code To be uploaded is :                                                      Source

Some of FAQ`s are:

  1. There is no Digital13 on this as it is meant to signify an active Serial Connection.i.e whether the computer is communicating with Arduino or not.
  2. You have to find out the correct COM Port from Device Manager and enter that with Caps On
  3. This is a VegBurgerWare ( coz i dont drink beer).So if i find u using it.You owe me a burger 😛
  4. Its not Cross Compatible..works best on Windows Only

24 thoughts on “Arduino ControlWare v.1.0 Beta

  1. This is way too cool! For this to work there still needs to be a sketch uploaded on the Arduino right? Do you think you can notify the user of which buttons he can use or is it too complicated?
    Anyway, when it’s finished I’m definitely downloading this.

    • Yes! the sketch needs to be uploaded to the arduino..and that too is so flexible that you can do almost anything your arduino does basically!Its just like pressing buttons on your computer and getting things done there!and all the buttons are ready to use except the digital 13..which i use as an active serial connection indicator..which helps a lot while debugging!
      Will soon update it and post the entire project after my exams end.
      Thanks for landing by!

  2. hi! im porting your arduino source code so that i may use this with PICs. im porting your arduino code to CCS C.

    Im having problems with the analog part though, every time i press the “fetch Data” button, the little windows program hangs…forever.

    ive read up on arduino functions and assume your program expects to receive n ASCII coded decimal: if the value is 0x3FF, the program expects to receive “1023” for a total of 4 ASCII characters.

    from the video i see it gets all 5 ADC channels at once…
    thus i asume it sends “a0” ->waits for 4 chacters reply ->sends “a1”->waits for 4 characters reply…etc…

    i think i am missing some sort of flow control for the analog part… please give me more details on how the arduino replys to the analog data requests….

    ill post my code for everyone… with due credit to you…

    as a suggestion, it would be nice to put my own lables to the pin names I.E. instead of “Digital 2” it could be a blank box to be filled by the user.

    aswesome work by the way.

    Gabriel

    • Hi Gabriel,
      I am glad that you liked my work! The control flow was deciphered correct by you. It works like this:
      1. I send the enable/disable signal in the beginning.
      2. As you mentioned, When you press the fetch data button..the GUI sends ‘a0’.This instructs Arduino to put the analog value at pin 0 on the serial port(as a String). Then i read the serial port using standard read line functions.This is done sequentially for all 6 analog pins (0-5).
      It seems to get updated all at once due to the speed of the communication. Although, I have coded it to update each Text Field separately but sequentially..Much like the sequential ADC read in MSP430 .In short its like:
      Send—>a0
      TextField1=Readline();
      and so on.

      Thanks
      Rohit

  3. Very nice. I did something for .Net MicroFramework devices, e.g. Netduinos, using C# a while back.
    Would be useful to have a common protocol as everyone tends to do their own thing. Attempts like firmata.org are interesting.

    • Yes..Firmata is really cool! I did a few projects with Firmata on Processing a while back..but it doesn`t sort of fit into the Atmega8 which is widely available here in my country while the Atmega168 is rarely available.So, I made this one..so i can get the required work done.

      Regards,
      IndianTinker!

  4. Hey I have only Just got my Arduino the other week and was just having a play with your software and some LED’s. Just wanted to say thanks for the excitement I got when that LED turned on using this.
    Cheers
    Rob

Leave a comment