SerialComInstruments - Virtual Instruments für Arduino -

With the Freeware SerialComInstruments you can create a set of virtual instruments for bidirectional connection of microcontrollers Serial/USB interface to virtual Com-Port or LAN (UDP) of PC’s.

View all received data in realtime and send commands to the microcontroller as well. There are a lot of different instruments available and more will be provided in the future.

Instruments can be placed everywhere within the screen. Also a background image can be shown.

SerialComInstruments works fine with Arduino or other microcontroller based systems. A complete project can be build within minutes. The data protocol is very simple to enable even hobbyiest to come to a working project with only a few lines of microcontroller code in a short time.

A LAN (UDP) connectivity is new since version 0.5b.

Download (Windows only) and Homepage:
http://www.serialcominstruments.com/

Video HowTo for beginners:

Video to demonstrate what can be done with SerialComInstruments - even complex layouts.

Have fun
Ulrich Albert

It looks very nice but I am not sure what one would use it for ?

Does the software work on Linux ?

...R
Either I missed the fact that it is Windows only, or the OP edited his Original Post after I asked about Linux.

Robin2 wrote: It looks very nice but I am not sure what one would use it for ?

If you have no glue to imagine what you could do with 40 virtual instruments the software is not for you :slight_smile:

Albert_M:
If you have no glue to imagine what you could do with 40 virtual instruments the software is not for you :slight_smile:

I can't even think what I would do with 1 virtual instrument.
And many people who use this Forum know a lot less about the Arduino and about programming than I do.

But perhaps you don't really want to encourage widespread use of your program.

...R

Robin2:
It looks very nice but I am not sure what one would use it for ?

Does the software work on Linux ?

...R

From a five second look, it appears you could use it to mimic sensors or other external input so you could test and calibrate your Arduino code, maybe even confirm if a sensor is broken.

In reverse, it seems to be capable of doing things which many Arduino users rely on processing for (GUI for their app).

I agree, more info is needed (in English).

Good job Albert_M, I hope you have some success with it.

pYro_65:
it appears you could use it to mimic sensors or other external input so you could test and calibrate your Arduino code, maybe even confirm if a sensor is broken.

I can see how that could be useful - but at the same time the correct working of sensors includes connecting them to the appropriate pins of the Arduino, which a PC program cannot emulate.

...R

SerialComCNC requires a data string which can be performed with Serial.print within an Arduino Sketch. To gather values from sensors or ports is up to you and has nothing to do with SerialComInstruments itselfs.

The needed string protocol is as following:

#nMv<

where:

Identifier Start

n Number of Instrument
M Identifier Measurement Value Start
v Value (Integer or Floating Point)
< Identifier End

With real Values it looks like this:

#41M15.345< that means: Send to instrument no. 41 the value 15.345

In the Arduino Sketch you have simply to type:

