Add basic info to README
[tools/muxpi.git] / README
1 #####
2 MuxPi
3 #####
4
5 **MuxPi** is an open hardware and open software board which was designed to
6 aid in automating tasks on physical devices. Initial goal was to automate
7 testing on hardware platform, thus connected devices will be called **D**\evice
8 **U**\nder **T**\est or shortly **DUT**\.  Muxpi is intended to help in testing
9 of embedded systems, automatic software installation or flashing and automation
10 during development. MuxPi is connected between the DUT and a PC/Server machine
11 which will be managing the work.  The name of the board is based on its two
12 main components: **SD Mux** and **NanoPi**
13
14
15 ********
16 Features
17 ********
18
19 * Providing a DUT connection (UART, USB, ETH, microSD card) to remote location
20   over Ethernet
21 * Switching a microSD card between a DUT's microSD card slot and an onboard
22   USB card reader
23 * Flashing a microSD card using an onboard USB card reader
24 * Flashing and controlling state of Samsung mobile devices over fully
25   controllable, dedicated USB interface
26 * Switching DUT's power supply
27 * Switching jumpers/buttons of a DUT in order to (re)boot/(re)configure it
28 * Measuring power consumption of a DUT
29 * Handling serial connection (UART) of a DUT
30 * Writing EDID to a DUT over HDMI connection
31 * Interacting with a user/maintainer over a simple, bidirectional interface
32
33
34 ******************************
35 Repository Directory structure
36 ******************************
37
38 ::
39
40   .
41   │
42   └── doc - overall documentation for all of the components of MuxPi
43   │
44   └── hw - MuxPi board design and fabrication files
45   │
46   └── sw - MuxPi's software
47       │
48       └── attiny - firmware for ATtiny10 microcontroller (watchdog)
49       │
50       └── cortex - firmware for STM32F030 (controller)
51       │
52       └── nanopi - configs, scripts, tools, OS recipes, etc. for NanoPi NEO
53           │
54           └── config - ansible files for configuring NanoPi NEO
55           │
56           └── fota - tools/libs for flashing devices (usually microSD card)
57           │   with given images
58           │
59           └── stm - tools/libs for communicating with STM32F030 microntroller
60           │
61           └── power - tool for controling power supply for  MuxPi's main board
62           │
63           └── gpio - tool for controling MuxPi's GPIOs including two one-color
64           │   LEDs
65           │
66           └── firmware - tool for updating firmware of STM32 microntroller
67           │
68           └── nv - tool for writing and reading non-volatile data of MuxPi
69           │
70           └── debian - files for creating packages for Debian-based
71               distributions
72
73
74
75 *******
76 License
77 *******
78
79 MuxPi is distributed under `Apache 2.0 License`_
80
81 .. _`Apache 2.0 License`: LICENSE