{"id":21067682,"url":"https://github.com/bromagosa/snap4arduino","last_synced_at":"2025-12-16T18:47:17.081Z","repository":{"id":50272754,"uuid":"50914090","full_name":"bromagosa/Snap4Arduino","owner":"bromagosa","description":"Binding Snap! and Arduino together","archived":false,"fork":false,"pushed_at":"2025-01-08T05:39:50.000Z","size":367701,"stargazers_count":134,"open_issues_count":4,"forks_count":85,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-05-24T15:15:49.642Z","etag":null,"topics":["arduino","blocks","dynamic-programming","education","live-programming","scratch","snap","snap4arduino","visual-programming","visual-programming-language"],"latest_commit_sha":null,"homepage":"http://snap4arduino.rocks","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bromagosa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"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}},"created_at":"2016-02-02T10:51:00.000Z","updated_at":"2025-01-07T19:18:20.000Z","dependencies_parsed_at":"2023-02-15T13:31:02.324Z","dependency_job_id":"e83dfd0f-720b-4f16-a533-543175cb412a","html_url":"https://github.com/bromagosa/Snap4Arduino","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/bromagosa/Snap4Arduino","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bromagosa%2FSnap4Arduino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bromagosa%2FSnap4Arduino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bromagosa%2FSnap4Arduino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bromagosa%2FSnap4Arduino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bromagosa","download_url":"https://codeload.github.com/bromagosa/Snap4Arduino/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bromagosa%2FSnap4Arduino/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27769674,"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-12-16T02:00:10.477Z","response_time":57,"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":["arduino","blocks","dynamic-programming","education","live-programming","scratch","snap","snap4arduino","visual-programming","visual-programming-language"],"created_at":"2024-11-19T18:12:08.625Z","updated_at":"2025-12-16T18:47:17.056Z","avatar_url":"https://github.com/bromagosa.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Snap4Arduino Logo](http://snap4arduino.rocks/img/logo.png)](http://snap4arduino.rocks)\n\nSnap4Arduino binds Snap! and Arduino together and is available in several flavors:\n\n* A desktop application for GNU/Linux, MacOSX and MS Windows.\n* A Chrome App for Chromebooks and any other device that can run the Chromium browser or Google Chrome.\n* A web application that makes use of a special Chrome extension.\n* A command line interpreter for embedded GNU/Linux machines.\n* A websockets-powered version for Linino boards.\n* A mobile app for Android. :boom: **EXPERIMENTAL!** BARELY USABLE! :boom:\n\nPlease check out our official website for further info:\n\n[snap4arduino.rocks](http://snap4arduino.rocks)\n\nDownloads\n=========\n\nYou can get the latest pre-built versions for all platforms at:\n\n[snap4arduino.rocks/#download](http://snap4arduino.rocks/#download)\n\nDocumentation\n=============\n\nThe [Wiki](https://github.com/bromagosa/Snap4Arduino/wiki) holds a bunch of tutorials on different topics. You can also find a [collection of examples in the official website](http://snap4arduino.rocks#demos).\n\nTo learn more about [Snap\u003ci\u003e!\u003c/i\u003e](http://snap.berkeley.edu), take a look at [its official manual](http://snap.berkeley.edu/SnapManual.pdf) and its [additional annex chapters](http://snap.berkeley.edu/#activate).\n\nThere are also a few example projects [here](https://github.com/bromagosa/Snap4Arduino/tree/master/examples). To load one of them into Snap4Arduino:\n\n1. Click on the project name: ![Project name.xml](http://i.imgur.com/ps3efFS.png)\n2. Click on the _Raw_ button: ![Raw](http://i.imgur.com/oZ75Xhj.png)\n3. Right click on the text and select `Save As` (or just press `Control+S`) to save the file into your computer.\n4. Drag and drop the file you've just downloaded into Snap4Arduino\n\nAcknowledgements\n================\n\nOf course, this project wouldn't exist without:\n\n* [Snap!](http://snap.berkeley.edu)\n* [Arduino](http://arduino.org)\n* [nwjs.io](http://nwjs.io)\n\nTo build installers for Microsoft Windows OSes, we are making use of [Inno Setup](http://www.jrsoftware.org/isinfo.php), ran headless under [Wine](http://winehq.org).\n\nThe mobile version is powered by [Cordova](https://cordova.apache.org/).\n\nDevelopers, read this\n=====================\nBefore trying to build Snap4Arduino, make sure you have `node`, `npm`, `sed`, `git`, `wget`, `zip` and `unzip` installed in your system.\n\nThis project is built by a single shell script that takes care of everything, but it takes for granted you have first prepared your local setup.\n\nIf you haven't, please first run the ``prepare`` script with the ``--all`` parameter:\n\n    ./prepare --all\n\nThe command line parameters for the ``prepare`` script are:\n\n    Usage: ./prepare [options]\n\n        --snap              Pulls the latest Snap! version.\n        --nwjs              Pulls the latest nwjs.io stable version.\n        --desktop           Pulls all NodeJS modules needed for desktop versions.\n        --chromeos          Pulls all NodeJS modules needed for the ChromeOS app.\n        --chromium          Pulls all NodeJS modules needed for the web extension.\n        --cli               Pulls all NodeJS modules needed for command-line version.\n        --all               Does all of the above.\n        --inno              Attempts to install Inno Setup under Wine, required to\n                            build an installer for the Microsoft Windows versions.\n\nOnce your local setup is ready, you can use the ``build`` script as follows:\n\n    Usage: ./build [OPTIONS]\n\n        --platform=TARGET   Selects a platform. Accepts both generic platform names\n                            (all, mobile, desktop, desktop/gnu) and specific names\n                            (desktop/gnu/64). See --help=platform for details.\n\n        --run               Builds and runs Snap4Arduino for the specified architecture.\n                            Only for desktop GNU/Linux and Android.\n\n        --makeinstaller     Attempts to create an installer for the Microsoft Windows\n                            versions. Needs Inno Setup, check prepare script for info.\n\n        --rerun             Runs the last built version of Snap4Arduino, if it exists.\n                            Only for desktop GNU/Linux.\n\n        --keeptmp           Do not remove the temporary build directory afterwards.\n\n        --pack              Compresses the resulting files into a properly named\n                            package.\n\n        --deploy=URL        Tries to deploy the built version(s) to a server.\n                            Implicitly runs --pack.\n\n                            --username=USERNAME Specifies a username for the deploy\n                                                server.\n                            --password=PASSWD   Specifies a password for that user.\n\n\nTo find out which platforms are supported by the build script, just run ``./build --help=platform``.\n\n    Usage: ./build --platform=TARGET [--run] [--deploy=URL --username=USERNAME [--dir=PATH]]\n\n    Available platforms are:\n    embedded/cli\n    desktop/win/32\n    desktop/win/64\n    desktop/osx/32\n    desktop/osx/64\n    desktop/gnu/32\n    desktop/gnu/64\n    desktop/chromeos\n    web/chromium\n    mobile/android\n\n    Generic names are also accepted, such as:\n    desktop\n    desktop/gnu\n    mobile\n    this\n    all\n\n## Embedded Command Line Version\n\nSee the [wiki](https://github.com/bromagosa/Snap4Arduino/wiki) section on installing and using the [command line version](https://github.com/bromagosa/Snap4Arduino/wiki/Autonomy-via-CLI).\n\n### Third party NodeJS packages:\n* [node-canvas](https://github.com/Automattic/node-canvas) _(only with ``--canvas`` flag active)_\n* [firmata](https://github.com/jgautier/firmata) _(if you need Snap4Arduino compatibility)_\n\n## Old Repository\n\nThis repository contains only source files. The old, huge (2Gb+!) repository that contained all binaries can still be found for archaeologic purposes at: https://github.com/edutec/Snap4Arduino-old-huge\n\n## History\n\nSnap4Arduino was started in 2013 as a side project in the [Edutec](http://edutec.citilab.eu) research group from [Citilab](http://citilab.eu) (Cornellà, Barcelona), but was soon turned into a full fledged project when it began to gain user base and became clear that it had potential. Since then, it has been used in primary schools, high schools, universities, code clubs, artistic installations and individuals from all around the world. It has received localization contributions for 13 different languages, and projects such as Phiro (India), SmartBlock (Turkey), First Makers (Chile) or ROKIT Brick (South Korea) have based their software solutions in modified versions of Snap4Arduino. From June 2016 until August 2017 it was supported and developed at Arduino.org. Nowadays it is being independently developed by Bernat Romagosa, Joan Guillén and several contributors.\n\n## Contributing\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) before sending us any pull requests. Thank you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbromagosa%2Fsnap4arduino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbromagosa%2Fsnap4arduino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbromagosa%2Fsnap4arduino/lists"}