{"id":33167424,"url":"https://github.com/hybridgroup/cylon-intel-iot","last_synced_at":"2025-12-30T02:15:13.955Z","repository":{"id":20827214,"uuid":"24113122","full_name":"hybridgroup/cylon-intel-iot","owner":"hybridgroup","description":"Cylon adaptors for the Intel Edison \u0026 Galileo","archived":false,"fork":false,"pushed_at":"2016-11-17T02:24:44.000Z","size":122,"stargazers_count":35,"open_issues_count":3,"forks_count":9,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-10-11T16:56:56.771Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://cylonjs.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hybridgroup.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":null,"security":null,"support":null}},"created_at":"2014-09-16T18:55:27.000Z","updated_at":"2024-07-17T14:16:25.000Z","dependencies_parsed_at":"2022-08-30T12:01:53.922Z","dependency_job_id":null,"html_url":"https://github.com/hybridgroup/cylon-intel-iot","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/hybridgroup/cylon-intel-iot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hybridgroup%2Fcylon-intel-iot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hybridgroup%2Fcylon-intel-iot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hybridgroup%2Fcylon-intel-iot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hybridgroup%2Fcylon-intel-iot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hybridgroup","download_url":"https://codeload.github.com/hybridgroup/cylon-intel-iot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hybridgroup%2Fcylon-intel-iot/sbom","scorecard":{"id":474857,"data":{"date":"2025-08-11","repo":{"name":"github.com/hybridgroup/cylon-intel-iot","commit":"ada74cdd356ff580a0754dc5535a6197d6b55cb4"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 2/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T15:01:15.350Z","repository_id":20827214,"created_at":"2025-08-19T15:01:15.350Z","updated_at":"2025-08-19T15:01:15.350Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284734138,"owners_count":27054622,"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","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-11-16T00:00:45.511Z","updated_at":"2025-11-16T16:00:59.501Z","avatar_url":"https://github.com/hybridgroup.png","language":"JavaScript","funding_links":[],"categories":["Library","IoT 笔记"],"sub_categories":["SDK","编程环境"],"readme":"# Cylon.js For Intel IoT\n\nCylon.js (http://cylonjs.com) is a JavaScript framework for robotics, physical computing, and the Internet of Things (IoT).\n\nThis repository contains the Cylon adaptor for the [Intel Joule](http://intel.com/joule/getstarted), [Intel Edison](http://www.intel.com/content/www/us/en/do-it-yourself/edison.html) and [Intel Galileo](http://www.intel.com/content/www/us/en/do-it-yourself/galileo-maker-quark-board.html) IoT platforms. It uses the Galileo-io node module (https://github.com/rwaldron/galileo-io/) created by [@rwaldron](https://github.com/rwaldron) thank you!\n\nWant to use Ruby on robots? Check out our sister project Artoo (http://artoo.io)\n\nWant to use the Go programming language to power your robots? Check out our sister project Gobot (http://gobot.io).\n\n[![Build Status](https://secure.travis-ci.org/hybridgroup/cylon-intel-iot.png?branch=master)](http://travis-ci.org/hybridgroup/cylon-intel-iot) [![Code Climate](https://codeclimate.com/github/hybridgroup/cylon-intel-iot/badges/gpa.svg)](https://codeclimate.com/github/hybridgroup/cylon-intel-iot) [![Test Coverage](https://codeclimate.com/github/hybridgroup/cylon-intel-iot/badges/coverage.svg)](https://codeclimate.com/github/hybridgroup/cylon-intel-iot)\n\n## How to Install\n\nTo install Cylon.js on your Intel Edison, you must be logged into the board, through ssh or the uart serial connection, and execute the following command:\n\n    $ npm install cylon cylon-intel-iot cylon-gpio cylon-i2c\n\nOnce `cylon-intel-iot` and friends have been installed, you're ready to start programming!\n\nPlease note that you should flash your Intel board with the latest firmware before installing Cylon.js.\n\n## How to Use\n\n### Blinking the built in LED\n```javascript\nvar Cylon = require('cylon');\n\nCylon.robot({\n  connections: {\n    edison: { adaptor: 'intel-iot' }\n  },\n\n  devices: {\n    led: { driver: 'led', pin: 13 }\n  },\n\n  work: function(my) {\n    every((1).second(), my.led.toggle);\n  }\n}).start();\n```\n\n## Setting up your Intel Edison\n\nEverything you need to get started with the Edison is in the Intel Getting Started Guide\nlocated [here](https://communities.intel.com/docs/DOC-23147). Don't forget to\nconfigure your Edison's wifi connection and [flash](https://communities.intel.com/docs/DOC-23192)\nyour Edison with the latest firmware image (Yocto 3)!\n\n### Updating Node.js on the Intel Edison\n\nThe Intel Edison has an older Node.js (0.10.x) installed by default. You can easily update it using [Node Version Manager (nvm)](https://github.com/creationix/nvm).\n\nThe latest Yocto needs to update the version of the `tar` file decompression utility before you can install new versions of Node.js using `nvm`. You can easily do this as follows. First, add the \"unofficial official\" package repository:\n\n```\necho \"src/gz all http://repo.opkg.net/edison/repo/all\nsrc/gz edison http://repo.opkg.net/edison/repo/edison\nsrc/gz core2-32 http://repo.opkg.net/edison/repo/core2-32\" \u003e /etc/opkg/base-feeds.conf\nopkg update\n```\n\nThanks to [http://alextgalileo.altervista.org/edison-package-repo-configuration-instructions.html](http://alextgalileo.altervista.org/edison-package-repo-configuration-instructions.html) for the above instructions.\n\nOnce you have added the additional package repository, run the following commands:\n\n```\nopkg install tar\ntouch ~/.profile\n```\n\nYou are now ready to install `nvm` on your Edison. [Follow the nvm installation instructions here](https://github.com/creationix/nvm#install-script).\n\n## How to Connect\n\nThe [Intel Edison Getting Started Guide](https://communities.intel.com/docs/DOC-23147) details connection instructions for Windows, Mac and Linux.\n\nIn order to enable Ethernet over USB on your Edison, follow the appropriate guide for your OS\n\n###### Windows\n- Go to control panel -\u003e network and sharing center -\u003e change adaptor settings\n- When you plug both usb cables into your computer, you should see a new network device show up\n- Right click on the new device and select properties\n- Scroll down to IPv4 and select properties\n- Select \"Use the following IP address\"\n- Set the IP information to:\n\t- IP address:           `192.168.2.1`\n\t- Subnet mask:          `255.255.255.0`\n\t- Default gateway:      `192.168.2.255`\n\t- Preferred DNS server: `8.8.8.8`\n- Save the changes\n- open putty\n- ssh to 192.168.2.15\n- The user is 'root' and the password is what you configured during the getting started guide\n\n###### OS X\n- Install the usb tethering driver http://joshuawise.com/horndis#available_versions\n- Open network preferences\n- Plug your Edison into your computer\n- Find the device `Edison`\n- Configure IPv4: Using DHCP with manual address\n\t- `192.168.2.1`\n- Open a terminal\n- $ ssh root@192.168.2.15\n\n###### Linux\n- Examine your `/etc/network/interfaces` file, if you do not have this line, you must add it and then restart your computer\n```\niface usb0 inet dhcp\n```\n- Plug your Edison into your computer\n- $ sudo ifconfig usb0 192.168.2.1 255.255.255.0\n- $ ssh root@192.168.2.15\n\nThe Edison is now able to use it's wifi connection to reach the internet and your local USB to Ethernet connection for local ssh access and programming. If you have problems reaching the internet, you may need to setup the DNS on your Edison.\n\nExecute the following command on the Edison itself\n\n    # cat \"nameserver 8.8.8.8 \u003e /etc/resolv.conf\"\n\nIf you have a valid wifi connection, you should be able to reach out of your network!\n\n##### Ethernet over USB internet sharing\nIf you are using ethernet over USB then you can enable internet sharing on your Edison by executing this command on the Edison itself\n```bash\n/sbin/route add default gw 192.168.2.1\n```\n\nNow you're ready to install MRAA and Cylon.\n\n#### Setting up your Intel Galileo\n\nIn order to use `cylon-intel-iot` on your Galileo, you need to install the Intel IoT linux boot image onto an sd card.\nYou can download the latest image [here](https://software.intel.com/sites/landingpage/iotdk/board-boot-image.html).\n\nFor Windows hosts you can follow the instruction for flashing your sd card image [here](https://software.intel.com/en-us/node/530353).\n\nFor Mac or Linux hosts, it's as easy as extracting the image from the downloaded archive and executing the command\n\n    $ sudo dd if=/path/to/iot-devkit-latest-mmcblkp0.direct of=/dev/sdX bs=1M \u0026\u0026 sudo sync\n\nwhere `/dev/sdX` is the location of your sd card. For help determing the location of your sd card, consult the appropriate guide for your OS below.\n\n###### OS X Users\n\nTo prepare your SD card for flashing on OS X, you need to find out it's drive name and eject the volume.\n\nTo find the name, use the built-in `diskutil` utility:\n\n    $ diskutil list\n    /dev/disk0\n      #:                       TYPE NAME                    SIZE       IDENTIFIER\n      0:      GUID_partition_scheme                        *500.3 GB   disk0\n      1:                        EFI EFI                     209.7 MB   disk0s1\n      2:                  Apple_HFS Macintosh HD            499.4 GB   disk0s2\n      3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3\n    /dev/disk1\n      #:                       TYPE NAME                    SIZE       IDENTIFIER\n      0:     FDisk_partition_scheme                        *15.7 GB    disk1\n      1:             Windows_FAT_32 NO NAME                 15.7 GB    disk1s1\n\nAccording to this, our SD card is found at `/dev/disk1`.\n\nBefore you flash it with the above `dd` command, use `diskutil` to eject the existing volume (`disk1s1`):\n\n    $ diskutil unmount /dev/disk1s1\n\n###### Linux Users\nTo prepare your SD card for flashing on Linux, you need to find the device location of your SD card. An easy way to determin the location is by filtering the `/dev/` directory for new storage devices. Before you plug in your SD card, execute the following `ls` command\n\n    $ ls -l /dev/sd*\n    brw-rw---- 1 root disk 8,  0 Sep 16 21:48 /dev/sda\n    brw-rw---- 1 root disk 8,  1 Sep 16 21:48 /dev/sda1\n    brw-rw---- 1 root disk 8,  2 Sep 16 21:48 /dev/sda2\n    brw-rw---- 1 root disk 8,  5 Sep 16 21:48 /dev/sda5\n\n\nYou can see that I only have one storage device `/dev/sda`. Now plug in your SD card and execute the `ls` command again\n\n    $ ls -l /dev/sd*\n    brw-rw---- 1 root disk 8,  0 Sep 16 21:48 /dev/sda\n    brw-rw---- 1 root disk 8,  1 Sep 16 21:48 /dev/sda1\n    brw-rw---- 1 root disk 8,  2 Sep 16 21:48 /dev/sda2\n    brw-rw---- 1 root disk 8,  5 Sep 16 21:48 /dev/sda5\n    brw-rw---- 1 root disk 8, 16 Sep 17 17:46 /dev/sdb\n    brw-rw---- 1 root disk 8, 17 Sep 17 17:46 /dev/sdb1\n    brw-rw---- 1 root disk 8, 18 Sep 17 17:46 /dev/sdb2\n\n\nYou can see from this output that I now have a new storage device `/dev/sdb`. That is the location of my SD card, so in this instance the `/dev/sdX` in our `dd` command will be `/dev/sdb`.\n\nAfter the image has been flashed to your sd card, install the sd card into the Galileo, connect it to your local network and power it up!\n\nNow you're ready to install MRAA and Cylon.\n\n#### Install MRAA\nAfter you have flashed your Intel board and connected it to a network,\nyou must now install the latest version of the\n[Intel MRAA library](https://github.com/intel-iot-devkit/mraa). In order to update MRAA\nyou simply log into your Intel board, through ssh or the uart serial connection, and follow\nthe steps [here](https://github.com/intel-iot-devkit/mraa#installing-on-your-board).\n\n### Bluetooth Programming on the Intel Edison featuring Sphero\n\nThe Edison includes a bluetooth radio right on the board itself, so it's easy to get started programming bluetooth devices out of the box. First we need to enable bluetooth on the Edison.\n - ssh into your Edison\n - `# rfkill unblock bluetooth`\n - `# bluetoothctl`\n    - `[bluetooth]# scan on`\n\t- Find your Sphero and take note of the MAC address\n\t- `[bluetooth]# scan off`\n\t- `[bluetooth]# pair [MAC address of Sphero]`\n\t- `[bluetooth]# exit`\n - `# rfcomm bind 0 [MAC address of Sphero] 1`\n - This will create a sphero connection bound to `/dev/rfcomm0`\n - `# npm install cylon cylon-intel-iot cylon-sphero`\n\nThis example will flash the built in LED whenever the Sphero detects a collision\n\n```javascript\nvar Cylon = require('cylon');\n\nCylon.robot({\n  connections: {\n    edison: { adaptor: 'intel-iot'},\n    sphero: { adaptor: 'sphero', port: '/dev/rfcomm0' }\n  },\n\n  devices: {\n    led: { driver: 'led', pin: 13, connection: 'edison' },\n    sphero: { driver: 'sphero', connection: 'sphero' }\n  },\n\n  work: function(my) {\n    console.log(\"Setting up Collision Detection...\");\n    my.sphero.stop();\n    my.sphero.detectCollisions();\n\n    my.sphero.on('collision', function() {\n      console.log(\"Collision\");\n      my.led.toggle();\n    });\n  }\n}).start();\n```\n\n## Documentation\n\nWe're busy adding documentation to our web site at http://cylonjs.com/ please check there as we continue to work on Cylon.js\n\nThank you!\n\n## Contributing\n\nFor our contribution guidelines, please go to [https://github.com/hybridgroup/cylon/blob/master/CONTRIBUTING.md\n](https://github.com/hybridgroup/cylon/blob/master/CONTRIBUTING.md\n).\n\n## Release History\n\nFor the release history, please go to [https://github.com/hybridgroup/cylon-intel-iot/blob/master/RELEASES.md\n](https://github.com/hybridgroup/cylon-intel-iot/blob/master/RELEASES.md\n).\n\n## License\nCopyright (c) 2013-2016 The Hybrid Group. Licensed under the Apache 2.0 license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhybridgroup%2Fcylon-intel-iot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhybridgroup%2Fcylon-intel-iot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhybridgroup%2Fcylon-intel-iot/lists"}