Particle Photon

Spark Devices / Spark.ioMCU 8-32 bitarduino

⚡ The essentials in 60 seconds

Launched in November 2014 by Spark Devices, a company that would later rebrand as Particle, the Photon represents a pivotal moment in the democratization of the Internet of Things. Priced at just nineteen dollars, this development board was designed to be accessible to hobbyists and engineers alike, offering a bridge between simple microcontroller projects and complex, cloud-connected systems. The board is built around a dual-chip architecture that separates wireless communication from application processing. At its core lies the STM32F205RGY6, a single-core ARM Cortex-M3 microcontroller running at 120 MHz. To put this in perspective, the Cortex-M3 is a 32-bit processor architecture widely used in embedded systems for its balance of performance and power efficiency. It handles the logic of your application, reading sensors and controlling actuators. For wireless connectivity, the Photon pairs this microcontroller with a Broadcom BCM43362 chip. This component provides 802.11b/g/n Wi-Fi capabilities on the 2.4 GHz band, allowing the device to connect to standard home and office networks. It is worth noting that while some early marketing materials described the Broadcom chip as a system-on-chip with its own processor, Particle’s official documentation clarifies that the application logic runs exclusively on the STM32, with the Broadcom chip dedicated to managing the radio frequency signals.

The Photon’s most significant innovation was its seamless integration with the Particle Device Cloud. In 2014, connecting a microcontroller to the internet usually required writing complex networking code to handle TCP/IP stacks, encryption, and server communication. The Photon abstracted this complexity away through its Device OS, a firmware layer that runs on top of FreeRTOS, a real-time operating system. This system allows developers to use an Arduino-like Wiring API, a programming environment familiar to many beginners. With simple commands such as Particle.variable or Particle.function, users could expose data from their device to the cloud or trigger actions remotely without writing a single line of network protocol code. This "cloud-native" approach meant that security, including TLS encryption and device authentication, was handled by the hardware and firmware out of the box. Each Photon comes with a unique key pair stored in a protected section of memory called the Device Configuration Table, ensuring that only the owner can control the device. This security model, combined with over-the-air firmware updates, allowed users to push new code to their devices remotely via Wi-Fi, a feature that was revolutionary for hobbyist electronics at the time.

From a hardware perspective, the Photon is designed to be "breadboard-friendly," meaning its pin spacing matches the standard 0.1-inch pitch used in prototyping breadboards. The board features twenty-four outer pins, offering eighteen mixed-signal general-purpose input/output lines. These pins are versatile, supporting various communication protocols including two SPI interfaces, one I2C interface, and one I2S interface for audio. Notably, the Photon includes two 12-bit digital-to-analog converters and eight 12-bit analog-to-digital converter inputs, allowing for precise interaction with analog sensors and actuators. It also supports CAN bus communication, a robust protocol often used in automotive and industrial applications, which was unusual for a board in this price range. The logic levels are 3.3 volts, but most pins are tolerant of 5-volt signals, making it easier to interface with older or higher-voltage components. For power, the board can be supplied via a micro-USB port or through a VIN pin accepting 3.6 to 5.5 volts. An on-board switching regulator steps this down to the 3.3 volts required by the logic circuits. Power consumption is a critical factor in battery-powered IoT devices; the Photon draws approximately 80 milliamps on average when Wi-Fi is active, but it can enter a deep-sleep mode where it consumes only about 80 microamps, extending battery life significantly.

The ecosystem surrounding the Photon includes several module variants. The original Photon board is available with or without pre-soldered headers. The "P0" module is the bare-bones version of the Wi-Fi and microcontroller combination, designed for integration into custom products. A larger variant, the "P1," added external flash memory and a more robust antenna setup with a U.FL connector for external antennas. However, the P1 has been officially deprecated, with Particle recommending the newer P2 module as its replacement. The Photon family also includes the Electron, a cellular-connected sibling that uses the same STM32 microcontroller but replaces the Wi-Fi chip with a cellular modem, allowing for connectivity in areas without Wi-Fi. While the Photon line is considered mature and legacy as of 2026, with no formal end-of-life notice for the original board, the software support landscape has shifted. Particle advises users to stick with the 2.x Long Term Support version of Device OS, as older versions and the 3.x branch have passed their end-of-support dates. This means that while the hardware remains functional, developers should be aware that new features and security patches are primarily focused on the 2.x line and the newer Photon 2 hardware.

