Angel demonstrates working Inertial Measurement Unit

By

angeldemo

It’s been a while since we’ve talked about Angel, and it looks like they’ve made some progress as shown in their latest updates.

Over the past month, the Angel project has posted two videos (1, 2) demonstrating what looks like a working IMU or “Inertial Measurement Unit”.  Such a device can be used to capture X, Y, Z, yaw, pitch, and roll information from a combination of sensors such as accelerometers and gyroscopes.  Their earlier demo from 11-17 is using what looks like a custom PCB dated May of 2013:

boardone

However their demo on 11-5 looks like a different board.  I was able to identify what looks like an disc-shaped eccentric rotating motor (vibration motor), a slot for a battery, and some other ICs.

board2-1

The only thing both boards had in common from what I could tell was their choice of Bluetooth radio.  If you look in the top right corner of the first PCB and on the cable of the second, you’ll see a little blueish component with a metal can:

btradio

btradio2

bluegiga

Photo from Octopart.com

This is a BlueGiga BLE112 Bluetooth module.

This module is designed to be an all-in-one Bluetooth 4.0 radio for someone who doesn’t want to spend any time designing their own.  RF design and validation is costly and time consuming, so a lot of engineers opt to move to this kind of device to save time.  Unfortunately, these modules aren’t very cheap, and their integrated antennas don’t make the best use of space in a device with an exotic form-factor.

Digikey stocks them for $12.86 in quantities of 5,000 which is around how many Angel will be ordering based on the amount of money they’ve raised.  That’s a pretty substantial sum of money to spend on a single component though this component may be playing multiple roles (more on that later).

Size-wise, the radio measures 18.15×12.05×2.3mm.  That’s pretty impressive work from Bluegiga, and it might just be small enough to fit into Angel.  Imagine fitting a US penny (2mm thickness, 18mm diameter) into their images and you’ll get an idea.  Maybe not the best use of space, but it might be good enough for a company trying to save money and time on risky RF development.

This part comes as a complete Bluetooth solution.  They even ship with the source code to an iPhone app that’s ready to start streaming data from a device.  They call this “cable replacement” as the part interfaces directly with components on the board and presents data to the phone over Bluetooth.

There isn’t much room for processing though as the BlueGiga is based on an 8051 architecture that pales in comparison to the computing power of today’s much more efficient ARM based processors.  That being said, there may not be that much processing to do.

Both demonstration videos show their prototypes streaming raw data to a wireless device without any kind of signal processing.  It’s great that they got this working, but it’s actually not very hard to do from a development standpoint.  Bluegiga was designed to make this kind of thing easy, and their API can connect up multiple sensors to a phone with very little work.

My first assumption was that they were using this radio to connect some kind of high performance signal processor to a smartphone, but after reading back through their description with this new information in mind, I think they may actually be depending on the smartphone for signal processing.  This is in line with an earlier update where they discuss that one of the “features” of the device is that it specifically doesn’t process the data before sending it to the phone.  It makes sense considering that the wrist band has no display; the user will have to look at his phone to get any kind of feedback anyway.

Certainly an interesting way to solve the problem.  The only issue I see is dealing with the very high bandwidth data needed for something like a heart rate sensor.  It takes a lot of power to transmit raw data through Bluetooth, and if the phone is out of reach, internal flash storage may fill up quickly as the device records hundreds of data points per second with no onboard processor fast enough to compress them.

Of course, this is all speculation.  Their first demo is running on a very simple app (that may be based off the Bluegiga Android source code), and their second demo is running in a Pygame Python window (a hobbyist language that is rarely used for commercial software).  Furthermore, their advertised feature of having a real-time-clock for alarms implies that there must be a little more going on as the Bluegiga cannot keep accurate time by itself.  They may still just be validating hardware components and will demonstrate a more complete architecture with an integrated signal processor at a later date.  If that’s the case, they have a lot of work to do before their April 2014 deadline.

Tags:

{ 5 comments to read ... please submit one more! }

  1. Really enjoying this site and your in depth analysis. I cant believe how some of these projects are approved…

  2. Remarkable! Its really awesome piece of writing, I have
    got much clear idea concerning from this paragraph.

  3. Loved the dig on Python. I hate that hobbyist language as well.
    What the heck are those boards, especially the one from May 2013??? Lots of passives around a few soic chips, are those just opamps or something?

  4. Your series of posts on the Angel fitness/activity tracker is great. Any chance you would be interested in poking at the Amiigo? their campaing on Indiegogo raised 580,000 back in March 2013 (compared to Angel’s 334,000), and even though the information provided in the updates is very vague, they seem to be close to shipping.

  5. There’s definately a great deal to know about this subject.

    I really like all the points you have made.

{ 0 Pingbacks/Trackbacks }

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>