Small and simple software for plotting data from serial port
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Well, it's been a while.
But I decided to finally put together a new release. There aren't any big news or changes. To be honest what pushed me to finally create a new release is that I forgot to move the "downloads' section from the bitbucket before they axed the mercurial repositories and as a result got a lot of mails/comments from people around to world. Sorry.
Here are some changes that come in v0.11:
Download links:
Linux AppImage (Ubuntu Trusty based, should work on anything newer):
https://serialplot.ozderya.net/downloads/serialplot-v0.11.0-x86_64.AppImage
Windows 32 bit (should work fine on 64 bit windows):
https://serialplot.ozderya.net/downloads/serialplot-0.11.0-win32.exe
Important: I didn't have time to test either of these images. Please let me know if you have any problems with them.
Building serialplot on windows isn't much different than building on linux. But it isn't as straightforward. Installing dependencies can be difficult. And it is also difficult to build a static EXE that doesn't require DLLs to keep it company. But most importantly it is difficult for me, because I don't use windows other than for gaming purposes. Unfortunately most users of SerialPlot use windows and as a result I can't ignore it.
Luckily there is MXE to my rescue. This is a cross compilation toolchain to build windows binaries (and more) on a linux (unix like) host. Whats more is that they also provide 'static' toolchains. When you build your project with a static toolchain it is easier to deploy and can be smaller in size.
So I prepared a dockerfile to make it even easier to build windows using docker. You can build this docker image on linux. AFAIK there are ways to run docker on windows host but I won't go into any details of that. It is also possible to use MXE in msys2, which is a layer to run unix programs on windows. In fact most of the windows releases until now has been built on windows using msys2 and mxe.
Dockerfile is already included in the serialplot source code called:
Dockerfile_mxe
Assuming you have already installed docker, download the serialplot source code using mercurial and build the docker image:
hg clone https://hg.sr.ht/~hyozd/serialplot/
cd serialplot
sudo docker build -t serialplot_mxe -f Dockerfile_mxe ./
Remember this might easily take a couple hours depending on your internet speed and cpu power. To give you an idea resulting docker image is around 5GB in size.
If all goes well you can get the built binary from inside the docker image with this command:
sudo docker run --rm --entrypoint cat serialplot_mxe /serialplot/build_docker_mxe/serialplot.exe > ../serialplot.exe
These are the steps for building SerialPlot on linux. I will also provide more detailed steps for Ubuntu and similar debian based distributions.
Building SerialPlot on linux is quite easy. Most difficult part (not really difficult) is gathering the dependencies. It is possible that you already have some of them installed such as a C++ compiler.
I've also described how to build with docker which might be the easiest method if you are familiar with it.
Install Dependencies
You should have following dependencies installed, preferably using your package manager:
On ubuntu or similar operating systems you can install these dependencies with the following command.
sudo apt install build-essential qtbase5-dev libqt5serialport5-dev cmake mercurial
Note: instead of 'qtbase5-dev' you can install 'qt5-default' package to make sure it is the default qt version.
Also note: SerialPlot doesn't build with Qt4, you need Qt5.
Also also note: you need internet access during build process. It is not necessary, but if you don't you have to also "QWT" library installed.
Get Source Code
You can download the source code using mercurial with the following command. Mercurial is a version control tool very similar to git.
hg clone https://hg.sr.ht/~hyozd/serialplot
Or if you don't want to deal with the mercurial you can download the latest code from this link.
https://hg.sr.ht/~hyozd/serialplot/archive/tip.tar.gz
Build
When you have everything ready, run following commands in the serialplot directory.
mkdir build cmake .. make run
This should build SerialPlot and start it.
Building AppImage
Note: This only works on ubuntu 14.04 at the moment due to restrictions from appimage creator tool that I use at the moment.
When you build SerialPlot this way it probably only works on your computer. It should work on other computers with the same distribution as yours as long as they have the correct libraries installed. If you want to lend your build to your friends you can create a portable executable called AppImage. This should run on most distributions. And it is how I release the Gnu/Linux version of the SerialPlot.
It is easy to build SerialPlot appimage.
Run below command in your build directory.
cmake .. make appimage
That's it. If everything goes well you should now have SerialPlot appimage in your build directory, and it should run in most distributions (fingers crossed).
Building with Docker
There is a Dockerfile inside the serialplot directory ready to go. It is based on Ubuntu 14.04 (trusty). Building it, produces an appimage that you can use on Ubuntu/Debian based systems. Maybe on other distros too?
If you don't have it installed, you can install docker on Ubuntu with this command:
sudo apt install docker.io
After that, get into the directory of 'serialplot' where the 'Dockerfile' exists and run this command. It might take some time depending on your internet speed.
sudo docker build -t serialplot_trusty .
This will build a docker image that should contain the SerialPlot appimage. After building appimage, you should get it from inside the docker image with this command.
sudo docker run --rm --entrypoint cat serialplot_trusty /serialplot/build_docker/SerialPlot-x86_64.AppImage > ./serialplot.appimage
Make it executable and start serialplot:
chmod +x ./serialplot.appimage ./serialplot.appimage
Notes
Although actual build process is quite simple and straightforward, if you are not experienced you may have issues building SerialPlot successfully. It is usually missing dependencies. It is rarely an incompatible library. In that case please leave a comment : ) I will be happy to help.
Also if you have steps for other distributions and recommendations, please share, I will...
Read more »Bitbucket is removing mercurial support along with all mercurial repositories.
I decided to move the source code to sourcehut.
Here is the mercurial repository: https://hg.sr.ht/~hyozd/serialplot/
Here is the new issue tracker: https://todo.sr.ht/~hyozd/serialplot
I haven't moved download files yet. I will probably have to host them myself. Sourcehut doesn't provide file hosting.
SerialPlot 0.10 is released. This release brings some performance improvements, minor features and bug fixes.
Instead of "number of samples" option in the "Plot" tab, now there are 2 options you can set. "Buffer Size" and "Plot Width". "Buffer Size" is the total number of samples that are kept in memory, while "Plot Width" is the maximum number of samples that are plotted at once, in X axis. To see previous samples you simply use the X axis scrollbar. The main reason for this distinction is the performance. Previously you couldn't set number of samples too high because SerialPlot tried to plot all data at one time. Now you can set "Buffer Size" to 1.000.000 and it will most likely will be fine as long as you keep "Plot Width" small. Another advantage is that, sometimes when you have frequently changing data, zooming way out doesn't mean much, you have too keep a certain zoom level in X axis to be able to see any detail. If you enjoy the old behaviour you can always set buffer size option same number as plot width and it should be fine. Remember though "plot width" option has a smaller limit then "buffer size" for performance reasons. A note; performance improvements are not done. I'm still working on some improvements to increase "buffer size" limitations.
Now you can set RS232 control signals (DTR, RTS) and see input signal () statuses from the "Port" tab. Being able to set DTR signal was a requested feature so that SerialPlot can work with Arduino Leanardo board.
Also we now have an update checker. You can launch it from the "Help" menu. It will check updates once a day when you first launch SerialPlot unless you disable it.
Other improvements and bug fixes:
Check the sidebar for download links. I will try update the win32 version and launchpad PPA later this week.
This patch fixes various issues and adds small improvements:
See downloads links at the sidebar.
Hi everyone, it's release time. First of all I want to thank everyone who contacted me via various channels for their kind comments! And ideas of course... some to be implemented... some day... : )
Changes:
Installation for linux:
PPA for Ubuntu 16.04 (xenial) and based distros: https://launchpad.net/~hyozd/+archive/ubuntu/serialplot
Appimage(*) for other distros: https://bitbucket.org/hyOzd/serialplot/downloads/SerialPlot-x86_64.AppImage
Installation for windows:
64bit setup: https://bitbucket.org/hyOzd/serialplot/downloads/serialplot-0.9.0-win64.exe
32bit setup: https://bitbucket.org/hyOzd/serialplot/downloads/serialplot-0.9.0-win32.exe
(*) Appimage may be broken on some systems. Please let me know if you have any problems.
It's time for another release. As always screenshot first:
As you can see from the screnshot now its possible to plot each channel as a separate row. Activated from menu "View -> Multi Plot".
When you zoom enough symbols are shown to indicate data points.
Another addition is the ability to save application settings to a file. Every time the SerialPlot starts, it loads the settings from the last session automaticaly.
"Number of samples" limit is increased upon request. It was 10 000 samples now it is 1 000 000. My experiments show that, around 100 000 samples, things start to get slow. If you set it to 1M samples you are probably going to have a hard time, obviously this depends on your computer hardware. Because of that SerialPlot will warn you if you try to set it to more than 10 000 samples.
There are also numerous bug fixes.
Download Windows installer: https://bitbucket.org/hyOzd/serialplot/downloads/serialplot-0.8.1-win64.exe
Ubuntu PPA: https://launchpad.net/~hyozd/+archive/ubuntu/serialplot
List of changes:
Read more »
Create an account to leave a comment. Already have an account? Log In.
Just discovered request #2, channel renaming, is already implemented. Sorry for not RTFM first.
:o)
SerialPlot is running for a few hours now (Win10/I7), no bugs so far.
The ability to change the plot settings on the fly is gold, I love that feature.
Thank you.
"on the fly settings" has been one of my design goals. It's getting harder to abide by with every new feature but still I'm determined to stick to it! Thank's for kind comments.
I will consider #1, others has already been in my todo. Except #6. In the long term I want it to be possible to show very long data but how it is going to be represented is still a question in my mind.
Hello Hasan,
Great project truly, but I realized a small bug kind of thing I think:
When I first took a couple of screenshots it was working without any problem but now when I take a screenshot it just shows me the line between 2 data points even though the screenshot setting is 1000 data points to show.
(I am using the program to see the data coming from STM32F4 Discovery Board connected to the PC via FTDI.)
Except for this it is a great program, nice effort !!!
Please help
Do you mean the "snapshots"? Because taking a screenshot usually has nothing to do with the applications but it's a functionality provided by the OS. You should get what you see.
Which version of serialplot are you using? There used to be some bugs with the snapshot viewer but I've fixed those in the 0.10 version.
Yes I mean snapshots, sorry couldn't remember the name so wrote screenshot by mistake.
I am currently using 0.9 and now that I saw your comment I couldn't figure out how to download 0.10 version from here.
Could you please help me
I am a noobie on hackaday.io
-------------------------------------------
Never mind I found it
I will try this one and if problem is no longer I will be so thankful.
Thank you so much
I'm pretty sure v0.10 will work for you. Because I fixed that specific bug. For the record all downloads can be accessed from this page: https://bitbucket.org/hyOzd/serialplot/downloads/ Latest versions are usually linked in the sidebar of this project page.
Hi Hasan,
Thank you for the time and effort you put into Serialplot. It worked flawlessly for a 3-phase metering project where I needed to display in real-time 3 channels of raw 16-bit signed ADC data. My ADC sampling rate was 3.9ksps and UART was running at 500kbaud. Being able to set up custom frames separates your software from most others. Very nice work, thanks again!
I'm happy to be helpful. Thanks for your nice comment. Also thanks for providing information. Such data is important when I'm thinking about design and optimization of the SerialPlot.
Hi, I tried to run the latest release 0.10 on WinXP and it failed to start.
Regards
I will try to look into this, if I can find my win XP virtual machine. Sorry but I cannot promise anything. Maybe you can provide more details?
When I start the SerialPlot 0.10 version on WinXP virtual machine I get the following responses: "Entry Point Not Found" and "The procedure entry point _except_handler4_common could not be located in the dynamic link library msvcrt.dll".
The SerialPlot 0.9 version works fine on the same virtual machine.
Regards
This looks like a build issue. I build serialplot on a windows 7 VM. I think I will have to build on a winXP machine. I will look into this.
i'm sorry, but i don't have a winxp VM that i can use to build SP at the moment. Creating a build environment for windows takes me hours, i don't have good internet connection. If you consider building from source yourself, let me know. I will try to help.
Hi Hasan, SerialPlot is a great program, thank you for your work.
I have, also, a suggestion for some future releases - is it possible to increase the baudrates for SerialPlot since the maximum value currently allowed is 256000.
Could, you, also, include values up to, for example, 921600, which is allowed by Windows.
This would be very useful in some fast and data extensive transfers from microcontrollers.
Regards
You can enter a custom value into the baud rate selection box even if its not listed.
Merhaba. Uzun zamandir benzer bir program ariyordum. Tesekkurler :)
Hi, Hasan, I have checked your 0.10 version. I works great with an arduino leonardo. Thanks a lot. Also plot options are very good to improve the app. I hope you will post new version soon, I think it will be improved also a lot. Thanks a lot !!!!
Hi Juan, thanks for feedback and nice comments.
I get managed to do a simply oscilloscope with this soft, a arduino leonardo and a ADC fast converter. More than 6000 sps. I hope you will go on to update the app, thanks a lot.
Hi, please in your new version, expose DTR flag. Arduino Leonardo needs it to be true.
Also you can also expose Rst flag.
Do you have some date to the new version? Could you please make this little change (add DTR flag) ?
Thanks a lot
This has been requested already (for the same reason), and I had it implemented. But it wasn't complete due to a lack of API. I will try to add it to the next release as it is which should come in a week or two. It won't be big but it will come with some performance improvements.
Hi, thanks a lot for this great piece of software. I have just installed windows 64 bits version and use the demo. I am on holidays and I don't have any arduino/esp8266/... near me.
I want to ask you several things. May be some of them are great for other people and you could try to add to your todo list.
I want to use your software to do a poor man oscilloscope (with and ATMEGA32U4, Xadow board).
1. I have read about a suggestion of introducing the ability to multiply incoming data from the channel by a constant. Also and offset (positive or negative)
2. Could it be possible to show in X axis the time down the sample number ? I mean, the time in which you program recieve the data. I know that it will be not very precise, but may be someone finds it usefull.
3. Or an option to show the time but applying a factor to the sample number. For example a factor of 0.001 will be a 1kHz sample frecuency, or 1ms per sample. May be someone finds it usefull. (May be factor will me more usefull based in milisecons). User will chose this factor or the time that the software itselft calculates (as I ask for in the previous paragraph)
4. Make windows version portable. I don't know if it could be possible to have .exe and .ini in the same directory. So we can carry it in a pendrive.
Best regards,
NOTE: Sorry about my english, and about my newbie's comments.
Hey @Juan Perez Estrada thanks for your comment. #1 and #2 is in my TODO. But #2 is a long term goal at the moment. #3 is already possible. Switch to the "Plot" tab. Untick the "Index as X axis" , now you can set the beginning and end of the x axis to have the effect you described. #4 windows version works fine as a single exe, you can get it from the "program files". But it won't remember any settings obviously. I think it stores the settings in registry at the moment. I will look into implementing your suggestion of an ini file next to the executable.
Great, great, great, and great, and also thanks thanks thanks and thanks. (probably not, but if you are developing it in Visual Basic .NET I can help you with a settings file next to the exe file).
Hi @Hasan Yavuz Özderya , do you think that #2 will be implemented ? May be you haven't got more time to develop this great app rigth now ? I dont know anything about Qt framework, but I will be great that, at least, the log file save also the miliseconds or microseconds when the PC has received the data. Hope your answer and good news. Thanks a lot.
FYI SerialPlot is developed with C++ using Qt framework.
Juan I'm sorry but I cannot promise anything at the moment. I'm between jobs right now. Somewhat stressed :D I hope to speed up development after a month. #2 is a tough one because it requires changes to a lot of places in code. Serialplot isn't a big code base. But it's kind of a mess right know. And my priority is to fix the mess. Don't expect anything soon. Sorry.
Perfect !!! Thanks a lot. There is also an option to publish the code in github or similar to get help from other people (I not :( , as I dont know) But anyway, good luck with your job !!!
Hi,
Huge thanks for this tool, it is far better than any free or semi-free data-plotting tool out there. Simple to use, sleek, does the job. I've been using it 8 hours a day for the last few weeks.
If I may give you some suggestions and feedback:
-When using more than 10 channels, Channel 9 appears twice in the list of channels
-There's an option below the channels list to "Show all". You could replace this with "Show all/Hide all" or add a second button, because when you have a lot of channels to monitor (I used 24 at some point :D), it's a pain in the butt to hide them all manually.
-A terminal that displays the received data would be great, instead of the small line in the status bar.
Hope that gives you some ideas. Thanks again, keep the great work!
Sebastien
Hello @Sebastien , I'm very happy when I see such comments :D thanks
Can you give specific instructions about the channel 9 problem, and maybe a screenshot. I can't reproduce it.
Ok, I will add show/hide as buttons.
Do you mean a window/panel for displaying plot data as text or stuff like debug text? Either way I have plans for both.
Hello,
You're welcome, good work deserves to be rewarded !
Conditions for the channel 9 "bug" :
Baud rate 115200, Default parameters (No parity, 8b, 1 stop bit, no flow ctrl)
ASCII, 24 channels. I have multiplot enabled here, but the bug is here with superimposed plots as well.
Screenshot here https://ibb.co/bwbChv. Btw, using version 0.9.1, but this was already on 0.9.0
For the terminal, I simply mean a display such as in RealTerm, TeraTerm, or even the serial console in the Arduino IDE. It could be useful when wanting to reach a specific value (I was looking at zero-crossing point in a graph, seeing the actual data and not the plot could be nice, since you can't use two programs on the same COM port, as far as I know).
Hmm. When you set it to 24 channels, are there actually 25 channels listed? Or could this be a naming issue? Does it fix when you "reset names"?
There were actually 24 channels (according to the number list on the left), but since there were two Channel 9, the last channel was named Channel 23 instead of 24.
Clicking on Reset indeed fixes it, and now I can't replicate the bug anymore. Argh.
Even if I shut down the soft, relaunch, enter a number of channels < 10 and then >= 10, I can't do it anymore :(
I'll be on the lookout and try to gather more info about it!
Ok, I've figured it out :D It was impossible to reproduce once you set a number big enough. Because then, serialplot will store the channel name/color etc in the settings file. You can reproduce it if you delete the settings file (I have no idea where it is stored in windows), and set number of channels like this: 9 -> 10 -> 9 -> 11 .
I've also found the cause of the problem in the code and [fixed it](https://bitbucket.org/hyOzd/serialplot/commits/48e97ae578ae5f96868e33ecd293f42cb441ab01).
The workaround you can use until next release is to set the number of channels to 32 (maximum) and click "reset". Doing this once, should be enough.
Cool, glad I could help! Waiting impatiently for the next release :)
Hi, i want to ask how to display analog values from Arduino instead of binary? I want the graph to be plotted in 0 to 1023 range
Hi @g1542658 I'm sorry I missed your comment (hackaday has problems with notifications)
I think you mean plotting from text output of arduino. You can use ASCII mode, selected from Data Format tab.
Hey man! I'm still using this program because it's amazing for debugging and tuning.
I'm now using itfully, with a custom frame and sending commands.
I've noticed small bugs in the commands section:
When reopening the program (or loading settings) the commands are still there. But the ASCII option is selected by default (I was using HEX commands), the problem is that if I click HEX button it converts the message which was ok in hexa. It's treated as ASCII and converted to hexa. Solution is to copy the command, click hexa, delete the conversion and paste.
When adding a new command it has a number "Command X". X seems a bit unrelated to the command list, but that is unimportant. When you click the command to change it's name, the font becomes little and never grows again. See image http://imgur.com/a/DUu51 . Command 1 was not clicked. Command 3 and 10 where clicked (like to change name) and they became small. I don't know why instead of Command 4 or 2, Command 10 was created but as said, completely unimportant.
------
I don't want to sound like asking or anything since this has been hugely helpful and I would still use it anyhow. I think it would be awesome if you could choose the number of plots in multiplot.
For example, I'm doing motor control and have 4 signals. The reference angle, the measured angle. The reference current, and the measured current. For something like this it would be ideal to have 2 plots. One with measured/reference angle, and the other one with current.
Right now I just scale it in the microcontroller so they have a similar Y axis.
Thanks again!!
@Andres please do ask :) That's how open source projects get improved. Feedback is important. Especially negative feedback, I'm pretty sure you already know that ;)
I will look into the bugs you mentioned.
Multi-plot features you are asking for, are definitely planned. But it's going to take a bit time before I get there.
I have a dumb question. I just downloaded 0.9.0. I have data in CSV format terminated by a <CR> a typical line looks like this:
-12,-149,-340,-640,-829,22,-833,26,
I have set the data format to ascii number of channels =8 and there is no plot. I have set the range to signed 12 bit as none of my data exceeds 12 bits
If i set it to binary, of course it plots lots of garbage as the data is ASCII. Am i missing something?
I really can't use binary because there are times when i need to capture data to import to Excel, and CSV works the best.
I should add that our system transmits 33 lines per second (ideally, 100 lines per second)
Fist at all, thank you for great software, it helped me save a lot of time.
I'm confusing that how 'float mode' work when the software receive value through UART 8-bit ,
More specifically, I have a microcontroller and I want it send 32-bit floating point number through UART and plot it in serialplot but I don't know how to configure it.
Sorry I can't read source code to find the answer.
Thanks!
@nhuong thank you for your kind comment.
"float" data should be sent in C standard float representation. So if
you have a floating point variable in your code you can transmit it
like this:
// example data to transmit
float number = 3.3;
// we use type casting so that float precision is not lost in conversion!
char* data = &number;
// transmit the 'float' just like it is a byte array
uart_transmit_array(data, 4);
// or per byte
uart_transmit_byte(data[0])
uart_transmit_byte(data[1])
uart_transmit_byte(data[2])
uart_transmit_byte(data[3])
I haven't tested above code. I hope it is clear to you. To configure SerialPlot for this kind of data:
1. Select "Simple Binary" from data format panel
2. Select "float" number format and make sure "Little Endian" is selected
3. Set number of channels to "1"
Remember "simple binary" mode as the name implies is very simple. Sometimes too simple. If a byte is missed during transaction for any reason, it cannot detect that. For this case there are "Skip Byte" and "Skip Samples" button. It is user responsibility to fix synchronization manually using those buttons. This was a very intentional design decision to keep the protocol as "simple" as possible.
Please let me know if you need further help.
ok, I got the idea and I need your further help too :)
I'm devoloping a real-time DSP project, so I trigger ADC to sample at 30K samples/second, and then the data will be processed by DSP algorithm that produce 30K x 32 bit data per second ( my clock source is 80MHz) . If I have to split each data by 4 to transfer with UART, it's mean 4 frames x 10 bits per data or 30k x 40 bit per second or 1,200,000 baud rate. It's impossible!
Did I miss something? If not, should I convert the data to char ( reduce the precision)
Anyway, thank for your quick reply!
1.2Mbaud is possible. Desktop RS232 ports may or may not support it. But most UART-USB converters I've seen does. If you are using Virtual UART (CDC) over Full Speed USB, it should be possible.
I'm not sure if SerialPlot can handle 30k samples though : ) I'm curious too.
serialplot worked well at 1.2M baud :) ,
Sadly, I have another problem, serialplot just plot the value it received and shift from right to left( time graph) , i think it's not good for my project, I need plot frequency of signal, it's mean the software need to hold N values and then plot it in one time ( not shift from right to left)
Maybe I should try something else :)
Thanks for your kindly help, have a nice weekend !
I'll squeeze in here, hope you don't mind.
It can certainly handle 30k samples and more. I'm using 1Mbaud right now, but have used up to 2Mbaud. 2Mbaud was problematic but I'm not sure if it was the USB-serial or the SerialPlot.
I've maxed the capacity of the 1Mbaud which is roughly 110kbps (or 14kBps) and the SerialPlot handles it well in my XPS15 notebook up to 1000 Number of Samples, or so.
@Andres happy to hear that :D thanks for letting me now.
@nhuong yeah, that's not possible at the moment. I'm thinking about adding a command interface to serialplot. So you can send a "clear plot" command from the device. Do you think this would help your use case?
Let me clarify. Let's say your X axis is 1000 samples long.
1. Set plot width (number of samples) to 1000
2. Send clear command
3. Send 1000 samples
4. Repeat from step 2
Provided this happens very quickly you could see something representing the frequency spectrum.
But the when plot, data will shift from right to left, and when this happen quickly, I guest you won't see anything
Well you have to put some delay in between frames. But I agree this sounds to much like a hack. If instead of shifting from right to left we always plot from left to right it would look better. But with current code it's not easy. I'm working on some improvements. Then I will look into this.
Great project! It is somewhat similar to my Measurement tool (https://hackaday.io/project/11607-calibration-and-measurement-tool), although a bit more general and configurable, since it does not imply anything about the protocol and how the data sent should be formatted.
Thanks @osannolik I've already seen your project. It's one of those project that I've been thinking about but secretly wishing for someone else to do it :D Thanks!
Is it possible to represent the y axis in time(seconds)?
I think you mean x axis? Unfortunately that's not possible at the moment. X-axis is always index. There is X-axis scaling from the Plot tab, that you can set. But this is mostly visual. If your data comes in fixed intervals (no actual time data) that might work for you.
Hey man, amazing software.. it saved me a shitton of time. I'm using it everyday and it's really good with microcontrollers.
Yesterday I discovered a totally minor thing, the legends are partly readable to me, here's a pic:
I'm using Windows 10
On another note does serialplot timeout the uart? After a while the program seems to stop showing data, and I'm checking with a scope that the UART is still sending. I need to press the "Open" button twice (two "unpress" it, and press it) and it starts working again.
@Andres I'm very happy to hear that it was helpful to you : )
Hmm, your problem looks like a DPI problem. Can you tell me your screen DPI setting?
No, there is no such thing as timeout. It's probably a bug. Can you give more details? Which data format are you using? How do you connect to the device, uart-usb converter, RS232? How long does it take the problem to occur? Do you see any messages in the log tab? By the way did you check if the problem occurs with other software as well, such as a terminal?
Excuse my late late reply.
After much debugging I realized that the one dropping the connection is my usb-serial (A STM32 Nucleo64 board), there are some problems with their ST-LINK or my usb decides to disconnect it. But definitely not your soft, sorry for that.
Regarding the legends.. it doesn't always happen. But it's an XPS9550 at 1920x1080 with the "dpi" settings of window at 125%(recommended). Not sure how to get an exact number tbh.
I found a little issue. This is not even a problem, but an interface feature.
In Multiplot mode, if you have plots with different scale, Y value have different length. So, graph windows shift from one another. Because of this, it is difficult to compare these graphs.
So, I guess, graph width should be the same.
I send you a link to snapshot of this situation. If I can't do it here, I'll send it using private message.
Next, it will be very helpful, if user can click on a point of the graph and see precise X & Y values of this point.
That's also in my todo. I hope to get it implemented in the 0.10 version. (Next one will be 0.9)
And thank you very much for the simple binary protocol.
Hate, "AAA BBB CCC XXX bla-bla-bla "OOOOO, user byte is here" NNN CRC". It is impossible to obtain effective use of the band in a plenty of programs. But it's not nessesary for debugging.
And your "Skip Byte" & "Skip Sample" :) Wondeful!
"Simple Binary" is the reason this software is created :) Most other similar software uses ASCII, but "printf" is not option in small MCU's such as PICs.
Wow, we use simple PICs like PIC16F684, and powerful PICs like dsPIC33EP series, so, your "Simple Binary" is a reason I really liked your program :)
"printf" in MCU... Where is my gun? :) As low-level developer, I work with low-level raw data, hi-speed PID regulators & uncompressed audio streams with 256k bitrates. ASCII. Impossible :)
Become a member to follow this project and never miss any updates
Hi, and Thank You.
You wrote a very nice and useful tool. Again, many thanks.
May I suggest a few feature requests, please? It's nothing critical, but I think it will be nice to have them in the future versions. These requests are coming from using SerialPlot to visualize the humidity and temperature coming from the serial port in CSV format, one line with humidity and temperature at each second. The 2 channels are displayed on a big monitor (desktop).
Here are the feature requests:
1. Put the Y axis values on the right side of the screen, too, not only on the left side. This feature will come in very handy when plotting on a wide screen.
2. Possibility to edit the channel's name. It would be nice to have names, especially when plotting more than one signal.
3. A window with text (like a scrolling table), so the exact numerical value can be monitored, too.
4. If 3. will be implemented, then please add a timestamp column, too.
5. Possibility to put date/time on X axis.
6. Possibility to subsample (like e.g. the device is generating a CSV line each second, but plotting only 1 sample each minute, so a few hours or days can be fitted in one plot.
7. Possibility to set manual Y axis ranges for each individual plot in 'Multi Plot' mode.
8. Similar with DTR, RTS, etc. indicators, an Rx and Tx indicator, too.