Written by Elecia White.
I mentioned earlier how I was looking at different internet platforms for my mice overlords. The goal is to design an internet connected mouse feeding system that a high school student could build from off-the-shelf parts. I’ve been trying to figure out the base platform and came up with two options: the ESP8266-based SparkFun Thing and the Cortex-M3/Broadcom based Particle.io Photon.
Electric Imp probably should have been in consideration as well but their higher price point and closed software system knocked them out in an earlier round. The TI CC3200 Launchpad is another viable option (more comparable with the Thing) but it doesn’t have the ease-of-initial-use focus that these two systems have, relying on traditional compilers and embedded systems development.
I use Windows and have many tools installed. This made the Photon installation very different from Christopher White’s experience on MacOS X. Between being unable to install their command line tool and the primary debugging consisting of different colored blinking lights, the Photon and I did not get off to a good start. I’ve tried to be objective in my comments but it is possible that the initial impression soured my view to the system.
Essential Information
| SparkFun Thing | Particle.io Photon | Notes |
Buy | At Sparkfun: $16 | At Particle.io: $20 |
|
Based on | ESP8266 system on a chip (SoC) | STM32 Cortex-M3 + Broadcom: far more processing power | Photon’s processor is more common and flexible for future changes. The ESP8266 is extremely inexpensive. |
Programming method(s) | Serial port | Over the air, if device is not sleeping Serial, if properly setup | I preferred the Thing’s direct method. The Photon’s OTA doesn’t work consistently (due to sleep) and the Windows installation didn’t work for me. Update: The Thing can be programmed OTA but I didn't test it (look here for more info). |
Primary debug method | Serial port (same as programming) | RGB LED blinks in different patterns/colors Serial port also possible | Thing wins for ease of debugging, at least initially. |
Beginner development environment | Arduino plug in | Online compiler Node.js and command line interface | While Photon was an easy install for OS X, the CLI was impossible for my Windows configuration (other programs were not compatible).Thing’s Arduino plug-in was easy for Windows. |
Set WiFi SSID and key | In downloaded code | Connect to device AP via Smart Phone or command line method | This is a different experience setting. |
Can act as access point? | Yes | Only for configuration of SSID |
|
Powering the Board
| SparkFun Thing | Particle.io Photon | Notes |
Input voltage range | 2.5-6 V | 3.6-5.5 V |
|
LiPo Power | LiPo connector, charger, and 3.3V regulator on board | Suggest battery shield from Sparkfun, includes battery monitoring or Adafruit boost circuit. | Nice to have charger on Thing but either board needs a boost method since I've got a 5V motor to run in my project. |
Output voltage to drive motor (5V) | VIN to GPIO-enabled Adafruit boost circuit | Direct from boost circuit. | It is nice the Thing can turn off the power-consuming boost circuit. |
WiFi current | 200 mA | 175 mA |
|
Nominal run current of bare board, no WiFi | ~75 mA | ~68 mA | See Sparkfun’s power comparison between the two systems. The Thing’s power LED was removed for these tests. |
Sleep current | 77 uA | 128 uA | The Thing is better but both are so low as to not be a factor for me. |
Interacting with the Physical World
| SparkFun Thing | Particle.io Photon | Notes |
GPIOs | 11 Total: SDA, SCL (or SCK) 5 (shared with LED), 0, 4, 13 (or MOSI), 12 (or MISO), XPD (timer expire), ADC (10 bit, max input 1V), TX, RX | 18 Total: D0-7 for 8 digital only, A0-6 for 6 12 bit ADCs (ok as digital), A6/DAC, A7/WKP, TX, RX | My current need is for serial, I2C, wakeup for photo detector, 1 output, 3 inputs for buttons. Either platform works but Photon has more room to grow. |
Available communication ports | 1 I2C, 1 UART, 1 SPI, 1 ADC | 2 SPI, 1 UART, 1 CAN, I2S (sound), 9 PWM, 8 ADC, 2 DAC | Photon wins this and GPIOs. |
Wakeup pins | Wake up from reset pin toggle | Wake up from pin, as though from reset [ref] | For multiple wakeups IOs, will have to use OR gate. Photon can also go into a lighter (more power hungry, 30mA) sleep and wakeup on a different pin from last place of execution. |
Wakeup state | Wakeup from reset, no memory. | Deep sleep, wakeup form reset, no memory. Normal sleep, wakeup from any pin. |
|
Output voltage to drive motor (5V) | VIN to GPIO-enabled Adafruit boost circuit | Direct from boost circuit. | It is nice the Thing may be able to turn off the power-consuming boost circuit. |
Internet of Things
| SparkFun Thing | Particle.io Photon | Notes |
Connects to | WiFi if available; continues local function without WiFi. | Particle.io servers first, does not function without connection to internet and particle.io cloud. Update: Normally, the connects to its servers but it can be put into manual mode so you can control when it does WiFi processing. However, it does not seem to return control to you until it talks to the Particle.io servers. | Photon lost major points in this round though it may be possible to run a local cloud server (noted as not necessarily working in current Particle documentation). |
Target database for project | Phant.io (on sparkfun or local server) | Phant.io | Phant is open source software. We can use the SparkFun servers or run it on a local server. |
How to set mode from server | Thing does HTTP request of JSON object to find mode last set. This is a power expensive and time consuming operation, non-ideal. | Same HTTP operation, probably. Otherwise need web page agent to send data repeatedly while sleeping. | With the devices mainly sleeping, there is no easy way to contact them. Instead, the plan is to have them query a site. |
Support
| SparkFun Thing | Particle.io Photon | Notes |
Advanced development environment | Huge support for different interpreters and tools including GCC | Offline Particle IDE or use GCC [setup] WICED is a library, need to sign up with Broadcom for source | Both platforms are easily extended from their introductory development environments. |
RTOS | FreeRTOS [setup] | FreeRTOS |
|
Ask questions | Large maker community, generally ad hoc though SparkFun supports the Thing | Main support is from Particle.io | Maker community is more varied but sometimes more confusing. |
Open source | Yes | Yes |
|
Summary
| SparkFun Thing | Particle.io Photon |
Summary | easy to a point then really hard, cheap | extensible, easier in non-Windows |
I think I am going to use the Thing for to my project. Its fewer GPIOs may be a problem in the future (but GPIO expanders are cheap and easy). And the ease of use and not requiring a server connection to function will help us get the mice fed quickly.
Top Comments