Jump to content

Simple send to an serial port


Roy

Recommended Posts

Hi,

it would be nice if there was the possibility to send sensor values unformatted as a number or percentage, via a serial port.

Similar to the LCD displays, only without formatting, or pure numbers with separators.
Together with a small GUI.

Background is the simple evaluation of the data with a microcontroller and display in different ways.
I imagine not only LCD or OLED, but rather seven segment display, nixi tubes or an analog pointer display.

That would create a lot of possibilities.

Link to comment
Share on other sites

2 hours ago, Roy said:

Hi,

it would be nice if there was the possibility to send sensor values unformatted as a number or percentage, via a serial port.

Similar to the LCD displays, only without formatting, or pure numbers with separators.
Together with a small GUI.

Background is the simple evaluation of the data with a microcontroller and display in different ways.
I imagine not only LCD or OLED, but rather seven segment display, nixi tubes or an analog pointer display.

That would create a lot of possibilities.

We would prefer to add such new projects as a new, dedicated LCD device to the AIDA64 LCD module.  If you have a project in development, let us know, and we'll take care of supporting the device using a dedicated codepath.

Link to comment
Share on other sites

A concrete project does not exist yet.
The idea is to build a steampunk case and it always looks good when old analog gauges or segment displays are used.
Driving the individual parts is no problem with an Arduino. But passing on the data to the microcontroller seems to be more difficult.
During my research on the net I found a lot of demands, but only a few solutions.
However, these solutions always consist of small self-written programs, which use either the shared memory of AIDA64 or the OpenHardwareMonitor library or their web interface.
Without this monster of MS Visual Studio and knowledge in C # or Python you can not get on with it.
I think for such an issue would be the modding scene and also the hobbyists who might want to control their heating inversely proportional to the CPU load, grateful.
For the output formatting I would like a variable solution in which you simply put together a string. Just like the individual display parts on the LCD's.
Then the selection of the Com Port, a baud rate and interval to it and done.

Link to comment
Share on other sites

On ‎1‎/‎31‎/‎2019 at 2:00 PM, Roy said:

A concrete project does not exist yet.
The idea is to build a steampunk case and it always looks good when old analog gauges or segment displays are used.
Driving the individual parts is no problem with an Arduino. But passing on the data to the microcontroller seems to be more difficult.
During my research on the net I found a lot of demands, but only a few solutions.
However, these solutions always consist of small self-written programs, which use either the shared memory of AIDA64 or the OpenHardwareMonitor library or their web interface.
Without this monster of MS Visual Studio and knowledge in C # or Python you can not get on with it.
I think for such an issue would be the modding scene and also the hobbyists who might want to control their heating inversely proportional to the CPU load, grateful.
For the output formatting I would like a variable solution in which you simply put together a string. Just like the individual display parts on the LCD's.
Then the selection of the Com Port, a baud rate and interval to it and done.

The problem with pushing a long string to the COM port would be the amount of data going through a rather narrow pipe (e.g. 9600 bps).  Hence I don't think it would be optimal to simply push the raw data (like the full content of the shared memory) as a long string to the COM port.  Unless of course your serial connection is a relatively high performance one, like 115000 bps.

Link to comment
Share on other sites

I do not see this as such a big problem, because if you can put together the data you need, similar to the LCD's and only relavantes further, the string should not be too long.

For what I imagined, that would be:
- CPU load
- CPU temperature
- GPU load
- GPU temperature
- RAM occupancy

The string could look like this:
25;55;30;45;3545;
or:
CL25,CT55,GL30,GT45,R3545;

So only the most necessary joined together with separators.
That makes 36 characters in the constelation, that is 360 bits.
Maximum update at 9600 baud: 26 / s.
But that's not all that much, since such ads are rather crude and sluggish.
Apart from that, even the small Arduino Uno creates the 115000 baud.

Link to comment
Share on other sites

8 hours ago, Roy said:

I do not see this as such a big problem, because if you can put together the data you need, similar to the LCD's and only relavantes further, the string should not be too long.

For what I imagined, that would be:
- CPU load
- CPU temperature
- GPU load
- GPU temperature
- RAM occupancy

The string could look like this:
25;55;30;45;3545;
or:
CL25,CT55,GL30,GT45,R3545;

So only the most necessary joined together with separators.
That makes 36 characters in the constelation, that is 360 bits.
Maximum update at 9600 baud: 26 / s.
But that's not all that much, since such ads are rather crude and sluggish.
Apart from that, even the small Arduino Uno creates the 115000 baud.

