Particle Photon

Spark Devices / Spark.ioMCU 8-32 bitarduino

⚡ L’essentiel en 60 secondes

La carte Particle Photon, initialement lancée en novembre 2014 par la société Spark (qui a ensuite pris le nom de Particle), s'est imposée comme une référence dans le domaine de l'Internet des objets grâce à son approche résolument orientée vers le cloud. Vendue à l'époque au prix de 19 dollars, cette petite carte de développement se distingue par sa capacité à connecter un microcontrôleur à Internet sans nécessiter de compétences avancées en réseau. Elle repose sur une architecture hybride qui combine deux puces distinctes : un microcontrôleur principal STM32F205, basé sur un cœur ARM Cortex-M3 fonctionnant à 120 MHz, et une puce Wi-Fi Broadcom BCM43362. Il est important de noter que, contrairement à certaines descriptions marketing anciennes, le cœur de calcul de l'application n'est pas la puce Wi-Fi, mais bien le microcontrôleur STM32. Cette configuration permet à la carte de gérer les tâches logiques locales tout en déléguant la communication sans fil à la puce dédiée, assurant ainsi une stabilité et une efficacité énergétique optimales pour les objets connectés.

Sur le plan matériel, la Photon est conçue pour être accessible aux débutants comme aux ingénieurs confirmés. Elle est « breadboard-friendly », ce qui signifie qu'elle est équipée de broches au pas standard de 0,1 pouce, permettant de l'insérer directement sur une plaque de prototypage sans soudure. Pour les projets industriels ou les produits finis, il existe également des modules sans broches, dotés de bords festonnés, destinés à être soudés directement sur des circuits imprimés. La carte offre une richesse de périphériques inhabituelle pour son prix et son époque : elle dispose de 18 broches d'entrée/sortie à usage mixte, dont huit entrées analogiques à 12 bits pour lire des capteurs, et deux sorties analogiques (DAC) pour générer des signaux continus. Elle intègre également des interfaces de communication variées telles que l'I2C, le SPI, l'I2S pour l'audio, et même un bus CAN, souvent utilisé dans l'automobile. La gestion de l'alimentation est flexible, acceptant une tension de 3,6 à 5,5 volts via le port micro-USB ou une broche dédiée, avec un régulateur interne fournissant 3,3 volts. Une attention particulière doit être portée à la consommation : bien que la carte consomme environ 80 milliampères en fonctionnement Wi-Fi actif, elle peut descendre à seulement 80 microampères en mode veille profonde, un atout majeur pour les appareils fonctionnant sur batterie.

L'un des grands atouts de la Photon réside dans son système d'exploitation et son écosystème logiciel. Contrairement aux ordinateurs monocartes comme le Raspberry Pi, la Photon ne fait pas tourner Linux. Elle exécute un système d'exploitation temps réel léger, FreeRTOS, couplé au « Device OS » de Particle. Ce dernier est une couche logicielle qui abstrait la complexité des connexions réseau. Pour le développeur, cela se traduit par une API de type Wiring, très similaire à celle d'Arduino, rendant la prise en main intuitive. Le code utilisateur, écrit en C ou C++, est séparé du système de base, ce qui permet des mises à jour du firmware par-dessus le réseau (OTA) sans toucher au cœur du système. La sécurité est intégrée dès la conception : chaque carte possède une paire de clés cryptographiques uniques stockées dans une mémoire dédiée, garantissant que les communications avec le cloud Particle sont chiffrées et authentifiées. Le cloud Particle permet de définir des variables accessibles à distance, d'appeler des fonctions sur la carte depuis un serveur web, ou encore de publier des événements que d'autres appareils peuvent écouter, le tout sans écrire une seule ligne de code réseau complexe.

La famille Photon s'est déclinée en plusieurs variantes pour répondre à différents besoins. Le module P0 est le cœur de la carte de développement, tandis que le module P1, plus grand, ajoutait une mémoire flash externe et une antenne PCB intégrée, bien qu'il ait été officiellement déprécié au profit du module P2 plus récent. Il existe également une variante industrielle, la série E, bien que les spécifications exactes de cette gamme restent parfois floues dans la documentation publique. Pour les projets nécessitant une connectivité cellulaire plutôt que Wi-Fi, la société a proposé la carte Electron, qui partage la même architecture logicielle et matérielle de base mais remplace la puce Wi-Fi par un modem cellulaire. Cette cohérence permet aux développeurs de passer facilement du Wi-Fi au cellulaire sans réécrire leur application.

