We created three key hardware elements: Base Boards, the Brain Board, and pucks. Together, these elements formed a reconfigurable system for controlling hardware devices like robots, toys, or IoT devices. They could also be used to control applications on a computer or tablet.
Pucks are individual tiles that represent an instruction to execute an action in the device being controlled, such as telling the robot to move, or a light bulb to switch on/off. Pucks have no electronics and can be made from a variety of materials (plastic, cardboard, paper, wood). Inside a puck there’s a capacitive signature which identifies the action to be executed on the device.
The most basic (‘static’) pucks can have flat or 3D graphics imprinted on them, such as stickers or a physical icon. It’s also possible to create more complex (‘dynamic’) pucks that have mechanical controls like faders, a push button, or rotary dials — those include a magnet on the mechanical control.
Pucks are easy to create, for example by cutting paper, or 3D printing the form and then drawing the capacitive signature with conductive ink. This enables an infinite number of commands to be easily made on the fly by anyone.
The Base Boards have their function specified by the puck placed on them. The Base Board has a capacitive sensor and magnetometer. The capacitive sensor reads the command expressed by the puck, and the magnetometer detects the state of the mechanical control by reading the magnet position.
The role of the Base Board is to take both values sensed, and communicate them to the other blocks — thereby forming a sequence of instructions.
As well as sensing commands from the pucks, the Base Boards can provide haptic and visual feedback when an instruction is being executed.
For example, vibrate or change the color of the LED when an instruction is executed.
Base boards can be configured in any 2D arrangement, and dynamically report their state (puck signature, control value) and position within the system. This allows flexibility for creating different sequences of commands, and for interpreting the sequence in different configurations (for example, one at a time, in rows or columns, or all at once as a grid).
The Base Boards are the input and output interface of the system — when combined with pucks they allow for different instruction sets to be created to control different devices using a small set of Base Boards.
The Brain Board is built with Raspberry Pi Zero as its microcomputer and runs custom-embedded Linux specifically developed for the system. In the operating system there are the libraries and runtimes to integrate with external devices as well as an API that gives real time updates from the Base Boards and allows writing haptic and LED settings back to them individually.
Multiple Brain Boards can be connected to one another via Wi-Fi, allowing different systems to combine their inputs and outputs in a network setup.There is one Brain Board in each system and it provides power to all other Brain Boards. It also has a button to trigger the command sequence, a built in speaker and amplifier, and an optional LED panel for output.