UnderAutomation
Any question?

[email protected]

Contact us
UnderAutomation
⌘Q
Yaskawa

Yaskawa SDKControl Yaskawa robots from your own software

Quickly create applications in .NET, Python or LabVIEW that communicate with your Motoman Yaskawa industrial robot. A ready-to-use software library: your PC talks to the robot over the network cable.

Try it freeSee pricing

From 750 € / $900, paid once

Nothing to install on the robot
30-day free trial
Perpetual license, no subscription
.NET / C#
Python
LabVIEW
Matlab
Yaskawa robot
Yaskawa SDK
1// dotnet add package UnderAutomation.Yaskawa
2using UnderAutomation.Yaskawa;
3
4var robot = new YaskawaRobot();
5robot.Connect("192.168.0.1");
6
7var position = robot.HighSpeedEServer.GetRobotCartesianPosition();
8robot.HighSpeedEServer.SelectJob("WELD01", 0);
9robot.HighSpeedEServer.StartJob();
In short

What you get

Plug & Play

Connect your robot in just a few minutes. No license manager to install, no USB key. Only reference the library.

No plugins to install on the robot

Use of network protocols provided as standard by the robot controller.

MotoPlusMotoComROS

30-day trial

Try it free for 30 days, no commitment, no registration required

Pay once, use forever

Perpetual license, no subscription required, regardless of the number of robots, developers, or redistributed software

Features

Yaskawa SDK features: HSES, Ethernet Server, FTP and kinematics

Each feature comes with a code sample. Click on it to see the full code.

Move the robot

Send Cartesian and joint moves to the robot, and read its current position, the torque of the motors and the position error.

var robot = new YaskawaRobot();
robot.Connect("192.168.0.1");
// The servo must be on, the controller in remote mode
robot.HighSpeedEServer.SetServo(true);
// Linear move to an absolute position of the robot frame, at 50 mm/s
robot.HighSpeedEServer.MoveCartesian(
x: 850, y: 0, z: 400, // mm
rx: 180, ry: 0, rz: 0, // degrees
PositionCommandClassification.Cartesian_MM_S,
speed: 50,
PositionCommandOperationCoordinate.Robot,
commandtype: PositionCommandType.StraightAbsolute);
// Joint interpolated move to the same target, at 10 % of the maximum speed
robot.HighSpeedEServer.MoveCartesian(
850, 0, 400, 180, 0, 0,
PositionCommandClassification.LinkPercent,
speed: 10,
PositionCommandOperationCoordinate.Robot,
commandtype: PositionCommandType.LinkAbsolute);
robot.Disconnect();
}
Click to see the full code

Run robot programs

Send jobs to the controller, select them and start them from a PC. Then follow the executing job, its line and the alarms.

var robot = new YaskawaRobot();
robot.Connect("192.168.0.1");
// Select the job by its name, without the .JBI extension, at line 0
robot.HighSpeedEServer.SelectJob("WELD01", 0);
// Starting needs the play mode, the remote mode and the servo on
robot.HighSpeedEServer.SetServo(true);
robot.HighSpeedEServer.StartJob();
robot.Disconnect();
}
Click to see the full code

Data reading and writing

Read and write the I/O, the byte, integer, real, string and position variables, and the registers of the controller.

var robot = new YaskawaRobot();
robot.Connect("192.168.0.1");
// B000 to B003: byte variables (0 to 255)
byte[] b = robot.HighSpeedEServer.ReadByte(0, 4).Value;
robot.HighSpeedEServer.WriteByte(0, new byte[] { 1, 2, 3, 4 });
// I010 and I011: integer variables (16 bits)
short[] i = robot.HighSpeedEServer.ReadInteger(10, 2).Value;
robot.HighSpeedEServer.WriteInteger(10, new short[] { -100, 200 });
// D000: double integer variable (32 bits)
int[] d = robot.HighSpeedEServer.ReadDoubleInteger(0, 1).Value;
robot.HighSpeedEServer.WriteDoubleInteger(0, new[] { 100000 });
// R005 to R007: real variables (32 bit floating point)
float[] r = robot.HighSpeedEServer.ReadReal(5, 3).Value;
robot.HighSpeedEServer.WriteReal(5, new[] { 1.5f, -2.25f, 3f });
robot.Disconnect();
}
Click to see the full code

File transfers

Download, upload and delete jobs and data files over FTP, HTTP or the High Speed Ethernet Server, and download the CMOS backup.

var robot = new YaskawaRobot();
robot.Connect(parameters);
// Text of a file: the folder is deduced from the extension
string job = robot.Ftp.GetFile("TEST.JBI");
// Bytes of a file, with its full path
byte[] variables = robot.Ftp.DownloadFile("/DAT/VAR.DAT");
// To a file of the PC
robot.Ftp.DownloadFileToLocal("/PRM/ALL.PRM", @"C:\Backup\ALL.PRM");
// Several files into a folder of the PC: returns the local paths
string[] saved = robot.Ftp.DownloadFilesToLocal(new[] { "/JOB/TEST.JBI", "/DAT/VAR.DAT" }, @"C:\Backup");
robot.Disconnect();
}
Click to see the full code

