Over the last few days I have spent some time with the Particle Photon and looking around at the Particle Cloud, the Development Kits, the Documentation and Development Tools. Fundamentally, Particle has built a very ambitious end-to-end cloud development platform. I think that they have everything necessary to built a complete IoT solution into your system. Obviously, I like them because they use a Cypress 43362 WICED WiFi chip as the core of their solution, but the rest is cool as well. Particle also offers a cellular connectivity solution using uBlox, but I didn’t try that. In this article I will give you a brief introduction to all of the components of their ecosystem including:
- Particle Photon WiFi
- Particle Photon Development Kits
- Particle Photon Development Environment
- Particle Photon Support Tools
- Particle Cloud Console
To develop with Particle you write your firmware in C++ with an Arduino library clone (many/most? of the APIs and libraries that you know and love are ported into the system). The libraries also include a bunch of APIs for transferring actions and data to/from the cloud. Once you have written the firmware you can flash you board either directly through the USB port or through the Cloud over-the-air bootloader (which works great)
Particle Photon WiFi
Particle makes two modules, called P0 ($10) and P1, ($12) which you can build into your system. Both are FCC certified modules that use the Cypress 43362 WICED WiFi chip which is 2.4GHz 802.11a/b/g/n paired (unfortunately) with a STM MCU to run WICED & the Photon Environment. Both of the modules are PCB circuit boards with QFN style pads on the bottom that let you solder them into your system. The P0 is smaller (11mm x 12mm) but needs an antenna, and P1 is a bit bigger (28mm x 20mm) but has a PCB Antenna and SMA connector. Here is a picture which I borrowed from the Particle Website. The P0 is on the right, the P1 is in the middle, then on the left is a development kit with the P0 soldered into it.
Particle Photon Development Kits
Photon makes essentially one basic development board (shown above on the left) as well as a bunch of different support boards and package deals. The basic development kit is $19 and has a Photon P0, an antenna, an SMA connector for an external antenna, two buttons (reset and setup), one user LED, a USB programming/power connector and 100 mil center pins with the P0 pins broken out. One very cool feature of the board is that the breakout pins are castellated on the side of the board so that you could solder it directly into your product.
One of the boards that I ended up using was a (now obsolete) SparkFun kit that has a Photon P1 soldered into an Arduino footprint board:
Here is a screenshot of many of the development kit packages you can buy directly from Photon:
Particle Photon Development Environment
Particle offers two integrated development environments, one web based and one computer client based on Atom. Both are approximately Arduino clones… and both work very well.
The web based environment includes a code editor, compiler, over-the-air flash utility. and library utility. Here is screenshot of one of the programs that I was working on.
And the desktop environment, which works on Windows, Mac and Linux, is very well integrated and “feels” just like the web environment. I was amazed that as soon as I installed the tool it was connected to the Particle Cloud and to my devices. I created a very simple blink the led program. After I pressed the lightning bolt… 15 seconds later my board was bootloaded over the air. Here is a screenshot from my Mac.
Particle Photon Support Tools
There are two sets of command line tools that you can use to interact with the Photons, dfu-util and the Particle-cli.
The first is “dfu-util” which I didn’t know anything about until I started using the Photons. DFU-UTIL is a USB bootloader host that allows you to update sections of the Photons firmware. When I took my boards out of the box they had very old system firmware and things were not connecting correctly. I ended up having to download new system firmware and then install it on the boards. The instructions were on this website.
The second tool, called the Particle Command Line Interface is also really cool. Once you install it you can upgrade firmware, send commands, read and write data, call functions etc on your devices.
The bottom line is the documentation is outstanding, something that is a rare and wonderful thing in the business. You can find it on their website. Here is a screenshot of the first page.
An IoT device isn’t worth much unless it is integrated with the cloud. Particle provides a bunch of things in their cloud. In addition they give you the ability to drive data and events into other clouds. With the Particle Cloud you can
- From the cloud, read and write data from devices
- Push and retrieve data from your device to the cloud
- You can manage and provision devices
- You can flash new firmware OTA to your devices
There is a free tier for makers and experiments which includes up to about 25 devices and 250K transactions per month. Beyond that they have several subscription levels. In the screen shot below you can see my two devices (one called “Red-board” and one called “test1”). With this interface I can query the device and run “functions” which are like remote procedure calls.
In the console log you can see all of the events pertaining to your device. In the screenshot below you can see that I changed the state of the button a bunch of times on the “Red-board”. You can also see where the “test1” board was reset and re-attached to the network.
In the next Particle post I will make something…. what? Im not sure yet. But Ill think of something.