We are very excited to be developing our first product for release in 2014.
Sensorduino is a 9 degrees of freedom (DOF), Bluetooth Low Energy, battery powered development and prototyping platform for motion sensing applications. It is intended to be used by both hardware and software developers for prototyping and developing ideas around the ‘Internet of Things’.
Fully configured with open-source libraries and custom firmware, Sensorduino can operate as a remote sensing unit, transmitting movement and orientation data to a Bluetooth Low Energy device such as an iPhone, iPad and BLE-enabled Android phones and tablets. By incorporating some of the most popular and current technologies of their type, it offers a compact, self-contained solution at a cost-effective price.
Note: the images here are of the first prototype. It’s small but we are planning to reduce the size further for manufacturing, with less headers and smaller PCB footprint.
We expect Sensorduino to be used as the basis for many types of motion tracking applications; perhaps attached to such things as cricket bats, tennis racquets, human wrists and ankles etc. for sports training, dance and gaming amongst other things.
Multiple Sensorduinos can work together to transmit complex motion capture style data. This could then incorporate human motion into 3D gaming. Sample software will be provided to show how to collect, process and transmit the motion data and incorporate into an app. It can be as simple as rotating an OpenGL model by n degrees in the x,y and z planes (delivered as Eular angles in the transmission payload)
The main components are:
Invensense MPU-9150™ Sensor
The MPU-9150™ is the world’s first 9-axis MotionTracking device designed for the low power, low cost, and high performance requirements of consumer electronics equipment including smartphones, tablets and wearable sensors. The MPU-9150 incorporates InvenSense’s MotionFusion™ and run-time calibration firmware that enables manufacturers to eliminate the costly and complex selection, qualification, and system level integration of discrete devices in motion-enabled products, and guarantees that sensor fusion algorithms and calibration procedures deliver optimal performance for consumers. This device is used in Google Glass.
The 9 axes are comprised of the following.
- Digital-output X-, Y-, Z-Axis angular rate sensors (gyroscopes) with a user-programmable full-scale range of ±250, ±500, ±1000, and ±2000°/sec
- Digital-output X-, Y-, Z-Axis accelerometers with a programmable full scale range of ±2g, ±4g,±8g and ±16g
- Digital-output X-, Y-, Z-Axis magnetometer (compass) with a full scale range of ±1200µT
The chip process the information using state of the art on board processing MotionFusion™ this combines acceleration and rotational motion plus heading information into a single data stream for an application.
Texas Instruments CC2540 Bluetooth Low Energy System-on-Chip
The CC2540 is a 2.4GHz Bluetooth low energy, one system-on-chip solution. The CC2540 combines an excellent RF transceiver with an industry-standard enhanced 8051 MCU, in-system programmable flash memory, 8KB RAM, 128kB Flash memory. Flash-based: device firmware can be updated in the field and data can be stored on-chip. Excellent link budget for long range (up to +97dB) and coexistence with other 2.4GHz devices. Bluetooth specification version 4.0 compliant with single-mode (CC2540) and dual-mode devices (BlueLink™ 7.0 Bluetooth/FM single chip solution, WiLink™ 7.0 WLAN/GPS/Bluetooth/FM single chip solution, and WiLink™ 6.0 WLAN/Bluetooth/FM single chip solution).
Atmel® A644A Microcontroller
The high-performance Atmel 8-bit AVR RISC-based microcontroller combines 64KB ISP flash memory with read-while-write capabilities, 2KB EEPROM, 4KB SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a real time counter, three flexible timer/counters with compare modes and PWM, two USARTs, a byte oriented 2-wire serial interface, an 8-channel 10-bit A/D converter with optional differential input stage with programmable gain, programmable watchdog timer with internal oscillator, SPI serial port, a JTAG (IEEE 1149.1 compliant) test interface for on-chip debugging and programming, and six software selectable power saving modes. The device operates between 1.8-5.5 volts.
By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed.
LiPo Rechargeable Battery
Lithium-ion Polymer rechargeable battery. 155mAh (min), 165mAh(typical), 3.7V. Charging Voltage 4.20 (± 0.05V), max charging Current 155mA. Standard charge 3.5hr.
Reset button, LED indicators and USB connector (programming and recharge).
The board has a USB connector to facilitate programming, test as well as recharging the Li battery. The 2 green LED’s on the USB converter blink during USB access. The red LED on the battery charger remains on if there is no battery (USB connected) or if the battery is being charged. The red LED goes off when the battery is fully charged.
The architecture consists of 3 major functions:
Sensing: MPU 9150 – gyroscope, magnetometer and accelerometer combine to present very accurate, stable movement and orientation data. The magnetometer counteracts yaw drift common in gyro/magnetometer-only circuits.
Microcontroller: Atmega644 – with Sanguino (Arduino-compatible IDE and runtime) this MCU supports the implementation of MotionFusion™ to drive the MPU 9150 plus any custom functions via additional user code and/or components. 32KB is taken up with code libraries leaving 32KB free for expansion. The Sanguino communicates with the 9150 over a 400MHz I²C bus. This is all based on available open source software. A number of headers allow the addition of extra components e.g. LEDs, switches, micro-SD card or even GPS. A LiPo battery is supplied as standard and can be recharged via USB but is easily detached for other power options. The 1st USART is used for USB serial communications to load the libraries, user code and to send developer debug information.
BLE: CC2540 – providing wireless data communications between Sensorduino (in peripheral mode) and any BLE equipped device (in central mode). Custom firmware has been developed to communicate with the microcontroller via the 2nd MCU USART.