Jump to content

Simple send to an serial port


Roy
 Share

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.

Loading...
 Share

  • Similar Content

    • By axium
      Hi all! 
      I was recently brain storming on how to display sensor info from aida64 SSE. I wasn't a huge fan on having a secondary sensor display connected through HDMI, as windows does weird things when you have 'multiple' displays connected and even windows 11 doesn't fix it. 
      So I came up with a solution to display the sensor info through a raspberry pi, a web browser and a tiny bit of javascript. 
      If this could be of any use to anyone else, please feel free to either create a PR or fork it and play around with it on your own. 
      https://github.com/DmitrySychev/aida64-remote-sensor-FBEHD-01

    • By WanaGo
      Hello,
      I hope this hasn't already been covered, not found this exact question though already asked.
      4D Systems makes a bunch of LCD products which mainly have UART interfaces. They are not primary display interfaces, so don't take an HDMI input etc from your PC, they can be programmed to handle serial data and display it in various ways. You design the GUI yourself in their IDE and then you feed it the data you want in the known format, and make it do what you like with that data.
      What I am trying to find out is if there is a way to use AIDA64 to collect the data from the PC, such as CPU temperature etc, and send the data out the UART to the display. I don't want all the graphics from AIDA64, all I want is the data for the sensors.
      I have used AIDA64 for a while, going to a external HDMI monitor and displaying data on that, and it works, but now and then I get issues where windows decides the little monitor is the primary, or the mouse goes in there and gets stuck, and all sorts of other weird things. I also dont want it loading my GPU at all, I just want it off that whole system entirely.
      Is there a way to have AIDA64 export in a stream the selected Sensor data, to the serial UART? These 4D displays can handle BAUD's into the MBaud rates, so not 9600 or 115200 type levels.
      If there is, can you please point me in the right direction.
      If there is a way to get this data, I can create a demo project use a 4D Systems display, and post that up here for other people to use as a base. I have used 4D displays for years in various applications at work and around the house, we build full systems at work using their products, and it just seems the perfect application for PC Chassis builds, rather than using HDMI type solutions off the GPU. Let the display do the GUI 'heavy lifting' itself with its GPU and just feed it the data it is looking for from AIDA64.
      Any tips would be appreciated
      Regards
      W
    • By Bas101
      Is it possible to use 2 (or more) LCDs display different data?  Example: #1 for essential CPU etc while a #2 would have cooling info like fans, liquid temps etc.  If so... what are some recommendations?  Keep hearing Beada (which could work).  Alternatively, is there a larger compatible LCD?  Ideallly bar style but 17-18 wide.
      TY in advance for any guidance!!
×
×
  • Create New...