├── resource └── rev-ver-sensing.png ├── DS-009 Pixhawk Connector Standard.pdf ├── DS-010 Pixhawk Autopilot Bus Standard.pdf ├── DS-011 Pixhawk Autopilot v5X Standard.pdf ├── DS-012 Pixhawk Autopilot v6X Standard.pdf ├── DS-014 Pixhawk Payload Bus Standard.pdf ├── DS-016 Pixhawk Autopilot v6U Standard.pdf ├── DS-018 Pixhawk Autopilot v6C Standard.pdf ├── DS-017 Pixhawk Radio Interface Standard.pdf ├── DS-020 Pixhawk Autopilot v6X-RT Standard.pdf ├── README.md └── DS-019 Pixhawk versions and revisions.md /resource/rev-ver-sensing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/resource/rev-ver-sensing.png -------------------------------------------------------------------------------- /DS-009 Pixhawk Connector Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-009 Pixhawk Connector Standard.pdf -------------------------------------------------------------------------------- /DS-010 Pixhawk Autopilot Bus Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-010 Pixhawk Autopilot Bus Standard.pdf -------------------------------------------------------------------------------- /DS-011 Pixhawk Autopilot v5X Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-011 Pixhawk Autopilot v5X Standard.pdf -------------------------------------------------------------------------------- /DS-012 Pixhawk Autopilot v6X Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-012 Pixhawk Autopilot v6X Standard.pdf -------------------------------------------------------------------------------- /DS-014 Pixhawk Payload Bus Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-014 Pixhawk Payload Bus Standard.pdf -------------------------------------------------------------------------------- /DS-016 Pixhawk Autopilot v6U Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-016 Pixhawk Autopilot v6U Standard.pdf -------------------------------------------------------------------------------- /DS-018 Pixhawk Autopilot v6C Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-018 Pixhawk Autopilot v6C Standard.pdf -------------------------------------------------------------------------------- /DS-017 Pixhawk Radio Interface Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-017 Pixhawk Radio Interface Standard.pdf -------------------------------------------------------------------------------- /DS-020 Pixhawk Autopilot v6X-RT Standard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixhawk/Pixhawk-Standards/HEAD/DS-020 Pixhawk Autopilot v6X-RT Standard.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pixhawk Standards 2 | 3 | Pixhawk open standards provides readily available hardware specifications and guidelines for drone systems development. The standards provide all aspects of mechanical and electrical specifications and guidelines for creating interoperable drone system components. The standards are developed by the [Pixhawk Special Interest Group](https://pixhawk.org/sig/),which are coordinated by the [Dronecode Foundation](https://www.dronecode.org/). 4 | 5 | The drone standards (DS) documents are organized as follows: 6 | 7 | - DS-001-008: Reserved for future use 8 | - DS-009: Pixhawk Connector Standard 9 | - DS-010: Pixhawk Autopilot Bus Standard 10 | - DS-011: Pixhawk Autopilot v5X Standard 11 | - DS-012: Pixhawk Autopilot v6X Standard 12 | - DS-013: Pixhawk Smart Battery Standard (no longer in use) 13 | - DS-014: Pixhawk Payload Bus Standard 14 | - DS-015: https://github.com/Dronecode/SIG-CAN-Drone (no longer in use) 15 | - DS-016: Pixhawk Autopilot v6U Standard (in draft) 16 | - DS-017: Pixhawk Radio Interface 17 | - DS-018: Pixhawk Autopilot v6C Standard 18 | - DS-019: Pixhawk standard versions and revisions 19 | - DS-020: Pixhawk Autopilot v6X-RT Standard 20 | -------------------------------------------------------------------------------- /DS-019 Pixhawk versions and revisions.md: -------------------------------------------------------------------------------- 1 | # DS-019 Pixhawk standard versions and revisions 2 | ## Background 3 | With the introduction of the Pixhawk FMUv5x and FMUv6x standard, versioning of boards and ensuring intercompatibility has become both a major feature as well as a challenge. To comply with the standard, both software maintainers as well as hardware manufacturers must agree to follow the same guidelines. This page is the central place where versions and revisions of Pixhawk FMUs are tracked and managed. 4 | 5 | There are two different things to be sensed: 6 | 7 | 1. the revision of the FMU board itself. This is called the REVISION (REV). 8 | 2. the version of the base board that carries the FMU. This is called the VERSION (VER). 9 | 10 | 11 | The REV and VER are determined by an ADC which reads a voltage divider. The voltage divider for the VER is on the base board, while the REV is on the FMU. 12 | 13 | ## Resistor values 14 | The mapping of the VER/REV number to actual ohmic resistor values for the voltage divider is defined in this section. The diagram shows R1 and R2, with the signals `HW_xxx_SENSE` and `HW_VER_REV_DRIVE`. 15 | 16 | ![rev-ver-sensing](resource/rev-ver-sensing.png) 17 | 18 | Config | R1 (K) | R2 (K) 19 | -- | -- | -- 20 | 0 | NO POP | NO POP 21 | 1 | 442 | 24.9 22 | 2 | 174 | 32.4 23 | 3 | 115 | 38.3 24 | 4 | 84.5 | 46.4 25 | 5 | 61.9 | 51.1 26 | 6 | 51.1 | 61.9 27 | 7 | 46.4 | 84.5 28 | 8 | 38.3 | 115 29 | 9 | 32.4 | 174 30 | 10 | 24.9 | 442 31 | 32 | |  | Expected limits | Boundary | Expected voltage | Boundary 33 | | -- | -- | -- | -- | -- 34 | ver/rev | range (DN) | thresholds (DN) | limits (V) | thresholds (V) 35 | 0 | 204 | 0 | 0.166 | 0 36 |   | 553 | 579 | 0.441 | 0.467 37 | 1 | 605 | 580 | 0.492 | 0.468 38 |   | 966 | 967 | 0.77 | 0.779 39 | 2 | 968 | 968 | 0.788 | 0.78 40 |   | 1331 | 1356 | 1.062 | 1.093 41 | 3 | 1382 | 1357 | 1.125 | 1.094 42 |   | 1738 | 1756 | 1.386 | 1.415 43 | 4 | 1774 | 1757 | 1.443 | 1.416 44 |   | 2113 | 2137 | 1.685 | 1.722 45 | 5 | 2161 | 2138 | 1.759 | 1.723 46 |   | 2476 | 2519 | 1.975 | 2.03 47 | 6 | 2562 | 2520 | 2.085 | 2.031 48 |   | 2842 | 2919 | 2.267 | 2.353 49 | 7 | 2996 | 2920 | 2.438 | 2.354 50 |   | 3230 | 3308 | 2.577 | 2.666 51 | 8 | 3386 | 3309 | 2.755 | 2.667 52 |   | 3571 | 3699 | 2.848 | 2.981 53 | 9 | 3827 | 3700 | 3.114 | 2.982 54 |   | 3946 | 4095 | 3.147 | 3.363 55 | 56 | ## EEPROM Logic 57 | The Pixhawk project aims to make all baseboards and FMUs compatible and interchangeable. Since all hardware manufacturers share this same narrow number space, additional logic was added. 58 | 59 | The project is no longer accepting resistor-based REV/VER pairs and is moving all new hardware to use EEPROM logic. 60 | 61 | If the VER resistor encodes the value 0x007, this tells the FMU that it needs to access the EEPROM to poll the true version of the base board, significantly opening up the number space. 62 | 63 | The same logic applies to the REV resistor on the FMU—if it encodes the value 0x007, the FMU's true revision will be read from EEPROM. 64 | 65 | ## Requesting a Board ID 66 | If a manufacturer wants to introduce a new board - either a baseboard version or an FMU revision - this desire shall be indicated to the PX4 board support team by issuing a PR to this repository with the respective additions to the [table below](#defined-versions-and-revisions). 67 | 68 | The body of the PR needs to include the following details 69 | 70 | * HEX board ID 71 | * Board Name 72 | * Board Type: base|imu 73 | * Manufacturer Name 74 | * Manufacturer Email 75 | 76 | ## How to set EEPROM ID 77 | 78 | Once the requested Board ID has been accepted and the PR has been merged, the Pixhawk SIG team will then generate the files required to set the ID in the EEPROM. The files will be sent via email and are meant to be private to avoid conflicts between manufacturers using same EEPROM values for distinct products. 79 | 80 | The Pixhawk SIG team will send manufacturers the following files: 81 | 82 | * `[manufacturer name]-[board name]-[base|imu]-[0xnnnn].bin` is an application that programs the EEPROM 83 | * `[manufacturer name]-[board name]-[base|imu]-[0xnnnn].jlink` is an automation script to program and run the bin file on the target 84 | 85 | With these files manufacturers will be capable of setting the Board ID to the requested value. There are two ways to do this, we noted both options below with detailed instructions, we recommend to use the one that fits your production workflow best. 86 | 87 | ### Option 1: Final Assembly 88 | 89 | **Requirements** 90 | 91 | * FMUM + BASE connected together 92 | * JLink + Pixhawk Debug Adapter 93 | * Computer capable of connecting to JLink console 94 | * EEPROM Files sent via email 95 | 96 | **Steps** 97 | 98 | 1) Make sure the FMUM and BASE are assembled and connected together. 99 | 2) Hardware is connected to JLink and Console app using a pixhawk debug adapter on a Computer 100 | 3) Hardware is powered ON 101 | 4) Run the *.jlink file 102 | 103 | * `JLinkExe -CommandFile FILENAME-0x0000.jlink` 104 | * Console will output success/error messages accordingly 105 | 106 | 5) Bootloader is loaded on the FMUM 107 | 6) Done 108 | 109 | ### Option 2: Set Base ID via FMUM 110 | 111 | **Requirements** 112 | 113 | * An FMUM to be used to program bases 114 | * JLink + Pixhawk Debug Adapter 115 | * Computer capable of connecting to JLink console 116 | * EEPROM Files sent via email 117 | 118 | **Steps** 119 | 120 | Preparing the FMUM 121 | 122 | 1) Choose an FMUM 123 | 2) Connect to JLink + Console 124 | 3) Run the JLink script on the FMUM 125 | 126 | * `JLinkExe -CommandFile FILENAME-0x0000.jlink` 127 | 128 | Update Baseboards with FMUM 129 | 130 | 1) The FMUM tool is installed on a base that needs it’s EEPROM programed. 131 | 2) Base is connected to JLink and console app using a debug adaptor. 132 | 3) Apply power. 133 | 4) See results on Console. 134 | 5) Remove power. 135 | 6) Remove FMUM tool 136 | 7) Repeat. 137 | 138 | ## Defined versions and revisions 139 | 140 | HWTYPE = {v5/6x}{VER}{REV} 141 | 142 | ### Base board versions 143 | 144 | | | | | 145 | | --- | --- | --- | 146 | | **Value** | **Encoded by** | **Base board VERSION** | 147 | | 0x000 | resistors | Auterion v5x base board | 148 | | 0x001 | resistors | v5x base without px4io | 149 | | 0x002 | resistors | Modal AI | 150 | | 0x003 | resistors | NXP T1 PHY | 151 | | 0x004 | resistors | HB CM4 | 152 | | 0x005 | resistors | HB mini | 153 | | 0x006 | resistors | RESERVED DRONECODE | 154 | | 0x007 | resistors | Read Version from EEPROM | 155 | | 0x008 | resistors | Skynode QS with USB | 156 | | 0x009 | resistors | Auterion Skynode base RC9 & older (no usb) | 157 | | 0x00a | resistors | Skynode QS no USB | 158 | | 0x010 | EEPROM | Auterion Skynode RC10, RC11, RC12, RC13 | 159 | | 0x011 | EEPROM | Auterion Skynode Lite RC13 | 160 | | 0x100 | EEPROM | Holybro Pixhawk Jetson Baseboard | 161 | | 0x150 | EEPROM | ZeroOne X6 Baseboard | 162 | | 0x200 | EEPROM | Amovlab ICF6 Baseboard | 163 | 164 | ### FMU v5x revisions 165 | 166 | | | | | 167 | | --- | --- | --- | 168 | | **Value** | **Encoded by** | **FMU v5x REVISION** | 169 | | 0x000 | resistors | FMUv5x RC13 (baro2 on I2C4) | 170 | | 0x001 | resistors | FMUv5x RC15 (baro2 on I2C2) | 171 | | 0x002 | resistors | FMUv5x rev 2 sensor set | 172 | | 0x003 | resistors | FMUv5x rev 3 sensor set | 173 | | 0x004 | resistors | | 174 | | 0x005 | resistors | | 175 | | 0x006 | resistors | | 176 | | 0x007 | resistors | Read Revision from EEPROM | 177 | | 0x008 | resistors | | 178 | | 0x009 | resistors | | 179 | | 0x00a | resistors | | 180 | | 0x010 | EEPROM | | 181 | 182 | ### FMU v6x revisions 183 | 184 | | | | | 185 | | --- | --- | --- | 186 | | **Value** | **Encoded by** | **FMU v6x REVISION** | 187 | | 0x000 | resistors | | 188 | | 0x001 | resistors | CUAV v6x | 189 | | 0x002 | resistors | | 190 | | 0x003 | resistors | Holybro FMUv6x rev3 | 191 | | 0x004 | resistors | Holybro FMUv6x rev4 | 192 | | 0x005 | resistors | ClearSky AVEGA (FMUv6X) | 193 | | 0x006 | resistors | Holybro FMUv6x rev6 | 194 | | 0x007 | resistors | Read Revision from EEPROM | 195 | | 0x008 | resistors | Holybro FMUv6x rev8 | 196 | | 0x009 | resistors | | 197 | | 0x00a | resistors | | 198 | | 0x010 | EEPROM | Auterion FMUv6x 0.6.0 | 199 | 200 | --------------------------------------------------------------------------------