litearm-python 1.2.2__py3-none-any.whl → 1.2.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
litearm/__init__.py CHANGED
@@ -92,7 +92,7 @@ from litearm.state import JointState, RobotState
92
92
  from litearm.tool import TcpOffset
93
93
  from litearm.transport import find_cdc_port
94
94
 
95
- __version__ = "1.2.2"
95
+ __version__ = "1.2.4"
96
96
 
97
97
  __all__ = [
98
98
  "Arm", "Msg", "LicenseInfo", "RobotState", "JointState", "find_cdc_port", "main",
@@ -1,8 +1,25 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: litearm-python
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: Python SDK for the LiteArm robotic arm
5
- License: Apache-2.0
5
+ Author: NEXFORM ROBOTICS
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Repository, https://github.com/nexform-tech/litearm-python
8
+ Project-URL: Issues, https://github.com/nexform-tech/litearm-python/issues
9
+ Project-URL: Documentation, https://github.com/nexform-tech/litearm-python/blob/main/docs/DEVELOPER_GUIDE.md
10
+ Keywords: litearm,robotic-arm,robot-arm,robotics,serial,stm32,sdk
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Scientific/Engineering
22
+ Classifier: Typing :: Typed
6
23
  Requires-Python: >=3.9
7
24
  Description-Content-Type: text/markdown
8
25
  License-File: LICENSE
@@ -17,7 +34,7 @@ Python SDK for the LiteArm robotic arm: drive the arm from a PC over one USB ser
17
34
  straight to its firmware — no server or middleware in between. Trajectory planning, kinematics
18
35
  and dynamics are all carried by the firmware.
19
36
 
20
- > Full interface reference: [docs/DEVELOPER_GUIDE.md](docs/DEVELOPER_GUIDE.md).
37
+ > Full interface reference: [docs/DEVELOPER_GUIDE.md](https://github.com/nexform-tech/litearm-python/blob/main/docs/DEVELOPER_GUIDE.md).
21
38
 
22
39
  ## Features
23
40
 
@@ -41,13 +58,19 @@ and dynamics are all carried by the firmware.
41
58
  | Firmware | `Litearm1.5.0` or later |
42
59
  | Connection | USB CDC serial, VID:PID `1d50:606f` |
43
60
 
44
- From the repository root:
61
+ From PyPI:
45
62
 
46
63
  ```bash
47
- pip install -e .
64
+ pip install litearm-python
48
65
  python3 -c "import litearm; print(litearm.__version__)" # verify
49
66
  ```
50
67
 
68
+ Or install from a checkout:
69
+
70
+ ```bash
71
+ pip install -e .
72
+ ```
73
+
51
74
  Linux needs serial permissions — check what the device node itself says first:
52
75
 
53
76
  ```bash
@@ -225,7 +248,7 @@ payload is composited in as a point mass), so nothing on the PC side needs a dyn
225
248
  nothing new is pulled in as a dependency. The **baseline is not optional**: subtracting it is what
226
249
  cancels the arm's own model error — an absolute solve feeds that error straight into the answer.
227
250
  The probe's side effects and the acceptance thresholds are in §5.16 of
228
- [the developer guide](docs/DEVELOPER_GUIDE.md).
251
+ [the developer guide](https://github.com/nexform-tech/litearm-python/blob/main/docs/DEVELOPER_GUIDE.md).
229
252
 
230
253
  ### Life / safety
231
254
 
@@ -297,13 +320,6 @@ for s in r.samples()[:3]:
297
320
  print(arm.diag.kin_bench().value) # CAN link diagnostic counters
298
321
  ```
299
322
 
300
- ### License and activation
301
-
302
- An arm that has never been activated rejects `enable()` with `ERR{0x10,0x08}` and answers every
303
- other command normally, so it stays diagnosable. `arm.license()` reads the record — a bare
304
- `LicenseInfo`, not a `Msg`; `arm.activate()` submits a vendor-issued credential and needs
305
- `disable()` first. See [the developer guide §5.15](docs/DEVELOPER_GUIDE.md#515-license-and-activation).
306
-
307
323
  ### Persistence
308
324
 
309
325
  ```python
@@ -344,7 +360,7 @@ or add `~/.local/bin` to `PATH`.
344
360
 
345
361
  ## Things to watch out for
346
362
 
347
- Start with the [troubleshooting guide](TROUBLESHOOTING.md): it has ready-made commands for
363
+ Start with the [troubleshooting guide](https://github.com/nexform-tech/litearm-python/blob/main/TROUBLESHOOTING.md): it has ready-made commands for
348
364
  finding who holds the serial port, what to do about each `enable()` rejection code, and how to
349
365
  tell Cartesian failures apart.
350
366
 
@@ -452,7 +468,7 @@ the motor bus.
452
468
 
453
469
  ## Examples
454
470
 
455
- See [examples/README.md](examples/README.md):
471
+ See [examples/README.md](https://github.com/nexform-tech/litearm-python/blob/main/examples/README.md):
456
472
 
457
473
  - `01_hello.py` — handshake + firmware version + reading state
458
474
  - `02_movej.py` — joint motion
@@ -505,4 +521,4 @@ On Windows use `env.ps1` / `env.cmd` and `run_example.ps1` / `run_example.cmd`.
505
521
 
506
522
  ## License
507
523
 
508
- Apache License 2.0 — see [LICENSE](LICENSE).
524
+ Apache License 2.0 — see [LICENSE](https://github.com/nexform-tech/litearm-python/blob/main/LICENSE).
@@ -1,4 +1,4 @@
1
- litearm/__init__.py,sha256=KYFLNyUDbb6mzxtsFQzChVyHyD6rXJj6LrV5mqdf5ak,6004
1
+ litearm/__init__.py,sha256=v3IfzK6Cd6Rpq0AOQboJulpMEqqEU_-1o6g5SRXkrM8,6004
2
2
  litearm/__main__.py,sha256=w9hCRg_CvVYA9wtBaA__gm3Jxl9YCHK1IxFQG8OrwBE,55
3
3
  litearm/_protocol.py,sha256=-dX-DCO-gE47Mc2XffqiyGKar1gnJfPDFecwkjwahyE,29256
4
4
  litearm/_rot.py,sha256=MtG8gmx0WuvEyA3x4FsnYIa6tj2sYhq-CaS4Ut-S1FQ,10576
@@ -15,9 +15,9 @@ litearm/state.py,sha256=VGsdy0whowSRbTPaUM4snVka8o6IUgyFAs5iaCdahno,8862
15
15
  litearm/testing.py,sha256=AZ3zWMScd_UNTDgt6NUQI_Svg6Xk9J7XmW_etX2RoFU,55515
16
16
  litearm/tool.py,sha256=2PgLJM2olLaWlpMSlCKEYrNhey7ksmgu2Sd8pvNv33k,7582
17
17
  litearm/transport.py,sha256=-Id2zlIPJWhGQ5HjnUgOPx4Nb6N0ntrwHMsXfAQ8o6g,21547
18
- litearm_python-1.2.2.dist-info/licenses/LICENSE,sha256=yVuuHRzgI17MzTVgt3LsHvuX80innw--CmNPDCzO_iw,11358
19
- litearm_python-1.2.2.dist-info/METADATA,sha256=g71IVZqInKZHLj0gBxqvGSUO78xkKp3schmnZq92_kc,21014
20
- litearm_python-1.2.2.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
21
- litearm_python-1.2.2.dist-info/entry_points.txt,sha256=yFrsF49DqQ-8bHbrksyDuSxQOEER7i-9sWixm07AFDE,52
22
- litearm_python-1.2.2.dist-info/top_level.txt,sha256=gqkLqmKbrqDYltZitHGepKU9jIMwLPTijtJpTcoWJ1Y,8
23
- litearm_python-1.2.2.dist-info/RECORD,,
18
+ litearm_python-1.2.4.dist-info/licenses/LICENSE,sha256=yVuuHRzgI17MzTVgt3LsHvuX80innw--CmNPDCzO_iw,11358
19
+ litearm_python-1.2.4.dist-info/METADATA,sha256=fXGsi3YkxBI3pEJ5Rsh_4-fuVJpF-N1_YvjVsf7wxdk,21862
20
+ litearm_python-1.2.4.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
21
+ litearm_python-1.2.4.dist-info/entry_points.txt,sha256=yFrsF49DqQ-8bHbrksyDuSxQOEER7i-9sWixm07AFDE,52
22
+ litearm_python-1.2.4.dist-info/top_level.txt,sha256=gqkLqmKbrqDYltZitHGepKU9jIMwLPTijtJpTcoWJ1Y,8
23
+ litearm_python-1.2.4.dist-info/RECORD,,