Malgré sa popularité, la Photon présente quelques limitations et pièges connus qu'il est utile de connaître. Par exemple, certaines broches partagées pour la modulation de largeur d'impulsion (PWM) ne peuvent pas fonctionner indépendamment en même temps, ce qui réduit le nombre réel de sorties PWM indépendantes à sept au lieu de neuf. De plus, l'alimentation par USB peut être sensible aux câbles de mauvaise qualité, provoquant des baisses de tension et des redémarrages intempestifs lors des pics de consommation du Wi-Fi. Il est recommandé d'utiliser un câble de bonne qualité ou une alimentation externe stable. La documentation technique signale également que les pads de coexistence Bluetooth présents sur la carte ne sont pas fonctionnels avec le logiciel fourni. Enfin, bien que la carte soit toujours considérée comme mature et supportée, le fabricant a clarifié que seule la branche 2.x du Device OS est maintenue à long terme, les versions plus anciennes étant en fin de support. La Photon reste donc un choix pertinent pour les projets éducatifs, les prototypes et les déploiements IoT nécessitant une connexion Wi-Fi fiable et une intégration cloud simplifiée, tout en nécessitant une attention aux détails matériels pour une exploitation robuste.

Forum (1 sujet) →

AttrSpecsvérifié
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.? non vérifié
application_mcuSTM32F205RGY6, single-core ARM Cortex-M3 @ 120 MHz (Photon datasheet). No GPU (MCU-class board).? non vérifié
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).? non vérifié
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]).? non vérifié
debugJTAG on D3–D7, SWD on D6/D7; standard 20-pin 0.1" JTAG header supported (datasheet, JTAG and SWD).? non vérifié
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).? non vérifié
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).? non vérifié
consumptiontypical ~80 mA average @5 V with Wi-Fi on; deep-sleep quiescent ~80 µA (datasheet, Power).? non vérifié
miscRGB status LED (external drive provided), Setup + Reset buttons, ~40 µA-class RTC backup domain (datasheet).? non vérifié
certificationsFCC (US), CE (EU), ISED (Canada) (datasheet, Features).? non vérifié
operating_temperature? non vérifié
board_dimensions? non vérifié
  • Fabricant : Spark Devices / Spark.io — renommé Particle (Particle Industries / Particle.io) après le rebranding de 2015. La rétrospective 2023 de Particle note elle-même que « le marché et le nom de l'entreprise ont changé depuis » le lancement original. (CNX Software,
  • Annoncée : 12 novembre 2014 (« Introducing the $19 Photon », blog.spark.io, tel que cité dans l'article d'annonce de CNX Software du 14 novembre 2014 : Précommandes ouvertes à 19 $ + frais de port, avec une livraison prévue pour mars 2015 (même article CNX).
  • Prix de lancement : 19 $ US pour la carte Photon ; le module P0 nu était à 10 $ (CNX Software, article 2014 ci-dessus).
  • Variantes : - Photon carte de développement, deux formats physiques : avec broches (enfichable sur breadboard) ou sans broches avec bords castellisés pour montage CMS (datasheet Particle, Numéros de modèle PHOTONH / PHOTONNOH (même datasheet). - P0 module (le module Wi-Fi au format ongle qui est au cœur de la Photon) (datasheet + CNX 2014). - P1 module : « le grand frère du PØ » — ajoute une flash SPI externe de 1 Mo embarquée (MX25L8006E), antenne PCB intégrée + connecteur U.FL + commutateur RF, 25 GPIO (datasheet P1, Le P1 a été officiellement déprécié ; le remplacement recommandé est le P2 (même page). - Photon E / P1 E variantes de qualité industrielle : > t successeur Photon 2 / P2 (2023, Realtek RTL8721DM) (article CNX 2023 ci-dessus).
  • Statut (2026): Gamme mature/legacy, aucun avis d'obsolescence (EOL) formel pour la Photon trouvé. - 2018, PDG de Particle : « nous n'avons aucun plan actuel pour discontinuer la Photon ou l'Electron » ( - 2020, équipe Particle : la Photon est « actuellement dans le cycle de vie Generally Available "GA" » ( - 2022, équipe Particle : « nous préparons la fin de vie du p1 » ( ; la datasheet du P1 indique désormais « The P1 has been deprecated. » - Consignes Device OS : utiliser la ligne 2.x LTS ; les versions plus anciennes et la branche 3.x sont « past the end-of-support date » ; seule la 2.x LTS reste dans la fenêtre de Support & Maintenance étendu (datasheet Photon, section Device OS Support). - Au 2026-10-13, redirige vers la page d'accueil de la boutique (la page produit d'origine de la Photon n'existe plus ; la boutique met en avant la Photon 2 et la Tachyon). >

+ Points forts

  • IoT cloud-native à 19 $ dès le premier jour : Particle Device Cloud sécurisé en TLS intégré au firmware — Particle.publish/subscribe, Particle.variable, Particle.function sans aucune ligne de code réseau (exemple de la datasheet ; référence Cloud API).
  • Véritables mises à jour firmware OTA par Wi-Fi (et par cellulaire sur l'Electron), appuyées par une région flash dédiée de 128 Ko pour le backup OTA (memory map de la datasheet).
  • Configuration Wi-Fi en Soft AP (vs. Smart Config sur l'ancienne Core) (datasheet ; tableau comparatif CNX 2014).
  • Compatible breadboard au format 0,1" de pas ; le même PCB peut être monté en CMS grâce aux castellations ; conception matérielle open source (datasheet, Overview).
  • Identité et sécurité matérielles de l'appareil : paire de clés par appareil + clé publique du serveur stockées dans le DCT, modèle de propriété par claim d'appareil (DCT layout de la datasheet ; doc OAuth2 des Cloud API).
  • Éventail de périphériques inhabituel en 2014 à 19 $ : bus CAN, 2× DAC, I2S, JTAG exposé, VBAT, broche de réveil WKP, option d'antenne U.FL (datasheet ; CNX 2014 « adds DAC and CAN interface » vs Core).
  • Système de LED RGB de statut encodant l'état de connexion (cyan respiration = en ligne, etc.).
  • Largeur de la famille : variante cellulaire Electron — même STM32F205 @120 MHz + modem u-blox SARA série U (3G) ou G (2G), nano-SIM, u.FL — a apporté le cellulaire à la même plateforme Wiring/cloud (CNX, résultats de recherche ; modules P0/P1/P2 pour l'intégration produit.
  • Device OS sous LGPLv3 explicitement favorable aux firmwares utilisateur propriétaires (FAQ LICENSE du README device-os).
  • Successeur : Photon 2 (2023) — Realtek RTL8721DM Cortex-M33 @200 MHz, Wi-Fi double bande + BLE 5, format Feather, 17,95 $ (CNX 2023).

− Points faibles

  • Aliasage des broches PWM : les timers PWM sont dupliqués sur A5/D2 et A4/D3 — ces paires ne peuvent pas générer de PWM indépendantes simultanément (7 sorties indépendantes, pas 9) (datasheet, note PWM [3]).
  • Brown-outs liés au câble USB : Particle avertit explicitement que les câbles USB de mauvaise qualité/haute résistance provoquent une chute de tension d'entrée pendant les pics d'émission/réception Wi-Fi → « system brown out or intermittent operation » ; l'alimentation doit fournir ~1 A (datasheet, Power).
  • Transitoires de tension sur VIN avec des fils longs : avec des condensateurs céramiques d'entrée et de longues longueurs d'alimentation, des paliers de charge peuvent induire des pointes dommageables sur VIN ; la datasheet recommande un zener 5,1 V ou une capacitance électrolytique supplémentaire (avertissement Power de la datasheet — note Richtek/Linear AN-88).
  • La broche 3V3 est faible : seulement ~100 mA de marge pour une circuiterie externe (datasheet, Power).
  • Les pads de coexistence sont du matériel mort : les trois pads dorés près de A3 prévus pour une interface de coexistence Bluetooth n'ont jamais été pris en charge par le logiciel WICED sur le P0 et « cannot be used » (datasheet, External coexistence interface).
  • OTA bloquée sur Wi-Fi instable : des utilisateurs rapportent des appareils bloqués en magenta (pas de cloud) après une tentative d'OTA sur une mauvaise connexion (communauté,
  • Régression « LED verte » du P1 : des utilisateurs ont reçu pour consigne de revenir à Device OS 2.1 « because of the green-led problem » lors de la préparation de l'EOL du P1 (communauté,
  • Variabilité du courant de veille d'une unité à l'autre : cas documenté de trois Photon identiques dont l'une vidait une batterie en 1 jour contre 30 jours pour les autres (communauté,
  • Obsolescence des endpoints historiques : api.spark.io a été fermé (avis EOL), cassant les intégrations des anciennes flottes de Photon (annonce communautaire,
  • Risque de fin de support firmware : seule la branche Device OS 2.x LTS reste sous Support & Maintenance étendu ; 1.x et 3.x sont passées en fin de support (datasheet Photon, 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

Retours et projets de la communauté

Contenu indisponible pour le moment.

  • Aliasage des broches PWM : les timers PWM sont dupliqués sur A5/D2 et A4/D3 — ces paires ne peuvent pas générer de PWM indépendantes simultanément (7 sorties indépendantes, pas 9) (datasheet, note PWM [3]).
  • Brown-outs liés au câble USB : Particle avertit explicitement que les câbles USB de mauvaise qualité/haute résistance provoquent une chute de tension d'entrée pendant les pics d'émission/réception Wi-Fi → « system brown out or intermittent operation » ; l'alimentation doit fournir ~1 A (datasheet, Power).
  • Transitoires de tension sur VIN avec des fils longs : avec des condensateurs céramiques d'entrée et de longues longueurs d'alimentation, des paliers de charge peuvent induire des pointes dommageables sur VIN ; la datasheet recommande un zener 5,1 V ou une capacitance électrolytique supplémentaire (avertissement Power de la datasheet — note Richtek/Linear AN-88).
  • La broche 3V3 est faible : seulement ~100 mA de marge pour une circuiterie externe (datasheet, Power).
  • Les pads de coexistence sont du matériel mort : les trois pads dorés près de A3 prévus pour une interface de coexistence Bluetooth n'ont jamais été pris en charge par le logiciel WICED sur le P0 et « cannot be used » (datasheet, External coexistence interface).
  • OTA bloquée sur Wi-Fi instable : des utilisateurs rapportent des appareils bloqués en magenta (pas de cloud) après une tentative d'OTA sur une mauvaise connexion (communauté,
  • Régression « LED verte » du P1 : des utilisateurs ont reçu pour consigne de revenir à Device OS 2.1 « because of the green-led problem » lors de la préparation de l'EOL du P1 (communauté,
  • Variabilité du courant de veille d'une unité à l'autre : cas documenté de trois Photon identiques dont l'une vidait une batterie en 1 jour contre 30 jours pour les autres (communauté,
  • Obsolescence des endpoints historiques : api.spark.io a été fermé (avis EOL), cassant les intégrations des anciennes flottes de Photon (annonce communautaire,
  • Risque de fin de support firmware : seule la branche Device OS 2.x LTS reste sous Support & Maintenance étendu ; 1.x et 3.x sont passées en fin de support (datasheet Photon, 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

Bibliothèque de code — exemples écrits pour cette carte

  • clignotante.ino Arduino

    Le blink version cloud : la LED D7 clignote et deux variables exposent l'état et le compteur à l'API Particle. Depuis le tableau de bord ou curl, la carte devient interrogeable à distance sans code r…

  • bouton-evenement.ino Arduino

    Chaque appui publie un événement JSON vers le cloud Particle, consultable par d'autres cartes (abonné) ou par un webhook. Le montage anti-rebond est identique à l'Arduino nu : le framework ajoute jus…

  • fonction-distance.ino Arduino

    Particle.function transforme un simple handler en API distante : le cloud appelle piloter() avec une chaîne d'arguments, la LED obéit. C'est la brique de base pour piloter la carte depuis un bouton w…

  • capteur-dht.ino Arduino

    Le capteur DHT11 fournit température et humidité, publiées vers le cloud toutes les 30 s en événement privé. Le rythme ménage la limite de flux Particle et la batterie ; le JSON tient en 64 octets.

  • ruban-neopixel.ino Arduino

    Un ruban NeoPixel animé localement, dont le motif se change à distance par un simple Particle.subscribe. Illustre le modèle événementiel Particle : la carte agit seule mais reste pilotable depuis n'i…

  • pwm-respiration.ino Arduino

    Une LED PWM respire doucement vers une luminosité cible que l'on change à distance par Particle.function. Le lissage exponentiel évite les sauts brutaux, et le battement sinusoïdal donne un rendu viv…

  • veille-cloud.ino Arduino

    Le mode SEMI_AUTOMATIC reprend la main sur le lien cloud : le script clignote vite quand le nuage est perdu, lentement quand tout va bien, et retente une connexion chaque minute. Le réflexe déploieme…

  • servo-cloud.ino Arduino

    Le servo se tourne par simple appel cloud (Particle.function "tourner") et sa position reste lisible en variable. La routine de retour au centre après deux minutes montre comment donner une autonomie…

  • buzzer-alarme.ino Arduino

    Un événement cloud "alarme" déclenche une sirène deux tons sur buzzer passif, et "off" l'arrête. Le motif sonore est non bloquant (tone avec durée + pas de 200 ms), l'alarme reste donc pilotable pend…

  • sommeil-basse-consommation.ino Arduino

    Le cycle de survie sur batterie : réveil, mesure DHT, publication cloud, puis deep sleep de 60 s radio éteinte. Le redémarrage à chaque cycle simplifie le firmware au prix d'un reconnexion cloud — le…

Exemples et dépôts trouvés en ligne