Over the last years smartwatches, fitness bands, and IoT devices have become more and more popular, making them especially accessible to customers in a different market segment. This has made wearable and micro-embedded devices an integral part of the consumer electronics ecosystem. New use cases built around sensors, payments, access control & wireless communication are being tested and promoted on Kickstarter every day.
One thing that hasn’t changed is the way those devices are developed and prototyped. Unless you’re developing for one of the major platforms (Apple Watch, Android Wear), chances are you’ll be dealing with time-consuming, bare-bones software development tools. And let’s not forget those raw, un-tested API’s and hardware that you’ll need to integrate yourself. Often you will find that you’re the first one to test-drive a particular hardware/software combination!
In a nutshell, the current state of wearable development (and embedded development in general) is similar to smartphones before the iPhone revolution. Tools aren’t really optimized for app developer productivity, many components are proprietary and huge team effort is required to deploy simple solutions.
Luckily, there are things like Arduino which greatly lower the barrier of entry — however, those solutions are mostly geared towards the academic & research market. They’re not really meant to be used for final product development but rather for quick hacks & experimenting.
At YND we believe those “hacks” are great at early stages of prototyping but any serious development should be done inside fully-integrated development systems. Those systems empower developers and deliver predictable results. Systems similar to iOS/Android, where developers can use powerful, high-level object-oriented API’s to quickly evolve their code.
That’s why we asked ourselves if there is something we can do to improve the status quo and offer developers with iOS/Android experience the possibility to easily play with wearable devices.
There’s only 1 answer to all this question and it’s a resounding “yes!”, which is exactly why we started this project.
Our project is about two things: a standard-size fitness band with the maximum amount of sensors and electronics we could fit in, combined with a high-level development framework (an OS) to access the components and quickly develop functional solutions.
The following major features/subsystems are available for developers:
- BLE (Bluetooth Low Energy)
- Full-functional IMU (accelerometer/gyroscope/magnetometer)
- Colour LED
- Flash storage
One thing we’re particularly excited about is integrating NFC and LORA. While other sensors (IMU, BLE) are widely available in all kinds of hardware in similar form factor, NFC and LORA are hard to come by. So we’re quite happy to be the first ones to expose those subsystems in a meaningful way for other developers to play with.
To maximise developer productivity we designed a distributed architecture with 2 micro CPUs communicating in sync.
- The first one is a “System Processor” which manages standard events, hardware communication, efficient battery usage and the complex underlying issues of driver integration. Think of it as the “operating system” of the whole solution, running at all times and controlling everything.
- The second one is an “Application Processor” which runs actual code developed by app developers. The CPU goes to sleep automatically when it’s not needed to work (allowing for maximum power efficiency).
Thanks to this two-tier architecture we’re able to isolate app developers from the complex base and provide a reliable, functional top-layer with high-level access that app makers care about.
Similarly to iOS/Android, we provide all functionality in an object-oriented fashion using modern development paradigms (unlike traditional embedded development, which is mostly procedure-driven). We closely investigated Apple’s iPhone hardware API’s and modelled our structures similarly so that seasoned mobile developers can feel at home.
For example, to start a simple BLE communication/scanning you can write:
In a few lines of code developers can achieve something which usually required hundreds of lines of code and hours of debugging just to get started. Similar API’s exist for other major functions of the system: NFC communication, sensor data access, permanent storage access etc.
We developed this for internal use, as a reliable platform to quickly iterate and deliver prototypes and solutions for our customers in the security & payment ecosystem.
Our ambition is to build additional form factors of the test hardware (band, card, fob) and allow a broader audience to develop on top of the platform and eventually embed the operating system in their own, custom-made hardware.
We’re currently exploring ideas for the final shape and form of the development offering, but we feel strongly we have something which would greatly empower everybody in the wearable ecosystem — whether it’s a Kickstarter entrepreneur, an academic researcher or an agency similar to ours wanting to quickly deploy wearable solutions for their customers.
Has this post made you curious about testing our platform? Let us know! The article was written by Michał Dominik Kostrzewa, our Head Of Special Projects at YND. Feel free to reach out to us via firstname.lastname@example.org with questions about your tech projects.