# Magnetometer
This is a [magnetometer](https://en.wikipedia.org/wiki/Magnetometer) command-line tool that reads from physical magnetic sensors via
[Belay](https://github.com/BrianPugh/belay).
<p align="center">
<img width="600" src="https://user-images.githubusercontent.com/14318576/187823929-9b6985e7-4124-49b1-9e13-6268ee155d92.gif">
</p>
# Installation
Install Magnetometer through pip:
```
pip install magnetometer
```
# Usage
To start the program, invoke `magnetometer` along with the port your
CircuitPython board is connected to.
```
magnetometer DEVICE_PORT --sensor SENSOR_TYPE
```
You can use the debugging sensor `sin` without any physical hardware interactions.
CircuitPython must be installed on-device and [must be configured with rw storage](https://belay.readthedocs.io/en/latest/CircuitPython.html).
Magnetometer will automatically upload all necessary code to device.
Run `magnetometer --help` to see more options.
<p align="center">
<img width="600" src="https://user-images.githubusercontent.com/14318576/187825892-6e9594ec-9598-4aaa-9b00-fec3f82ae278.jpeg">
</p>
### Supported Sensors
* [LIS3MDL](https://www.adafruit.com/product/4479) - Up to ±1,600μT
* [MMC5603](https://www.adafruit.com/product/5579) - Up to ±3,000μT
* [LIS2MDL](https://www.adafruit.com/product/4488) - Up to ±5,000μT
* [TLV493D](https://www.adafruit.com/product/4366) - Up to ±130,000μT
Want to support another sensor? Open an issue (or even a PR) on Github and we
can try to add it!
# Acknowledgements
This tool uses many awesome libraries that keep the implementation terse and the outputs beautiful:
* [Belay](https://github.com/BrianPugh/belay) - Seameless python/hardware interactions. Used for all hardware interactions.
* [AutoRegistry](https://github.com/BrianPugh/autoregistry) - Automatic registry design-pattern library for mapping names to functionality. Used to manage sensor hardware abstraction layer.
* [Textual](https://github.com/Textualize/textual) - Text User Interface framework for Python inspired by modern web development. Used for dynamic user input.
* [Rich](https://github.com/Textualize/rich) - Python library for rich text and beautiful formatting in the terminal. Used for general UI text rendering.
* [AsciiChartPy](https://github.com/kroitor/asciichart) - Nice-looking lightweight console ASCII line charts. Used for chart plotting. Modified to be `rich`-compatible.
* [CircuitPython Bundle](https://github.com/adafruit/Adafruit_CircuitPython_Bundle) - A bundle of useful CircuitPython libraries ready to use from the filesystem.
Raw data
{
"_id": null,
"home_page": "https://github.com/BrianPugh/magnetometer",
"name": "magnetometer",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Brian Pugh",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/48/df/2270bef5dac5c7db06f638bb483e3fe982a35124483f5efaed1a394b5d1c/magnetometer-0.2.1.tar.gz",
"platform": null,
"description": "# Magnetometer\n\nThis is a [magnetometer](https://en.wikipedia.org/wiki/Magnetometer) command-line tool that reads from physical magnetic sensors via\n[Belay](https://github.com/BrianPugh/belay).\n\n<p align=\"center\">\n <img width=\"600\" src=\"https://user-images.githubusercontent.com/14318576/187823929-9b6985e7-4124-49b1-9e13-6268ee155d92.gif\">\n</p>\n\n# Installation\nInstall Magnetometer through pip:\n\n```\npip install magnetometer\n```\n\n# Usage\n\nTo start the program, invoke `magnetometer` along with the port your\nCircuitPython board is connected to.\n\n```\nmagnetometer DEVICE_PORT --sensor SENSOR_TYPE\n```\n\nYou can use the debugging sensor `sin` without any physical hardware interactions.\nCircuitPython must be installed on-device and [must be configured with rw storage](https://belay.readthedocs.io/en/latest/CircuitPython.html).\nMagnetometer will automatically upload all necessary code to device.\nRun `magnetometer --help` to see more options.\n\n<p align=\"center\">\n <img width=\"600\" src=\"https://user-images.githubusercontent.com/14318576/187825892-6e9594ec-9598-4aaa-9b00-fec3f82ae278.jpeg\">\n</p>\n\n### Supported Sensors\n\n* [LIS3MDL](https://www.adafruit.com/product/4479) - Up to \u00b11,600\u03bcT\n* [MMC5603](https://www.adafruit.com/product/5579) - Up to \u00b13,000\u03bcT\n* [LIS2MDL](https://www.adafruit.com/product/4488) - Up to \u00b15,000\u03bcT\n* [TLV493D](https://www.adafruit.com/product/4366) - Up to \u00b1130,000\u03bcT\n\nWant to support another sensor? Open an issue (or even a PR) on Github and we\ncan try to add it!\n\n# Acknowledgements\nThis tool uses many awesome libraries that keep the implementation terse and the outputs beautiful:\n* [Belay](https://github.com/BrianPugh/belay) - Seameless python/hardware interactions. Used for all hardware interactions.\n* [AutoRegistry](https://github.com/BrianPugh/autoregistry) - Automatic registry design-pattern library for mapping names to functionality. Used to manage sensor hardware abstraction layer.\n* [Textual](https://github.com/Textualize/textual) - Text User Interface framework for Python inspired by modern web development. Used for dynamic user input.\n* [Rich](https://github.com/Textualize/rich) - Python library for rich text and beautiful formatting in the terminal. Used for general UI text rendering.\n* [AsciiChartPy](https://github.com/kroitor/asciichart) - Nice-looking lightweight console ASCII line charts. Used for chart plotting. Modified to be `rich`-compatible.\n* [CircuitPython Bundle](https://github.com/adafruit/Adafruit_CircuitPython_Bundle) - A bundle of useful CircuitPython libraries ready to use from the filesystem.\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "",
"version": "0.2.1",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b6d9ab28f48f8c0a8ab44279d114f9df5b942acfaf84c8dd0025b8a1d1c39306",
"md5": "5436aaa1ac986c23d145982f68888988",
"sha256": "503275e811f6d6a2d2b5cd3558a923f897c3711fd2769e2ebba509ff29fe244e"
},
"downloads": -1,
"filename": "magnetometer-0.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5436aaa1ac986c23d145982f68888988",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 40016,
"upload_time": "2023-02-11T00:23:07",
"upload_time_iso_8601": "2023-02-11T00:23:07.995050Z",
"url": "https://files.pythonhosted.org/packages/b6/d9/ab28f48f8c0a8ab44279d114f9df5b942acfaf84c8dd0025b8a1d1c39306/magnetometer-0.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "48df2270bef5dac5c7db06f638bb483e3fe982a35124483f5efaed1a394b5d1c",
"md5": "1a13e7b1718e380c5e8f1224f88fedbb",
"sha256": "aa133d5bfaed6cc94f940164158e8dc74c91a6734ab6cc53d2ce5414996b67f0"
},
"downloads": -1,
"filename": "magnetometer-0.2.1.tar.gz",
"has_sig": false,
"md5_digest": "1a13e7b1718e380c5e8f1224f88fedbb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 28078,
"upload_time": "2023-02-11T00:23:10",
"upload_time_iso_8601": "2023-02-11T00:23:10.507465Z",
"url": "https://files.pythonhosted.org/packages/48/df/2270bef5dac5c7db06f638bb483e3fe982a35124483f5efaed1a394b5d1c/magnetometer-0.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-02-11 00:23:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "BrianPugh",
"github_project": "magnetometer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "magnetometer"
}