Arduino Serial Plotter Scale

Posted on  by 

Plotter

Does anyone know how to fix the Y-axis on the serial plotter? I am trying to plot the output of a gas sensor which produces a value of between .15 and 2.5 and ideally I would like the axis to not autoscale and be from 0 to 5. Currently it seems to default to -6 to +6 which makes the changes in the plot line rather small.

The Arduino IDE has for long needed the addition of the Serial Plotter. It has increased the functionality of the Arduino IDE but still lacks some features: Autoscroll Toggle; Simultaneous use of Serial Plotter & Serial Monitor. X-axis Scale/Time scale required. The plotter software implements a continuous mode, which allows a PC to feed large paths (in chunks) to the plotter. (This how I plotted the Hilbert curve in this video.) Building a better pen holder. In the first image above, the pen was tied to the Y-axis with some metal string. Tauno Serial Plotter. Serial Plotter for Arduino and other embedded devices. Windows version can be found under Releases. Simple user interface; Plotting of multiple variables, with different colors for each; Can plot both integers and floats; Can plot negative values; Auto-scrolls the Time scale (X axis) Auto-resizes the Data scale.

I have tried sending it 0 and then 5 as the first voltages but this doesn't seem to help. Ideally it would be incredibly useful if you could set the upper and lower axis on the plotter screen itself in a similar way to setting the baud rate. Also the ability to turn off auto-scaling would be very handy as I almost never want the graph to autoscale.

  • A few months ago, with version 1.6.6, the Arduino IDE introduced a great new feature. It is called Serial Plotter and you can find it in your Arduino IDE und.
  • The serial plotter is a very useful feature but it needs improving: Add an 'auto scale' checkbox so automatic scaling can be turned off. Add a zoom slider for manually adjusting the display scale.

Has anyone a way of fixing the Y Axis values, and if so can they help here? I have searched the forum and couldn't find an answer.

Thanks in advance.

Arduino Serial Plotter X Axis Scale

If you use Arduino, perhaps to handle the lower-level driving work of your DIY Robocar, you may have noticed the Serial Plotter tool, which is an easy way to graph data coming off your Arduino (much better than just watching numbers scroll past in the Serial Monitor).

You may have also noticed that the Arduino documentation gives no instructions on how to use it ¯_(ツ)_/¯. You can Google around and find community tutorials, such as this one, which give you the basics. But none I’ve found are complete.

Arduino Serial Plotter Scale

So this is an effort to make a complete guide to using the Arduino Serial Plotter, using some elements from the above linked tutorial.

First, you can find the feature here in the Arduino IDE:

Arduino serial plotter scale model

It will plot any data your Arduino is sending out in a Serial.print() or Serial.println() command. The vertical Y-axis auto adjusts itself as the value of the output increases or decreases and the X-axis is a fixed 500-point axis with each tick of the axis equal to an executed Serial.println() command. In other words the plot is updated along the X-axis every time Serial.println() is updated with a new value.

It also has some nice features:

  • Plotting of multiple variables, with different labels and colors for each
  • Can plot both integers and floats
  • Auto-resizes the scale (Y axis)
  • Supports negative value graphs
  • Auto-scrolls the X axis

But to make it work well, there are some tricks in how to format that data. Here’s a complete(?) list:

Arduino Serial Plotter Scale Free

  • Plot one variable: Just use Serial.println()

Serial.println(variable);

  • Plot more than one variable. Print a comma between variables using Serial.print() and use a Serial.println() for the variable at the end of the list. Each plot will have a different color.
Arduino Serial Plotter Scale
  • Plot more than one variable with different labels. The labels will be at the top, in colors matching the relevant lines. Use Serial.print() for each label. You must use a colon (and no space) after the label:

Arduino Serial Plotter Scale Limits

A more efficient way to do that is to send the labels just once, to set up the plot, and then after that you can just send the data:

  • Add a ‘min’ and ‘max’ line so that you can stop the plotter from auto scaling (Thanks to Stephen in the comments for this):
  • Or if you have multiple variables to plot, and want to give them their own space:

Of course, now the numbers on the y-axis don’t mean much, but you can still see the waveforms.

Coments are closed