When controlling Dobot CR / CRA series robots from a PC, it is necessary to distinguish the Robot Arm, Controller, DobotStudio Pro, programs running on the Controller, the published TCP/IP protocol, the official Python wrapper, ROS / ROS2, and communications for PLCs. A notable feature of Dobot is that both its TCP/IP protocol for external PCs and its Python implementation are relatively easy to inspect.
Robot Arm
↑
Controller / motion control
↑
├─ DobotStudio Pro ── teaching, Jog, configuration, program operations
├─ Controller program ── autonomous execution on the Controller
├─ TCP/IP API ── remote control from a PC
├─ official Python wrapper
└─ Modbus, etc. ── PLC / equipment integration
DobotStudio Pro is the standard operating environment for enabling the robot, jogging, teaching points, Tool / User coordinates, I/O, global variables, and creating and running programs. It is the teaching and programming layer used by a robot operator, with responsibilities distinct from those of the TCP/IP API that operates the robot through sockets from an external PC.
Robot programs / scripts can be executed on the Dobot Controller. Some generations use Lua-based scripts. The route for autonomously executing a sequence on the Controller must be distinguished from the route for sending TCP/IP commands one by one from a PC.
In the CR / Nova series, the Controller itself acts as a TCP server, and an external PC establishes a socket connection to send commands. Management commands, motion commands, and real-time feedback are separated by port / connection.
The official Python repository likewise uses a main thread that connects separately to the control port, motion port, and feedback port, directly reflecting this division of responsibilities on the Controller side.
For example, V3-series systems handle Dashboard / control, motion, and feedback over separate connections. Since port numbers and packet layouts depend on the Controller / protocol version, the protocol document corresponding to the actual robot version must be consulted.
Dobot publishes the official GitHub organization Dobot-Arm.
TCP-IP-Python-V3 is the official Python wrapper for V3-series CR / Nova Controllers. Its README describes an SDK that follows the Dobot TCP/IP control protocol, establishes a TCP connection to the robot terminal using Python sockets, and exposes a convenient API.
In dobot_api.py, Controller management, motion, feedback, and related operations are organized into classes, making the communication structure easy to understand even when developing a custom device class.
The official TCP-IP-Python-V3 repository is published under the MIT License. This published Python library can therefore clearly be regarded as OSS whose source code can be used and modified free of charge.
Because the communication protocol itself is also public, implementing a custom socket client without the official wrapper is possible in principle. Ordinarily, however, basing the implementation on the official wrapper is easier to maintain because it handles version differences and packet processing.
Dobot also publishes official ROS / ROS2 repositories.
ROS / ROS2 can be regarded as a higher layer that builds robot models, nodes, MoveIt, and related functionality on top of the TCP/IP control layer.
Modbus and similar protocols can be used for PLC and equipment integration. Their purpose differs from TCP/IP remote control that invokes motion APIs from a PC.
TCP/IP API : Direct handling of robot motion / state from a PC
Modbus : Integration with PLC / equipment sequences
ur_rtde?Third-party Python packages such as DobotTCP exist.
Unlike Universal Robots, however, Dobot itself publishes both its TCP/IP protocol and an MIT-licensed Python wrapper. A third-party library is therefore not effectively indispensable, and as of August 2026 no overwhelmingly dominant de facto standard third-party library occupying the same position as ur_rtde could be identified.
For a custom device class, evaluating the official TCP-IP-Python-V3 first is the natural choice.
The following arrangement is straightforward for SUSANOO.
SUSANOO device class
↓
Dobot official TCP-IP-Python-V3
↓
TCP/IP
↓
Dobot Controller
↓
Robot Arm
Since the official Python wrapper is a thin TCP/IP wrapper and its source is available under the MIT License, the behavior of a device class can, if necessary, be traced all the way down to the protocol level.