Despite its success, the Photon has known limitations and quirks that developers should understand. One common issue involves the Pulse Width Modulation pins. While there are nine pins capable of PWM, they share internal timers in pairs, meaning only seven independent PWM signals can be generated simultaneously. Another practical challenge is power delivery. The board’s Wi-Fi radio creates brief spikes in current demand during transmission. If a low-quality USB cable or a weak power supply is used, these spikes can cause the voltage to drop, leading to system resets or intermittent operation. Particle explicitly warns that the power supply must be able to source around one amp to avoid these brown-outs. Additionally, the 3.3-volt output pin is limited to 100 milliamps, so it cannot power external high-current peripherals. Users have also reported variability in sleep current between individual units, with some devices draining batteries faster than expected due to manufacturing variances. Furthermore, the coexistence pads on the board, intended for Bluetooth integration, are non-functional in the original firmware and should not be used.

The Photon’s legacy is cemented by its role in popularizing cloud-connected microcontrollers. It inspired countless projects, from simple home automation sensors to complex industrial monitors. Its open-source hardware design and LGPLv3 licensed Device OS encouraged a community of makers to build upon its foundation. Although the original product page has been delisted from the Particle store in favor of newer models like the Photon 2, the Photon remains a capable and educational platform for learning embedded systems and IoT development. For those maintaining existing fleets, it is crucial to monitor the status of Device OS support and be prepared for potential changes in cloud API endpoints, as the company has previously retired older API versions. The transition from Spark to Particle and the subsequent evolution of the product line reflect the rapid pace of change in the IoT industry, but the core principles introduced by the Photon—ease of use, integrated security, and cloud connectivity—remain central to modern development boards.

Forum (1 topic) →

