Developer Resources

Please let us know if there’s anything that would help the developer community, but this is what we’ve come up with as a start:

I’m new to smartphone development, so forgive me if this is a dumb question. Is there an android SDK coming, is it in the dropbox already? It all looked to be IOS based to me.

Hey @bcapaldo‌,

We’re hoping to ship the Android sample app in the next week or two. We’re working on it!

getting this error when trying to build/run, got the latest version of xcode

Undefined symbols for architecture i386:
OBJC_CLASS$_BleGattServices”, referenced from:
objc-class-ref in DeviceScan.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

@bdietz Are you trying to build for an emulator (i386)? If you connect your iOS device and build for it, it would work (there are still some warnings, but it build and runs).

@bdietz‌ We’ve had other developers report a similar issue, but we’ve been unable to replicate it. We’re hoping to have a solution soon.

If you’re going to ship libBleGattServices.a as a static library you’ll need to provide another version that targets i386 for the simulator in addition to the arm one.

Alternatively, you could open source that library as well which is a lot easier for clients to integrate into Xcode via something like cocoapods. Most ios libraries don’t ship as precompiled binaries since it’s such a pain to integrate with the existing apple dev tools.

What @npankey says! :slight_smile:

How do we get an invite to the developer Trello board?

@npankey‌ Shoot me a PM with your info.

@"Stephen Svajian"‌ - Think I figured out the error you’re referencing

If you’re using Xcode 5.1 or newer and targeting an iPhone 5s device you’ll still get this build error

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv7 armv7s).

The problem is Xcode defaults to building for arm64 if the device supports it but the static lib only supports 32-bit armv7. To workaround this you need to update the project’s build settings. Set ‘Architectures’ to $(ARCHS_STANDARD_32_BIT) and remove arm64 from ‘Valid Architectures’. Also make sure that ‘Build active architecture only’ is set to Yes.

@npankey‌ That was far simpler than my horrible workarounds. This answer is MUCH appreciated. Let me also second the desire to open the source for libBleGattServices.a. This object file caused me two week’s delay because I only fiddle on weekends. The ability to simply recompile would have helped tremendously. I think the idea was related to exclusivity which is also now being lifted.

@"Stephen Svajian"‌ it seems that all the workarounds for libBleGattServices.a stopped working with the update to iOS 8 and Xcode 6.0.1 ( @npankey let us know if this is working for you). Can you provide sources or build the correct library for all architectures ASAP?

@vtemkin‌

We’re working on it.

You can download an older Xcode 5 package here and try that out:
https://developer.apple.com/downloads/index.action

However, not sure if that will be able to deploy/debug to an iOS 8 target.

I’ll have some time later tonight to try this out again.

@npankey Yep, it worked for me on Xcode 5 and iOS 7. I just upgraded to iOS 8 today and decided it was time to move to XCode 6. I definitely can move back to XCode 5 for time being - but I’d rather have it solved and cleaned up on Anova’s side rather sooner than later… It’s great to know they are working on it (and I perfectly understand they have quite a few things cooking at the same time, including Android and the production app).

@vtemkin‌ Given the problems with the existing lib I’ve decided to hack together an alternative based on what I’ve figured out from my experiments so far.

This is still very much a proof of concept but at least shows how the actual BT communication works. I plan to flush this out more in the next couple of days. Ideally, I’d like to turn this into a block-based API that also queues requests.

Any news for Android developers? Will there be a kickstarter update when the android api/sample is ready or should we monitor this thread?

@pwiltgen‌ Take a look at this https://developer.android.com/guide/topics/connectivity/bluetooth-le.html along with the protocol I started to document here https://github.com/neilpa/circulate/blob/master/README.md. That should be enough to start to hobble something together.

@npankey‌ Thanks. I got it working :slight_smile: The dropbox link from the first post seems to have expired.

A few general questions:

  • Are there really no dedicated GATT characteristic for current temp and set temp? It seems counter intuitive to send a command every time and wait for the response instead of just reading the values. How can the app/client know when the user changes the temperature manually on the device?

  • Whenever I send a command, the device beeps 6 times at quite high volume. Even for reading temperatures. Is there a way to disable this. Users will be annoyed when their anova peeps every time the app reads the current or set temperature.

Android related questions:

  • When I send a command to read the temperature, I’m reading the response from “onCharacteristicWrite” in UINT8 format. However, the values don’t make any sense. Is this the wrong approach?