Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bcrist/caliplier
Digital Caliper USB interface
https://github.com/bcrist/caliplier
Last synced: 21 days ago
JSON representation
Digital Caliper USB interface
- Host: GitHub
- URL: https://github.com/bcrist/caliplier
- Owner: bcrist
- License: mit
- Created: 2024-10-17T02:54:40.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T03:01:11.000Z (2 months ago)
- Last Synced: 2024-10-19T05:21:12.200Z (2 months ago)
- Language: Zig
- Size: 422 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# Digital Caliper USB interface & LED Display
This project interfaces with the serial data output port found on cheap digital calipers. It does several things:
* Provides power to the calipers
* Provides a second readout which isn't physically constrained by the measurement location/orientation
* Emulates a USB HID keyboard and "types" the current measurement at the press of a button
* Emulates a USB CDC-ACM serial port for logging/debugThere are many different variations on the serial format output by different calipers. Some use 24-bit integers, some use BCD. Some always output in inches, some always in mm, and some in whatever format the internal display is currently using. Some include error detection data, others don't. Currently there is only one protocol supported:
* Data signal is stable whenever Clock signal is high
* 24-bit packet, transferred over 8.1ms (+/- 0.1ms)
* First bit is always 1
* Next 20 bits are the unsigned magnitude (little-endian)
* Next bit is 1 if negative
* Last two bits are unused
* There is no indication whether it is in mm or inches mode. In mm mode, 1 ULP is 0.01mm, and in inches mode, 1 ULP is 0.0005".
* The bus is idle for at least 5ms between packets![PXL_20241017_001500729](https://github.com/user-attachments/assets/ef0a3db9-4297-4528-91de-4439dca1619d)