When you hear the term Internet of Things the first image that comes to mind is, well, a lot of things talking over TCP/IP, maybe using WiFi or god forbid Ethernet. But upon closer examination it seems that Bluetooth is crashing the IoT party. This was driven home for me when my girlfriend gave me a FitBit Flex. For those unfamiliar, it is a tiny capsule of electronics that goes onto an inconspicuous wristband. It can help you track your activity and your sleep. Its accuracy and efficacy is probably fodder for another discussion. But it provides gratifying feedback.
FitBit has done some very clever things. It is dead simple to use, and it links directly to your phone or PC via a small dongle they provide. The real service goes through their website, where your data is aggregated and viewable. Though your phone can show you this info, the app must be signed into their site to work properly. So the FitBit is clearly a ‘thing’. And the internet is involved, but this device relies heavily on Bluetooth Smart, formerly BLE. Thankfully the Bluetooth SIG decided to get away from 3 letter acronyms for this technology.
Being a bit of a hardware hacker I was immediately curious about what was inside. Fortunately ifixit.com posted a teardown showing the device’s insides. It’s mostly what you’d expect: LiPo battery, ST’s ST32L151C6 ARM cortex M3, Nordic Semiconductor’s nRF8001 Bluetooth chip, an accelerometer, haptic feedback device and LEDs, etc.
Space is clearly at a premium. The whole thing is very compact and it looks like lots of 0402 and smaller SMT devices are crammed in. After seeing this I researched Bluetooth chips a bit. The growing trend is for the Bluetooth radio to be combined with the MCU. This is a very interesting development. Of course you need a software stack to run the radio, and certainly there will be application code for whatever the ‘thing’ is going to be doing. In one fell swoop you can a single device that has most everything you need to build a ‘thing’. You can use I2C to read sensors, you have GPIO’s to operate LEDs or other output devices. And, it can talk to your phone or computer!
Each company has a different name for it: Bluetooth MCU, Bluetooth SOC, etc. But now processor choice is becoming an important part of Bluetooth chip selection. And there are definitely different camps. TI unsurprisingly uses the 8051. Nordic uses ARM – mostly Cortex MO.Broadcom also uses ARM and you can get a Cortex M3. CSR is using something called Xap. And Intel seems to not have one yet. Witness that their Edison board has a separate WiFi/ Bluetooth combo chip. If they do have one it is not easy to find on their website. But when they do have one, I expect it will be Quark or Atom based.
So why did FitBit use a separate radio and MCU? They could have saved a lot of area on their very small board. I can think of a few reasons. Perhaps the application team and the RF team were separate and did not coordinate, as was suggest in an online interview I read recently. Or perhaps they needed the compute power of the Cortex M3 and when they were doing development the Broadcom chip was not available. FitBit is quite loyal to Nordic. Maybe they did not want to switch radios. They certainly have switched processors from product to product. Their initial products used a Freescale ARM core, instead of the ST ARM chip in the newer Flex. Interestingly though they use the TI Bluetooth SOC with an 8051 MCU for their PC dongle.
It will be interesting to see what comes in future products from the combining of microprocessors and radios in one chip. It is already making ripples in the maker community and allowing much easier product development and prototyping in small footprints.