Hands on with the Light Blue Bean

Arduino Technology
Hands on with the Light Blue Bean
The Light Blue Bean from Punch Through Design.
The Light Blue Bean from Punch Through Design.

We took a look at Punch Through Design’s Light Blue Bean back when the board was called the “Cortado” and Punch Through had just opened its doors for pre-orders. However with the board now shipping to pre-order customers, and goingย on general sale at the end of the month, it’s time to take proper look at the final production hardware.

Punch Through was kind enough to send me four Beans for evaluation. The board I bought with my own money is apparently sitting on my desk back home, unfortunatelyย I’m currently a few thousand miles away in New York for this year’s ITP Camp.

The Light Blue Bean is a newย Arduinoย compatible board with built-inย Bluetooth LEย support, and while that isn’t a new idea, the Bean does something different than the other Bluetooth LE enabled Arduino clones I’ve seen so farโ€”it lets you upload your code to the board wirelessly… look ‘ma, no wires!

Although the boards are supposed toย ship with the battery in place so thatโ€”asย long as you download their app to your phone ahead of timeโ€”youโ€™ll get a push notification when the boardย arrives at your door, mine didn’t. When I opened the boxes there was a ‘remove before flight’ style plastic separator between the battery and the board. However I’m putting this down to the unorthodox method I obtained them rather than any change in policy.

So after pulling the ‘remove before flight’ tab I waited a couple of minutes, sure enough the Bean was discovered by the app and the promised local push notification turned up on my phone.ย Tapping on the notification opened theย Light Blue app and allowed me to pick the Bean out of the list of nearby Bluetooth LE devices, which dropped me into a custom service view for the Bean.

The Light Blue app discovering a new Bean (left), showing the Bean in the list of nearby devices (middle), and the Bean in the 'Service View' inside the app (right).
The Light Blue app discovering a new Bean (left), showing the Bean in the list of nearby devices (middle), and the Bean in the ‘Service View’ inside the app (right).

The board hasย 8 digital I/O pinsโ€”2 of which can be used as analog inputsโ€”an RGB LED, and a 3 axis accelerometer, and the app allowed me both toย control the onboard RGB LED directly, and see the accelerometer values and the status of the digital and analog pins of the Bean.

A pin out diagram for the Light Blue Bean (credit: Punch Through Design)
A pin out diagram for the Light Blue Bean (credit: Punch Through Design)

Tapping on ‘Options’ in the upper right hand corner allowed me to drop out of the custom view back into the ‘raw’ view that the Light Blue app normally shows when connected to a random Bluetooth LE device showing the available services and characteristics of the device. All in all, it’s a really nice out-of-the-box experience.

Taking the Bean of of its box.
Not even all the way out of its box, and yet I can control the onboard RGB LED from the Light Blue app.

Unfortunately the rest of myย setup experience wasn’t entirely hitch free.

Since I wanted to test out the Bean I decided to solder some headers onto the board so I could easily get access to the digital, analog, GNDย and VCC pins. However while soldering theย first of the Beans I’d pulledย out of its box, one of the SMD solder joints holding the coin cell battery compartment to the back of the board lifted, presumably due to heat that I’d applied to the board during soldering.

Wondering if this was going to be a one offโ€”or something that might happen a lotโ€”I pulled theย other three boards out of their boxes and heated the boards gently with the iron. The same joint, curiously the one furthest from the prototyping area, popped on one moreย out of my three remaining of theย boards. So while this isย smallย number statistics and therefore horribly unreliableโ€”a sample size of four is anecdotal at bestโ€”this is something you should perhaps beย watching out for if you’re playing with the board.

However if it does happen to you, don’t panic. Soldering the substantial SMD joint back in place isย fairly trivial. Just bead up a little solder on the iron, push the battery holder back into place, and lay the iron across the joint. It should drop back into place easily, and if you’ve got too much solder on the joint afterwards you can always use some solder wick to lift the excess.

However it did leave me somewhat unsure about whether my new Bean was going to be working okay. So I brought upย the Light Blue app again on my phone and jumpered a wire from the GND pin across to one of the digital pinsโ€”and the pin status dropped immediately toย LOW in the app. Repeatedly removing and replacing the wire in the other pins proved that everything was working.

Digital pin 3 connected to GND on the Bean.
Digital pin 3 connected to GND on the Bean in the Light Blue app, note that the Light Blue app is telling us that this pin has been pulled LOW.

Now I was sure my Bean was still working, the next step was to get some of my own code onto the Bean. Unsurprisingly perhaps, this isn’t asย easy an out of the box experience as it might be in the future.

Punch Through have a step-by-step walkthrough of what you need to do to get your Bean up and working. First you need to download and install the Arduino 1.0.5 development environmentโ€”if you’ve moved to the 1.5.* branch you’re going to have download a secondย copy of the environmentโ€”and then install both the Teensyduino software and Punch Through’s ownย Bean Loader. Only once you’ve installed all three pieces, and restarted the development environment, will the Light Blue Bean show up in your boards menu.

Loading up one of the example sketches in the development environment and selecting the ‘LightBlue Bean’ from the pullย down menu I hit the ‘Verify’ button which,ย according to Punch Through’s instructions, should open the Bean Loader interface.ย However at least for me, that wasn’t the case.

While the code apparently compiled without a problem, my development environment couldn’t communicate with the Teensy Loader.

