Spatium Gestu (latin: "Space Gesture") is a project demonstrating how to create a Manuvrable. This particular project uses the MGC3130 (via the Hillstar development board) to build a gesture pad. The project was named "Space Gesture" because the MGC3130 uses electric field distortions over an area to infer the position of a user's hand. The first-order data so derived is used to return positional information and some simple gesture events to the user's software.
Positional accuracy with the MGC3130 is very good, and the gesture-detection algorithms are robust. We will tie the events so generated to baked-in ManuvrOS messages to issue reports to a counterparty.
Components
1×
MGC3130
Application Specific ICs / Telecom ICs
1×
INA219
Power Management ICs / Power Supply Support
1×
RN42-HID
Bluetooth tranaceiver
1×
Fubarino Mini
Microcontroller board
1×
ADP8866
Interface and IO ICs / Display Interface
We've had a busy January. The entire Manuvr team is now in the San Francisco Bay area. Josh and I are now working full-time on Manuvr and related technologies for a major telecom company that will likely be the first deployment-at-scale, and who has agreed to keep their efforts open-source, and developer friendly. That will warrant a separate in-depth post once they clear us to release details.
We're very excited about our prospects of unifying some of the fractured landscape of standards, transports, protocols, and hardware; something the IoT realm sorely needs.
For my part, I've been hard at work debugging threading Manuvr's firmware under different threading models and imparting concurrency safety. I've made builds with both FreeRTOS on the Teensy3.1, and pthreads on linux. At present, the pthreads version is much more complete, but once I resolve a few more library congruency mis-matches the two threading models can be coded for against the same API.
Digitabulum has sat idle for the past few months as time was devoted to ManuvrOS and MHB. But that is changing as-of yesterday. We are back in communication with our fabricator, and they are eager to help us build the digit sensor circuits. The 3rd draft of the hardware has been sent to them for feasibility opinions. Realistically, we are probably 3 months away from having the full sensor package for r1 built, funds permitting.
The non-circuit hardware tasks have also been advancing in the past few months. Here are some renders of the casing parts...
...and the digit mold for the sensor package...
Major changes are underway. But we are still alive, and the project is still making steady progress. More to come!
LOTS of time has been spent working on MHB these past few months, and it is about to pay off. In between that, and Digitabulum's CPLD, I've been writing firmware drivers for the power-management unit. Here is a picture of the PMU hooked up to Spatium Gestu's test-bed (the board on the far-left). The board in the middle is the LED driver (ADP8866).
In this case Spatium Gestu is being used to prototype Digitabulum's hardware in small pieces. Everything checks out a-ok thus far....
GESTURE_RECOGNIZED == GESTURE_DISASSERT ---> Implies state-machine works correctly.
SENSOR_MGC3130 == I2C_QUEUE_READY ---> Implies augmentations to the i2c system are working.
This reflects a low over-all system load. This is running on a Teensy3.0 @48MHz. The event system will process a maximum of 2 events before servicing the scheduler (max_events_p_loop), and at that setting, we have a preallocation queue depth that exactly matches our peak system load (max_queue_depth). This is a nice number for the 16k of RAM that we have at hand. It represents a resting memory load of 252 bytes (each event is 32 bytes). Adding the 3 schedules (at 36 bytes each), the resting memory load to handle this level of asynchronicity is (252 + 108) = 360 bytes.