Asked

ADC Skill Resource Usage Inquiry

I understand that constantly running the ADC robot skill in an ARC project, especially when assigned to an EZB ADC port, can consume significant resources. Additionally, increasing the polling frequency for an EZB ADC port further intensifies resource usage. However, I'm curious, if this same ADC robot skill is installed and assigned to an EZB port, but its "Paused" box is checked, does it remain idle without utilizing resources?



Related Hardware (view all EZB hardware)
EZ-B V4 by EZ-Robot
EZ-B v4/2 robot controller: dual Cortex ARM, Wi-Fi, audio/video, 24 servo/digital ports, I2C/UART, camera and Synthiam ARC control for custom robots
Wi-Fi / USB
Servos 24
Camera
Audio
UART 3
I2C
ADC 8
Digital 24

Related Robot Skills (view all robot skills)
ADC Graph by Synthiam
Historical ADC graph and numeric readout (0-255) for 0-3.3/5V inputs; configurable board/port, sample interval, color, and pause for ezb controllers.
ADC Value by Synthiam
Display ADC port voltage and 0-255 linear values (0-3.3/5V); configurable board/port, units, multiplier and sample interval.

ARC Pro

Upgrade to ARC Pro

Stay at the forefront of robot programming innovation with ARC Pro, ensuring your robot is always equipped with the latest advancements.

Author Avatar
PRO
Synthiam
#1  

Nice - good use of creating a new thread for a new question. I like that and so will athena.

The answer is a paused robot skill will not use any protocol resources. it will not query the ezb adc port with an adc robot skill. However, there is a timer that runs which will use the PC's cpu in a thread. Paused stops the polling but does use PC resources.

so if your computer isn't running super slow then you can keep the adc robot skills PAUSED if it's not causing performance UI issues.

Author Avatar
PRO
Canada
#2  

Short answer: Yes - when you check "Paused" on an ADC skill it stops polling the EZ-B (no EZ-B ADC queries or network/protocol traffic), but the skill does leave a small timer/thread running in ARC on the PC. That timer uses a tiny amount of CPU (not the EZB or WiFi), so a paused ADC skill is effectively idle for EZB resources but not absolutely zero-cost on the host computer.

Details and practical notes

  • Paused = no EZB ADC requests. The ADC skill will not query the EZB ADC port while paused, so it will not consume network/protocol resources or EZB CPU for that ADC.
  • Paused completely removed. ARC keeps an internal timer/handler for the skill which continues running on the PC. This uses a small amount of PC CPU/time (usually negligible). If your PC UI is responsive, you can safely keep skills paused.
  • If you need truly zero ARC-side overhead, remove the skill from the project (or disable/unload it).
  • If your goal is to reduce EZB / network load (and still occasionally sample), you can:
    • Keep the skill paused and use a script (ADC.get or ADC.waitFor...) to sample on demand.
    • Lower the skill’s Interval setting so it polls much less often.
    • Replace multiple ADC skills with a single skill or a single script that reads several ports - fewer skills = fewer timers.

How to check or change this in ARC

  • Pause or resume a robot skill:
    1. Open the ADC skill window in your project.
    2. Click the kebab/hamburger (three lines) at the topright of the skill window.
    3. Check or uncheck the "Paused" checkbox in the skill settings and press OK / close the settings.
  • Change the polling Interval:
    1. Open the skill settings (same kebab menu).
    2. Set a larger Interval (milliseconds) to reduce how often it polls when not paused.

If you want to sample on demand from a script (no continuous polling), example JavaScript:

// read ADC once from ADC3 on EZB board index 0 and print value (0-255)
var val = ADC.get(ADC3, 0);
print("ADC3 value: " + val);

Or wait for a range:

// wait until ADC0 is between 50 and 200
var result = ADC.waitForBetween(ADC0, 50, 200, 50, 0, 10000); // frequency 50ms, timeout 10s
print("Result: " + result);

Useful links

Would you like me to:

  • Show a short script that polls ADC only when needed and stores values in a global variable for your project?
  • Recommend optimal Interval values based on how many ADC skills/ports you have and your EZB firmware/version? If so, tell me how many ADC ports/skills you have and what polling intervals you’re using now.

I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.