{"id":20140267,"url":"https://github.com/outpost-os/robotframework-pyocd","last_synced_at":"2026-03-11T00:31:50.121Z","repository":{"id":255196296,"uuid":"848831148","full_name":"outpost-os/robotframework-pyocd","owner":"outpost-os","description":"PyOCD library for robotframework","archived":false,"fork":false,"pushed_at":"2024-08-30T10:55:04.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-19T20:58:21.029Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/outpost-os.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-28T13:39:50.000Z","updated_at":"2024-08-30T10:54:27.000Z","dependencies_parsed_at":"2024-08-28T15:03:18.945Z","dependency_job_id":"e8f82e39-192a-45e4-8517-fe45588242b5","html_url":"https://github.com/outpost-os/robotframework-pyocd","commit_stats":null,"previous_names":["outpost-os/robotframework-pyocd"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outpost-os%2Frobotframework-pyocd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outpost-os%2Frobotframework-pyocd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outpost-os%2Frobotframework-pyocd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outpost-os%2Frobotframework-pyocd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outpost-os","download_url":"https://codeload.github.com/outpost-os/robotframework-pyocd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252764921,"owners_count":21800772,"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":[],"created_at":"2024-11-13T21:49:56.645Z","updated_at":"2026-03-11T00:31:45.095Z","avatar_url":"https://github.com/outpost-os.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-FileCopyrightText: 2024 Ledger SAS\n\nSPDX-License-Identifier: Apache-2.0\n--\u003e\n\n# robotframework-pyocd python package\n\nThis package is a ligthweight module to use the pyocd python API through robotframework tests so\nthat automated flash and test testsuites can be written for continuous deployment of embedded systems,\ntypically in a test farm.\nThis package uses the PyOCD tool, meaning that the JTAG interface is used in order to flash the target device.\n\nWhen running the robotframework test suites, the device should be connected and a JTAG probe that delivers\nthe target reference (like, for example, ST-Link probes such as thoses of nucleo or disco boards).\n\nThis mean that Segger probes are not yet supported here as it requires a `target` variable to be passed\n(see PyOCD documentation).\n\n## Dependencies\n - Python \u003e= 3.10\n - PyOCD \u003e= 0.36.0\n - robotframework \u003e= 7.0.0\n\n## Usage\n\nThis library is built to be use through the `Library` directive of Robot-Framework and requires a probe uid\nso that pyOCD is able to discriminate multiple probes being connected.\n\n```robot\nLibrary         PyocdLibrary    ${PROBE_UID}\n```\n\nBy now, if the probe do not delivers a target identifier (like Segger probes), the pyOCD usage do not\nallow a clean connection to the AP.\nAs a consequence, this small library do not support probe UID passing through robot ressource files.\n\nThe following basic command are defined:\n\n\n### Probe Has Vcp\n\nReturn true if a VCP tty port has been found associated to the probe UID.\n\n```robot\nProbe Has Vcp\n```\n\n### Get Probe Vcp\n\nReturn the VCP tty name as a string, so that it can be used by other serial related robotframework\nmodules to get back the device serial Output.\n\n```robot\nGet Probe Vcp\n```\n\n### Load Firmware\n\nLoad a firmware into the connected target\n\nRequires one argument: the firmware file path (string)\n\nA typical usage is:\n\n```robot\nLoad Firmware       builddir/firmware.hex\n```\n\n### Reset\n\nReset and hat the target. Target is halted when returned\n\nA typical usage is:\n\n```robot\nReset\n```\n\n### Resume\n\nResume a stopped target\n\nA typical usage is:\n\n```robot\nResume\n```\n\n## Example\n\nA typical usage of this library is the followingr:\n\n```robot\nLibrary         SerialLibrary\nLibrary         PyocdLibrary    ${PROBE_UID}\n\n*** Test Cases ***\n\nLoad And Read From Serial\n    Reset\n    Load Firmware           ${FIRMWARE_PATH}\n    ${vcp}                  Get Probe Vcp\n    Log                     Virtual port is ${vcp}\n    Connect                 ${vcp}    115200\n    Set Timeout             20\n    Resume\n    Read All\n```\n\n## License\n```\nCopyright 2023 - 2024 Ledger SAS\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutpost-os%2Frobotframework-pyocd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutpost-os%2Frobotframework-pyocd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutpost-os%2Frobotframework-pyocd/lists"}