This release is a pre-release and may not be stable for production use.
Aero Open SDK — Python Interface for TetherIA's Robotic Hand
Aero Open Hand is a 7-DoF tendon-driven robotic hand for dexterous manipulation and research.
The SDK enables full control via Python. Perform homing, calibration, and precise motion control with ease.
⚙️ Installation
The SDK is currently tested for Python 3.10 and above.
📦 Install via pip
pip install aero-open-sdk
🧩 Install from source (editable mode)
-
Clone the repository to your local machine:
git clone https://github.com/TetherIA/aero-hand-open.git
-
Navigate to the cloned repository directory:
cd sdk
-
Install the package in editable mode:
pip install -e .
🖥️ One-Time Setup
When setting up your hand for the first time, our setup GUI helps you configure motor IDs and test motor connections.
After installation, launch the Setup GUI with:
aero-open-gui
This provides an interactive interface to configure your hand.
🔌 Serial Port Setup
Aero Hand connects to the host PC via a serial (USB) interface. To operate the SDK, you must specify the correct serial port for your device.
🐧 Linux
Most Linux systems assign the device path as /dev/ttyACM0 or /dev/ttyUSB0. You can list connected serial devices with:
ls /dev/ttyACM* /dev/ttyUSB*
💡 Persistent Device Path (Recommended)
Device names like /dev/ttyUSB0 can change each time you reconnect.
To get a persistent name, use the by-id symlink instead:
ls -l /dev/serial/by-id/
This will show you a list of connected serial devices with more descriptive names. Look for the one that corresponds to your Aero Hand. Which will look something like:
usb-Espressif_USB_JTAG_serial_debug_unit_D8:3B:DA:45:C8:1C-if00
Then initialize your hand using that path:
from aero_open_sdk.aero_hand import AeroHand
aero_hand = AeroHand(
port="/dev/serial/by-id/usb-Espressif_USB_JTAG_serial_debug_unit_D8:3B:DA:45:C8:1C-if00"
)
✅ This ensures your connection always points to the correct device, even if you unplug and replug the hand or change the USB port.
🪟 Windows
On Windows, the device will appear as a COM port like COM3 or COM4. You can find the correct COM port by checking the Device Manager under "Ports (COM & LPT)".
You can then Initialize your hand with the detected COM port:
from aero_open_sdk.aero_hand import AeroHand
aero_hand = AeroHand(port="COM3")
💡 Making the COM Port Persistent
Windows does not have a /by-id/ system like Linux, so the COM number can change if you plug the device into a different USB port.
To make it permanent, you can assign a fixed COM number:
- Plug in the Aero Hand and open Device Manager.
- Find it under Ports (COM & LPT).
- Right-click → Properties → Port Settings → Advanced.
- In COM Port Number, select an unused port (e.g., COM5).
- Click OK to save.
You can now always use this COM port when initializing the SDK.
💡 Examples
To integrate the SDK into your own code, refer to the examples folder for sample files demonstrating basic usage.
🧰 Troubleshooting
1. Installation Fails (pip install error)
If installation fails, try the following steps:
-
Check your Python version:
Make sure you have Python 3.10 or higher installed.
-
🔧 Upgrade pip to the latest version:
Our package requires an up-to-date version of pip.
You can upgrade pip with:
pip install --upgrade pip
On Windows, if you see error like "pip is not recognized", use the py launcher command instead:
```bash
py -m pip install --upgrade pip
```
2. Path Mismatch on Windows
-
You may not have the Python Scripts path added to your system PATH environment variable.
-
To fix this, you can either:
- Add the Python Scripts directory (e.g.,
C:\Users\<YourName>\AppData\Local\Programs\Python\Python310\Scripts) to your system PATH. - Or use the
pylauncher command to launch the GUI after installation:py -m aero_open_sdk
- Create a virtual environment and install the package there.
python -m venv venv .\venv\Scripts\activate pip install aero-open-sdk aero-open-gui
- Add the Python Scripts directory (e.g.,
3. Linux Troubleshooting: Serial Port Permission
If you see a permission error when connecting to the serial port (e.g., /dev/ttyACM0), do the following:
- Find your username:
whoami
- Add your user to the
dialoutgroup (replaceyourusernamewith the output fromwhoami):sudo usermod -a -G dialout yourusername
- Restart your system (or log out and log back in).
- After restart, open a terminal and run:
groups
You should see your username anddialoutlisted. - Try connecting to the serial port again in the GUI.
If you still see permission errors, check device permissions with:
ls -l /dev/ttyACM0
You may need to temporarily set permissions:
sudo chmod 666 /dev/ttyACM0
💬 Support
If you encounter issues or have feature requests:
- Open a GitHub Issue
- Contact us at contact@tetheria.ai
🤝 Contribution
We welcome community contributions!
If you'd like to improve the SDK, fix bugs, or add new features:
-
Fork this repository.
-
Create a new branch for your changes.
git checkout -b feature/your-feature-name
-
Commit your changes with clear messages.
-
Push your branch to your fork.
-
Open a Pull Request (PR) describing your updates.
⚖️ License
This project is licensed under the Apache License 2.0.
Built with ❤️ by TetherIA.ai
Release files for aero-open-sdk 0.1.0.dev1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aero_open_sdk-0.1.0.dev1.tar.gz | 16.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aero_open_sdk-0.1.0.dev1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.2 kB
Release files / aero_open_sdk-0.1.0.dev1.tar.gz
| Download URL | aero_open_sdk-0.1.0.dev1.tar.gz |
|---|---|
| Size | 16.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
684589c1a7d61df8845a32ad8138b71ed1f866614424a16d87cf193f073ed664
|
|
BLAKE2b-256 checksum How to use checksums |
65e578bae86288f810d18eac22fcac3162c134c080acfe38f12141d082387b09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.18
|
Release files / aero_open_sdk-0.1.0.dev1-py3-none-any.whl
| Download URL | aero_open_sdk-0.1.0.dev1-py3-none-any.whl |
|---|---|
| Size | 20.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb57b58dcf935938e725684a0771c0ef15fac36f431c8e78338a94aff4095ac5
|
|
BLAKE2b-256 checksum How to use checksums |
977cee13d43da99a500c9a69a04b562452526972d012d080c9c1e58110fcfaa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.18
|