{"id":39130838,"url":"https://github.com/labstreaminglayer/app-vernier","last_synced_at":"2026-01-17T21:17:04.171Z","repository":{"id":62587322,"uuid":"184559459","full_name":"labstreaminglayer/app-vernier","owner":"labstreaminglayer","description":"Read from Vernier devices, stream as LSL","archived":false,"fork":false,"pushed_at":"2021-11-22T09:36:30.000Z","size":18,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-11-28T12:48:17.505Z","etag":null,"topics":["go-direct","labstreaminglayer","lsl","vernier","vernier-sensors"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/labstreaminglayer.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-02T10:09:43.000Z","updated_at":"2025-11-12T14:33:37.000Z","dependencies_parsed_at":"2022-11-04T08:00:43.751Z","dependency_job_id":null,"html_url":"https://github.com/labstreaminglayer/app-vernier","commit_stats":null,"previous_names":["translationalneurosurgery/app-vernier"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/labstreaminglayer/app-vernier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labstreaminglayer%2Fapp-vernier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labstreaminglayer%2Fapp-vernier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labstreaminglayer%2Fapp-vernier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labstreaminglayer%2Fapp-vernier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/labstreaminglayer","download_url":"https://codeload.github.com/labstreaminglayer/app-vernier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labstreaminglayer%2Fapp-vernier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28518617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["go-direct","labstreaminglayer","lsl","vernier","vernier-sensors"],"created_at":"2026-01-17T21:17:02.417Z","updated_at":"2026-01-17T21:17:04.154Z","avatar_url":"https://github.com/labstreaminglayer.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Verniersl\n\nThis is a command-line-interface to collect data from a Godirect device and stream it via labstreaming layer.\n\nThe app is written in python 3.\n\n# Installation\n\n\n```\npip install vernier-lsl\n```\n\nYou can install the development version with\n```\ngit clone https://github.com/labstreaminglayer/app-vernier\ncd app-vernier\npip install -e .\npip install -r requirements.txt\n```\nThe app wraps ```pylsl``` and ```godirect``` from Vernier (https://github.com/VernierST/godirect-py). The latter wraps hidapi for USB and vernierpygatt for BLE. On linux, compilation of the wheels for hidapi required libusb and libudev.\n\n## Usage\n\n```\nusage: vernier-lsl [-h] [--scan] [--enable ENABLE]\n                 [--serial_number SERIAL_NUMBER] [--order_code ORDER_CODE]\n                 [--number NUMBER] [--mode MODE]\n\nStream Vernier Go-Direct with LSL\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --scan                report the available devices\n  --enable ENABLE       which channels do enable: List\n  --serial_number SERIAL_NUMBER\n                        The serial number (eg. OK2001B3) of the desired\n                        device. Streams are then limited to a single device\n  --order_code ORDER_CODE\n                        The order code (eg. GDX-ACC for an accelerometer) of\n                        the desired device. Can find and stream more than one\n                        device\n  --number NUMBER       How many devices are expected, aborts otherwise.\n                        Helpful as sometimes, one connection might be lost,\n                        and we would start streaming then anyways. Defaults to\n                        1\n  --mode MODE           Whether the devices are to be searched and connected\n                        over \"usb\", \"ble\" or \"any\". Defaults to \"usb\"\n```\n\n### Example\n\nThe terminology of Go Direct device can be confusing, as the device itself can be called a sensor, while each device has a set of individual sensors which can be turned on or off. Some of them are turned on by default. Check which devices are available, and show their available sensors, and which of there are enabled by default:\n\n```\nvernier-lsl --scan\n```\n\nFind a Go Direct (C) Acceleration Sensor, enable the default sensors and stream it\n\n```\nvernier-lsl --order_code GDX-ACC\n```\n\nFind a specific Go Direct (C) Acceleration Sensor, enable the x,y, andz axis acceleration sensors and stream it\n\n```\nvernier-lsl --enable \"[X-axis acceleration, Y-axis acceleration, Z-axis acceleration]\" --order_code GDX-ACC --serial_number 0H101754\n```\n\nFind exactly two Hand Dynamometers, enable force sensors and stream them.\n\n```\nvernier-lsl --enable Force --order_code GDX-HD --number 2\n```\n\n# Supported devices\n\nThe toolbox was developed and tested on the USB interface for the GDX-HD Hand Dynamometer, the GDX-ACC accelerometer, and the GDX-RB Respiration Belt. Vernier has a large variety of sensor devices (https://www.vernier.com/products/sensors/go-direct-sensors/). Some have quirks, e.g. for the GDX-ACC the sensors channel indices were set up wrong. So, pop a note if another device works (or doesn't)!\n\n# Bluetooth\nI have also implemented BLE support, but this requires a Bluegiga BLED112 Bluetooth® Low Energy Dongle, see also: https://github.com/VernierST/godirect-py/issues/5 Please note that in the meantime, starting with godirect-py v1.0.5, godirect has implememted the bleak backend. I have not tested this.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabstreaminglayer%2Fapp-vernier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabstreaminglayer%2Fapp-vernier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabstreaminglayer%2Fapp-vernier/lists"}