{"id":21116635,"url":"https://github.com/canopennode/canopendemo","last_synced_at":"2025-07-21T09:03:05.074Z","repository":{"id":43260701,"uuid":"365482422","full_name":"CANopenNode/CANopenDemo","owner":"CANopenNode","description":"CANopenNode tutorial and testing","archived":false,"fork":false,"pushed_at":"2024-10-19T10:58:01.000Z","size":492,"stargazers_count":50,"open_issues_count":7,"forks_count":33,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-20T05:04:36.926Z","etag":null,"topics":["canopen","canopennode","demo","embedded","testing","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/CANopenNode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["paypal.me/jnz022"]}},"created_at":"2021-05-08T10:14:31.000Z","updated_at":"2025-05-09T13:33:25.000Z","dependencies_parsed_at":"2024-06-16T14:41:09.126Z","dependency_job_id":"70c51ff4-1121-4c49-bbc6-31cd8ec3a737","html_url":"https://github.com/CANopenNode/CANopenDemo","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CANopenNode/CANopenDemo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CANopenNode%2FCANopenDemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CANopenNode%2FCANopenDemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CANopenNode%2FCANopenDemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CANopenNode%2FCANopenDemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CANopenNode","download_url":"https://codeload.github.com/CANopenNode/CANopenDemo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CANopenNode%2FCANopenDemo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266270369,"owners_count":23902731,"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":["canopen","canopennode","demo","embedded","testing","tutorial"],"created_at":"2024-11-20T02:32:03.496Z","updated_at":"2025-07-21T09:03:05.051Z","avatar_url":"https://github.com/CANopenNode.png","language":"Shell","readme":"CANopenDemo                                                 {#readmeCANopenDemo}\n===========\n\nCANopenDemo includes demo program with CANopenNode, tutorial and testing tools.\n\nIt is based on [CANopenNode](https://github.com/CANopenNode/CANopenNode), which is free and open source CANopen Stack and is included as a git submodule.\n\nCANopen is the internationally standardized (EN 50325-4) ([CiA301](http://can-cia.org/standardization/technical-documents)) CAN-based higher-layer protocol for embedded control system. For more information on CANopen see http://www.can-cia.org/\n\nCANopenDemo homepage is https://github.com/CANopenNode/CANopenDemo\n\n\nGetting or updating the project\n-------------------------------\nClone the project from git repository and get submodules:\n\n    git clone https://github.com/CANopenNode/CANopenDemo.git\n    cd CANopenDemo\n    git submodule update --init --recursive\n\nThere are several git submodules in CANopenDemo, see file `.gitmodules`. Some submodules, like `CANopenLinux` includes own git submodule `CANopenNode`, which is also updated with the above command.\n\nIf repositories are clean, the project can be updated by the following commands:\n\n    cd CANopenDemo\n    git pull\n    git submodule update --init --recursive\n\n\nObject Dictionary Editor\n------------------------\nUse [CANopenEditor](https://github.com/CANopenNode/CANopenEditor) to edit the object dictionary. Binaries are available, editor runs also in Linux with mono. Just run the `EDSEditor.exe` as a GUI application. You can open the `demoDevice.xdd` file, make changes according to your needs, export demoDevice.eds or demoDevice.md file, generate C source files for object dictionary (OD.h and OD.c), etc.\n\n\nCANopen demoDevice\n------------------\nCANopen demoDevice can run on different target devices. It contains object dictionary with most common communication parameters and some additional manufacturer specific and device profile parameters. Simple example program run from application interface and shows some principles of CANopenNode usage.\n\nSee [demo/README.md](demo/README.md).\n\n\nCANopenLinux\n------------\nCANopenLinux is a CANopen stack running on Linux devices. It has full CANopen functionality with additional CANopen ASCII command interface (gateway) It can be used as a commander for other CANopen devices: NMT master, LSS master, SDO client, etc.\n\nSee CANopenLinux/README.md.\n\n\nTutorial\n--------\n - [tutorial/README.md](tutorial/README.md) - Configuration and basics.\n - [tutorial/LSS.md](tutorial/LSS.md) - Assigning Node-ID or CAN bitrate to devices, which support LSS configuration.\n - [tutorial/SDO.md](tutorial/SDO.md) - Further SDO access to the [demoDevice](demo/README.md) parameters.\n - [tutorial/PDO.md](tutorial/PDO.md) - Demonstration of Process Data Objects.\n\n\nCANopen testing\n---------------\nTests on Running CANopen network are implemented with two CANopenNode devices, running on CAN interface. First is CANopenLinux device with gateway interface, second is CANopen demoDevice.\n\nTests are run in Linux command line with [Bash Automated Testing System - BATS](https://github.com/bats-core/bats-core), which is included in CANopenDemo as three git submodules.\n\nSee [test/README.md](test/README.md).\n\n\nHtml documentation\n------------------\nCANopenNode.github.io is a git submodule with html documentation for CANopenDemo, CANopenNode and other devices. It is available also online at https://canopennode.github.io.\nDocumentation is generated by doxygen. Documentation is generated separately for: CANopenNode, CANopenLinux (+ other target devices) and CANopenDemo. There are some links in the menu between different documentations. CANopenNode also contains tagfile which enables links to it from CANopenLinux and CANopenDemo.\n\nTo update the documentation of the CANopenNode.github.io install tools and generate all files:\n\n    sudo apt install doxygen graphviz pdf2svg\n    ./update_docs.sh\n\n\nLicense\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\nhttp://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","funding_links":["paypal.me/jnz022"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanopennode%2Fcanopendemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanopennode%2Fcanopendemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanopennode%2Fcanopendemo/lists"}