Ethernet Server over TCP

Read the status, the alarms with their text, the positions in any frame and the encoder temperatures. Start a job and wait for its end in one call.

var robot = new YaskawaRobot();
robot.Connect(parameters);
// Play mode, remote mode, no alarm
robot.EServer.SelectJob("PICK", 0); // job and line
robot.EServer.SetServo(true);
robot.EServer.StartJob();
// Blocks until the job ends, or 60 s
bool completed = robot.EServer.WaitForJobCompletion(60);
Console.WriteLine(completed ? "Job completed" : "Job stopped or timeout");
robot.Disconnect();
}
Click to see the full code

Offline kinematics

Forward and inverse kinematics of 169 Yaskawa arms and cobots, on the PC: up to 8 or 16 joint solutions for a position, DH parameters read from ALL.PRM.

static void Main()
{
DhParameters dh = DhParameters.FromArmKinematicModel(ArmKinematicModels.GP7);
// Flange position in the robot frame: mm and degrees
var target = new CartesianPosition(400, 100, 300, 180, 0, 0);
// Every joint solution, angles in (-180, 180]. Empty if the position cannot be reached.
JointsAngles[] solutions = KinematicsUtils.InverseKinematics(target, dh);
foreach (JointsAngles solution in solutions)
Console.WriteLine(solution); // S=..., L=..., U=..., R=..., B=..., T=...
}
}
Click to see the full code
Demo

See it in action

Video and screenshots of the demo application delivered with the SDK.

Windows application example

No code to write: test the SDK on your robot with the demo application.

Download (132 MB)By downloading, you accept the general conditions of use: See terms and conditions

Examples on GitHub

The sources of examples of use of this SDK are available on Github

Python example

Example of operation of this SDK with Python to recover the Cartesian position of a robot.

Labview example

Example of VI which allows most of the functions of this SDK to be tested.

Installation

Install it in one command

Choose your language. The 30-day trial starts at the first use, with no registration.

.NET

NuGet package for C# and VB.NET, from .NET Framework to the latest .NET.

dotnet add package UnderAutomation.Yaskawa
See on NuGetSee on GitHubOpen the guide

Python

Python package on PyPI, for Windows, Linux and macOS.

pip install UnderAutomation.Yaskawa

LabVIEW

LabVIEW library (.lvlib) and its example project, on GitHub.

git clone https://github.com/underautomation/Yaskawa.vi.git

AI agents

Skill for AI coding agents (Claude Code, Cursor, Copilot...): your assistant knows the API of the SDK.

npx skills add underautomation/skills --skill underautomation-yaskawa-csharp
Documentation

Browse the documentation

The documentation allows you to quickly start developing with the library. The same functionality is available in all supported languages.

Browse the documentation

The documentation allows you to quickly start developing with the library. The same functionality is available in all supported languages.

Getting started with .NET

Code your application in C# or VB with this 100% managed library, without dependencies and available on NuGet.org in the version and architecture of your choice (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)

Get started with Python

Quickly develop a program in Python that communicates with your robot using this library. It is available on PyPI.

Getting started with LabVIEW

Equip your LabVIEW VIs with a communication with your robot.

Getting started with Matlab

Allow your Matlab scripts to drive your robot.

Guides and how-to articles

Each article explains how to do one task, step by step, with code you can copy.

Get the robot position

Read the position of a Yaskawa robot from C# or Python: Cartesian position or joint pulses, which method to choose, and a polling loop. Complete program included.

Read and write I/O

Switch a network input and wait for an output of a Yaskawa controller from C# or Python, with the signal numbers, groups and bits explained.

Read and write variables

Exchange data with a Yaskawa job from C# or Python: integer, real, byte and string variables, which type to choose, and the frequent errors.

Run a job

Select a job of a Yaskawa controller, switch the servo on, start it and wait for its end from C# or Python. Settings of the controller and frequent errors.

Read and reset alarms

Detect an alarm of a Yaskawa controller, read its code and text, reset it and check the result, from C# or Python.

Transfer files and backups

Back up every job of a Yaskawa controller, send a job written on the PC and download the CMOS backup, from C# or Python.

Monitor the state of the robot

Poll the mode, the servo, the hold, the alarms and the job of a Yaskawa controller, and print each change of state.

Move the robot from a PC

Switch the servo on and move a Yaskawa robot in a straight line from C# or Python, without a job. Which move to choose, how to wait for the end, and the frequent errors.

Pricing

