- Notifications
You must be signed in to change notification settings - Fork10
Read weight from an USB scale (from Stamps.com or DYMO) in Linux
License
sanmai/usb-scale-reader
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This library lets you read weight from a standard USB scale using pure PHP.
Could be ported to other languages with ease, should they haveunpack()
Tested with:
- Stamps.com Stainless Steel 5 lb. Digital Scale
- DYMO M25 25 lb Digital Postal Scale
Seeread_stupid.php orusbscale.c if you want to understand how it works at a glance.
composer require sanmai/usb-scale-reader
And then:
$reader = \USBScaleReader\Reader::fromDevice('/dev/scale');$weightInGrams =$reader->getWeight();var_dump($reader,$weightInGrams);
Sample output:
class USBScaleReader\Reader#2 (5) { public $report => int(3) public $status => int(4) public $unit => int(2) public $exponent => int(0) public $weight => int(144)}int(144)
Add to/etc/udev/rules.d/80-persistent-scale.rules
:
KERNEL=="hidraw*", ATTRS{manufacturer}=="Maker Name", SYMLINK+="scale"KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"
Maker name is eitherStamps.com
orDYMO
.
And then reconnect your scale.
For other makers see:
udevadm info -a -p $(udevadm info -q path -n /dev/hidrawN)
These rules imply that you should be inplugdev
for the scripts to work.
There is alsoa simple reading program written in C.
To build it and run tests against PHP implementation:
cd examplemake test
Usage is as simple as it can be:
./usbscale /dev/hidraw3
Outputs something like
70.87 g
About
Read weight from an USB scale (from Stamps.com or DYMO) in Linux