{"id":20687747,"url":"https://github.com/klauer/ddrive","last_synced_at":"2026-04-17T20:32:36.911Z","repository":{"id":15599869,"uuid":"18335989","full_name":"klauer/ddrive","owner":"klauer","description":"PiezoJena d-Drive (EPICS driver/device support)","archived":false,"fork":false,"pushed_at":"2015-10-13T19:47:57.000Z","size":160,"stargazers_count":0,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-10T23:58:33.931Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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:16:08.000Z","updated_at":"2015-06-17T16:59:20.000Z","dependencies_parsed_at":"2022-09-06T23:21:34.840Z","dependency_job_id":null,"html_url":"https://github.com/klauer/ddrive","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/klauer/ddrive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fddrive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fddrive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fddrive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fddrive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klauer","download_url":"https://codeload.github.com/klauer/ddrive/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klauer%2Fddrive/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31945052,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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:58:09.015Z","updated_at":"2026-04-17T20:32:36.894Z","avatar_url":"https://github.com/klauer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"ddrive EPICS Driver\n=================\n\nMotor record driver (\"model-3\" type) for the PiezoJena d-drive piezo controller.\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-26 http://www.aps.anl.gov/epics/modules/soft/asyn/\n3. motor record 6-9 http://www.aps.anl.gov/bcda/synApps/motor/\n\nOptional\n--------\n\n1. EDM http://ics-web.sns.ornl.gov/edm/log/getLatest.php\n   Screens are provided in $TOP/opi for EDM.\n2. Autosave http://www.aps.anl.gov/bcda/synApps/autosave/autosave.html\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/iocddrive/st.cmd\n    1. Change the shebang on the top of the script if your architecture is different than linux-x86_64:\n        #!../../bin/linux-x86_64/ddrive\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 line sets the prefix to all of your ddrive PVs (with $(P)$(R)):\n        ```\n        epicsEnvSet(\"P\", \"$(P=MLL:)\")\n        epicsEnvSet(\"R\", \"$(R=DDRIVE:)\")\n        ```\n       Set the second quoted strings appropriately.\n    3. The following line sets the IP address of the serial device server communicating with the ddrive:\n        ```\n        epicsEnvSet(\"DDRIVE_NET_IP\", \"$(DDRIVE_NET_IP=10.0.0.11)\")\n        epicsEnvSet(\"DDRIVE_NET_PORT\", \"$(DDRIVE_NET_PORT=4016)\")\n        ```\n       Change the 10.0.0.11 to the IP address, and 4016 to the correct port number.\n    4. Alternatively, if you have the device directly connected to a serial port on the machine,\n       uncomment and modify the drvAsynSerialPortConfigure/asynSetOption lines. Comment out drvAsynIPPortConfigure.\n    5. If necessary, you can change the rate at which the controller is polled for positions and such:\n        ```\n        #ddriveCreateController(portName, ddrivePortName, numAxes, movingPollPeriod, idlePollPeriod)\n        ddriveCreateController(\"DDRIVE0\", \"$(ASYN_PORT)\", 3, 50, 100)\n        ```\n        The moving and idle poll periods are both in milliseconds. The former rate is used when an axis is in motion, the latter otherwise.\n    6. If using autosave, uncomment create_monitor_set lines. Add lines in auto_positions.req and auto_settings.req for each motor.\n4.  Edit ddriveTestApp/Db/motors.sub\n    If multiple d-drives are used, duplicate each section and change the $(PORT) macros, descriptions, and so on.\n    An asyn record per controller is created as well, allowing for direct communication.\n5. Go to the top directory and `make`\n6. If all goes well:\n    ```\n    cd iocBoot/iocddrive\n    chmod +x st.cmd\n    ./st.cmd\n    ```\n\n7. Run EDM:\n    ```\n    export EDMDATAFILES=$TOP/op/edl:$EDMDATAFILES\n    (general motor settings configuration)\n    edm -x -m \"P=MLL:ddrive{Ax:1},M=Mtr\" motorx_all \u0026\n\n    (d-drive specific settings)\n    edm -x -m \"P=MLL:ddrive,R={Ax:1}\" ddrive_all \u0026\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklauer%2Fddrive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklauer%2Fddrive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklauer%2Fddrive/lists"}