How it works/1. General description of the chordata system/1.1 Hardware configuration

From Chordata documentation
Jump to: navigation, search

The Chordata nodes can be arranged arbitrarily but most of the time a default configuration is used, it allows a complete capture of the human body, while keeping the nodes count to a minimum. We call it the default biped configuration and from now on in this section of the wiki we will treat it like the only possible one (just for the sake of simplicity). Keep in mind the is actually just one of the many possible ones: for example if you what to capture the movements of a dog or a robotic arm you will probably need to use a different one.

In the default biped configuration the first child is the Hub, after it six branches diverge containing the 15 K-Ceptor more or less evenly distributed among them.

Default biped configuration: The most commonly used hierarchy

Host side communications[edit]

On the host side all connections are wired, and the i2c protocol is used for the communications. Despite of it being at the limits of its possible physical application, it never showed issues regarding crosstalks, RF interferences or errors due to excess of capacitance on the bus. In future versions of the system alternatives to address those possible problems might be proposed. Like many design decisions on chordata, the use of the same protocol that the sensors natively implement allows the hardware complexity to be pulled to the minimum. As a consequence the difficulty of building the system, and its derived cost gets reduced.

Role of the SCB[edit]

The SBC hosts the core of the system, and is responsible for all of the data processing on the host side. Apart from the processing it handles the reading or writing to the nodes of the hierarchy and the networking communication with the clients. On the hierarchy it always act as the i2c master. When communicating with a client it always assumes the role of the server. It achieves these tasks through several programs and services. It’s most important program is called Notochord, and by extension we sometimes refer to the hardware SBC as the notochord.

If you are curious about the names that on this project, starting with Chordata take a look here.

Role of the K-Ceptor[edit]

This is the main sensing unit of the system, and the first building block that then shapes the whole system. At its core there’s a MARG sensor array, consisting in an accelerometer, a gyroscope and a magnetometer. No microcontroller apart from the one embedded on the MARG is used keeping the hardware configuration on this node as minimal as possible. In the hierarchy this node always act as a slave on the i2c protocol.

Role of the Hub[edit]

The main role of the Hub is splitting the hierarchy tree in branches. It features mainly an i2c multiplexer. Secondary functionality include:

  • Physically transforming the connector on the SBC to the RJ-12 ports.
  • Powering the hierarchy tree
  • Performing as a simple visual interface to give the user information about the state of the system (through an RGB led).

It always acts as a slave on the i2c protocol, receiving simple commands that open or close its gates.