Skip to main content

Seiko Converter is a software allowing to generate graphs based on the raw data produced by the Seiko Qt-2100 Timegrapher device.

Project description

GitHub release (latest SemVer) version on pypi version on pypi

python docstring coverage

license Donate

Seiko Qt-2100 converter

Seiko converter is a software allowing to generate graphs based on the raw data produced by the Seiko Qt-2100 Timegrapher device.

Background

By using an interface like the Libre Printer one, which can replace a parallel or serial printer, you can obtain data as sent by older devices whose printers have unfortunately broken down.

Sometimes old devices cannot be replaced for cost reasons or simply because there is no justification to do so. However, they often work in pairs with printers that are no longer manufactured and are often the weak point of the installation because they are prone to breakdowns and the abandonment of the manufacture of their consumables.

Purpose

The printer linked to the Seiko Qt-2100 chronograph is one of those rare instruments whose specifications have either never been published or have long been lost.

The specific aim of this project is to process the print data from this device, making it readable, usable and printable again according to current modern standards.

Note:

Neither the owners of this device, contacted on “enthusiasts” forums, nor Seiko, wish to share the documentation for this device, which after more than 30 years still seems to be an industrial secret, or intended only for a restricted circle of insiders. As a result, many assumptions are being made about the precise operating or simply about the units used in the graphs. We welcome any contributions you can make to fill these gaps!

Features

In order from left to right, Print Mode A 10S graphs in 3 eras: the 70's, actual concurrent project, this project

QT-2100 modes

This program automatically supports print modes A and B on the QT-2100. Have a look at the page in the original manual that introduces them : image.

The mode C is covered by the CSV output (also available on all the other modes).

Error corrections

As shown in the image above, dots resulting from measurement error on the device's side are corrected using the most neutral value possible (the average of the tick or tock values) and clearly displayed on the figure (red dot).

Here is another example in B1S mode:

$ python -m seiko_converter -i test_data/seiko_qt2100_B1S_1.raw -g

Horizontal or vertical layout

Horizontal layout is closer to the rendering of modern timegraphers, but the readability of an ever-expanding downward graph can be easier.

$ python -m seiko_converter -i test_data/seiko_qt2100_A10S.raw -g --horizontal

Optional cutoff

Data can be added indefinitely to such a graph. Controlling value overflow for long data series is important. A cutoff value can be chosen automatically on the basis of the data or specified by the user.

Here are the effects of automatic cutoff vs 10 seconds cuttoff:

$ python -m seiko_converter -i test_data/seiko_qt2100_A10S.raw -g --vertical -c
$ python -m seiko_converter -i test_data/seiko_qt2100_A10S.raw -g --vertical -c 10

CSV Export

For further analysis.

Usage

$ python -m seiko_converter -h
usage: __main__.py [-h] -i INPUT_FILE [-o [OUTPUT_FILENAME]] [--csv] [-g] [--horizontal] [--vertical] [-c [CUTOFF]] [-d] [--version] [-v]

options:
  -h, --help            show this help message and exit
  -i INPUT_FILE, --input_file INPUT_FILE
                        Raw file from device. (default: None)
  -o [OUTPUT_FILENAME], --output_filename [OUTPUT_FILENAME]
                        Generated file name. (default: None)
  --csv                 Extract the parsed values into a CSV file. (default: False)
  -g, --graph           Extract the parsed values into a timegrapher style file. (default: False)
  -d, --debug           Show the matplotlib windows. (default: False)
  --version             show program's version number and exit
  -v, --verbose

Graph options:
  --horizontal          Make a horizontal graph that expand downwards; default is vertical.
  --vertical            Make a vertical graph that expand downwards (default).
  -c [CUTOFF], --cutoff [CUTOFF]
                        Only for Mode A graphs. Allow wrapped display to limit infinite graph expansion on the right
                        direction (x-axis). If set on vertical graph: rate values will be cut; if set on horizontal graph:
                        days will be cut. Set it to True for auto-cut (2 days in horizontal mode), False for disabling the
                        feature, or with a custom value adapted to the chosen mode (limit value or time limit in days).
                        (default: True)

Test data description

  • seiko_qt2100_A10S.raw:

    109 measures in A10S mode; strict alternance between negative and positive values (ticks and tocks)

  • seiko_qt2100_B1S_1.raw:

    14 measures in B1S mode; only negative values; 4 values + 6 errors + 1 outlier + 3 value

  • seiko_qt2100_B1S_2.raw:

    19 measures in B1S mode; 4 values + 1 error + 5 values + 3 errors + 1 value + 1 error + 4 values

License; Free and Open Source

Seiko converter is released under the AGPL (Affero General Public License).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seiko_converter-1.0.0.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seiko_converter-1.0.0-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file seiko_converter-1.0.0.tar.gz.

File metadata

  • Download URL: seiko_converter-1.0.0.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.9

File hashes

Hashes for seiko_converter-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2ade43ebdfd5876026251e171c499fb3d9505d53aedf58c0c0336962dee6f828
MD5 5d26dbf91513801e588c494c11f63204
BLAKE2b-256 b24dbb9efd93ae1639516ac43e822b32a947f201ea629eecc5ac55e4a84a7c7b

See more details on using hashes here.

File details

Details for the file seiko_converter-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for seiko_converter-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6948bb92ac4419304a6dd6d84ba2a1b0e69aa6733223f7ef59d82350bb49ebab
MD5 3016ffe6701b33eadaeca31a88d3b171
BLAKE2b-256 5349aab936a8ddcb44ac5ded002c205d1fc552a311730e807d11048a1169a814

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page