Skip to content

Commit

Permalink
docs: Add info about types, components and production setup
Browse files Browse the repository at this point in the history
  • Loading branch information
richardlt committed Nov 20, 2018
1 parent e1a3623 commit df9ae4a
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,42 @@ Video game console operating system that displays on a 16*9 RGB LED matrix.
| <img src="https://raw.githubusercontent.com/richardlt/matrix/master/docs/getout.png" width="60"/> | Getout | A labyrinth game, try to get out if you can. | <img src="https://raw.githubusercontent.com/richardlt/matrix/master/docs/getout.gif" width="150"/> |
| <img src="https://raw.githubusercontent.com/richardlt/matrix/master/docs/rollup-dice.png" width="60"/> | Rollup dice | Random dice generator (https://github.com/gwenker/matrix-rollup-dice). | <img src="https://raw.githubusercontent.com/richardlt/matrix/master/docs/rollup-dice.gif" width="150"/> |

## Matrix types

There are 3 main types that exists in Matrix's sdk:
- A **display** receives a live stream of frames from core.
- A **player** sends actions for a slot to core, an action is a button press/release event.
- A **software** receives player's actions from core and use sdk's rendering features to generate frames in Matrix core.

## Matrix components

| Name | Description |
| - | - |
| Core | The heart of the Matrix system that managed software's lifecycle. All softwares, players and displays are connected to core. |
| Device | The component that interacts with usb controllers and Arduino. |
| Gamepad | A web application that contains a virtual controller with display. |
| Emulator | A web application built for development purpose. It displays Matrix main screen and player's screens. |

## Production setup

Matrix is designed to run on a Raspberry Pi (at least model 3), it is composed by multiple softwares (core, device, gamepad...). All softwares can run on the Raspberry Pi but you can also start a software on your desk that will communicate remotely with the Matrix's core (with flag --core-uri).

Here are the few steps to install your own Matrix:

1. Download Matrix latest release [here](https://github.com/richardlt/matrix/releases). If you want to install it on Raspbian or Debian there is a .deb file available that will create a service to start Matrix automatically at boot.

2. Extract/install and run Matrix package.
```sh
$ dpkg -i matrix.deb # for Raspbian/Debian users
$ service matrix status
```
```sh
$ unzip matrix.zip # for others
$ cd matrix-package && ./matrix-[REPLACE_DEPENDING_OS] start --log-level info --gamepad-port 80 core device gamepad emulator demo zigzag yumyum clock draw blocks getout # select the right executable depending on your os
```

3. Install firmware on the Arduino from file in Matrix source code (inside folder at ./device/firmware/firmware.ino). Source code can be downloaded from [release](https://github.com/richardlt/matrix/releases).

## Development setup (linux/darwin)

1. Requirements.
Expand Down

0 comments on commit df9ae4a

Please sign in to comment.