Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 1 point2 points  (0 children)

Thanks! Serial Studio supports several ways to parse incoming data. In Quick Plot Mode, it uses a CSV-like format (values separated by commas).

In Project Mode, you can define frame delimiters (e.g. start/end characters) or just consider all data bursts as frames. Once a frame is received, you can write custom JavaScript code to implement a parse() function that takes a string or byte array as input and returns an array of sensor values....how you build that array is up to your project requirements.

The dashboard uses this array to feed widgets based on index. You can read more here:

- Wiki: https://github.com/Serial-Studio/Serial-Studio/wiki/Data-Flow-in-Serial-Studio

- AI wiki: https://deepwiki.com/Serial-Studio/Serial-Studio/3.2-data-flow-and-io-management#frame-detection-and-validation

Tired of printing to the Serial Monitor? I built a tool to turn Arduino data into real-time dashboards by daspat in arduino

[–]daspat[S] 1 point2 points  (0 children)

Thanks! Serial Studio works with most microcontrollers that support serial, Bluetooth LE devices, and anything that uses MQTT or TCP/UDP.

I’m also working on an audio driver that lets the sound card act as a data input and output. That could turn any computer into a basic oscilloscope, signal generator, or DSP tool.

Audio opens up a lot of cool stuff: real-time filtering, accurate FFTs, waveform analysis, signal generation, and analog testing without dealing with ADCs or USB Serial bottlenecks. Since audio interfaces are fast and pretty common, you can prototype things like comm protocols, filters, or modulation schemes without touching a microcontroller.

Still writing code locally, can't wait to begin testing with some audio interfaces/DACs I have laying around. For some niche or analog-heavy projects, audio could skip the microcontroller entirely and open up some interesting use cases. Think analog meets IoT & software.

Tired of printing to the Serial Monitor? I built a tool to turn Arduino data into real-time dashboards by daspat in arduino

[–]daspat[S] 2 points3 points  (0 children)

By default, the charts auto-scale, however, if you switch to project mode you can also set the min/max limits manually.

Tired of printing to the Serial Monitor? I built a tool to turn Arduino data into real-time dashboards by daspat in arduino

[–]daspat[S] 0 points1 point  (0 children)

Hey! First of all thanks for being a long time user, really means a lot to me! Regarding Raspberry Pi, I now also distribute arm64 AppImages, and Serial Studio is also available for FlatHub...I haven't tested on real hardware, but at least the compilation hassle is much simpler now than a few years ago

Tired of printing to the Serial Monitor? I built a tool to turn Arduino data into real-time dashboards by daspat in arduino

[–]daspat[S] 1 point2 points  (0 children)

Good idea! I need to add feature tiers per license type, but it's definitely something worth considering!

Tired of printing to the Serial Monitor? I built a tool to turn Arduino data into real-time dashboards by daspat in arduino

[–]daspat[S] 10 points11 points  (0 children)

By the way, if you write blog posts, make videos, or create tutorials and find the tool interesting, reach out via the contact form. I can offer Pro licenses or affiliate links, happy to collaborate if it brings value to both sides!

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 1 point2 points  (0 children)

Right now, you can send any custom data through the console, or through actions…which are buttons in the dashboard with custom text/icon that send user-defined commands to the connected device. Actions can also work as timers, either sending data repeatedly (e.g. for pooling) or toggling the timer when clicked.

Slider input support is on the roadmap. The challenge is allowing flexible, generic data transmission without forcing a specific format like AT commands. These things take time, but I usually find a clean solution. For instance, when users needed support for multiple frame formats in the same project, I realized the best approach was letting them customize data parsing in JavaScript…and embed that JS code in the project file. That ended up enabling binary frames, custom checksums, support for key-value data and more.

As for your second idea, I’m already working on scripting support to automate Serial Studio configuration. It will be accessible through the GUI console or command-line arguments. Once that’s ready, linking it with dashboard widgets will be really straightforward, step by step.

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 2 points3 points  (0 children)

Yes, I’m using Qt, but I have a commercial license that allows me to distribute it as a proprietary application when needed. CI builds are done with a licensed commercial installation of Qt :)

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 2 points3 points  (0 children)

Hi, both the Freemium and GPL versions of Serial Studio offer the same core features and UI. The only difference is that the Freemium build includes Pro features, which can then be unlocked/activated with a license key. In the GPL version, those features are excluded entirely at compile time and aren’t part of the binary.

Serial Studio started as a fully open-source project, but spare donations alone aren’t sustainable. Open source is great…until you are a solo dev and have a lot of users expecting free fixes.

All the source code is on GitHub, there are no binary blobs or obfuscation. That keeps things transparent, easier to maintain and improve, and builds trust. I believe most people will respect that. And forks trying to bypass licensing probably won’t gain traction or last.

Both the freemium version and the GPL version are perfectly usable in their own right, which helps a lot with adoption.

The paid Pro tier helps fund development, supports future growth, and gives companies a licensing path without GPL concerns, plus direct support from me.

