Many of our clients face a common challenge when undertaking IoT projects. They are experts in their own fields, and most of of them have a great idea, a proof-of-concept (PoC), or a sophisticated algorithm that addresses some specific need. They have simulated their solution in Matlab or Python and are eager to build and test a minimum viable product (MVP).
Unfortunately, designing a physical IoT device – or even prototyping one – is no easy task. Our experience has demonstrated that designers have a genuine need for a common, extensible, user-friendly, open source IoT platform that facilitates seamless interaction between the physical and the digital. Which is where we come in.
Our primary focus is on products and projects that sample motion, sense the physical world, and transmit the resulting data over Bluetooth Low-Energy (BLE) to smart devices running Android, iOS, Windows, and Linux. We created Bluetera I by stitching together key functionality, including communication hardware and basic motion sensing algorithms, as a way to provide the missing IoT platform our clients needed.
Bluetera II is the full realization of this same objective. It is open hardware running open firmware that includes motion sensors, power management, communication, and user-facing software – all woven together into a robust infrastructure for rapid IoT prototyping.
Bluetera II Demos
The demos in the video above were created primarily using the Windows-WPF application shown below. (You can find source code for this and other demos in our GitHub repository.)
- Hardware – A tiny (18 x 18 mm) device with 9-axis motion sensors, an ARM MCU with BLE, battery charging circuitry, and multi-purpose IOs for externals sensors and peripherals
- Firmware – Open source infrastructure with embedded command and control, motion algorithms with built-in data exchange and IMU control, a BLE stack with an additional Protobuf abstraction layer, power management, and battery monitoring
- Open Source – Everything, from hardware to firmware to the software running on your mobile device or PC is strictly open-source. No strings attached
- Motion – 9-axis motion fusion based on the Madgwick Algorithm, which produces rotation data (quaternions) from the 6-axis InvenSense IMU and STM compass. The result is a stable, 1 kHz stream of rotation measurements and raw data.
- Google Protobuf – A communication abstraction layer that provides a simple yet flexible serial pipe between the physical layer (e.g. sensors) and the digital layer (e.g. your mobile device). Protobuf makes adding new messages and functionality as easy as 1-2-3.
- Power – A JST socket, a Micro USB connector, battery charging circuitry, and power management firmware allow you to power the device with any small, external Lithium-Ion battery.
- Extensions – 20 I/Os to support digital and analog peripherals and sensors, I²C, SPI, UART, PWM, and more.
- USB Type 2 – A Micro USB connector and firmware support for the USB 2 protocol enable fast, wired communication with the host and allow Bluetera II to serve as a BLE dongle.
- Rapid Development – A breadboard connected to the tiny Bluetera II provides a standard development matrix and facilitates quick and easy prototyping and debugging with external sensors and peripherals.
- SDK – Simplifies software development, with support for multiple operating systems and platforms, includes APIs, algorithms, and demos. The Bluetera II SDK is compatible with Linux, Android, iOS, and Windows. It also includes a plugin for the Unity 3D development platform.