{"id":19078881,"url":"https://github.com/m-labs/ionpak","last_synced_at":"2025-04-30T05:23:33.659Z","repository":{"id":66972784,"uuid":"90126042","full_name":"m-labs/ionpak","owner":"m-labs","description":"A modern, low-cost universal controller for hot-cathode ionization vacuum gauges. (WIP)","archived":false,"fork":false,"pushed_at":"2019-02-06T18:54:25.000Z","size":9912,"stargazers_count":20,"open_issues_count":6,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-20T16:45:01.152Z","etag":null,"topics":["physics","vacuum"],"latest_commit_sha":null,"homepage":"https://m-labs.hk","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-03T08:27:29.000Z","updated_at":"2025-01-30T20:48:08.000Z","dependencies_parsed_at":"2023-03-05T21:45:51.952Z","dependency_job_id":null,"html_url":"https://github.com/m-labs/ionpak","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-labs%2Fionpak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-labs%2Fionpak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-labs%2Fionpak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-labs%2Fionpak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-labs","download_url":"https://codeload.github.com/m-labs/ionpak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251646267,"owners_count":21620902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["physics","vacuum"],"created_at":"2024-11-09T02:12:27.369Z","updated_at":"2025-04-30T05:23:33.653Z","avatar_url":"https://github.com/m-labs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"ionpak\n======\n\nA modern, low-cost universal controller for hot-cathode ionization vacuum gauges.\n\n![ionpak picture](https://raw.githubusercontent.com/m-labs/ionpak/master/pictures/full_ionpak_front_resized.jpg)\n\nWhy?\n----\n\nMany physics experiments require a good vacuum and therefore tools to diagnose vacuum-related problems. Ionization gauges provide a way to measure pressures in the medium to ultra-high vacuum regimes.\n\nWhile the gauges themselves can be procured quite easily, the controller situation is more problematic. Existing commercial and DIY solutions have one or more of the following issues:\n\n * expensive\n * proprietary\n * poor performance at low (pA) collector currents\n * designed with obsolete components and overly bulky\n * lack of gauge voltage/current programmability\n * no/poor connectivity to a logging database\n * poor design and construction\n\nThe ionpak features:\n\n * a single-board low-cost design with modern components\n * open hardware and software\n * sub-pA electrometer performance\n * configurable voltages and emission current to adapt to various gauges\n * Ethernet connectivity\n\nWhere to find ionization vacuum gauges?\n---------------------------------------\n\nFor medium and high vacuum, Chinese gauges can be ordered on Taobao under references ZJ-27 and ZJ-10. The Chinese for ionization gauge is 电离规. Those gauges have a simple construction and an extremely low cost, under USD 10 for glass tubulated models (requires flameworking) and a few times that price for flange-mounted ones. Those manufactured by [Chengdu Zhenghua](http://www.zhvacuum.com) appear to work satisfactorily, and glass gauges arrive sealed under vacuum (around 10⁻⁵ to 10⁻⁶ mbar) so they can be tested immediately. Ceramic sockets for the gauges can often be ordered from the same Taobao vendor.\n\nFor ultra-high vacuum, you can use G8130 from KJLC, which is pricy but of excellent quality. There is a lower-cost Bayard-Alpert Chinese gauge ZJ-12, of dubious quality for those pressure ranges, and with 2.5x less sensitivity than the KJLC part.\n\nA low-cost source of quality UHV gauges remains to be found. You can try eBay, but the condition of the items is highly random.\n\nHow to connect the gauge?\n-------------------------\n\nThe collector must be connected with a shielded (e.g. coaxial) cable. If the gauge has a metallic body (e.g. gauges mounted on CF flanges), connect the shield of the cable to the body, so that current from the high voltage electrodes will not leak into the collector electrode. This should not cause any ground loop in your system, as the gauge circuits inside the ionpak are galvanically isolated from its power input and from its Ethernet connector.\n\nIf a single cable is used for the filament and anode connections, the anode wire must be particularly well insulated from the filament wires, to avoid leakage currents that can be significant when the gauge is operated with a low emission (100µA or less) and influence the measurement result.\n\n\"Domino\" terminal blocks from the local hardware store, with the plastic removed, can be used to connect the cables to the pins of CF-flanged gauges. Female circular contacts, such as Amphenol AT62-16-0122, are a nicer alternative but are slightly harder to find.\n\nFor baked systems, use PTFE insulated cables that can withstand 200°C. Operating the gauge during bake-out can remove the need to degas it (see the paper [Comments on the stability of B-A ionization gages](https://www.nist.gov/sites/default/files/documents/calibrations/jv13-2.pdf)).\n\nIt is a good idea to attach the cables to the vacuum system with a strap to avoid damaging the gauge by accidentally pulling on the cables, and to place a cover onto the pins to reduce the electrical shock hazard from the high voltage. Preferably those items should be made of metal so that they can be left on during bakeout.\n\nUsing the ionpak\n----------------\nConnect the ionpak to a firewalled Ethernet network *only*, as it does not provide authentication over the network.\n\nThe ionpak has a static IP address that defaults to `192.168.69.1`. It has a self-explanatory web interface that you can access by pointing your browser to [http://192.168.69.1](http://192.168.69.1). By default, the controller is disabled and the ionpak will not produce any output voltages; use the web interface to input your gauge settings and enable the controller.\n\nThe IP address, along with all the other configuration options, can be reset to the defaults by holding the pushbutton while the ionpak is powering up. The status LED will flash rapidly to acknowledge the configuration reset.\n\nIn addition to displaying its measurement results in the web interface, the ionpak exports them in the JSON format. The results are very straightforward to access from Python:\n\n```\n\u003e\u003e\u003e import requests\n\u003e\u003e\u003e import json\n\u003e\u003e\u003e json.loads(requests.get(\"http://192.168.69.1/measure.json\").text)\n{'pressure': 3.8e-06, 'current': 3.357e-08}\n```\n\nIn the JSON document, `pressure` is expressed in millibars and `current` (through the collector input) is expressed in amperes.\n\nWarning\n-------\n\nIonization gauges use dangerous voltages and the ionpak is capable of delivering a lethal amount of power. Be careful and use at your own risk.\n\n\nBuilding and loading the firmware\n---------------------------------\n\n```sh\ncd firmware\ncargo build --release\nopenocd -f openocd.cfg\n```\n\nLicense\n-------\n\nCopyright 2017 M-Labs Limited.\n\nLicense TBD, probably will be CERN OHL and GPL.\n\nPictures in the ``pictures`` folder, except ``proto_rev1.jpg``, are copyright Michelle Poon and not free.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-labs%2Fionpak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-labs%2Fionpak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-labs%2Fionpak/lists"}