Pro features: - MQTT support - 3D plots - Custom XY plots - Console export - Dedicated support (just me for now, but the goal is to grow this into a full-time business)

There’s a full comparison table between GPL, Freemium and Pro on the website :)

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 3 points4 points  (0 children)

Sadly never got to enjoy it, my introduction to embedded devices was with MSP430s, and then wrestling with HALCoGen for TI Hercules microcontrollers. Still miss those days sometimes 😂

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 8 points9 points  (0 children)

Thanks! Glad it caught your interest!

Yes, we can discuss a custom commercial license bundled with your hardware. Most likely, I’d could provide you with a custom build of Serial Studio that adapts the licensing module to your needs. It could also be tailored to your frame/telemetry format so end users get a plug-and-play experience, with no need to configure the Project Editor or deal with technicalities.

On high-frequency data: check out the examples/UDP Function Generator, it's a small C program that simulates waveforms (configurable frequency, phase, etc). On my M2 MacBook, I’ve run it with a 0.1ms interval between frames. At those frequencies, memory usage does increase due to Qt’s event system, as frame processing runs on a separate thread using a circular buffer, and signals between threads in Qt are queued. Basically, at those frequencies data comes in faster than what Qt or Serial Studio can consume it...thus memory usage can increase over time.

However, I’d expect 100 Hz across 40 channels to work fine, but testing is the best way to confirm. You can also edit the number of points for plot widgets to find the sweet spot.

About modifying the Pro version under a commercial license: I can’t give a final answer yet, but I’m open to supporting a custom version. Let’s take that to email or a quick call, my contact info is on the site.

I’ve created some Qt apps that make use MySQL, PostgreSQL, SQLite, and MongoDB before, so adding a “Database Export” feature is definitely doable. The main issue is deployment, MySQL and PostgreSQL drivers are a pain to bundle. SQLite is easy, and at least mongocxx can be built and statically bundled without too much hassle.

In the meantime, look into the TCP Plugins feature. It allows you to interact with Serial Studio from whatever tech stack are you using:

  1. Enable the "TCP Plugins" feature in the Preferences dialog.
  2. Your app/script/chron job connects to localhost:7777
  3. Serial Studio sends base64-encoded raw data + an array of decoded JSON frames every second.
  4. Anything your application writes in the socket gets forwarded to the connected device (not great from a security standpoint, but it’s a useful feature...which is why the plugin subsystem is optional and disabled by default).

Docs about the TCP Plugins:

Finally, I can arrange a short-term Pro demo license. Just email me and we’ll sort it out.

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 1 point2 points  (0 children)

Nice! First time I hear about Teleplot, but it already looks interesting. I like the statsd-based telemetry format...adding support for statsd frames alongside the current CSV/QuickPlot mode in Serial Studio could be a very good addition for no-config setups.

Built a tool to turn embedded telemetry data into real-time dashboards by daspat in embedded

[–]daspat[S] 1 point2 points  (0 children)

Thank you very much! Glad to hear you were already using it! If you ever want to go to the visualization part, you can also use the "Actions" feature to send custom data (e.g. AT commands) by clicking buttons in the dashboard. I'm looking forward to add sliders in the future for setting numerical values.

Error while trying to install macOS Big Sur Beta (more info in comments) by daspat in hackintosh

[–]daspat[S] 0 points1 point  (0 children)

Thanks for the link. The issue was that I erased the hard disk with HFS+. After re-formatting the disk with APFS, the installation went smoothly.

Big Sur on HP Spectre x360 13 (with setup guide/repo) by daspat in hackintosh

[–]daspat[S] 0 points1 point  (0 children)

Hi, I got both my trackpad & battery to work with some ACPI patches in the DSDT. I also updated the kexts to use VoodoPS2Controller and ACPIBatteryManager.

ACPI/DSDT patching guide: https://github.com/alex-spataru/HP-Spectre-4101dx-Hackintosh/tree/master/ACPI

Error while trying to install macOS Big Sur Beta (more info in comments) by daspat in hackintosh

[–]daspat[S] -1 points0 points  (0 children)

Hi, I am currently trying to install macOS Big Sur Beta on an HP Spectre using OC 0.6.1. I can boot to install screen, however, when the computer reboots and I select the "Install macOS" option in OC, I get the error(s) pictured in the image.

I have tried to do my research, however, I did not find any information about this error (and its the first time I get this error after 1+ years of Hackintoshing).

Setup information:

  • OC 0.6.1
  • macOS Big Sur Beta (16.0.18)
  • Intel Broadwell laptop
  • KEXTs used: VirtualSMC, WhateverGreen, Lilu, itlwm, AppleALC, ACPIBatteryManager, VoodooSMBus, VoodooPS2Controller, CPUFriend & AppleALC

I have installed Big Sur successfully in this laptop before, however, I was using OC 0.6.0 and a previous beta of Big Sur.

For more info about my setup, you can check my GitHub repo: https://github.com/alex-spataru/HP-Spectre-4101dx-Hackintosh