MWKit – a Cocoa framework for talking to the MetaWatch

EDIT: this page is outdated, visit the new project page at http://ka010.com/mwkit

 

As said before, I’ve been putting together a little framework to talk to the MetaWatch.

Well, here it is, as promised, it works on both, Mac OSX and iOS (jailbroken)

Features

  • Implements the MetaWatch Message Protocol
  • Modular Architecture
    • Mac OSX support via IOBluetooth or IOCTL
    • iOS support via btstack
  • Device Inquiry or direct connections
  • Image rendering
  • Text rendering
  • Button configuration and events

Todo

Large parts of the MW Message Protocol are implemented already, but many minor messages are still missing.

Issues

Update: as of firmware version 0.8.0 this should no longer be an issue!

Due to issues with the watch’s internal bluetooth stack connections may become slow (really slow) after sending a few messages.

In detail, the issue is related to a power-saving feature on the bt link-layer that goes by the name “sniff mode”. It’s enabled automatically after a few seconds of inactivity, and makes the radio listen only in a preconfigured interval to reduce power consumption. In the event of incoming data, sniff mode should be exited automatically until the connection becomes inactive again, this however seems to be not working with various bt stack implementations, including the Mac OSX one, leading to long delays(1-2s) between delivery of messages.

Source

For source code and documentation head over to github

About these ads
1 comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: