Particle Source

Particle (formerly Spark) is a complete, open source, full-stack solution for cloud-connected devices.


The content below includes everything necessary to build a powerful connected device from scratch, including hardware designs, firmware, cloud software, mobile app templates, and development tools.

Hardware

core
Hardware design files for the Spark Core, our TI CC3000 Wi-Fi development toolkit and reference design. Issues
photon
Hardware design files for the Photon, our Broadcom 43362 development toolkit and reference design. Issues
electron
Hardware design files for the Electron, our cellular development toolkit and reference design. Issues

Firmware

firmware
Firmware for the Core, Photon, and Electron. Issues
core-common-lib
Common libraries and drivers for the Spark Core (STM32+CC3000). Issues
core-communication-lib
Embedded C++ library for communicating with the Spark Cloud. Issues

Transport layer

The transport layer between Particle devices and the Particle Cloud is composed of CoAP packets sent over a TCP socket encrypted through an RSA asymmetric key handshake passed off to an AES encrypted tunnel. Its implementation can be found in the core-communication-lib above and the spark-protocol library below.

Cloud software

spark-server
An API compatible open source server for interacting with devices speaking the Spark protocol. Issues
spark-protocol
A Node.js module for hosting direct encrypted CoAP socket connections with Sparky things. Issues

Mobile app templates

android-app
The Spark Core Android app, which acts as a template for Android apps for other Spark-powered products. Issues
ios-app
The Spark Core iOS app, which acts as a template for iOS apps for other Spark-powered products. Issues

Language wrappers

Official language wrappers are currently in development for Node.js, Ruby, and Python. In the meantime, please visit our resources page for community-developed language wrappers.

Development tools

spark-dev
Professional IDE for Particle, based on Github's Atom project. Issues
particle-cli
Command Line Interface (CLI) for interacting with the Particle Cloud, Core, Photon, and Electron. Issues
docs
Documentation for the Particle Cloud and Particle devices. Issues
spark.github.io
This very site. Totally meta. Issues

Version control

We use Git for version control, and Github as our central repository for all of our source code. Anyone can view our open source repositories, and with a free Github account, raise issues and contribute to our source code.

Feature requests and bug fixes

We use Github Issues to track issues for each of our open source repositories.

Each of the above repositories has a link for issues; feel free to submit feature requests and raise bugs on Github, or star a repository to follow its progress.

Contributions

We welcome contributions to all of our open source repositories. These contributions come in the form of a Pull Request, where you "fork" our repositories and then request that we "pull" your changes back into our repositories. You must have a Github account to make a contribution.

All contributors must first sign the Particle Individual Contributor License Agreement (CLA), which is based on the Google CLA, and provides the Particle team a license to re-distribute your contributions.

Whenever possible, please follow these guidelines for contributions:

Other resources

To learn about Particle's other resources, please visit our resources page, and chat with us in our community or through IRC (#particle on freenode).