Libraries can be downloaded for free and can be tested for 30 days. After this period, you can ask us to extend the trial period, or buy the license that suits you best: standard, pro or source. After purchasing, you have a maintenance period, giving you access to the support and the possibility of updating. When you buy a license to use, it is linked to a robot brand, you can use it forever, without recurring fee, regardless of the number of robot, developer or software that you redistribute to your customers. If you are a distributor and wish to offer your customers one of our products, please contact us to discuss special conditions and prices.

Standard Site License

•

$900lifetime
$540for universities (40% discount)
Designed for industrial environments, providing lifetime full-feature access.
1 year maintenance included (access to updates)
Same conditions as the Pro License, except that support is not prioritized and maintenance is 1 year.
There are no internal sources; only the obfuscated DLL is provided.
No assistance by videoconference (only via email).
Choose the right license for your project
Buy now
Most popular

Pro License

•

$1300
$2160
lifetime
$780for universities (40% discount)
For critical production environments requiring priority support and longer-term maintenance.
3 years maintenance included (access to updates) with no renewal orders during this term (zero paperwork)
Complete and permanent SDK: no recurring subscription is required, the license is yours forever and works in all programming languages ​​for a robot brand.
Can be used only by the organization holding the license, at the postal address indicated. All team developers will share the same license, regardless of the number of development machine.
Any application developed using the SDK can be delivered to an unlimited number of your customers at no additional cost, regardless of the number of robots to connect.
The license is a kind of password to call in the code that unlocks the features. No additional software to install. No USB key.
Priority Support (<24h on average)
Remote assistance (email and up to 2h videoconference)
There are no internal sources; only the obfuscated DLL is provided.
Upgrade to Source anytime (pay the difference)
Buy now

Source license

•

$2600lifetime
$1560for universities (40% discount)
For complete technical sovereignty, deep customization, and total independence.
Same conditions as the pro license
Complete internal code of the library in C#
Visual Studio solution that includes thousands of lines of code developed over several years
You can modify this source code and use it in your application, within the limits defined in the general terms of use
Works seamlessly with AI coding agents (Claude, Copilot, Cursor, Codex...) thanks to full source code access and included context files (AGENTS.md) that give the LLM the exact knowledge of the SDK internals
Buy now
FAQ

Frequently asked questions

No. The SDK uses functions of the controller: the High Speed Ethernet Server (HSES), the Ethernet Server, the web server and the FTP server. No MotoPlus application is installed. Some functions need parameters set on the pendant, for example remote mode or the file overwrite permission. The documentation lists them.

Motoman robots on the YRC1000 (micro), MOTOMAN NEXT, DX100 / DX200, FS100 and ERC / XRC / MRC controllers.

Four protocols of the controller: the High Speed Ethernet Server over UDP (status, positions, motion, jobs, variables, I/O, files), the Ethernet Server over TCP (the same functions without files), the web server to read files and the FTP server to transfer files. Each one is enabled with one flag in ConnectParameters.

Yes, offline, without a controller. The SDK computes the forward kinematics and every inverse kinematics solution (up to 8, or 16 for the HC10 cobots) of 169 Motoman models. The geometry comes from the catalog of the SDK or from the ALL.PRM file of the controller.

A license is permanent, with no subscription. Standard: 750 EUR / 900 USD. Pro: 1100 EUR / 1300 USD. Source: 2200 EUR / 2600 USD. It covers one organization at one address, with any number of developers, robots and delivered applications. Updates are included for 1 year with Standard and 3 years with Pro and Source. Universities get a 40% discount.

Yes. Every feature works for 30 days from the first use, with no registration. The trial can be extended on request. The Windows demo application lets you try the SDK on your robot without writing code.

Yes. The library is compiled for .NET Standard 2.0 and 2.1, which run on Windows, Linux and macOS, on x64 and ARM. For Python on Linux or macOS, install the .NET runtime and run export PYTHONNET_RUNTIME=coreclr before starting Python.

Yes. pip install UnderAutomation.Yaskawa installs the package and pythonnet, which loads the .NET library in the Python process. Python 3.7 to 3.13 is supported. The API is the same as in .NET, with Python names.

Yes. The LabVIEW library (.lvlib) and its example project are on GitHub, in the Yaskawa.vi repository. They use the same .NET assembly as the other languages.

Yes, with the Source license: the full C# code of the library and its Visual Studio solution. You can modify it and use it in your applications, within the limits of the EULA. The Standard and Pro licenses provide the obfuscated DLL only.
GitHub

Libraries on GitHub

Each package is published on GitHub with its changelog.

Latest releases

Yaskawa.NET

Latest release

underautomation / Yaskawa.NET

Public

.NET library of the Yaskawa SDK.

C#View on GitHub

underautomation / Yaskawa.py

Public

Python package of the Yaskawa SDK.

PythonView on GitHub

underautomation / Yaskawa.vi

Public

LabVIEW library of the Yaskawa SDK, with example VIs.

LabVIEWView on GitHub

Get started now !

Start the 30-day trial today, or ask for a quote.

Try it freeOrderRequest a quoteContact us