-
Notifications
You must be signed in to change notification settings - Fork 1
Platform
Gesso provides an open platform for creating and distributing interactive systems that run on small, embedded computers that use electronic components to achieve interaction with users and the physical world.
Five modular hardware components, or hardware layers, together make up the Gesso base layers.
- Battery Layer
- Compute Layer
- Controller Layer
- Touch Layer
- Template Layer
Together, these layers constitute the Gesso hardware platform on which the whole Gesso ecosystem of projects is built. The Gesso platform provides all the necessary materials for creating your own projects. These materials include circuit diagrams, printed circuit board layouts, reference designs, source code, and development workspace tools. In short, these building blocks provide the information and tools for using Gesso for your own projects and contributing to the Gesso project itself.
The five Gesso base layers provide all the essential functional design elements, or "building blocks," for creating your own complete interactive systems. These elements are used to create the complete hardware and much of the software "backbone" so system designers can focus on the novel aspects of their projects. Specifically, these are building blocks provide the electrical energy (i.e., a Li-Ion battery), compute, and real-time I/O control. Together these three components alone provide the building blocks for an an unbounded set of interactive and intelligent embedded systems. In principle, the rest of the platform is really a support system for configuring, managing, deploying, and distributing projects built with these core hardware components. Of course, you can make your own components that are compatible with Gesso's stacking standard and omit these components entirely.
Gesso's hardware is designed to provide a standard hardware building block or "hardware container" for building interactive digital systems. To achieve this, the "container" hardware nodes contain the common features that are used in a wide variety of systems so those systems can be built using it. By making a "hardware container," Gesso aims at providing a streamlined vehicle for (1) creating systems faster than was possible without it, (2) distributing those systems in a format that allows them to be re-created on the same hardware components elsewhere, even more quickly, and (3) an architectural basis for defining a "hardware container" component system that is generally useful and can become an industry standard.
Gesso's development environment is designed for use on smartphones and desktop.
The Gesso App for Android and iOS devices that provides:
- graphical system configuration framework (generates workspaces identical to those built by the CLI, with common backing APIs)
- graphical programming framework (based on components, interfaces, tasks; possibly events; possibly using pub-sub model to decouple applications from distributed hardware)
The gesso command line utility:
- automates selection and assignment of signals (wires) connecting components to each other based on their component descriptions (in associated component files)
- automates ongoing configuration of programming environment (
gesso compose, once per project, but can revise; each time generates new scripting framework and automatically versions with git) - compiles scripts and code from high-level syntax (generated automatically from
gesso compose) - delivers executable environments to hosts (e.g., the compute and control modules) (
gesso push) - management of systems deployed onto host devices. note there can be multiple "overlapping" systems running on the same set of host devices that are isolated from or communicate with one another. (this is analogous to the container concept for OSs.) (
gesso network)
The command line interface provides functions for automating the design, assembly, and programming of systems. Users can enter commands like this:
gesso compose --component gesso/raspberry-pi --component gesso/ir-rangefinder
Dashboard provides:
- repository of projects using Gesso (index of GitHub repositories)
- portfolios of work/profiles
- online editor (web-based)
The purpose of the project is to develop a low-cost infrastructure that provides our community with a decentralized and accessible method for fabricating parts, alternative to the traditional, centralized methods of manufacturing and distribution. This supplements integrations with on-demand fabrication services such as Shapeways.
The 3D printer is a research project based on open source 3D printer designs.
The smart GPIO interface is an ongoing project started to explore the feasibility of designing a highly-flexible GPIO interface to enable a collection of GPIO functions (including multi-level power distribution) to be mapped onto any set of available, unmapped pins.