Merge pull request #10313 from P-I-Engineer/patch-1
[inav.git] / docs / boards / Revolution.md
blobd239a6e9944113355b69a4fa7996269fefe383af
1 # Board - OpenPilot Revolution also known as CC3D Revo
3 ## Features
5 * STM32F405 CPU
6 * Integrated Accelerometer/Gyro MPU6000 via SPI bus
7 * Integrated Magnetometer HMC5883
8 * Integrated Barometer MS5611
9 * Integrated 433MHz OPlink Modem -> Not supported
10 * 6 motor outputs
11 * 3 UART ports (UART1, UART3, UART6)
12 * External I2C bus, pins shared with UART3, can not be used simultaneously
13 * Only UART1 is equipped with inverter
14 * Onboard 128Mbit (16MB) flash
15 * BLHeli Passthrough
17 ## **NOT** supported
19 * HC-SR04 Rangefinder
20 * SoftwareSerial
21 * ServoTilt
23 ## USB
25 This board uses STM32 VCP and _not_ utilizes UART when USB is connected. STM32 VCP drivers might be required!
27 Flashing requires DFU mode and STM32 DFU drivers. Use [Zadig](http://zadig.akeo.ie) tool to install WinUSB driver on Windows.
29 ## Pinout
31 Following section is ported from [RaceFlight](https://github.com/rs2k/raceflight/blob/master/docs/Board%20-%20Revo.md) with edits
33 ### RC_Input connector
35 #### RX_PPM and RX_SERIAL
37 | Pin | Function  | Notes                            |
38 | --- | --------- | -------------------------------- |
39 | 1   | Ground    |                                  |
40 | 2   | +5V       |                                  |
41 | 3   |           |                                  |
42 | 4   |           |                                  |
43 | 5   | PPM Input | Enable `feature RX_PPM`          |
44 | 6   |           |                                  |
45 | 7   | UART6 TX  | |
46 | 8   | UART6 RX  | |
47 | 9   |           |                                  |
48 | 10  |           |                                  |
50 #### RX_PARALLEL_PWM
52 | Pin | Function | Notes |
53 | --- | ---------| ------|
54 | 1   | Ground   |       |
55 | 2   | +5V      |       |
56 | 3   | Unused   |       |
57 | 4   | Unused   |       |
58 | 5   | CH1      |       |
59 | 6   | CH2      |       |
60 | 7   | CH3      |       |
61 | 8   | CH4      |       |
62 | 9   | CH5      |       |
63 | 10  | CH6      |       |
65 ### RC_Output connector
67 #### RX_PPM and RX_SERIAL
69 | Pin | Pin     | Function              | Notes |
70 | --- | ----    |----------             | ------|
71 | 1   | PB0     | MOTOR 1               |       |
72 | 2   | PB1     | MOTOR 2               |       |
73 | 3   | PA3     | MOTOR 3               |       |
74 | 4   | PA2     | MOTOR 4               |       |
75 | 5   | PA1     | MOTOR 5 / LED Strip   |       |
76 | 6   | PA0     | MOTOR 6 / RSSI_ADC    |       |
78 ## Serial Ports
80 | Value | Identifier   | Board Markings | Notes                                     |
81 | ----- | ------------ | -------------- | ------------------------------------------|
82 | 1     | VCP          | USB PORT       |                                           |
83 | 2     | UART1        | MAIN PORT      | Connected to an MCU controllable inverter |
84 | 3     | UART3        | FLEX PORT      |                                           |
85 | 4     | UART6        | RC connector   |                                           |
87 The UART6 port is not available when RX_PARALLEL_PWM is used.
89 ### Main Port
91 The main port is connected to an inverter which is automatically enabled as required.  For example, if the main port is used for SBus Serial RX then an external inverter is not required.
93 | Pin | Signal             | Notes                   |
94 | --- | ------------------ | ----------------------- |
95 | 1   | GND                |                         |
96 | 2   | VCC unregulated    |                         |
97 | 3   | UART1 TX           | 3.3v level              |
98 | 4   | UART1 RX           | 3.3v level (5v tolerant)|
100 ### Flex Port
102 The flex port will be enabled in I2C mode unless UART3 is used.  You can connect external I2C sensors and displays to this port.
104 You cannot use USART3 and I2C at the same time.
106 | Pin | Signal             | Notes                    |
107 | --- | ------------------ | -----------------------  |
108 | 1   | GND                |                          |
109 | 2   | VCC unregulated    |                          |
110 | 3   | I2C SCL / UART3 TX | 3.3v level               |
111 | 4   | I2C SDA / UART3 RX | 3.3v level (5v tolerant) |
113 ### Pwr sensor connector
115 | Pin | Signal             | Notes                    |
116 | --- | ------------------ | -----------------------  |
117 | 1   | GND                |                          |
118 | 2   | VCC unregulated    |                          |
119 | 3   | Current sensor     | 3.3v max input           |
120 | 4   | Voltage sensor     | 3.3v max input |
122 ## Buzzer
124 External buzzer should be wired to PB4 CPU pin using a transistor circuit
126 ## Notes
128 * At this moment LED Strip is not functional on this target
129 * Motor out put 5 and 6 needs testing
130 * Servo output might not be working at the moment of writing this documentation
131 * I2C might not be working at the moment of writing this documentation
132 * LED Strip might not be working at the moment of writing this documentation