Device OS (Firmware) for Particle Devices
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
bootloader Merge branch 'release/v0.7.0-rc.7' into develop. Rebuilt wiced agains… Feb 5, 2018
build bump module version for 1.0.0 (v1000), update Jan 9, 2019
ci Feature/go faster stripes (#1439) Nov 22, 2017
communication-dynalib Squashed 'communication/lib/mbedtls/' changes from 7e3e6a9..785f0ab Dec 2, 2015
communication Do not set the sticky skip hello after handshake Dec 6, 2018
crypto-dynalib Adds crypto and crypto-dynalib Jun 6, 2017
crypto photon: Enables support for sha384 and sha512 certificates for WPA En… Apr 5, 2018
docs fixes docs to install arm-none-eabi-gcc version 5.3.1 20160307 [ci-skip] Jul 16, 2018
dynalib Fixes unit tests. sizeof(void*) is 8 on 64-bit systems Jun 2, 2017
hal-dynalib Move DCT functions to the separate dynalib; minor refactoring Jun 2, 2017
hal fixes unique stale socket issue with LTE devices Jan 4, 2019
main Moves nanopb to separate static lib. Juggles some things around betwe… Jan 20, 2018
misc Remove Windows drivers from the repository Jun 11, 2016
modules bump module version for 1.0.0 (v1000), update Jan 9, 2019
nanopb Fixes a typo in nanopb/ Jan 20, 2018
newlib_nano Photon/P1/Electron: migrated to FreeRTOS heap_4 allocator Jul 10, 2017
platform Merge branch 'release/v0.7.0-rc.7' into develop. Rebuilt wiced agains… Feb 5, 2018
proto @ f3bb95a Don't use result codes to return application-specific values Jan 22, 2018
rt-dynalib DYNALIB_FN() now checks indices of the functions Mar 10, 2016
scripts removes the `--email` option which has been removed from docker login Dec 12, 2017
services-dynalib Squashed 'communication/lib/mbedtls/' changes from 7e3e6a9..785f0ab Dec 2, 2015
services comments on panic codes Nov 14, 2018
system-dynalib Runtime logging configuration; asynchronous USB requests; helper tool… Oct 29, 2016
system bump module version for 1.0.0 (v1000), update Jan 9, 2019
user Fix SYSTEM_07_fragmented_heap test Dec 20, 2018
wiring Merge pull request #1528 from particle-iot/feature/thread-wait-start Dec 14, 2018
wiring_globals - Turns on -Wundef Jan 19, 2017
.buildpackrc update buildpack compiler to GCC version 5.3.1 Mar 8, 2017
.clang-format Reformat source files with clang-format Mar 22, 2016
.gitignore add build/releases/* to .gitignore Jan 6, 2017
.gitmodules Move protocol files to a git submodule Jan 19, 2018
.travis.yml Feature/go faster stripes (#1439) Nov 22, 2017 bump module version for 1.0.0 (v1000), update Jan 9, 2019 tweaks to contributing guide Mar 10, 2016 Updated [ci skip] Mar 30, 2017
LICENSE Clarify the firmware license to LGPL-3.0 (#994) May 5, 2016 Update [ci skip] Mar 30, 2017 Fix Travis badge Jan 11, 2019 beginnings of the style guide Feb 8, 2018
makefile Squashed 'communication/lib/mbedtls/' changes from 7e3e6a9..785f0ab Dec 2, 2015

Build Status

Particle Firmware for the Electron, P1, Photon and Core.

This is the main source code repository of the Particle firmware libraries.

Getting Started

To get started building firmware locally, see Getting Started.


Build System

Application Firmware Development

System Firmware Development




The firmware uses the GNU GCC toolchain for ARM Cortex-M processors, ARM's CMSIS libraries, STM32 standard peripheral libraries and Arduino's implementation of Wiring.

On the Core: TI's CC3000 host driver libraries, On the photon: Broadcom's WICED WiFi SDK.


Unless stated elsewhere, file headers or otherwise, all files herein are licensed under an LGPLv3 license. For more information, please read the LICENSE file.

Additionally, for Photon and P1 firmware (>= v0.7.0-rc.1) which use the Cypress WICED SDK, you agree to the terms of the Cypress IoT Community License Agreement.

The guidelines of the Cypress Community License agreement allow individuals to sell and redistribute compiled binaries, referred to as Software in object code format, built with WICED as a part of their own developer applications, but does not give any individuals permission to sell, redistribute, or share WICED source code without separate, explicit written permission from Cypress (which Particle has obtained).

If you have questions about software licensing, please contact Particle support.


This firmware is released under LGPL version 3, what does that mean for you?

  • You may use this commercially to build applications for your devices! You DO NOT need to distribute your object files or the source code of your Application under LGPL. Your source code belongs to you when you build an Application using this System Firmware.

When am I required to share my code?

  • You are NOT required to share your Application Firmware or object files when linking against libraries or System Firmware licensed under LGPL.

  • If you make and distribute changes to System Firmware licensed under LGPL, you must release the source code and documentation for those changes under a LGPL license.


  • This license allows businesses to confidently build firmware and make devices without risk to their intellectual property, while at the same time helping the community benefit from non-proprietary contributions to the shared System Firmware.

Questions / Concerns?

  • Particle intends for this firmware to be commercially useful and safe for our community of makers and enterprises. Please Contact Us if you have any questions or concerns, or if you require special licensing.

(Note! This FAQ isn't meant to be legal advice, if you're unsure, please consult an attorney)


Want to contribute to the Particle firmware project? Follow this link to find out how.


Having problems or have awesome suggestions? Connect with us here.