Go Down

Topic: Real Time Plotting Tool ( Oscilloscope ) (Read 88757 times) previous topic - next topic


Thank you for developing such a great tool.  :)
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
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -


Well done! I got some inspiration from your software when I made my own realtime plotter. I needed some other features and multiplatform support though. The video below demonstrates typical use of my realtime plotter:

Some features:

  • 6 channels of data (and this can be increased if necessary)

  • Live bar charts

  • Live line graphs

  • You just send the data you want to debug with a space as delimiter like this "value1 value2 value3 value4 value5 value6". Floats or integers does not matter.

  • Multi platform Java. Tested on OSX and Windows 8 (and should work on Linux as well).



Dec 13, 2013, 08:17 am Last Edit: Dec 13, 2013, 08:18 am by RoseOn92 Reason: 1

Just multiply your value with 1000

Taken your advice before things get complicated for me. Thank you.

Anyway I have another question, anyone know how can I log the data output from SimPlot or more specifically the serial monitor? I've tried a couple of methods found from Google, but its either I use their programs to log the data or I display the plot using SimPlot. I can't do both as the serial port cannot be opened by two programs at the same time. If you guys have a suggestion, I will be very pleased to listen to that.

Thank you in advance.


Arduino eclipse V2 latest version (you need the nightly build) has a serial monitor and a scope using the same way of working as simplot.
You can not save the simplot data (it is send in binary form and can be filtered from the scope but it is not available in processable data) but you can have the monitor data and the plot (use your os to make a screen shot)
Use drag with left and right mouse to change the Y scale and x axes location. (only up down is supported left right is ignored)
To download I would advice to use the product. You can download it from here http://eclipse.baeyens.it/download.php
Do not forget to configure if you want to build and upload (not needed to use scope and monitor)  point 4 of http://www.eclipse.baeyens.it/Install.html
Best regards
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -


I got inspired too :)


where you can find some info about what I'm playing with
Try, try and try again. Always trying... so my wife says.
Enhanced Serial Monitor - http://alanboother.co.uk/project-cafe/esm/


Hi Brijesh,

I'm completely new to all this Arduino stuff, but just had a go at using your Simplot code in order to plot the data from just 1 axis of a 3 axis analog accelerometer. I'm currently receiving the data wireless via Series 1 xbees and then using Serial.read to view the data in the serial monitor. How do I assign this data to on of the Simplot data channels?

2nd point, when I go to verify the code I receive the error 'buffer was not declared in this scope' referring to where the data packets are defined.

Please help!


The SImPlot windows application doesn't seem to work properly with Leonardo and Micro as these two wait for serial reset before pushing data onto the USB line. This issue doesn't affect the Arduino Eclipse Plugin as you can reset the serial line from the UI.

The application requires the addition of a button to send the serial line reset.

@Jantie this feature of the Arduino Eclipse Plugin needs some improvements I believe.
Please, do not send me personal messages containing forum related questions: I will not answer.

I share my discoveries and thoughts at http://rlogiacco.wordpress.com


@Jantie this feature of the Arduino Eclipse Plugin needs some improvements I believe.

Feel free to suggest changes at github https://github.com/jantje/arduino-eclipse-plugin/issues?direction=desc&sort=updated&state=open
Best regards
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -


Hey there!

I just wanted to tell you how EXTREMELY extremely wildly grateful I am to you for developing this and not charging me money for it.

I am junior in mechanical engineering...and for my junior design project we have to design a system that does X,Y, and Z in an automated fashion via an arduino. I am not familiar at all with coding, circuitry...anything of that sort. Due to a number of different circumstances...the project fell entirely to me, leaving me 4 days do figure out everything myself. Without this...I had no hope of getting it done...I'd spent 8+ hours today just trying to adjust other codes I'd found online in order to graph in real time. This works fantastic, and your example codes made it do-able for a noob like me.


Cheers and have the best day!



Feb 25, 2015, 06:42 pm Last Edit: Feb 25, 2015, 07:00 pm by Johndue
Thank you for awsome tools.
I use Jantje's eclipse plugin as scope and wounder if there are any function for clearing the plot window.

Code: [Select]
#include "Due.h"
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
pinMode(A0, INPUT);
pinMode(DAC0, OUTPUT);
while (Serial.available() > 0) {

int16_t buffer[20];
int16_t c1, c2, c3, c4;
int r=10;

void plot();
void window(int t);

void loop() {

if (Serial.available() > 0) {
if (Serial.available() > 0) {
while (Serial.available() > 0) {
char c = Serial.read();
int i = (c - '0');
r = 10 * r + i;


void window(int t) {

        // I want to clear window here

for (int i = 0; i < 100; ++i) {
c1 = (analogRead(A0) * 3300 / 1023);

void plot() {
int16_t pktSize;
buffer[0] = 0xCDAB;
buffer[1] = 4 * sizeof(int16_t);
buffer[2] = c1;
buffer[3] = c2;
buffer[4] = c3;
buffer[5] = c4;
pktSize = 2 + 2 + (4 * sizeof(int16_t));
Serial.write((uint8_t *) buffer, pktSize);





These stuff are really great. I have been playing with a similar tool which can also save the data to csv, pdf and svg files for projects reports etc. Am an engineering student at University and we currently use arduino for process controls etc and at times need to print the results in reports. I have posted the current release of what am currently using for school projects. Just recently used my program to tune PID for a simple temperature control system. See the forum post below for the release details. Would also love to hear from you guys on what you think about it.




My friend recommended this as a really good, simple-to-use plotting software so I'm using it to tune a PID controller. However, I'm not able to get it to work. When I set up the port and baud rate and press connect, the serial data gets printed correctly in the monitor but the plotting window remains blank. I verified the plot set-up to make sure that the data being printed is within range. I've attached a picture that demonstrates this.

I'd be very grateful if someone could point out what I'm doing wrong.



hello, great work!! Is it possible to make more channels?? I need 18 channels in my project.

Go Up