Asked — Edited
Resolved Resolved by DJ Sures!

ARC Pro Slow Down Glitch

I had a troubling issue pop up yesterday for the first time ever in my ARC project. First here's my setup:

  • I'm running ARC Pro on a Beelink U59 Mini PC, 11th Gen 4-Cores N5105, Mini Computer with 16GB DDR4 & 500G SSD.
  • The SBC is mounted onboard my robot and is connected to three v4 EZBs by way of USB. No WiFi Connections between the SBC and the EZBs.
  • I'm running without a monitor and log into the SBC through my laptop with Tight VNC.
  • I've been converting my many EZ Scripts (well over 100) to JavaScript. I'm nearly finished.
  • I've been running this setup for many months with no issues that I've noticed.

OK, What I was doing: yesterday I had been working many hours (maybe 4 hours) converting EZ Scripts to JavaScript without powering down the robot, the onboard SBC or ARC. These script go through a series of sending simple serial commands to multiple Kangaroo/Sabertooth motor controllers, waiting while watching encoders, running outside scripts with ControlCommand calls, triggering multiple sound files stored in ARC, EZB Soundboards using sleep(); commands to let the clips finish and turning on and off Digital ports and setting PWM speeds for motors.

The issue: All was working smoothly and all devices and ARC had been running properly for hours until the last script I was converting to JavaScript for the day. After I got done with it's rewrite I ran it to test and everything started glitching (for lack of a better word). Variables didn't seem to be getting read or set thus causing motors to move before they should or not al all, called sound files were getting cut off or not played at all and oddly sound files not even written into the script were being played. Then there would be a pause for a few seconds at the end of the chaos and a single sound file that had been missed would play.

What I tried: I first thought I had messed up the timing of the sleep() commands for the sound files or even somehow misused a "while" loop to pause the script that was waiting for a variable to be set by another script running triggered by Control Command.

*I went back and adjusted everything giving the script a lot of time to execute each call or command. I still had the same problem.  *I made sure all ADC skills watching ADC values were paused (this is the usual way I set them. I don't let them run. I only unpause when I need to check). *I removed the Smart variable watcher. *I then tried other scripts that I had converted to JS that had previously ran perfectly. These too were running just a wonky and glitchy.  *The problem even seemed to be getting worse with each test.  *I saved my work and shut down the robot with it's EZBs and it's computer running ARC. Rebooted after a few minutes. The problems were still there!

I shut down everything again and walked away flustrated. A hour or so later I came back to the robot, powered up and after ARC loaded everything seemed to be running OK. I ran a few simple tests by running motors and simple scripts and they seemed to work OK. However I did notice after I reinstalled the Smart Variable watcher that one of the Variables that a few of my scripts depend on seemed to change a lot later than usual. I don't know if that's usual behavior but it seemed that watching that variable in the past it change a lot faster in this watcher skill.

Where I am now: I turned it all off for the night. I have not yet powered up the robot again or ran some of my more complex scripts. I Don't know why my scripts would start glitching my robot like I described after hours of working in ARC or why a shutdown and reboot would not clear the issue.

My thoughts: I have no idea what happened or if it will happen again. I still need to restart and test today. It felt like the command system was slowing down and not executing like it had been. I don't know if it's something with the SBC, the devices attached to the EZBs or ARC. Nothing was browning out and all devices were operational so I don't think it was a power issue. I have plenty of that in reserve. Any advice or ideas on what would have been happening? Like I said, I've been running this setup for a long time and haven't had this issue in the past. The only time I ever saw anything like this is when the script didn't have long enough sleep() commands to let things finish their operation. Thanks and sorry for the long post.


Related Hardware EZ-B v4

ARC Pro

Upgrade to ARC Pro

ARC Pro is more than a tool; it's a creative playground for robot enthusiasts, where you can turn your wildest ideas into reality.

PRO
Synthiam
#9  

Great to hear! I’ll jot down a note to consider how we can present a better script monitor for ARCx. Maybe there’s a way we can identify what’s going on with some interface for debugging.

#10  

That would be nice but I don't know if there's a cure for me being stupid.xD

PRO
Synthiam
#11  

lol you’d only be stupid if you gave up:)

I think some kind of debugging should be possible. I’ll have to think about it but I’m sure I’ll come up with something.