loobric-masso
Loobric client for MASSO G3 CNC controllers. MASSO has no network door for
tool data — the controller saves its settings (including the .htg tool table)
to a USB stick and loads them back from it. This client reads and writes that
file on the mounted stick:
push— harvest the controller's tool table into Loobric: every in-use tool becomes an unbound tool-table entry with its probed Z offset and diameter as observed values (observed:masso@<machine>). The offsets your probing produced stop dying on the USB stick.write— update the tool table from Loobric: names, diameters, and slots follow the server; the controller's probed Z offsets are preserved unless a bound tool carries a server-side Z. A different tool appearing at an occupied number keeps the old offset and warns RE-PROBE. Machine Settings are zipped toMASSO/loobric-backups/before every write, and untouched records round-trip byte-exact — including the controller's own CRC variants and the reserved records (T0, T101–T104).sync— push, then write.
Single file, standard library only, Python 3.6+. Server errors never block anything (cron-safe exit 0); configuration errors exit 2.
Quick start
pip install loobric-masso # or just copy loobric_masso.py
loobric-masso init # writes ~/.config/loobric/masso.conf — edit it
loobric-masso doctor # checks config, USB stick, and server
loobric-masso sync
On the controller: F1 Setup > Save & Load Calibration Settings — Save to
file before syncing, Load from file + reboot after a write.
The .htg format
Reverse-engineered on the MASSO community forum (thread 4563) and validated by three independent decoders that agree byte-for-byte. 6720 bytes = 105 records × 64 bytes; record 0 is the controller's reserved dry-run entry, T101–T104 are multi-spindle heads (100 usable tools).
| Offset | Type | Field |
|---|---|---|
| 0–39 | ASCII | Tool name (UI caps at 29 chars) |
| 40 | float32 LE | Z offset |
| 44 | float32 LE | Z wear |
| 48 | float32 LE | Diameter wear |
| 52 | float32 LE | Diameter |
| 56 | byte | Tool direction |
| 57 | int8 | Slot (−1 = manual/unassigned) |
| 60 | uint32 LE | CRC32 of bytes 0–59 |
The controller sometimes writes its own CRC variant; this client preserves the stored bytes of every record it does not modify, so those survive verbatim.
License
MIT.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file loobric_masso-0.1.0.tar.gz.
File metadata
- Download URL: loobric_masso-0.1.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac4fa2923826b5aa9ef42ae226b576ef9f5d0ba8f36e215f3e72436af3fd521c
|
|
| MD5 |
9a86e381712c35296a36583bd4f289e7
|
|
| BLAKE2b-256 |
d8d9096dec8b319bd9c3dcfcd47332b9ec3193a2a1a037019a9e61d1fff01997
|
Provenance
The following attestation bundles were made for loobric_masso-0.1.0.tar.gz:
Publisher:
publish.yml on loobric/loobric-clients
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
loobric_masso-0.1.0.tar.gz -
Subject digest:
ac4fa2923826b5aa9ef42ae226b576ef9f5d0ba8f36e215f3e72436af3fd521c - Sigstore transparency entry: 2499477977
- Sigstore integration time:
-
Permalink:
loobric/loobric-clients@19865b9dd956c18f6e64b0e8b51a0c9b3d996d52 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/loobric
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@19865b9dd956c18f6e64b0e8b51a0c9b3d996d52 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file loobric_masso-0.1.0-py3-none-any.whl.
File metadata
- Download URL: loobric_masso-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eceb86afff80cebd168cbdb33935238c64193fef2c1d0edf10000022f61d7210
|
|
| MD5 |
700a2e3bdd0363a54c0622f5de0a3ced
|
|
| BLAKE2b-256 |
a7ba45a819562a338c23d0c5a2282eef25e39bd4b6cbc410b32389632b1347a8
|
Provenance
The following attestation bundles were made for loobric_masso-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on loobric/loobric-clients
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
loobric_masso-0.1.0-py3-none-any.whl -
Subject digest:
eceb86afff80cebd168cbdb33935238c64193fef2c1d0edf10000022f61d7210 - Sigstore transparency entry: 2499478000
- Sigstore integration time:
-
Permalink:
loobric/loobric-clients@19865b9dd956c18f6e64b0e8b51a0c9b3d996d52 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/loobric
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@19865b9dd956c18f6e64b0e8b51a0c9b3d996d52 -
Trigger Event:
workflow_dispatch
-
Statement type: