{"id":20687668,"url":"https://github.com/klauer/pmd90","last_synced_at":"2026-04-24T14:01:52.643Z","repository":{"id":15599990,"uuid":"18336113","full_name":"klauer/pmd90","owner":"klauer","description":"PiezoMotor PMD90 - 1 axis piezo controller (EPICS device support)","archived":false,"fork":false,"pushed_at":"2014-10-22T18:26:32.000Z","size":172,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-10T23:58:20.803Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","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/klauer.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}},"created_at":"2014-04-01T16:19:46.000Z","updated_at":"2019-06-10T20:26:35.000Z","dependencies_parsed_at":"2022-09-06T23:21:35.371Z","dependency_job_id":null,"html_url":"https://github.com/klauer/pmd90","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/klauer/pmd90","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fpmd90","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fpmd90/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fpmd90/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fpmd90/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klauer","download_url":"https://codeload.github.com/klauer/pmd90/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fpmd90/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32226408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"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":[],"created_at":"2024-11-16T22:57:56.507Z","updated_at":"2026-04-24T14:01:52.626Z","avatar_url":"https://github.com/klauer.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"PiezoMotor PMD90 EPICS Device Support\n=====================================\n\nEPICS StreamDevice driver for PiezoMotor PMD90 single-axis microstepping piezo drivers.\n\nThis is a simple driver that only gives access to:\n\n1. Raw and calculated encoder positions\n2. Waveform mode settings\n3. Movement in positive/negative steps, stopping\n4. Writing to NVRAM\n5. Movement, digital input status\n\nRequirements\n------------\n\nThough it may work on other versions, the driver was tested on these:\n\n1. EPICS base 3.14.12.3 http://www.aps.anl.gov/epics/\n2. asyn 4-18 http://www.aps.anl.gov/epics/modules/soft/asyn/\n3. StreamDevice 2.5+ http://epics.web.psi.ch/software/streamdevice/\n\nOptional\n--------\n\n1. EDM http://ics-web.sns.ornl.gov/edm/log/getLatest.php\n\nInstallation\n------------\n\n1. Install EPICS\n    1. If using a Debian-based system (e.g., Ubuntu), use the packages here http://epics.nsls2.bnl.gov/debian/\n    2. If no packages are available for your distribution, build from source\n2. Edit configure/RELEASE\n    1. Point the directories listed in there to the appropriate places\n    2. If using the Debian packages, everything can be pointed to /usr/lib/epics\n3. Edit iocBoot/iocPMD90/st.cmd\n    1. Change the shebang on the top of the script if your architecture is different than linux-x86:\n        #!../../bin/linux-x86/PMD90\n        (check if the environment variable EPICS_HOST_ARCH is set, or perhaps `uname -a`, or ask someone if\n         you don't know)\n    2. The following lines set the prefix to all of the additional (i.e., non-motor record) PVs (with $(P)$(R)):\n        ```\n        epicsEnvSet \"P\" \"$(P=E1:)\"\n        epicsEnvSet \"R\" \"$(R=PMD90:)\"\n        ```\n       Set the second quoted strings appropriately.\n    3. If the devices have been modified to allow RS-232 connections via a serial device server, set the IP address of the server here:\n        ```\n        epicsEnvSet \"PMD90_IP\" \"$(PMD90_IP=10.0.0.11)\"\n        epicsEnvSet \"PMD90_PORT\" \"$(PMD90_PORT=4015)\"\n        ```\n\n       If not, comment out the drvAsynIPPortConfigure line and uncomment\n        ```\n        ## for direct connection to the machine's serial port:\n\n        # drvAsynSerialPortConfigure(\"$(ASYN_PORT)\", \"/dev/ttyUSB0\", 0, 0, 0)\n        ```\n    4. For each device, load the necessary records:\n        ```\n        dbLoadRecords(\"$(TOP)/db/devPMD90.db\",\"P=$(P),R=$(R),PORT=$(ASYN_PORT),A=0\")\n        ```\n\n4. Go to the top directory and `make`\n5. If all goes well:\n    ```\n    $ cd iocBoot/iocPMD90\n    $ chmod +x st.cmd\n    $ ./st.cmd\n    ```\n\n6. Run EDM:\n    ```\n    $ export EDMDATAFILES=$TOP/op/edl:$EDMDATAFILES\n    $ edm -x -m \"P=E1:,R=PMD90:\" PMD90\n    ```\n\nTODO\n----\n\n1. PCRE should not be required -- can edit `read_string` to use different syntax.\n2. Is this all the functionality the PMD90 has? ...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklauer%2Fpmd90","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklauer%2Fpmd90","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklauer%2Fpmd90/lists"}