Real Time Plotting Tool ( Oscilloscope )

Hello Rob,

Thanks for your input.

  • For analog signals I would like to have a running average line. This can be based on a (configurable) number of samples or the samples in the last second/minute/...
    Nice idea, it is added to the list of things to be done.

  • It would be great to have an X-Y plot -> analog1 on X and analog2 on Y
    This one is more difficult to implement. Not so sure where it would used.

  • Baudrates of 230400 and 345600,
    Although the Serial Monitor of the IDE don't support these baudrates, the Arduino - 2009/UNO - do. I've used them for few weeks now without a problem. The highest rate without a problem was 500.000 baud with putty.exe but that is a non standard rate. Maybe I want the free baudrate like in putty.exe so I can go to the limit (own risk of course)

Added to list of things to be done.

  • plot signal through some function
    e.g. I have an analog signal 0..1024 and I want to map that on temperature through some function e.g. a temperature function
    float T(int s)
    {
    return -50 + s/4.0;
    }
    The scale should be temperature degrees Celsius of course

This is far more difficult to implement. I can implement a single operation. To implment multiple operation like you have (one addition and one division) requires me to write a mathmatical expression parser (not sure if that is right term). Way beyond my programming skills, by the way I am not a programmer by profession. :slight_smile:

On a side note, is anyone having problems installing the tool? Did anyone try to install on a machine that did not have .NET framework already installed? I am total newbie to this whole GUI programming and .NET stuff so got no idea what will happen if someone does that.

Hi Brijesh,

  • It would be great to have an X-Y plot -> analog1 on X and analog2 on Y
    This one is more difficult to implement. Not so sure where it would used.

It would allow to have two related sensors in one plot, e.g. temperature versus humidity (greenery?) - heigth versus pressure (up in the air or under water) - length vs force - speed vs voltage (testing a generator) -

  • plot signal through some function
    e.g. I have an analog signal 0..1024 and I want to map that on temperature through some function e.g. a temperature function
    float T(int s)
    {
    return -50 + s/4.0;
    }
    The scale should be temperature degrees Celsius of course

This is far more difficult to implement. I can implement a single operation. To implment multiple operation like you have (one addition and one division) requires me to write a mathmatical expression parser (not sure if that is right term). Way beyond my programming skills, by the way I am not a programmer by profession. :slight_smile:

I know it is a very difficult one but it would give the screenshots a "real world meaning"

google - math parser C# - and you will find free to use classes like

Still not trivial

Hi,
Its nice lightweight program.

I´d like to see:

  1. Remove Y axis auto scale feature and provide a way for user to set the range.
  2. Provide feature to change X axis range.

E

Rob,

I agree about XY plots, I will look into what it takes to support multiplie kinds of plots.

Enn40,

Thanks for the suggestions, I will add both those features in the comming releases.

Please have a look at this and tell me what you think :

http://arduino.cc/forum/index.php/topic,64175.0.html

Dominic

Hello Dominic,

It looks like a feature rich system. It has support of multiple devices on the bus, local variable plotting, ADC data plotting etc.

The common thing I can see with SimPlot is that both can plot data. I am trying to keep SimPlot, well simple and easy to use.

It would help the Arduino users if you mention how the tool is useful and what are its use cases. I mean explain features other than plotting analog data. It might not be evident to many people from reading the initial post.

Cheers and good luck.

Hello Brijesh,

Thanks for the comment. I have added information on my original post so it explains a little bit more what is the NetworkViewer.

http://arduino.cc/forum/index.php/topic,64175.0.html

Regards,

Dominic

Hello All,

There is new version of the tool, Version 1.1
I have discarded the .net version notation which uses 4 fields, ie x.x.x.x and chose to go with simpler notation with only 2 fields.

New features

  1. Can change X axis length.
  2. Can change Y axis min and max values.
  3. Change the channel legends.
  4. Enable or disable individual channels.

Rob, I tried to implement averaging and X-Y plots, but ran into some issues. You will see that there is empty column in plotsetup window where the average values was supposed to go.

Bug reports, suggestions and comments are much appreciated.

Thanks

as i type this out i realise it's most probably a massive noob question , but i still hope u can help im running and Arduino UNO and im trying to run your sample code for four analogue outputs to sim plot . im confused about where i get the imformation to fill out this line in your code ??