Well, no, we wouldn't go for such a constrained (non-flexible) solution.  The user should be able to pick the sensor values he would like to have sent to the COM port, including the labels and measurement units.  And that's what makes the string long.  But if you say 115000 bps is available, then even long strings shouldn't make things too slow.

Link to comment
Share on other sites

  • 5 months later...

Hello, sorry to dig up this post but it looks everything said here applies to my problem.

I've spent the last couple weeks trying to figure out how to get sensor values over a serial port, and Roy hit all the same roadblocks that I'm running into.

I'm "Okay-ish" with coercing arduino based projects to do what I want them to do, but working with the PC side (dll's, shared memory, etc), I'm totally lost.

My end-goal is to build a 128x64 graphical lcd into a panel I can put into my unused 5 1/4" bays. If I had the ability to send sensor values as formatted strings over a chosen serial port at a chosen baud rate, I could manage the arduino side to display those values.

I understand the concern with providing a constrained solution, but here's an example of another program that I've successfully interfaced with in the past:

https://x-sim.de/manual/uso.html

This program reads telemetry data from racing/flying simulators to a variety of commerical devices, or by a customizable serial output for one-off projects. It was a pretty flexible way of getting specific data out over a serial port in an way that was easy to read. Maybe their implementation is a good jumping-off point for custom serial output in AIDA64.

I can guess that adding something like this is no small task, but I think it would be very helpful for a lot of people. In the meantime, I think my best bet is to try and see if I can "fake" being a Adafruit serial-backpack to receive values, and from there I can display them as I'd like.

Link to comment
Share on other sites

  • 2 weeks later...
On ‎7‎/‎31‎/‎2019 at 10:58 PM, KLRico said:

Hello, sorry to dig up this post but it looks everything said here applies to my problem.

I've spent the last couple weeks trying to figure out how to get sensor values over a serial port, and Roy hit all the same roadblocks that I'm running into.

I'm "Okay-ish" with coercing arduino based projects to do what I want them to do, but working with the PC side (dll's, shared memory, etc), I'm totally lost.

My end-goal is to build a 128x64 graphical lcd into a panel I can put into my unused 5 1/4" bays. If I had the ability to send sensor values as formatted strings over a chosen serial port at a chosen baud rate, I could manage the arduino side to display those values.

I understand the concern with providing a constrained solution, but here's an example of another program that I've successfully interfaced with in the past:

https://x-sim.de/manual/uso.html

This program reads telemetry data from racing/flying simulators to a variety of commerical devices, or by a customizable serial output for one-off projects. It was a pretty flexible way of getting specific data out over a serial port in an way that was easy to read. Maybe their implementation is a good jumping-off point for custom serial output in AIDA64.

I can guess that adding something like this is no small task, but I think it would be very helpful for a lot of people. In the meantime, I think my best bet is to try and see if I can "fake" being a Adafruit serial-backpack to receive values, and from there I can display them as I'd like.

If your goal is to build a 128x64 monochrome graphical LCD panel that you can use to display AIDA64 sensor values, then most likely you would be better off using stuff like GLCD2USB which is a proven solution:

http://www.harbaum.org/till/glcd2usb/index.shtml

You can also buy a 2nd-hand AlphaCool display from the 'bay, although it may be tough to find one for sale.  There's also ChibiMo:

http://q61.org/en/chibimo/build/

Check out Robopeak as well:

And EastRising OLED is also a great solution that works with AIDA64:

 

Link to comment
Share on other sites

On 8/13/2019 at 5:36 PM, Fiery said:

If your goal is to build a 128x64 monochrome graphical LCD panel that you can use to display AIDA64 sensor values, then most likely you would be better off using stuff like GLCD2USB which is a proven solution:

Hey Fiery,

Thanks for the suggestions, I'll see if I can massage any of these for use in my project.

One of the considerations I have that has kept me from using a pre-existing solution is that my 5 1/4 bays are vertical, so my display will be mounted portrait orientation vs the normal landscape to accommodate that. 

Link to comment
Share on other sites

21 hours ago, KLRico said:

Hey Fiery,

Thanks for the suggestions, I'll see if I can massage any of these for use in my project.

One of the considerations I have that has kept me from using a pre-existing solution is that my 5 1/4 bays are vertical, so my display will be mounted portrait orientation vs the normal landscape to accommodate that. 

That's a rather special alignment for a LCD bay, but it sounds intriguing as well :)  If you try your luck with GLCD2USB and you need rotation (by 90 degrees) support for that LCD in AIDA64, let us know in the GLCD2USB topic:

https://forums.aida64.com/topic/2370-new-lcd-device-support-lcd2usb-and-glcd2usb/

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...