AttrSpecsverified
wi_fi_chipBroadcom BCM43362, 802.11b/g/n 2.4 GHz single-band (Photon datasheet, Features list). Used in products like Nest and LIFX (CNX 2014). Note: marketing at launch sometimes described the BCM43362 as a "Wi-Fi SoC with Cortex-M3", but Particle's datasheet is explicit that the application CPU is the STM32, not the Broadcom chip.? unverified
application_mcuSTM32F205RGY6, single-core ARM Cortex-M3 @ 120 MHz (Photon datasheet). No GPU (MCU-class board).? unverified
memory1 MB flash, 128 KB RAM (STM32F205RGY6) (datasheet). Flash layout: 16 KB bootloader, 2×16 KB DCT, 80 KB EEPROM emulation, 512 KB Device OS, 3×128 KB (factory backup / OTA backup / user app) (datasheet, Memory map).? unverified
gpio_peripherals_photon_board_24_outer_pins18 mixed-signal GPIO; 8× 12-bit ADC inputs (A0–A7); 2× 12-bit DAC (DAC=A6, A3=DAC2); 2× SPI; 1× I2C; 1× I2S; 1× CAN; USB; 9 PWM-capable pins → 7 independent PWM outputs (A5/D2 and A4/D3 share timers) (datasheet, Peripherals and GPIO). Logic level 3.3 V; all pins 5 V-tolerant except A3 and DAC (datasheet note [1]).? unverified
debugJTAG on D3–D7, SWD on D6/D7; standard 20-pin 0.1" JTAG header supported (datasheet, JTAG and SWD).? unverified
rfSPDT RF switch between on-board chip antenna and U.FL connector for external antennas; software antenna selection incl. auto mode; 50 Ω controlled impedance (datasheet, RF).? unverified
powermicro-USB (Micro-B) or VIN 3.6–5.5 V; on-board 3.3 V SMPS regulator; 3V3 output max 100 mA, VIN as output max 1 A; VBAT 1.65–3.6 V for RTC/backup SRAM (datasheet, Power / Pin description).? unverified
consumptiontypical ~80 mA average @5 V with Wi-Fi on; deep-sleep quiescent ~80 µA (datasheet, Power).? unverified
miscRGB status LED (external drive provided), Setup + Reset buttons, ~40 µA-class RTC backup domain (datasheet).? unverified
certificationsFCC (US), CE (EU), ISED (Canada) (datasheet, Features).? unverified
operating_temperature? unverified
board_dimensions? unverified
  • Manufacturer: Spark Devices / Spark.io — renamed Particle (Particle Industries / Particle.io) after the 2015 rebrand. Particle's own 2023 retrospective notes "the market and company name have changed since" the original launch. (CNX Software,
  • Announced: November 12, 2014 ("Introducing the $19 Photon", blog.spark.io, as linked by CNX Software's Nov 14, 2014 announcement coverage: Pre-orders opened at $19 + shipping, with delivery scheduled for March 2015 (same CNX article).
  • Launch price: US$19 for the Photon board; the bare P0 module was $10 (CNX Software, 2014 article above).
  • Variants: - Photon dev board, two physical forms: with headers (breadboard-pluggable) or without headers with castellated edges for SMT (Particle datasheet, Model numbers PHOTONH / PHOTONNOH (same datasheet). - P0 module (the thumbnail-sized Wi-Fi module at the Photon's heart) (datasheet + CNX 2014). - P1 module: "the PØ's big brother" — adds on-board 1 MB external SPI flash (MX25L8006E), integrated PCB antenna + U.FL connector + RF switch, 25 GPIO (P1 datasheet, The P1 has been officially deprecated; recommended replacement is the P2 (same page). - Photon E / P1 E industrial-grade variants: > 1DM) (CNX 2023 article above).
  • Status (2026): Mature/legacy product line, no formal Photon EOL notice found. - 2018, Particle CEO: "we have no current plans to discontinue either the Photon or Electron" ( - 2020, Particle staff: Photon "currently in Generally Available 'GA' lifecycle" ( - 2022, Particle staff: "we are preparing p1 end-of-life" ( P1 datasheet now states "The P1 has been deprecated." - Device OS guidance: use the 2.x LTS line; older versions and 3.x are "past the end-of-support date"; only 2.x LTS remains in the Extended Support & Maintenance window (Photon datasheet, Device OS Support section). - As of 2026-10-13, redirects to the store homepage (original Photon product page no longer exists; the store headlines Photon 2 and Tachyon). >

+ Strengths

  • $19 cloud-native IoT from day one: TLS-secured Particle Device Cloud built into firmware — Particle.publish/subscribe, Particle.variable, Particle.function with zero networking code (datasheet example; Cloud API reference).
  • True OTA firmware updates over Wi-Fi (and over cellular on Electron), backed by a dedicated 128 KB OTA backup flash region (datasheet memory map).
  • Soft AP Wi-Fi setup (vs. Smart Config on the older Core) (datasheet; CNX 2014 comparison table).
  • Breadboard-friendly 0.1"-pitch form factor; same PCB can be SMT'd via castellations; open-source hardware design (datasheet, Overview).
  • Device identity & security in hardware: per-device key pair + server public key stored in the DCT, claimed-device ownership model (datasheet DCT layout; Cloud API OAuth2 docs).
  • Peripheral breadth unusual for 2014 at $19: CAN bus, 2× DAC, I2S, JTAG exposed, VBAT, WKP wake pin, U.FL antenna option (datasheet; CNX 2014 "adds DAC and CAN interface" vs Core).
  • RGB LED status system encoding connection state (breathing cyan = online, etc.).
  • Family breadth: Electron cellular sibling — same STM32F205 @120 MHz + u-blox SARA U-series (3G) or G-series (2G) modem, nano-SIM, u.FL — brought cellular to the same Wiring/cloud platform (CNX, search results); P0/P1/P2 modules for product integration.
  • LGPLv3 Device OS explicitly friendly to closed user firmware (device-os README LICENSE FAQ).
  • Successor: Photon 2 (2023) — Realtek RTL8721DM Cortex-M33 @200 MHz, dual-band Wi-Fi + BLE 5, Feather form factor, $17.95 (CNX 2023).

− Weaknesses

  • PWM pin aliasing: PWM timers are duplicated on A5/D2 and A4/D3 — those pairs cannot run independent PWM simultaneously (7 independent outputs, not 9) (datasheet, PWM note [3]).
  • USB cable brown-outs: Particle explicitly warns that poor/high-resistance USB cables cause input voltage sag during Wi-Fi TX/RX peaks → "system brown out or intermittent operation"; supply must source ~1 A (datasheet, Power).
  • VIN voltage transients on long wires: with ceramic input caps and long supply leads, load steps can induce damaging spikes at VIN; datasheet recommends a 5.1 V zener or extra electrolytic capacitance (datasheet, Power warning — Richtek/Linear AN-88 note).
  • 3V3 pin is weak: only ~100 mA overhead for external circuitry (datasheet, Power).
  • Coexistence pads are dead hardware: the three gold pads near A3 for a Bluetooth coexistence interface were never supported by the WICED software on the P0 and "cannot be used" (datasheet, External coexistence interface).
  • OTA stall on flaky Wi-Fi: users report devices stuck in magenta (no-cloud) after an OTA attempt over a poor connection (community,
  • P1 "green LED" regression: users were told to roll Device OS back to 2.1 "because of the green-led problem" while preparing P1 EOL (community,
  • Unit-to-unit sleep-current variance: documented case of three identical Photons where one drained a battery in 1 day vs 30 days (community,
  • Legacy endpoint churn: api.spark.io was shut down (EOL notice), breaking old Photon fleets' integrations (community announcement,
  • Firmware-support tail risk: only Device OS 2.x LTS remains under Extended Support & Maintenance; 1.x and 3.x are past end-of-support (Photon datasheet, Device OS Support).
  • Retour d'expérience expert expert — expert-microcontroleur
    • Retour d'experience sur la Photon après quelques mois. La simplicite du cloud Particle est reelle, le setup Soft AP fonctionne bien et l'architecture STM32F205 @120MHz offre une bonne puissance de calcul pour ce prix. Les peripheriques comme le CAN et les 2 DAC sont rares a ce niveau. Attention tou… — expert-microcontroleur
    • Merci pour ces precisions. Je suis en train de prototyper un petit objet connecté et je bute sur un problème de consommation en veille. J'ai lu dans la datasheet une valeur de ~80 microampere en deep-sleep, mais sur mon premier exemplaire, la batterie se vide en 1 jour alors que sur deux autres ide… — maker-debutant-42
    • Le problème de variance de consommation de sommeil est documente par d'autres, comme le montre le thread sur le forum officiel ou trois Photons avaient des comportements totalement differents. Cela peut venir de composants de la chaîne d'alimentation ou de la carte elle-même. Verifie aussi que tu n… — tech-sauvage

Community feedback and projects

Content not available yet.

  • PWM pin aliasing: PWM timers are duplicated on A5/D2 and A4/D3 — those pairs cannot run independent PWM simultaneously (7 independent outputs, not 9) (datasheet, PWM note [3]).
  • USB cable brown-outs: Particle explicitly warns that poor/high-resistance USB cables cause input voltage sag during Wi-Fi TX/RX peaks → "system brown out or intermittent operation"; supply must source ~1 A (datasheet, Power).
  • VIN voltage transients on long wires: with ceramic input caps and long supply leads, load steps can induce damaging spikes at VIN; datasheet recommends a 5.1 V zener or extra electrolytic capacitance (datasheet, Power warning — Richtek/Linear AN-88 note).
  • 3V3 pin is weak: only ~100 mA overhead for external circuitry (datasheet, Power).
  • Coexistence pads are dead hardware: the three gold pads near A3 for a Bluetooth coexistence interface were never supported by the WICED software on the P0 and "cannot be used" (datasheet, External coexistence interface).
  • OTA stall on flaky Wi-Fi: users report devices stuck in magenta (no-cloud) after an OTA attempt over a poor connection (community,
  • P1 "green LED" regression: users were told to roll Device OS back to 2.1 "because of the green-led problem" while preparing P1 EOL (community,
  • Unit-to-unit sleep-current variance: documented case of three identical Photons where one drained a battery in 1 day vs 30 days (community,
  • Legacy endpoint churn: api.spark.io was shut down (EOL notice), breaking old Photon fleets' integrations (community announcement,
  • Firmware-support tail risk: only Device OS 2.x LTS remains under Extended Support & Maintenance; 1.x and 3.x are past end-of-support (Photon datasheet, Device OS Support).
  • Faire clignoter la LED D7 du Photon debutant Schéma : IMG-particle-photon-debutant-1-photon-clignotement-led.svg — Photon sur breadboard, LED jaune D7 et câble micro-USB mis en évidence
  • Bouton MODE et console série debutant Schéma : IMG-particle-photon-debutant-2-photon-bouton-console.svg — Photon avec les boutons SETUP (MODE) et RESET annotés et le câble USB vers l'ordinateur
  • Lire un capteur analogique sur l'ADC 12 bits debutant Schéma : IMG-particle-photon-debutant-3-photon-capteur-adc.svg — potentiomètre relié à A0 du Photon (3,3 V, broche centrale sur A0, GND) pour lecture ADC
  • Se connecter au Wi-Fi et publier des événements cloud intermediaire Schéma : IMG-particle-photon-intermediaire-1-photon-wifi-publish.svg — Photon connecté en Wi-Fi au Particle Cloud via un routeur, événements publish diffusés vers d'autres appareils
  • Commander une LED à distance avec Particle.function intermediaire Schéma : IMG-particle-photon-intermediaire-2-photon-fonction-distance.svg — appel REST POST vers api.particle.io déclenchant la fonction led du Photon qui allume D7
  • Variables cloud et intégration HTTP intermediaire Schéma : IMG-particle-photon-intermediaire-3-photon-variables-hook.svg — variables sensor et status exposées par le Photon, interrogées par un script Python via l'API REST
  • Sommeil profond et réveil sur broche WKP avance Schéma : IMG-particle-photon-avance-1-photon-sommeil-reveil.svg — Photon sur batterie avec la broche WKP reliée à un interrupteur magnétique et l'RTC de sauvegarde
  • Mises à jour OTA et sauvetage par USB DFU avance Schéma : IMG-particle-photon-avance-2-photon-ota-dfu.svg — deux chemins de flash du Photon : OTA par le cloud vers la zone de sauvegarde 128 Ko, et USB DFU en bootloader
  • Build local avec Device OS, ARM GCC et Particle CLI avance Schéma : IMG-particle-photon-avance-3-photon-build-local.svg — chaîne de build locale : sources C++, make et ARM GCC du dépôt device-os produisant firmware.bin flashé par Particle CLI

Code library — examples written for this board

  • clignotante.ino Arduino

    The cloud-flavored blink: LED D7 blinks and two variables expose the state and counter to the Particle API. From the dashboard or curl, the board becomes remotely queryable with no extra network code.

  • bouton-evenement.ino Arduino

    Each press publishes a JSON event to the Particle cloud, readable by other boards (subscribers) or a webhook. The debounce wiring matches bare Arduino: the framework just adds the publish layer.

  • fonction-distance.ino Arduino

    Particle.function turns a plain handler into a remote API: the cloud calls piloter() with an argument string and the LED obeys. It is the base brick for driving the board from a web button, IFTTT or …

  • capteur-dht.ino Arduino

    The DHT11 sensor delivers temperature and humidity, published to the cloud every 30 s as a private event. The pace respects the Particle rate limit and the battery; the JSON fits in 64 bytes.

  • ruban-neopixel.ino Arduino

    A locally animated NeoPixel strip whose pattern changes remotely through a plain Particle.subscribe. It shows the Particle event model: the board acts alone yet stays drivable from any other device o…

  • pwm-respiration.ino Arduino

    A PWM LED breathes gently toward a target brightness changed remotely via Particle.function. The exponential smoothing avoids hard jumps, and the sinusoidal beat gives a lively look.

  • veille-cloud.ino Arduino

    SEMI_AUTOMATIC mode takes back control of the cloud link: the script blinks fast when the cloud is lost, slow when fine, and retries every minute. The deployment reflex for a battery board or moody W…

  • servo-cloud.ino Arduino

    The servo turns with a plain cloud call (Particle.function "tourner") and its position stays readable as a variable. The return-to-center routine after two minutes shows how to give a connected actua…

  • buzzer-alarme.ino Arduino

    A cloud event "alarme" triggers a two-tone siren on a passive buzzer, and "off" stops it. The sound pattern is non-blocking (tone with duration + 200 ms step), so the alarm stays drivable while sound…

  • sommeil-basse-consommation.ino Arduino

    The battery survival cycle: wake, DHT reading, cloud publish, then 60 s deep sleep with the radio off. Restarting each cycle simplifies the firmware at the cost of a cloud reconnect — the classic coi…

Examples and repos found online