motor-ioc

Configure EPICS motor IOCs for model-3 asyn motor deployments.

1|1|Updated Apr 14, 2026
One-click install
npx skills add https://github.com/BCDA-APS/opencode-skills --skill motor-ioc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: motor-ioc
Source: https://github.com/BCDA-APS/opencode-skills/tree/main/motor-ioc
Command: npx skills add https://github.com/BCDA-APS/opencode-skills --skill motor-ioc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill helps you configure and deploy EPICS motor IOCs correctly by providing reliable patterns for templates, substitution files, record semantics, and st.cmd startup ordering.

Core Features & Use Cases

  • Database templates & substitution patterns: Use model-3 asyn motor template structures and multi-axis substitution examples to instantiate the right motor record graph.
  • Motor record field correctness: Apply engineering-unit, resolution, direction/offset, limits, and motion-control field semantics so the IOC behaves as intended.
  • IOC startup integration: Follow safe, practical st.cmd ordering for support registration, asyn port setup, controller creation, template loading, motorUtil loading, and post-iocInit initialization.

Quick Start

Configure an EPICS motor IOC for 4 model-3 asyn motor axes with an asyn IP port by using the provided st.cmd ordering, loading the motor record templates via substitution files, and initializing motorUtil after iocInit.

Frequently Asked Questions about motor-ioc

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure a multi-axis EPICS motor IOC using model-3 asyn motor templates?

Configure a multi-axis EPICS motor IOC by generating correct database templates, substitution patterns, and st.cmd startup sequences for model-3 asyn motor deployments. This includes setting up asyn IP/serial communication, controller creation, and loading motor record fields with proper DTYP=asynMotor settings.

What is the correct st.cmd ordering for asyn motor IOC startup and motorUtil initialization?

Correct st.cmd ordering for asyn motor IOC startup requires support registration, asyn port setup, controller creation, template loading via dbLoadTemplate, and motorUtilInit execution after iocInit to ensure proper initialization timing.

Why does my EPICS motor record show incorrect engineering unit conversions when using asynMotor?

Incorrect engineering unit conversions in EPICS motor records usually stem from wrong MRES-based step/EGU conversions or improper @asyn(PORT,ADDR) OUT formatting. Apply correct motor record field mappings for resolution, direction, and offset to resolve the issue.

Do I need to avoid PINI settings when configuring EPICS motor IOCs?

Yes, you should avoid problematic PINI settings when configuring EPICS motor IOCs. Proper configuration applies safe field semantics and correct motorUtilInit timing after iocInit while preventing settings that disrupt expected initialization behavior.

Can I use dbLoadTemplate with substitution files for multi-axis motor record instantiation in EPICS?

Yes, you can use dbLoadTemplate with substitution files to instantiate multi-axis motor record graphs in EPICS. This approach uses model-3 asyn motor template structures to define correct motor record fields, limits, and motion-control semantics.

What's the best way to set up asyn IP port communication for an EPICS motor controller?

The best way to set up asyn IP port communication for an EPICS motor controller is to follow safe st.cmd ordering for asyn port configuration, apply correct @asyn(PORT,ADDR) OUT formatting, and enable optional features like auto power and profile moves.