Arduino AdvancedSerial - Real-Time data plotting and recording

Im not sure if this is the right place, but I created a new Arduino library and desktop client for real-time plotting and recording of Arduino program data over the serial interface.

The goal of this project was to create a simple interface which can be easily dropped into any Arduino application and integrate seamlessly. The main features are:

  • Built on top of Arduino’s Serial object
  • Transmission of textual and program data simultaneously. (Doesn’t break existing Serial.print() messages)
  • Real-time plotting of program data
  • Recording of real-time data to CSV files for post-processing
  • Standalone client written in c# (Not built on commercial products like Matlab or Labview)

The library and client can be downloaded from my Github page here: Home · Nick1787/AdvancedSerial Wiki · GitHub

There may be some minor bugs in the client I’m working on fixing, but generally the client is fully-functional. Feel free to use and report and bugs found.

Can you plot more than one curve?

Yup, you can plot multiple curves on the same plot, and have multiple separate plot windows.

Very Cool project, definitely gonna try it out...but can a person manually zoom in and out on the respective axis? Would be great for tiny Y values.

Thanks. Right now, the yaxis is auto-scaled, but there is an axis label.

You can also pause the plotted data and if you hover it will give the axis coordinates of points along the plot.

Manual y-axis scaling would be a future feature. For now, recording to a CSV for more detailed data inspection would be the best method.

If you want to try the plotter, you can launch the client without it connected to an arduino. The plotter has two test signals to test plotting.

The Zooming would be a great future feature! But alternate data inspection can be done, I agree.

Unfortunately I get an error

It seems your program requires some kind of SQL server running? What are the dependances for it for AdvancedSerial

This is great, though I'm wondering about two things:

  • Is this program able to do scatter plots (graphing x,y pairs), so that for instance I can can watch how two measurements are related

  • are you able to great a legend (showing which color corresponds to which label)?

  • how many different items can be plotted simultaneously before colors repeat? (I understand that with the SerialPlotter tool built in to the IDE, colors repeat after 4)

Has anyone gotten this working correctly?

Nick1787, I've managed to get past the main dependency issue...it seems anyways, after I installed SQL Express LocalDB, AdvancedSerial would start.

However, regardless of what I do, it seems impossible, through all of your examples and testing on my own, to get the AdvancedSerial to receive any kind of data whatsoever, Although it definitely does connect, the only time it prints a Serial.print() is when I click the reset button. It'll print a line, but nothing else. For reference the serial monitor in the Arduino IDE receives correctly, like it should.

Second question, is how does one actually get the plotter to display data? Only your TEST-cos and TEST-sin are available in the drop downs...

Or should it automatically detect from the Arduino/library?

All, sorry for the delay.

moorbo,

There shouldnt be any need to install sql express. AdvancedSerial is built upon SQL but as a local DB file. The client does run on .net 4.5 so you do need .net. Can you help with what error you are getting? Ive tested on multiple computers and it runs fine for me.

Check that you are using the right baud rate if you are having issues where you arent seeing data received by the client. Ive seen this before when I have the wrong baud.

Have you followed the examples on the github page for adding signals to be transmitted? You must instantiate an object and add signals in order to transmit data.

See the basic exmaple here: AdvancedSerial/examples/AdvancedSerial_BasicExample at master · Nick1787/AdvancedSerial · GitHub

Samajay,

Its not setup to plot XY pairs yet. The only option is to plot vs time. This will be a future feature.

I actually updated the client today and added a legend.

It looks like you can plot 4 signals before repeat.

Hope this helps.

Hi Nick1787,

This looks like a very cool project. Exactly what I need for tracking some process data.

The client will not start on my computer. I have a very basic Win7 Pro 64-bit system. No SQL stuff installed. I have various .net runtimes installed. Here is the error message.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections...

It also says

Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)

Thanks in advance for your advice getting this going.

Chris

This looks very interesting. Thanks for sharing.

Does the client work on Linux?

…R

No unfortunately the client was written for in c# for .NET. So it windows only.

It may be portable through Mono, but I havent looked into it much.

RobotPower,

Thank you so much for the information. Some users have reported this error, but I havent gotten much detail to be able to solve it. It seems like Im likely missing some pre-req or DLL which gets deployed with the application. I havent run into this myself on several different machines.

This week I will work on testing this with a VM clean installation of windows. I should be able to identify whats causing the issue that way.

Ill let you know what I find.

App did't work, some problems with sql and ASI stop wotking
Сигнатура проблемы:
Имя события проблемы: CLR20r3
Сигнатура проблемы 01: AdvancedSerialClient.exe
Сигнатура проблемы 02: 1.0.0.0
Сигнатура проблемы 03: 58c0c18c
Сигнатура проблемы 04: System.Data
Сигнатура проблемы 05: 4.7.2558.0
Сигнатура проблемы 06: 59d4146d
Сигнатура проблемы 07: 1d3b
Сигнатура проблемы 08: 27
Сигнатура проблемы 09: System.Data.SqlClient.Sql
Версия ОС: 6.1.7601.2.1.0.256.48
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

test on another machine, ASI stop working...