The Arduino IDE having problems communicating with the Teensy Loader.
The Arduino IDE having problems communicating with the Teensy Loader.

I tried the obvious things, uninstalling, reinstalling. Didn’t seem to help, and it looksย like it might be tied to my operating system revision. My main day-to-day Mac is still running OS X 10.8.5, and that might well be the problem. Almost certainly the problem in fact, as after poking around the files installed by the Bean Loader package file, it seems that the Bean Loader app isย 10.9 only.

The Bean Loader application is compatible with OS X 10.9 'Mavericks' only.
The Bean Loader application is compatible with OS X 10.9 ‘Mavericks’ only.

Either Punch Through have been careless when building the application, or to do it’s magic the Bean Loader needs a feature that only appeared in Mavericks. Either way, and even if the source code would build on earlierย versions of the operating system,ย the binary is certainly compiled for 10.9 only and won’t work on earlierย versions of OS X.

Unlike iOS where most people upgrade to the latest version of the operating system fairly quickly, the same really isn’t true for OS X. Despite being a year old now, Mavericks is only just now climbing past the 60% installation mark. So that’s an curiousย limitation if it’s not really necessary, and it doesn’t look like the other people that have run in to it are very happy.

In any case, to get my own code on the the Bean I’d have to upgrade to 10.9. Which isn’t something I’m willing to do three and half thousand miles from home. I have good backups, but they’re in the cloud, and getting to them from here if it all went wrong would be… interesting?

But hang on, wasn’t one of the features of the Bean the ability to upload code directly from your iPad? Surely I could just get out my iPad and push code from there?

The iPad App
Programming the Light Blue Beanย from the iPad.

Unfortunately not quite yet as the current Light Blue app doesn’t, yet, have the ability to load sketches onto the Bean. It’s promised for the next release. After which Punch Through will start working on cross-platform support with Android and Windows 8 apps, so if you don’t have a Mac running the latest version of OS X, this is not the time to go out and pick up some Beans.

I’ve asked Punch Through for a comment on the compatibility issues I faced, but at the time of going to press I haven’t heard back from them.

So for now at least this is as far as I’m going with the Bean, however I was interested enough to dig a little deeper into how the Bean presents itself to the world even though I can’t, yet, do anything with it.

One of the things that’s become really apparent to me is that the maker community might well beย approaching Bluetooth LE in the wrong way. Most of the popular break out boards for the two competingย Bluetooth LE chip setsโ€”which come from Nordic and Texas Instrumentsโ€”are presenting serial interfaces. Which is fine as far as it goes, but doesn’t really take into account how Bluetooth LE works.

Imagine a example where you want to control an LED connected to an Arduino board from our phone via Bluetooth LE. If weย use a serial connectionย that connection will be open continuously, but itโ€™s only going to get used periodicallyโ€”when we send a 1 or a 0 over the air to the Arduino board to turn the LED on, or off.

As an alternative, you can heavily reduce the power consumption of your project by using Bluetooth LE like itโ€™s supposed to be used andย implementing a custom serviceย for the radio connected to the Arduino to advertise its ability to turn the LED on or off. Effectively we create a customย serviceย that hasย characteristic which we can both read, letting us know if the LED is on or off,ย or written toโ€”allowing us to control the LED. If we want to get more complicated we could alsoย mark the characteristic for notify, which means that we’ll get told when the state of the LED changes.

Interestingly, the Bean is one of the first to implement more than just a serial connection. In addition to the serial, the Bean hasย five โ€œscratchโ€ characteristics that can be used toย read and write arbitrary dataโ€”although not as yet notifyโ€”to the Bluetooth LE radio on the Bean.

A systems view of the Light Blue Bean (credit: Punch Through Design)
A systems view of the Light Blue Bean (credit: Punch Through Design)

While its not true custom servicesโ€”it’s getting closeโ€”closer in fact than most of the competitors, and Punch Through have told me that they’re “…working on allowing custom profiles.”

To access these scratch characteristics, and the onboard RGB LED andย accelerometer, from the Arduino Punch Through has provided an Arduino Bean Libraryย that allows you to talk back to the radio moduleโ€”their LBM313 module which is based around the TI CC2540โ€”that serves as the hub of the Bean.

Interestingly because of this architecture, that puts the LBM313 module in the middle, the Bean library can also include a Bean.sleep() function which you can use to put the power hungry ATmega328pโ€”the Arduinoโ€”to sleep. This is a stand out feature for the Bean, something that I haven’t seen elsewhere and could be a really interesting and valuable addition, used correctly. Of course used incorrectly, it could mean that communicating with the Bean becomesย somewhat difficult.

Conclusion

Despite the difficulties I had getting, or rather failing to get, the Bean working I’m impressed with the Bean, or at least with its potential. Because it does show a lot of potential. The hardware architecture is well thought through, and the Arduino Bean library looks useful and well thought out. But right now the Bean Loader compatibility issuesโ€”and the lack of promised cross-platform supportโ€”are badly letting down what could be a stand out product.

Tagged

Alasdair Allan is a scientist, author, hacker and tinkerer, who is spending a lot of his time thinking about the Internet of Things. In the past he has mesh networked the Moscone Center, caused a U.S. Senate hearing, and contributed to the detection of what wasโ€”at the timeโ€”the most distant object yet discovered.

View more articles by Alasdair Allan
Discuss this article with the rest of the community on our Discord server!

ADVERTISEMENT

FEEDBACK