Serial.print(’#41M15.345<’);

Easy right?

Demo Sketch to send continuosly values to 9 different instruments:

avr.device = atmega328p
avr.clock = 16000000 
uart.baud = 115200

// Perform the Protocol
void SendString(byte InstrNo, int MValue) {
  Serial.print('#');
  Serial.print(InstrNo);
  Serial.print('M');
  Serial.print(MValue);
  Serial.print('<');
}

void setup() 
{ 
Serial.begin(115200);
}


void loop() 
{
  byte i;
  for (i = 0; i < 100; i++){
    SendString(1,i);       // Instrument #01
    SendString(40,i);      // Instrument #40
    SendString(41,i);      // Instrument #41
    SendString(2,i);       // Instrument #02
    SendString(42,i);      // Instrument #42
    SendString(43,i);      // Instrument #43
    SendString(90,i);      // Instrument #90
    SendString(44,i);      // Instrument #44
    SendString(60,i * 2);  // Instrument #60
    delay(200);
  } 
}

For real world measurement just pick up the values from temperature sensors, pressure sensors, switches or what ever you like and pass them to the above simple protocol.
You can even send every text string to SerialComInstruments to show up comments, warnings, advices a.s.o.
Also you can send information from SerialComInstruments to the Arduino, like button clicks, commands or read out of the dip-switch instrument a.s.o…

The image looks pretty. But, I see no values, no labels, what does it all mean?

Robin wrote:

I can see how that could be useful - but at the same time the correct working of sensors includes connecting them to the appropriate pins of the Arduino, which a PC program cannot emulate.

Robin, I think maybe you have misunderstood the concept as far as I understand it. What Ulrich has developed is a nice set of programs that allow you to visualise data you may have in your Arduino.

Consider it a small form of HMI, Human Machine Interface, which forms part of a SCADA system.
These sorts of things are used everywhere, and I'm surprised you hadn't yet noticed the link.
Consider many of the IoT sites that allow people to push their data to so that they can then use a web browser to visualise their data in charts or gauges and other nice and fancy displays.

This is exactly what Ulrich has made, but not via a HTTP server, but by direct connection to your Arduino, via either the USB port or via UDP.

In short, and in my opinion, what Ulrich has developed is highly usable and should help a lot of people here who wish to somehow visualise their data on their computer with ease. Recall how many people wanted to plot their sensor data to a nice simple to use program on their PC.

It is the sort of thing I play around with, HMI and SCADA systems for industrial control and automation for many many years, mostly Windows based, hence why I now develop for GNU/Linux and OSX for more open source perspective.


Paul

rockwallaby:
Robin, I think maybe you have misunderstood the concept as far as I understand it. What Ulrich has developed is a nice set of programs that allow you to visualise data you may have in your Arduino.

You are probably correct.

However I had thought it was the role of the OP to explain his own project :slight_smile:

(I will go away)

…R

For Beginners with SerialComInstruments I added a video:

Video HowTo for beginners:

@Albert_M, I notice that you have significantly changed your Original Post. Please don't do that as it ruins the flow of the discussion.

Add new material in its correct chronological position within the Thread.

...R

@Albert_M, really nice pieace of software! Even though I don't speak German, some guesswork sort most things out. I think your program is just what I need to tune my sail boat autopilot!

A question: do you have a code example of computer to arduino communication. Such as setting variables from the different buttons and knobs within SerialComInstruments?

Thanks in advance!

Tobbera:
@Albert_M, really nice pieace of software! Even though I don't speak German, some guesswork sort most things out. I think your program is just what I need to tune my sail boat autopilot!
A question: do you have a code example of computer to arduino communication. Such as setting variables from the different buttons and knobs within SerialComInstruments?

To read serial data (string) from SerialComInstruments with arduino:

I get throw the SerialEvent tutorial trying to read data with SerialComInstruments. The only success I get is with the terminal and the CRLF box activate. I cannot read slider.

Anyone had success?
Many thanks.

Albert_M:
SerialComCNC requires a data string which can be performed with Serial.print within an Arduino Sketch. To gather values from sensors or ports is up to you and has nothing to do with SerialComInstruments itselfs.

The needed string protocol is as following:

#nMv<

where:

Identifier Start

n Number of Instrument
M Identifier Measurement Value Start
v Value (Integer or Floating Point)
< Identifier End

I love you Albert! Your work is simply fantastic!

The only caveat, is that it runs on a Windows PC, that must be always on to track historical data.

It would be the nirwanah, if it could run on Linux (e.g. on a Raspberry Pi, that is always on).

Albert_M:
For Beginners with SerialComInstruments I added a video:

Video HowTo for beginners:
SerialComInstruments HowTo 1 - YouTube

By the way: your website index page seem broken. Your website

does not work, but serialcominstruments.com - This website is for sale! - serialcominstruments Resources and Information. and the subpages do.

I stumbled upon this software a while ago, and I got very excited indeed but I did in the end never use it because I hit a wall while trying to translate the German instructions to English.

I think that there are a large amount of people whom would love this software, if there where English versions of the documentation. I tried to translate the documents with Google translate and other similar ways but the translation messes up the fonts or something and the document isn't understandable after the translation unless I go over the hole thing side by side with the original comparing and making corrections.
Which I never managed to get through, so I just like to say that if there where English versions of the documentation I would for sure use this software.

It looks and appears to be very handy.

Regards