Skip to main content
arXiv Discord Twitter Follow Website
GitHub stars Tests

Orca Core is the core control package of the ORCA Hand. It's used to abstract hardware, provide scripts for calibration, tensioning and to control the hand with simple high-level control methods in joint space.

Get Started

To get started with Orca Core, follow these steps:

  1. Sync a local development environment with uv:

    uv sync --group dev
    

    This creates a local .venv and installs the package plus development dependencies.

  2. Run commands through uv:

    uv run pytest
    

    If you prefer an activated shell, you can still use:

    source .venv/bin/activate      # macOS / Linux
    .venv\Scripts\activate         # Windows
    

    End users who do not use uv can still install the package with:

    pip install .
    
  3. Check the configuration file:

    • Review the config file (e.g., orca_core/models/v2/orcahand-right/config.yaml) and make sure it matches your hardware setup.
  4. Run the tension and calibration scripts:

    uv run python scripts/tension.py orca_core/models/v2/orcahand-right/config.yaml
    uv run python scripts/calibrate.py orca_core/models/v2/orcahand-right/config.yaml
    

    Replace the path with your specific hand model folder if needed.

  5. Move the hand to the neutral position:

    uv run python scripts/neutral.py orca_core/models/v2/orcahand-right/config.yaml
    

Troubleshooting

Serial Port Permissions (Linux)

On Linux, the serial port (e.g., /dev/ttyACM0) is owned by the dialout group. If your user is not in this group, you will get a permission denied error and motors won't be detected.

Permanent fix (requires re-login):

sudo usermod -aG dialout $USER

Temporary fix (resets on reboot/replug):

sudo chmod 666 /dev/ttyACM0

Windows

Supported on Windows 10 and 11; no permission setup is needed. Ports are named COM3, COM4, ... and are listed with:

uv run python -m serial.tools.list_ports -v

Driver notes, latency settings and the first-connection checklist: Running on Windows.

Serial port, baudrate, and motor type

By default these are all auto-detected at connect time.

However, you can declare them explicitly in config.yaml. Useful when:

  • multiple hands are connected at once → port disambiguates which one
  • motors run at a non-default baudrate → baudrate skips the probe sweep
  • the auto-detection picks the wrong family → motor_type forces a specific one
# Optional overrides:   auto-detected if omitted
port: /dev/ttyACM0      # /dev/cu.usbmodemXXXX on macOS, COM3 on Windows
baudrate: 1000000       # 1M for v2; 3M for v1
motor_type: dynamixel   # or 'feetech'

Metadata

Release files for orca-core 0.5.2

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

Source distribution (sdist)

Source distribution for orca-core 0.5.2
File Size Uploaded
orca_core-0.5.2.tar.gz 576.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for orca-core 0.5.2
File Interpreter ABI Platform
orca_core-0.5.2-py3-none-any.whl Python 3 none any Details

Total release size: 843.9 kB

Release files / orca_core-0.5.2.tar.gz

Download URL orca_core-0.5.2.tar.gz
Size 576.0 kB
Tags Source
SHA-256 checksum
How to use checksums
359d0c294b1bf751dcdf5ecc379e859017afdd866e33546abcfd79419789900f
BLAKE2b-256 checksum
How to use checksums
4fc05130d890f411341c98e18da84ac4c28da5ae23c1f4106d83cd6785e7560e
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 Oct 1, 2026.

Transparency log

Release files / orca_core-0.5.2-py3-none-any.whl

Download URL orca_core-0.5.2-py3-none-any.whl
Size 267.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ca12d4f9a18e5d3f4b8389d188e9c9068436dfd0f5a0c34bee70a9fcde67d1f5
BLAKE2b-256 checksum
How to use checksums
ac5171e5e0fb1420f8cd668221395e378cfa7c4e53cd3ce65a8d0fd0d7367813
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 Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.0

2 release files

0.6.0

2 release files

0.5.4

2 release files

0.5.3

2 release files

This release

0.5.2 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.8

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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