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. While working directly with core will let you interact with your ORCA Hand on a deep level, the Orca Ui repository (found at: https://github.com/orcahand/orca_ui) can let users get started right away, helping you setup/maintain your hand, tune its performance, and better understand its capabilities.
Get Started
To get started with Orca Core, follow these steps:
Pre-installation steps
-
Git clone the orca_core repository:
#use any preferred method, ssh clone shown here git clone git@github.com:orcahand/orca_core.git -
Install uv (found at: https://docs.astral.sh/uv/getting-started/)
Installing the repository
-
Sync a local development environment with
uv:uv sync --group dev
This creates a local
.venvand installs the package plus development dependencies. -
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
uvcan still install the package with:pip install .
Post-installation sample usage scripts
-
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.
- Review the config file (e.g.,
-
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.
-
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 →
portdisambiguates which one - motors run at a non-default baudrate →
baudrateskips the probe sweep - the auto-detection picks the wrong family →
motor_typeforces 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.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| orca_core-0.7.0.tar.gz | 638.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| orca_core-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 946.2 kB
Release files / orca_core-0.7.0.tar.gz
| Download URL | orca_core-0.7.0.tar.gz |
|---|---|
| Size | 638.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a08b9389d2ef40090a84fc6797b39f044b15a976e7a9ce0b06c79e3537ccb65
|
|
BLAKE2b-256 checksum How to use checksums |
e8e0c0a443ede09ab4cbda0b0cb935797f7114c288b6d6a7942f705689e27fe8
|
| 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 14, 2026.
Transparency logRelease files / orca_core-0.7.0-py3-none-any.whl
| Download URL | orca_core-0.7.0-py3-none-any.whl |
|---|---|
| Size | 307.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ad03b9b46004edd8508c12924974f95f03882adbe026104942ea515f37c0188
|
|
BLAKE2b-256 checksum How to use checksums |
773daf62e1f2a97cbc9fceb8060c31918de1dd4b1e4b11362c644ef57661869f
|
| 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 14, 2026.
Transparency log