05-07-2025, 11:14 PM
Just testing the waters. I went down the AI coding rabbit hole and ended up designing a full suite of tools/library for Virtuino. It was originally going to be just a collection of helper functions, but yea... I completely rewrote the backend lol. It is private now on GitHub, but if there are some other people that are willing to try it out and make their own additions, I am totally willing to release it as a new way to use Virtuino.
Current features:
1. No more Strings - everything has been converted to char arrays to lessen the risk of memory fragmentation. The user experience is more difficult using buffers with dtostrf and snprintf, however larger, more complex programs are now more robust.
2. WebSocket Disconnects - I have a literal army of watchdogs and backup measures in place that make disconnects incredibly rare. The ones that do happen will cause a weakened state that can last for about 10 minutes, but actual downtime is limited to about 1 minute. I wanted to actually solve the issue, but it is within the Virtuino code. If people are interested, I can explain this further.
3. WebSerial integration to allow for remote monitoring/commands.
4. A vast debugging catalog that can be edited on the fly through Virtuino. I have both a sketch version and a library version.
5. Batched variable uploading with scripts to use in Virtuino. I got it fully working with sensor data. A quirk of the language scripts, they don't realize where the variables are coming from even if the inputTag is linked to an ESP. Any variables received in the parsed message from the ESP will immediately be echoed back to the ESP (not just copied to Virtuino's local version of the ESP variable). Only work around is using an untagged "local" variable. They can be stored on the ESP's variable list, just no tags.
6. Import Variables & Widgets - Separate from the library, but I am in the process of finishing some python scripts that import csv data and convert directly to new/edited variables and widgets. I mentioned this in a previous post, but have refined it since then.
7. Minor Options - Most of the options in the library can be set in the sketch, so you can enable/disable automatic resets, watchdogs, timers, debugging categories, see which debugging categories/output are currently enables, etc.
So yea, it's been a wild month and it's nice to see sunlight again lol. If anyone is interested, hit me up. I would love to get some input from humans instead of just Copilot's Claude and Gemini!
Current features:
1. No more Strings - everything has been converted to char arrays to lessen the risk of memory fragmentation. The user experience is more difficult using buffers with dtostrf and snprintf, however larger, more complex programs are now more robust.
2. WebSocket Disconnects - I have a literal army of watchdogs and backup measures in place that make disconnects incredibly rare. The ones that do happen will cause a weakened state that can last for about 10 minutes, but actual downtime is limited to about 1 minute. I wanted to actually solve the issue, but it is within the Virtuino code. If people are interested, I can explain this further.
3. WebSerial integration to allow for remote monitoring/commands.
4. A vast debugging catalog that can be edited on the fly through Virtuino. I have both a sketch version and a library version.
5. Batched variable uploading with scripts to use in Virtuino. I got it fully working with sensor data. A quirk of the language scripts, they don't realize where the variables are coming from even if the inputTag is linked to an ESP. Any variables received in the parsed message from the ESP will immediately be echoed back to the ESP (not just copied to Virtuino's local version of the ESP variable). Only work around is using an untagged "local" variable. They can be stored on the ESP's variable list, just no tags.
6. Import Variables & Widgets - Separate from the library, but I am in the process of finishing some python scripts that import csv data and convert directly to new/edited variables and widgets. I mentioned this in a previous post, but have refined it since then.
7. Minor Options - Most of the options in the library can be set in the sketch, so you can enable/disable automatic resets, watchdogs, timers, debugging categories, see which debugging categories/output are currently enables, etc.
So yea, it's been a wild month and it's nice to see sunlight again lol. If anyone is interested, hit me up. I would love to get some input from humans instead of just Copilot's Claude and Gemini!