Skip to main content

pydobotlab

Python control for the Dobot Magician robot arm, with an optional desktop control panel and a simulator for working without hardware. Communicates over serial using pyserial; no vendor DLL or DobotStudio installation is required.

Documentation & homepage · API reference · GitHub · Report an issue

Installation

Requires Python 3.10 or newer. Install in a virtual environment:

python -m pip install pydobotlab

For the optional PySide6 desktop panel:

python -m pip install "pydobotlab[gui]"
pydobotlab-panel

The base library requires only pyserial; Qt is installed only with the gui extra. See the installation guide for virtual environments, Windows drivers, and Linux serial-port permissions. The project has been used on Ubuntu and Windows; macOS hardware has not been verified.

Quick start

With the arm connected and its workspace clear:

from pydobotlab import Magician, PTPMode

with Magician() as robot:  # auto-discover; or specify "/dev/ttyUSB0" / "COM3"
    robot.clear_alarm()
    robot.set_home()
    robot.move_to(220, 0, 50, mode=PTPMode.MOVJ_XYZ)
    pose = robot.get_pose()
    print(pose.x, pose.y, pose.z, pose.joints)

Dobot is also available as an alias for Magician. The documented DobotLab method names and parameters are preserved for existing scripts and teaching material.

Try it without hardware

pydobotlab-panel --simulator

Or use the simulator from Python:

from pydobotlab import Magician
from pydobotlab.simulator import install_simulator, stop_all

install_simulator(arms=1)
try:
    with Magician("/dev/sim0", via_broker=False) as robot:
        robot.move_to(220, 0, 50)
        print(robot.get_pose())
finally:
    stop_all()

The simulator supports offline examples and tests. It approximates motion and firmware behavior; it does not validate a real robot's trajectory.

Features and examples

  • Cartesian and joint motion, jogging, homing, speed settings, and continuous paths.
  • Suction cup, gripper, laser, digital I/O, sensors, and conveyor commands.
  • Structured alarms, motion-failure exceptions, and live pose streaming.
  • Firmware queue control and with robot.batch() for accumulating commands.
  • Multiple robot connections and a local broker for sharing a port between the GUI and scripts.

Start with pick and place, smiley drawing, or two arms with live panels. The user guide covers the API, control panel, broker, and wire protocol.

Development

From a local checkout, including before the first PyPI release:

python -m pip install -e ".[dev,gui,docs]"
python -m pytest --timeout=30
ruff check .
ruff format --check .
mkdocs serve

See contributor guidance and the publishing guide.

License

MIT. Maintained by Tal Eylon, taleylon1@gmail.com.

Metadata

Release files for pydobotlab 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydobotlab 0.1.0
File Size Uploaded
pydobotlab-0.1.0.tar.gz 120.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydobotlab 0.1.0
File Interpreter ABI Platform
pydobotlab-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 182.5 kB

Release files / pydobotlab-0.1.0.tar.gz

Download URL pydobotlab-0.1.0.tar.gz
Size 120.7 kB
Tags Source
SHA-256 checksum
How to use checksums
637dbfd655bcfdfdef0e88814bc577771f6973fae79ddb6b01fbd1b8faeb3984
BLAKE2b-256 checksum
How to use checksums
7b51b056ea926f5e4c9c6bbfd9487c4c2678c7f8808951c50a134f408ab43153
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release files / pydobotlab-0.1.0-py3-none-any.whl

Download URL pydobotlab-0.1.0-py3-none-any.whl
Size 61.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5e476e40a802822a58ce3b8d943bd2ce977121326530c4045db9d3f5946e68d
BLAKE2b-256 checksum
How to use checksums
de7c479566b5ae79dfd0ade904f5d7981af78e31317f4cba2d49f475769cd1d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.1

2 release files

0.2

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page