im using com port 10 if that help's any help would be great

//IMPORTANT: Change to serial port that is connected to PC
  Serial.write((uint8_t *10 )buffer, pktSize);

Hello,

If you have connected the Uno to PC with USB connection that you used to download the sketch, then you don't have to change anything in the sketch. Other Arduino models have more than one serial port and if someone has done something fancy then they need to change the code in the sketch.

COM Port 10 is port number on the PC side. Chose Com Port 10 in the drop down box in SimPlot.

You don't need to make any changes to code in sketch.

brijesh

hello all.
My question is how to get real time data from arduino board to computer and then to Excel for further operation like ploting graphs... etc
Can some one tell me about PLX DAQ of arduino. Is this use for the same purpose as i describe above?
thanks
regards.

Hello Fazal,

SimPlot can be used to observe real time plots. Currently it does not have feature to log data for further processing. I am in the process of adding that feature.

PLX DAQ does seem to have all the features you are looking for. You would have to figure out the protocol and use it.

It has been brought to my attention that download link is not working. There appears to be a problem with Google project hosting. Other
projects have also reported this problem.

Here link to thread discussing the issue
http://groups.google.com/group/google-code-hosting/browse_thread/thread/c0bee98d79267240

Apparently there is a error in the file url address being generated.

Meanwhile here is edited direct download link
http://pushpak.googlecode.com/files/SimPlot%20Ver1-1.zip

Lets hope they fix it soon.

Cheers

Hi Brijesh,

Is Simplot still written in .NET?


Rob

Hello Rob,

Yes SimPlot is still written in .Net. I used Visual Basic, thinking that it would be easier for others to modify and contribute.
I just created a project for SimPlot and hosted it on google code. Here is the link.

http://code.google.com/p/projectsimplot/

Brijesh

OK, I've been looking around for a base to start with a GUI for a debugger I'm designing.

http://arduino.cc/forum/index.php/topic,72014.0.html

I'm semi-familiar with .NET and that was my initial preference but I would rather have something that's cross-platform and your post led me to NetworkViewer which is written in QT. I have .NET so might download QT and play with that for a while as well.

Truth is I don;t know where I'll get the time, it will be a big enough job doing the sharp end let alone the GUI as well.


Rob

Hi,

I can't seem to get the SimPlot to actually plot something.
I tried loading both your arduino examples onto my Uno and neither of which display anything in SimPlot.
It would appears that it is opening the COM port but then after that there is not communication judging by the leds on my arduino board.
If I tried to connect to it via hyperterminal while SimPlot is connected then it tell me the port is in use basically. So I know if is connecting.
If I do connect to it in hyperterminal it sends out a whole bunch of data.
I'm hoping I'm not overlooking something simple here but there isn't all that many buttons to press.

Is the visual basic project available to the public?

Please see the screenshot below of the blank SimPlot.

Ah. Pressing the reset button on the Arduino fixed it...

Hi.
I got the same problem, no curve, reset cards did not help.

Tried and end Simplot, then start up the serial monitor (in Arduino software)
The serial monitor is built up a string that looks like this

üìÿíüàü¤ù¡ü¥ü¥ü ü ø¡øàøàøàôà

Which I assume means that the data it receives from the program in Arduino.
Closes the serial monitor, restart Simplot, but no curve.
Both Simplot and serial montitor acts as connected port 18

What might have gone wrong here?

Thank you in advance

Hello Nor1,
I was having similar symptoms: SimPlot would seem to make a connection to the appropriate COM port, but no data would be plotted. I think this means that the program does not recognize the data in that port. Perhaps it does not have the right packet structure.

For me, eventually I found that swapping the order of the bytes within the 16-bit word made the difference. I am using my own board, not Arduino. I am not sure how the Arduino boards send data through the serial port. For me sending out 0xCDAB, 0x0002, 0x01FF (header, packet size, data) did not work, I had to send 0xABCD, 0x0200, 0xFF01. Attached is a screenshot of the data coming out the serial port as displayed in RealTerm.

http://www.freeimagehosting.net/aa1c8

I wonder if you are having a similar problem. Good luck.

Brijesh,
Thank you for sharing such a useful program. It is quite helpful.

Tom