Real Time Plotting Tool ( Oscilloscope )

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

ooh crap, :0
sorry for not responding to recent posts. I was relying on email notifications for any activity on this thread and for some reason I have stopped getting those notifications and I assumed there was no activity. Plus I recently relocated due to a new job so was kind of busy. I hope you guys have figured out what the issue was, I will look into it further tonight. I have couple of updates for the software, added file logging capability. Will be releasing the update soon.

Thanks for your patience and Happy New Year. :slight_smile:

I'm interested in using the SimPlot software with an RS232 connected laser displacement sensor (Acuity AR600). The software will connect and scroll realtime data in the watch window, but nothing displays in the plot window. I suspect that the data format is incorrect. I believe the incoming data from the sensor is an ascii string representing a floating point value from 0.0000 to 2.0000.

Can someone tell me how to translate this data stream into something that SimPlot can understand?

First an update. New version of Simplot is now available (Ver 1.2). Simplot has built Arduino "monitor" functionality. Now you can plot data and also print debug messages.

@prochot
Looks like you have directly connected the sensor of PC uart. Looks like output of the sensor is in ASCII format and what is what you are seeing in Simplot terminal window (monitor window).

Do plot the sensor values you have to send the data in particular format. The required data format is explained on website under the section "The How"
http://www.negtronics.com/simplot

You will also fine example code for Ardunio format. To make this work you will have to connect the sensor to microcontroller get the sensor data, convert from ASCII to binary data, format the data in to packet and send it to be plotted to Simplot.

Cheers

Brijesh
This SimPlot looks interesting to me.
Is there a reason why there are only 4 channels? I mean my mega has 50+ pins. So 4 is a little little.
Best regards
Jantje

Jantje:
Is there a reason why there are only 4 channels? I mean my mega has 50+ pins. So 4 is a little little.

SimPlot was intended to be similar to Oscilloscope than a Logic Analyzer. The 50 pins on mega are all digital pins and plotting the state of those pins is functionality of Logic analyzer. SimPlot is intended to plot analog values like output of sensors sampled by ADC, or values of internal variables etc.

That being said, it looks like there is interest for more number of channels. I will put in my to do list and increase the number of channels to 8. If there is interest in Logic analyzer capability I will look into adding that as well. Not sure how much interest is there.

Cheers

Thanks for the positive response.
I referred to the 50 pins of the mega because in practice you need to do some calculations to decide whether you turn the pin on or of.
Simplifying you could say that each pin has some integer value that will put the pin high or low. When you read the pin itself you do not know the integer value.
With your scope it is possible to know the calculation steps. And then 4 is kind of limiting.
For instance currently I have a buggy project that reads 2 potmeters and a distance sensor and a light dependent resistor to decide to activate a motor.
That is already 4 scopes for the inputs. If I also want some inbetween values (or the motor speed) I need to drop a scope line.
Anyways I'll instal the tool now and do some tests tomorrow.
Best regards
Jantje

Wauw
That was quick.
It works like a charm. To bad it is written in .net. Otherwise I would add the additional channels myself.
Great work.

Best regards
Jantje

I must say I'm really impressed with the effectiveness of this functionality.
Using your tool I succeeded in fixing several bugs in my software which could have cost me several hours to find and fix without it.
Basically I saw that the scrolling halted for a while indicating a "extra delay". Because of the other channels it was easy for me to locate the delay.
I also saw the wrong line moving when I changed something; indicating reading the wrong pins.
And I saw the lines being stable meaning that the analog reads are reliable even when my motor is running. Increasing my thrust in the hardware.

In short: You have made a great tool which allows fast (quickly installed and very basic code changes) and appropriate action.

Thanks a lot

Jantje

I'm getting values displayed in my serial monitor, now I want it to be printed in the interface of my VB specifically in my Richtext

     Private Sub DisplayCharacter(ByVal displayChar As String)
        RichTextBox1.Text = displayChar
    End Sub

    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
        Dim RxData As String
        System.Threading.Thread.Sleep(300)
        RxData = SerialPort1.ReadExisting()
        RichTextBox1.Invoke(New DisplayDelegate(AddressOf DisplayCharacter), New Object() {RxData})
    End Sub

But it wont display :c

But it wont display

Are you sure that the method is even called?

If it is, why are you sleeping in the serial data callback? Doing so makes no sense.

Is the VB source code available for SimPlot. I might like to modify. Will share any changes...

How am i gonna re scale the plot for the Square Wave?

Awesome work! We have been working on something very similar called MegunoLink. Does a similar job of monitoring and plotting arduino data. Can also log data and use it to upload hex files. Check it out at http://www.MegunoLink.com would love to hear any feature suggestions.

Jantje:
In short: You have made a great tool which allows fast (quickly installed and very basic code changes) and appropriate action.

Thanks a lot

Glad you found the tool useful. Sorry for late reply. I am having difficulty with new reply notifications. For some reason the message board does not send me notifications all the time.

I am only sending 1 string of data -- I have the baud rate configured correctly but I am just getting the same character printed over and over again. Did not modify your code in anyway. Screenshot is attached.

Any help would be appreciated.

apiet,

You should send data in a proper packet, which has header and size. If you send any data without a packet then it just prints it to text area. This feature is there so that you can print helpful debug and other messages as well as plot data.

Please read the description of packet on the website and use the library that I have provided.

cheers

Thank You, everybody on this forum! This kind of acted as an unofficial datasheet! :slight_smile:

Works great with PSoC too! ]:smiley:

Data packet (FOR SINGLE CHANNEL) from the PSoc should be sent as

(0xAB, 0xCD, 0x02, 0x00, DATA LSB, DATA MSB).

Thank you for developing such a great tool. :slight_smile:
I have a question. Is it possible to plot float type data instead of integer?
As I tried to monitor a float type data (which is around 0.14-0.20) but Simplot kept on showing 0 which makes sense since it is integer type. Anyway I can tweak around to display a float type data?

Thanks in advance.

RoseOn92:
Thank you for developing such a great tool. :slight_smile:
I have a question. Is it possible to plot float type data instead of integer?
As I tried to monitor a float type data (which is around 0.14-0.20) but Simplot kept on showing 0 which makes sense since it is integer type. Anyway I can tweak around to display a float type data?

Thanks in advance.

Just multiply your value with 1000
Jantje