In my last post I went through my initial experience in unboxing, configuring, wiring, and coding for the Raspberry Pi 2. Overall that experience was positive, though I still think that companies like Adafruit need to be aware of the fact that when you sell something labeled a “Starter Kit”, and market it for educators and kids, that shit should work out of the box. There’s absolutely no excuse for shipping outdated SD cards 2 months after the latest version of Raspbian that is required to work with GPIO.

Anyway, next up on my list of Internet of Things experiments was the Spark Core. This thing is mind-blowingly remarkable: It’s a tiny little microcontroller that has a built-in WiFi antenna, but more importantly, it is backed by the Spark Cloud, which allows the device to phone home, be remotely addressable, remotely flashable, and expose its own firmware as a cloud-based API. It makes every single one of my geeky senses tingle.

My unboxing experience was pretty straightforward – I opened the box, saw the tiny microcontroller and it’s accompanying breadboard, and I squealed with joy. I immediately ripped the LEDs and resistors out of the previous Raspberry Pi 2 cobbler prototype and stuck them into the Core’s breadboard.

I then opened up a web browser to start coding the firmware for the Core. That’s right, the core can be flashed remotely over the webfrom anywhere, using a browser. You really need to sit back and take a moment to let that concept marinate a minute. This ain’t your old fashioned microcontroller where you have to plug it to a special EPROM burner to flash it. This thing is absolute genius. It is a thing of beauty, and technologically badass.

Using the Wiring programming language (should be familiar to anyone who has written code for an Arduino before), I then wrote a bunch of code to expose functions to the cloud that turn on and off a red LED and a green LED. The picture below shows the Spark Core and its breadboard with my LEDs off:

Spark Core with LEDs Off

Spark Core with LEDs Off

And this shows the same thing after I have used my iPhone to send the secure HTTP messages that manipulate my core via the cloud:

Spark Core with LEDs On

Spark Core with LEDs On

To recap: From unboxing to the point where I could control my Spark Core over the web, from anywhere, to remotely manipulate LEDs via the cloud… took me about an hour and a half. There are no words to describe how freaking amazing that is.

I can’t wait to start messing with sensors and inputs and branch out from just LED control!