Written by Elecia White.

 

Sparkfun Thing vs Particle.io PhtoonI 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.