Real Time Plotting Tool ( Oscilloscope )

Hi Brijesh,

Is Simplot still written in .NET?


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.


OK, I've been looking around for a base to start with a GUI for a debugger I'm designing.,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.



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.

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

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


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. :)

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"

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.


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.


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

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


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
        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 would love to hear any feature suggestions.