The Particle Photon is my latest hardware crush. $20-30ish USD gets you a powerful ARM Cortex M3 development board with an integrated Broadcom WiFi chip in a module about the size of an Arduino Pro.
And it’s more than just a nifty piece of cost-effective hardware. It’s backed up by Particle’s cloud IDE – Particle Build – which allows for hassle-free compiling and over-the-air programmability. Internetting my projects has never been so convenient.
That said, this whole “cloud” thing isn’t for everybody. It’s totally natural to be suspicious of storing your hard-programmed work on someone else’s server. Or relying on a far-off toolchain to compile and debug your code. Fortunately, for those of us hesitant to rely on Particle’s Cloud, the Photon is open-source, ARM-based, and USB-programmable. So you can combine ARM-GCC and your favorite IDE to set up a development environment of your own, then start tweaking the firmware to your heart’s desire.
The Photon has a built in device firmware upgrade (DFU) USB bootloader. After placing it in DFU mode, you can use dfu-util to quickly – and locally – flash your application code. Or! If you want to compile code locally, but flash code remotely, you can use Particle’s command-line interface tool – Particle CLI – to send your compiled firmware over-the-air to any Photon.
There’s also a middle-ground between Particle Build and a custom, ARM-GCC IDE: Particle Dev. Particle Dev is a standalone IDE based on GitHub Atom. It allows you to to store code locally, but still maintains the luxury of an online, “just works” toolchain, and easy remote-programmability. Dev isn’t necessarily an offline IDE – you can’t compile without being connected to the cloud – but it does give you a more customizeable interface.
There’s a development environment for everybody. I find myself switching between the three IDE’s all the time. Am I feeling lazy? Do I just need to blink an LED? Particle Build it is. Am I writing a library to publish on the Build IDE? Sounds like a job for Particle Dev. Debugging I2C timing? To the command-line I go!
|IDE Name||Code storage||Toolchain||Remotely Programmable?|
|Custom GCC||Local||Local||Yes (with Particle CLI)|
I wrote a tutorial to help get anyone started down those three development paths. Check it out!
If the price tag and capabilities of the Photon appeal to you, don’t let the “cloud” buzzword scare you off. Choose your own Photon IDE adventure!