qm1571-multimeter.py
====================
Decode and write to stdout the output of the Fortune Semiconductor FS9721
chip and the pin compatible Semico CS7721CN chip. These chips form the
heart of multimeters, some of which send the contents of their display
as a binary stream over transmitted via wireless, USB or RS232.
Dependencies
------------
- Either Python 2 or Python 3.
- https://pypi.python.org/pypi/pyserial
or Debian package python-serial.
- Tested on Linux only with a DigiTech 1571 only.
Building, Installing and Running
--------------------------------
There is no building required, and the only installation consists of
download a copy of qm1571-multimeter.py to the current directory and
making it executable.
It accepts one optional argument on this command line: the name of
the tty device the multimeter is connected to. It defaults to
/dev/ttyUSB0.
./qm1571-multimeter.py # Display the data from /dev/ttyUSB0
./qm1571-multimeter.py /dev/ttyS1 # Display the data from /dev/ttyS1
The multimeter sends the entire contents of the LCD display in
every refresh. qm1571-multimeter.py prints the symbols
displayed on the LCD on one line for each refresh sent, eg:
+000.1 mV DC, AUTO
-000.3 mV DC,
-000.4 mV DC, REL
+0.L M ohm, AUTO
Stop qm1571-multimeter.py by killing it (eg, by pressing ^C).
If qm1571-multimeter.py gets data it does not understand it prints
a line like the one below. The hex is the data it could not
decode. Lines like the one below aren't much of a problem
but their presence implies sometimes bad data will be slipping
through unnoticed and so qm1571-multimeter.py will be displaying
incorrect values. This happens because the link layer error
detection is very poor.
? 16.1d.f1.aa.fc.17.2f.3d.00.5d.67.7d.88.95.a0.b8.c0.d4.e8
License
-------
Copyright (c) 2017,2021 Russell Stuart.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
The copyright holders grant you an additional permission under Section 7
of the GNU Affero General Public License, version 3, exempting you from
the requirement in Section 6 of the GNU General Public License, version 3,
to accompany Corresponding Source with Installation Information for the
Program or any work based on the Program. You are still required to
comply with all other Section 6 requirements to provide Corresponding
Source.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
--
Russell Stuart
2017-Oct-10