Device OS (Firmware) for Particle Devices
Switch branches/tags
application/i2c-honeywell-pressure-sensor-test archive/feature/electron-ri-urc archive/feature/electron arp-event-fix bootloader-patch-update bugfix/misleading-indent ch9562/org-rename compile-server compile-server2 compile-staging context-switching daves-rc4-patch deep-update develop-0.5.x develop doc/low-level-usb-vendor-req electron-integration-tests electron/048-rc2 factory-tester feature/antenna_switch feature/ap_mode_old feature/ap_mode feature/async_usb_req feature/ble/bare_api feature/ble/peripheral feature/bt-coex feature/ch1424/explicit_publish_scope feature/ch6178-checkpoints feature/ch7262-wifitester-user-module feature/ch13052 feature/ch18896/network-registration-private feature/comm-checksum-bad-pointer feature/compat-net-rssi-diag feature/compression-part1-dependency feature/dct-locking-recursive-mutex feature/diag-ram-usage feature/diag_rssi feature/diag_uptime feature/diagnostics-battery-charge feature/diagnostics-battery-state feature/diagnostics-cloud-ratelimit-unack feature/diagnostics-merge feature/diagnostics-signal-quality feature/diagnostics feature/direct-interrupt-handlers feature/docker-buildpack feature/electron-bootloader feature/electron-fastboot feature/electron-freertos-integration feature/electron-low-power feature/electron/at-pass-through-v0.6.1 feature/electron/at-pass-through-v0.6.2 feature/electron/at-pass-through feature/electron_i2c_debugging feature/hal-cc3000-update feature/hal/mirror-button-led feature/hal/nfc feature/i2c-fixes-1-0.5.x feature/i2c_debugging feature/interrupt_cloud_conn feature/isr_events feature/late_registered_variables feature/libs-make-builtin-app feature/logging2 feature/long-function-message feature/lte_at_pass_through feature/lte_at_pass_through_0.8.0-rc.11 feature/mbedtls_tcp feature/mbedtls/2.9.0 feature/mesh_api feature/mesh/enum_include_dirs feature/nanopb feature/new-platform-duo feature/newlib-assert-func feature/no_global_namespace feature/openthread-20181204 feature/p1-elec feature/part3_cellular_hal feature/persist_diag_data feature/pool-allocator feature/power-management feature/publish_private_default feature/raspberry-pi-0.6.0 feature/raspberry-pi-develop feature/raspberry-pi feature/spark-particle feature/string-split feature/system-monitor feature/system-part1-optimizations feature/system-sleep-multiple-pins feature/thread-wait-start-backport feature/thread-wait-start feature/tracer-rebase feature/update-zero-0.4.5 feature/update-zero-046 feature/usart-lin-config feature/usb-requests feature/usb-serial-fixes-2 feature/usb_dev_config feature/usb_logging feature/usb_logging_1_of_2 feature/usb_vendor_completion_handler feature/watchdog feature/wiced-3.7.0-freertos-8.2.1 feature/wiced-3.7.0-mbedtls-only feature/wifi-connect-dhcp feature/wifi-firmware-compression feature/wifi-network-ctrl-req feature/wiring++ fix/arduino-cbi-sbi fix/backport-bugfixes-v0.8.0-rc.1-to-v0.8.0-rc.4-new-wifi-firmware fix/bootloader_dep_check_0.8.x fix/cache_feature_flags fix/ch7266-random-seed fix/ch7267-cellular-resolve fix/ch24165/system_event_on_isr fix/connect-semi-automatic fix/dcd-issues fix/electron-diag-power fix/gcc_cpu_usage fix/gcc_6.x fix/issue-1458 fix/issue_1171 fix/issue_1298 fix/krack-0.5.x fix/loadtest-logging fix/make_deps fix/mesh/mac-address fix/ncp-update-firmware-enable-client fix/powermanager fix/release-button-timer fix/soc-low-bound fix/supplicant-cancel-wip fix/tcpserver-threading fix/usb_descr_device_id_lower_case_0.8.x fix/080rc2-tests gh-pages latest master mesh-develop photon_041_v2 photon_041 photon_042 photon_043 prereleases/electron-v0.0.1-rc.5 prereleases/electron-v0.0.2 prereleases/electron-v0.0.3-rc.1 prereleases/electron-v0.0.3-rc.2 prereleases/electron-v0.0.3-rc.3 prereleases/electron-v0.0.4-rc.1 prereleases/electron-v0.4.8-rc.3 prereleases/electron-v0.4.8-rc.4 prereleases/electron-v0.4.8-rc.5 prereleases/electron-v0.4.8-rc.6 release/stable-0.5.x release/stable release/v0.4.4-rc.3 release/v0.4.5-rc.1 release/v0.4.5-rc.2 release/v0.4.5 release/v0.4.6-rc.1 release/v0.4.6 release/v0.4.8-rc.7 release/v0.4.8 release/v0.4.9 release/v0.5.0-rc.2 release/v0.5.0 release/v0.5.1-rc.1 release/v0.5.1-rc.2 release/v0.5.1 release/v0.5.2-rc.1 release/v0.5.2 release/v0.5.3-rc.1 release/v0.5.3-rc.2 release/v0.5.3-rc.3 release/v0.5.3 release/v0.5.4 release/v0.5.5 release/v0.6.0-rc.1 release/v0.6.0-rc.2 release/v0.6.0 release/v0.6.1-rc.1 release/v0.6.1-rc.2 release/v0.6.1 release/v0.6.2-rc.1 release/v0.6.2-rc.2 release/v0.6.2 release/v0.6.3 release/v0.6.4 release/v0.7.0-rc.1 release/v0.7.0-rc.2 release/v0.7.0-rc.3 release/v0.7.0-rc.4 release/v0.7.0-rc.5 release/v0.7.0-rc.6 release/v0.7.0-rc.7 release/v0.7.0 release/v0.8.0-rc.1 release/v0.8.0-rc.2 release/v0.8.0-rc.3 release/v0.8.0-rc.4 release/v0.8.0-rc.5 release/v0.8.0-rc.6 release/v0.8.0-rc.7 release/v0.8.0-rc.8 release/v0.8.0-rc.9 release/v0.8.0-rc.10 release/v0.8.0-rc.11 release/0.4.3 release/0.4.7 releases/v0.4.4-rc.1 releases/v0.4.4-rc.2 releases/v0.4.4-rc.4 releases/v0.4.4-rc.5 releases/v0.4.4-rc.6 releases/v0.4.4 test/mdm-passthrough test/mesh/range test/urc test/wpa-ent-tls-1-1 test/xfinity-issue tests_registers unlocker
Nothing to show
Clone or download
sergeuz Merge pull request #1639 from particle-iot/fix/invalidate_sockets
 Invalidate sockets when turning WiFi off
Latest commit 0140a25 Dec 14, 2018
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 0.8.0-rc.11 (v310), update Sep 28, 2018
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 Invalidate all sockets when turning WiFi off Dec 14, 2018
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 0.8.0-rc.11 (v310), update Sep 28, 2018
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 Minor fix Dec 14, 2018
user Update tests for SARA_R410 May 11, 2018
wiring Input current limit is stored in the lowest 3 bits of the input sourc… Dec 5, 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 0.8.0-rc.11 (v310), update Sep 28, 2018 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 CONTRIBUTE link Apr 4, 2018 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.