mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-21 07:43:35 +08:00
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -0,0 +1,137 @@
|
||||
# 제조사의 PX4 보드 지원 가이드
|
||||
|
||||
The PX4 development and test teams fully support and maintain boards that are compliant with the [Pixhawk Standard](https://pixhawk.org/standards/).
|
||||
표준을 준수하지 않거나 새로운 보드를 제작하는 업체에서는 호환성 차이를 지원하여야 합니다.
|
||||
|
||||
This guide outlines the [general requirements](#general_requirements) for board support, along with the additional requirements for the different [board support categories](#board-support-categories).
|
||||
|
||||
:::info
|
||||
Boards that are not compliant with the requirements are [unsupported](#unsupported); they will not be listed on the PX4 website hardware list and will be removed from the codebase.
|
||||
:::
|
||||
|
||||
<a id="general_requirements"></a>
|
||||
|
||||
## 일반 요구사항
|
||||
|
||||
지원 모든 보드에 대한 일반 요구사항은 다음과 같습니다.
|
||||
|
||||
1. 하드웨어는 시장에서 사용할 수 있어야 합니다.
|
||||
|
||||
2. 보드에는 UAV에서 PX4와 함께 보드를 사용하는 것이 불가능하거나 위험하게 하는 버그나 허용 범위 초과하는 품질 이상이 없어야 합니다.
|
||||
보드는 부품과 조립품의 품질을 보장하기 위해 승인 기준을 통과하여야 합니다.
|
||||
|
||||
3. 고객을 지원하고 고객이 연락할 수 있는 명확하고 쉬운 방법이 있어야 합니다.
|
||||
다음과 같은 방법이 허용됩니다.
|
||||
|
||||
- PX4 Discord server presence
|
||||
- 지원 이메일
|
||||
- 전화번호
|
||||
|
||||
4. PX4 관리자를 위한 PoC(Point of Contact)(직접 이메일 또는 Slack/Forum/Github에서 사용 가능)
|
||||
|
||||
5. The board needs to use the [PX4 bootloader protocol](https://github.com/PX4/PX4-Autopilot/tree/main/platforms/nuttx/src/bootloader).
|
||||
For more information on bootloaders see: [PX4 Nuttx Porting Guide > Bootloader](../hardware/porting_guide_nuttx.md#bootloader).
|
||||
|
||||
6. 다음 내용을 포함하는 적절한 문서:
|
||||
|
||||
- PX4 핀 정의를 아래에 매핑하는 완전한 핀배열 공개:
|
||||
1. 마이크로컨트롤러 핀
|
||||
2. 물리적 외부 커넥터
|
||||
- A block diagram or full schematic of the main components (sensors, power supply, etc.) that allows to infer software requirements and boot order
|
||||
- A manual of the finished product detailing its use
|
||||
|
||||
7. There must be a dedicated webpage for the board with PX4, which lists the features and limitations for usage with PX4, and includes or links to the above described documentation.
|
||||
|
||||
## 보드 지원 카테고리
|
||||
|
||||
보드 지원 범주는 다음과 같습니다. The autopilot boards in each category are listed at: [https://px4.io/autopilots/.](https://px4.io/autopilots/)
|
||||
|
||||
:::info
|
||||
Manufacturer supported boards may be as well/better supported than Pixhawk boards (for example through economies of scale).
|
||||
:::
|
||||
|
||||
## Pixhawk표준
|
||||
|
||||
Pixhawk 보드는 Pixhawk 표준을 준수하는 보드입니다. These standards are laid out on [http://pixhawk.org](http://pixhawk.org/), but at high-level require that the board passes electrical tests mandated by the standard and the manufacturer has signed the Pixhawk adopter and trademark agreement.
|
||||
|
||||
PX4는 일반적으로 상업적으로 사용 가능한 보드만 지원하므로, 일반적으로 지난 5년 이내에 출시된 보드 표준이 지원됩니다.
|
||||
|
||||
<a id="ver_rev_id"></a>
|
||||
|
||||
### VER 및 REV ID(하드웨어 개정 및 버전 감지)
|
||||
|
||||
FMUv5 이상에는 전기 감지 메커니즘이 있습니다.
|
||||
선택적 구성 데이터와 결합된 이 감지는 필수 장치 및 전원 공급 장치 구성과 관련하여 하드웨어 구성을 정의합니다. Manufacturers must obtain the VER and REV ID from PX4 board maintainers by issuing a PR to ammend the [DS-018 Pixhawk standard](https://github.com/pixhawk/Pixhawk-Standards) for board versions and revisions.
|
||||
|
||||
Because these boards are 100% compliant with the Pixhawk standard, the values assigned for VER and REV ID are the defaults for that FMU Version.
|
||||
|
||||
## 지원 제조업체
|
||||
|
||||
이러한 보드는 제조업체에서 지원합니다.
|
||||
이 범주에 해당하려면 보드는 해당 릴리스로부터 4개월 이내에 최신 안정 PX4 릴리스에서 작동하여야 합니다.
|
||||
|
||||
- 제조업체가 직접 지원합니다.
|
||||
- 제조업체는 코어 개발 팀에 최소 2개의 보드를 공급하여야 합니다(테스트 랙 및 테스트 팀에서 사용하기 위하여).
|
||||
|
||||
:::tip
|
||||
While there is no commitment from the PX4 maintainers and the flight test team to support and test boards in this category, we strongly recommended PX4 and manufacturer teams build close working relationships.
|
||||
이것은 모든 당사자에게 더 나은 결과를 가져올 것입니다.
|
||||
:::
|
||||
|
||||
:::info
|
||||
These boards will be assigned [VER and REV ID](#ver_rev_id) based on compatibility.
|
||||
보드가 FMU 사양의 변형이고 동일한 바이너리를 실행 가능하고 제조업체에서 지원하는 약간의 차이가 있는 경우에는 PX4에서 특별 할당을 수행합니다.
|
||||
Contact the PX4 maintainer at [boards@px4.io](mailto:boards@px4.io) to request more information.
|
||||
:::
|
||||
|
||||
## 실험
|
||||
|
||||
These boards are all boards that don't fall in the above categories, or don't fall in those categories _anymore_.
|
||||
다음 요구 사항이 적용됩니다.
|
||||
|
||||
- 보드는 정의된 차량 유형에 대해 최소 하나의 PX4 릴리스에 작동하여야 하지만 반드시 최신 릴리스일 필요는 없습니다.
|
||||
|
||||
:::info
|
||||
Experimental boards that were _previously_ Pixhawk or Manufacturer supported will have/retain their original IDs.
|
||||
_New_ experimental boards are allocated [VER and REV IDs](#ver_rev_id) based on compatibility, in the same way as Manufacturer Supported boards.
|
||||
:::
|
||||
|
||||
## 미지원
|
||||
|
||||
이 범주에는 PX4 프로젝트 또는 제조업체에서 지원하지 않고 "실험적" 지원에 해당하지 않는 모든 보드가 포함됩니다.
|
||||
|
||||
- 보드는 우리가 이미 지원하는 것과 문서상 어느 정도 호환되며 "실험적"으로 올리려면, 최소한의 노력이 필요하지만 개발 팀이나 제조업체 모두 현재 이를 추구하지 않습니다.
|
||||
- Manufacturer/Owner of hardware violates our [Code of Conduct](https://discuss.px4.io/t/code-of-conduct/13655)
|
||||
- 라이선스 제한으로 인해 보드 지원을 추가하는 데 필요한 도구/libs/drivers/etc가 호환되지 않는 것으로 간주되는 비공개 소스
|
||||
- 보드가 일반 요구 사항에 명시된 최소 요구 사항을 충족하지 않습니다.
|
||||
|
||||
:::info
|
||||
Unsupported boards will NOT be assigned [VER and REV ID](#ver_rev_id) (and cannot run PX4 FMUvX firmware).
|
||||
:::
|
||||
|
||||
## 릴리스 프로세스
|
||||
|
||||
제조업체가 보드가 특정 범주에 속한다고 선언시, 보드는 해당 범주 및 일반 요구 사항에 대한 요구 사항을 준수한다고 가정합니다.
|
||||
|
||||
제조업체 지원 또는 실험 범주에 속하는 새 보드가 시장에 출시되면, 제조업체는 PX4 문서를 업데이트하고 PX4에서 보드 릴리스 프로세스를 수행할 책임이 있습니다. 다음 단계를 수행하는 것이 좋습니다.
|
||||
|
||||
Contact PX4 board maintainers at [boards@px4.io](mailto:boards@px4.io) and request the following:
|
||||
|
||||
1. The assignment of a _board id_ for bootloader and firmware selection in QGC.
|
||||
2. The assignment of REV and VER ID resistor values.
|
||||
3. If the board supports USB: Either request the assignment of a USB VID and PID or provide the USB VID and PID.
|
||||
|
||||
Integrate the board according to the board porting release process described in the [porting guide](../hardware/porting_guide.md)
|
||||
|
||||
:::warning
|
||||
The board support process may be changed and improved over time.
|
||||
Hardware manufacturers are encouraged to contribute to this process through the regular hardware call, the Discuss forum or Discord.
|
||||
:::
|
||||
|
||||
## 지원
|
||||
|
||||
보드 지원 가이드/프로세스의 일부가 명확하지 않은 경우:
|
||||
|
||||
- Ask the community for help on Discord channels under `Hardware` category, or on the discuss forum
|
||||
- 정규 하드웨어 회의 참석
|
||||
- Consultancy options are listed here: [https://px4.io/community/consultants/](https://px4.io/community/consultants/)
|
||||
@@ -0,0 +1,19 @@
|
||||
# Hardware Hardware Selection & Setup
|
||||
|
||||
PX4 완제품 기체와 자체 제작 드론의 부품들에 대하여 설명합니다.
|
||||
|
||||
- [Flight Controllers (Autopilots)](../flight_controller/index.md) - Pixhawk and other FCs, firmware updates, other bootloaders
|
||||
- [Sensors](../sensor/index.md) — accelerometer, gyroscope, compass, airspeed, barometer, rangefinders, GNSS, RTK GNSS, Optical Flow, Tachometers, Factory calibration, thermal calibration.
|
||||
- [Actuators](../actuators/index.md) — Allocation, ESC, motors, servos
|
||||
- [Radio Control (RC)](../getting_started/rc_transmitter_receiver.md) — Manual control using an RC system
|
||||
- [Joysticks](../config/joystick.md) — Manual control using a Joystick connected to QGroundControl
|
||||
- [Data Links](../data_links/index.md) — MAVLink, telemetry radios, satellite comms
|
||||
- [Power Systems](../power_systems/index.md) — Battery estimation tuning, power modules, smart batteries
|
||||
- [Peripherals](../peripherals/index.md) — camera, gimbal, grippers, parachute, RemoteID, traffic avoidance etc.
|
||||
- [I2C Peripherals](../sensor_bus/i2c_general.md)
|
||||
- [CAN Peripherals](../can/index.md)
|
||||
- [DroneCAN Peripherals](../dronecan/index.md)
|
||||
- [Cable Wiring](../assembly/cable_wiring.md)
|
||||
- [Companion Computers](../companion_computer/index.md) — Setup, peripherals, computer vision, etc.
|
||||
- [Serial Port Configuration](../peripherals/serial_configuration.md)
|
||||
- [PX4 Ethernet Setup](../advanced_config/ethernet_setup.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# 하드웨어 통합
|
||||
|
||||
This section contains topics about integrating PX4 with _new_ autopilot and peripheral hardware, including:
|
||||
|
||||
- [Flight Controller Reference Design](../hardware/reference_design.md)
|
||||
- [Manufacturer’s Board Support Guide](../hardware/board_support_guide.md)
|
||||
- [Flight Controller Porting Guide](../hardware/porting_guide.md)
|
||||
- [Serial Port Mapping](../hardware/serial_port_mapping.md)
|
||||
- [Airframes](../dev_airframes/index.md)
|
||||
- [Device Drivers](../middleware/drivers.md)
|
||||
- [Telemetry Radio/Modems](../data_links/telemetry.md) and other communications links
|
||||
- [Sensor and Actuator I/O](../sensor_bus/index.md)
|
||||
- [RTK GPS (Integration)](../advanced/rtk_gps.md)
|
||||
|
||||
:::tip
|
||||
Other sections show how to _use_ and _configure_ supported [autopilot](../flight_controller/index.md), [companion computer](../companion_computer/index.md) and [peripheral](../peripherals/index.md) hardware.
|
||||
:::
|
||||
@@ -0,0 +1,98 @@
|
||||
# 비행 콘트롤러 포팅 가이드
|
||||
|
||||
This topic is for developers who want to port PX4 to work with _new_ flight controller hardware.
|
||||
|
||||
## PX4 아키텍쳐
|
||||
|
||||
PX4 consists of two main layers: The [board support and middleware layer](../middleware/index.md) on top of the host OS (NuttX, Linux or any other POSIX platform like Mac OS), and the applications (Flight Stack in [src/modules](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules)\). Please reference the [PX4 Architectural Overview](../concept/architecture.md) for more information.
|
||||
|
||||
애플리케이션/플라이트 스택이 모든 보드 대상에서 실행되므로, 이 가이드에서는 호스트 OS와 미들웨어에만 초점을 맞추어 설명합니다.
|
||||
|
||||
## 비행 콘트롤러 설정 파일 구조
|
||||
|
||||
Board startup and configuration files are located under [/boards](https://github.com/PX4/PX4-Autopilot/tree/main/boards/) in each board's vendor-specific directory (i.e. **boards/_VENDOR_/_MODEL_/**).
|
||||
|
||||
예 FMUv5 :
|
||||
|
||||
- (All) Board-specific files: [/boards/px4/fmu-v5](https://github.com/PX4/PX4-Autopilot/tree/main/boards/px4/fmu-v5).<!-- NEED px4_version -->
|
||||
- Build configuration: [/boards/px4/fmu-v5/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/default.px4board).<!-- NEED px4_version -->
|
||||
- Board-specific initialisation file: [/boards/px4/fmu-v5/init/rc.board_defaults](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/init/rc.board_defaults) <!-- NEED px4_version -->
|
||||
- A board-specific initialisation file is automatically included in startup scripts if found under the boards directory at **init/rc.board**.
|
||||
- 이 파일은 특정 보드에만 존재하는 센서(및 기타 항목)를 시작하는 데 사용됩니다.
|
||||
또한 보드의 기본 매개변수, UART 매핑 및 기타 특수한 경우를 설정하는 데 사용할 수 있습니다.
|
||||
- FMUv5은 시작되는 모든 Pixhawk 4 센서를 볼 수 있으며, 더 큰 LOGGER_BUF도 설정합니다.
|
||||
|
||||
## 호스트 운영 체제 설정
|
||||
|
||||
이 섹션에서는 지원되는 호스트 운영 체제에서 새 비행 콘트롤러 이식에 필요한 설정 파일의 목적과 위치에 대하여 설명합니다.
|
||||
|
||||
### NuttX
|
||||
|
||||
See [NuttX Board Porting Guide](porting_guide_nuttx.md).
|
||||
|
||||
### Linux
|
||||
|
||||
Linux 보드에는 OS와 커널 설정이 포함되어 있지 않습니다.
|
||||
Linux에는 이미 보드에 사용할 수 있는 Linux 이미지에 의해 제공됩니다(즉시 관성 센서를 지원해야 함).
|
||||
|
||||
- [boards/px4/raspberrypi/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/raspberrypi/default.px4board) - RPi cross-compilation. <!-- NEED px4_version -->
|
||||
|
||||
## 미들웨어 구성 요소 및 설정
|
||||
|
||||
이 섹션에서는 다양한 미들웨어 구성 요소와 이를 새로운 비행 콘트롤러로 이식에 필요한 설정 파일 업데이트에 대하여 설명합니다.
|
||||
|
||||
### QuRT / Hexagon
|
||||
|
||||
- The start script is located in [posix-configs/](https://github.com/PX4/PX4-Autopilot/tree/main/posix-configs). <!-- NEED px4_version -->
|
||||
- OS 구성은 기본 Linux 이미지의 일부입니다(TODO: LINUX IMAGE 및 플래시 지침의 위치 제공).
|
||||
- The PX4 middleware configuration is located in [src/boards](https://github.com/PX4/PX4-Autopilot/tree/main/boards). <!-- NEED px4_version --> TODO: ADD BUS CONFIG
|
||||
|
||||
## RC UART 배선 권장 사항
|
||||
|
||||
일반적으로 별도의 RX 및 TX 핀을 통해 RC를 마이크로 콘트롤러에 연결하는 것이 좋습니다.
|
||||
그러나 RX와 TX가 함께 연결된 경우에는 UART의 경합 방지를 위하여, 단일 와이어 모드로 전환되어야 합니다.
|
||||
이것은 보드 설정과 매니페스트 파일을 통하여 수행됩니다.
|
||||
One example is [px4fmu-v5](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/src/manifest.c). <!-- NEED px4_version -->
|
||||
|
||||
## 공식 지원 하드웨어
|
||||
|
||||
The PX4 project supports and maintains the [FMU standard reference hardware](../hardware/reference_design.md) and any boards that are compatible with the standard.
|
||||
This includes the [Pixhawk-series](../flight_controller/pixhawk_series.md) (see the user guide for a [full list of officially supported hardware](../flight_controller/index.md)).
|
||||
|
||||
공식 지원 보드의 이점은 다음과 같습니다.
|
||||
|
||||
- PX4 저장소에서 PX4 포트 사용 가능
|
||||
- Automatic firmware builds that are accessible from _QGroundControl_
|
||||
- 나머지 생태계와의 호환성
|
||||
- CI를 통한 자동 검사 - 이 커뮤니티에서 가장 중요한 것은 안전입니다.
|
||||
- [Flight testing](../test_and_ci/test_flights.md)
|
||||
|
||||
We encourage board manufacturers to aim for full compatibility with the [FMU spec](https://pixhawk.org/).
|
||||
완전한 호환성을 통하여 PX4의 지속적인 일일 개발의 이점을 얻을 수 있지만, 사양에서 벗어난 지원으로 인한 유지 관리 비용은 없습니다.
|
||||
|
||||
:::tip
|
||||
Manufacturers should carefully consider the cost of maintenance before deviating from the specification (the cost to the manufacturer is proportional to the level of divergence).
|
||||
:::
|
||||
|
||||
We welcome any individual or company to submit their port for inclusion in our supported hardware, provided they are willing to follow our [Code of Conduct](https://github.com/PX4/PX4-Autopilot/blob/main/CODE_OF_CONDUCT.md) and work with the Dev Team to provide a safe and fulfilling PX4 experience to their customers.
|
||||
|
||||
또한 PX4 개발 팀은 안전한 소프트웨어를 출시할 책임이 있으므로, 모든 보드 제조업체는 포트를 최신 상태 유지에 필요한 리소스를 투입하여야 합니다.
|
||||
|
||||
보드를 PX4에서 공식적으로 지원하려면:
|
||||
|
||||
- 하드웨어는 시장에서 제한없이 구매할 수 있어야 합니다.
|
||||
- Hardware must be made available to the PX4 Dev Team so that they can validate the port (contact [lorenz@px4.io](mailto:lorenz@px4.io) for guidance on where to ship hardware for testing).
|
||||
- The board must pass full [test suite](../test_and_ci/index.md) and [flight testing](../test_and_ci/test_flights.md).
|
||||
|
||||
**The PX4 project reserves the right to refuse acceptance of new ports (or remove current ports) for failure to meet the requirements set by the project.**
|
||||
|
||||
You can reach out to the core developer team and community on the [official support channels](../contribute/support.md).
|
||||
|
||||
## 관련 정보
|
||||
|
||||
- [Device Drivers](../middleware/drivers.md) - How to support new peripheral hardware (device drivers)
|
||||
- [Building the Code](../dev_setup/building_px4.md) - How to build source and upload firmware
|
||||
- 지원 비행 콘트롤러:
|
||||
- [Autopilot Hardware](../flight_controller/index.md)
|
||||
- [Supported boards list](https://github.com/PX4/PX4-Autopilot/#supported-hardware) (Github) - Boards for which PX4-Autopilot has specific code
|
||||
- [Supported Peripherals](../peripherals/index.md)
|
||||
@@ -0,0 +1,72 @@
|
||||
# PX4 Board Configuration (Kconfig)
|
||||
|
||||
The PX4 Autopilot firmware can be configured at build time to adapt it for specialized applications (fixed-wing, multicopter, rover or more), to enable new and experimental features (such as Cyphal) or to save flash & RAM usage by disabling some drivers and subsystems.
|
||||
This configuration is handled through _Kconfig_, which is the same [configuration system used by NuttX](../hardware/porting_guide_nuttx.md#nuttx-menuconfig-setup).
|
||||
|
||||
The configuration options (often referred as "symbols" by the _kconfig_ language) are defined in `Kconfig` files under the **/src** directory.
|
||||
|
||||
## PX4 Kconfig Symbol Naming Convention
|
||||
|
||||
By convention, symbols for modules/drivers are named based on the module folder path.
|
||||
For example, the symbol for the ADC driver at `src/drivers/adc/board_adc` must be named `DRIVERS_ADC_BOARD_ADC`.
|
||||
|
||||
To add symbols for driver/module specific options, the naming convention is the module name followed by the option name.
|
||||
For example `UAVCAN_V1_GNSS_PUBLISHER` which is an option `GNSS_PUBLISHER` for the `UAVCAN_V1` module.
|
||||
The options have to be guarded behind an `if` statement to ensure that the options are only visible when the module itself is enabled.
|
||||
|
||||
Full example:
|
||||
|
||||
```
|
||||
menuconfig DRIVERS_UAVCAN_V1
|
||||
bool "UAVCANv1"
|
||||
default n
|
||||
---help---
|
||||
Enable support for UAVCANv1
|
||||
|
||||
if DRIVERS_UAVCAN_V1
|
||||
config UAVCAN_V1_GNSS_PUBLISHER
|
||||
bool "GNSS Publisher"
|
||||
default n
|
||||
endif #DRIVERS_UAVCAN_V1
|
||||
```
|
||||
|
||||
:::info
|
||||
Builds will silently ignore any missing or miss-spelled modules in the `*.px4board` configuration file.
|
||||
:::
|
||||
|
||||
## PX4 Kconfig Label Inheritance
|
||||
|
||||
Each PX4 board must have a `default.px4board` configuration and can have an optional `bootloader.px4board configuration`.
|
||||
However you can add also separate configurations under a different label e.g. `cyphal.px4board`.
|
||||
Note that by default the configuration of `cyphal.px4board` inherits all settings set in `default.px4board`.
|
||||
When changing the `cyphal.px4board` it only stores the delta of the Kconfig keys that are different compared to `default.px4board`, this is useful to simplify configurations management
|
||||
|
||||
:::info
|
||||
When modifying a Kconfig key in `default.px4board` it will be modified in all derivative configurations of the same board that had the same config as well.
|
||||
:::
|
||||
|
||||
## PX4 Menuconfig Setup
|
||||
|
||||
The [menuconfig](https://pypi.org/project/kconfiglib/#menuconfig-interfaces) tool is used to modify the PX4 board configuration, adding/removing modules, drivers, and other features.
|
||||
|
||||
There are command line and GUI variants, both of which can be launched using the PX4 build shortcuts:
|
||||
|
||||
```
|
||||
make px4_fmu-v5_default boardconfig
|
||||
make px4_fmu-v5_default boardguiconfig
|
||||
```
|
||||
|
||||
:::info
|
||||
_Kconfiglib_ and _menuconfig_ come with the _kconfiglib_ python package, which is installed by the normal [ubuntu.sh](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/ubuntu.sh) installation script.
|
||||
If _kconfiglib_ is not installed, you can do so using the command: `pip3 install kconfiglib`
|
||||
:::
|
||||
|
||||
The command line and GUI interfaces are shown below.
|
||||
|
||||
### menuconfig GUI Interface
|
||||
|
||||

|
||||
|
||||
### menuconfig Command Line Interface
|
||||
|
||||

|
||||
@@ -0,0 +1,91 @@
|
||||
# NuttX 보드 포팅 가이드
|
||||
|
||||
NuttX의 PX4를 포팅하려면, 하드웨어가 NuttX를 지원하여야 합니다.
|
||||
The NuttX project maintains an excellent [porting guide](https://cwiki.apache.org/confluence/display/NUTTX/Porting+Guide) for porting NuttX to a new computing platform.
|
||||
|
||||
The following guide assumes you are using an already supported hardware target or have ported NuttX (including the [PX4 base layer](https://github.com/PX4/PX4-Autopilot/tree/main/platforms/nuttx/src/px4)) already.
|
||||
|
||||
The configuration files for all boards, including linker scripts and other required settings, are located under [/boards](https://github.com/PX4/PX4-Autopilot/tree/main/boards/) in a vendor- and board-specific directory (i.e. **boards/_VENDOR_/_MODEL_/**).
|
||||
|
||||
The following example uses FMUv5 as it is a recent [reference configuration](../hardware/reference_design.md) for NuttX based flight controllers:
|
||||
|
||||
- Running `make px4_fmu-v5_default` from the **PX4-Autopilot** directory will build the FMUv5 config
|
||||
- The base FMUv5 configuration files are located in: [/boards/px4/fmu-v5](https://github.com/PX4/PX4-Autopilot/tree/main/boards/px4/fmu-v5).
|
||||
- Board specific header (NuttX pins and clock configuration): [/boards/px4/fmu-v5/nuttx-config/include/board.h](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/nuttx-config/include/board.h).
|
||||
- Board specific header (PX4 configuration): [/boards/px4/fmu-v5/src/board_config.h](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/src/board_config.h).
|
||||
- NuttX OS config (created with NuttX menuconfig): [/boards/px4/fmu-v5/nuttx-config/nsh/defconfig](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/nuttx-config/nsh/defconfig).
|
||||
- Build configuration: [boards/px4/fmu-v5/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/default.px4board).
|
||||
|
||||
## NuttX 메뉴 구성 설정
|
||||
|
||||
To modify the NuttX OS configuration, you can use [menuconfig](https://bitbucket.org/patacongo/nuttx/src/master/) using the PX4 shortcuts:
|
||||
|
||||
```sh
|
||||
make px4_fmu-v5_default menuconfig
|
||||
make px4_fmu-v5_default qconfig
|
||||
```
|
||||
|
||||
For fresh installs of PX4 onto Ubuntu using [ubuntu.sh](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/ubuntu.sh) <!-- NEED px4_version --> you will also need to install _kconfig_ tools from [NuttX tools](https://bitbucket.org/nuttx/tools/src/master/).
|
||||
|
||||
:::info
|
||||
The following steps are not required if using the [px4-dev-nuttx](https://hub.docker.com/r/px4io/px4-dev-nuttx/) docker container or have installed to macOS using our normal instructions (as these include`kconfig-mconf`).
|
||||
:::
|
||||
|
||||
임의의 디렉터리에서 다음 명령어를 실행합니다.
|
||||
|
||||
```sh
|
||||
git clone https://bitbucket.org/nuttx/tools.git
|
||||
cd tools/kconfig-frontends
|
||||
sudo apt install gperf
|
||||
./configure --enable-mconf --disable-nconf --disable-gconf --enable-qconf --prefix=/usr
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
|
||||
The `--prefix=/usr` determines the specific installation location (which must be in the `PATH` environment variable).
|
||||
The `--enable-mconf` and `--enable-qconf` options will enable the `menuconfig` and `qconfig` options respectively.
|
||||
|
||||
To run `qconfig` you may need to install additional Qt dependencies.
|
||||
|
||||
### 부트로더
|
||||
|
||||
먼저 하드웨어 대상에 적합한 부트로더가 필요합니다.
|
||||
|
||||
- STM32H7: 부트로더는 NuttX를 기반으로 하며, PX4 펌웨어에 포함되어 있습니다.
|
||||
See [here](https://github.com/PX4/PX4-Autopilot/tree/main/boards/holybro/durandal-v1/nuttx-config/bootloader) for an example.
|
||||
- 다른 대상의 경우 https://github.com/PX4/Bootloader가 사용됩니다. See [here](https://github.com/PX4/Bootloader/pull/155/files) for an example how to add a new target.
|
||||
Then checkout the [building and flashing instructions](../software_update/stm32_bootloader.md).
|
||||
|
||||
### 펌웨어 포팅 단계
|
||||
|
||||
1. Make sure you have a working [development setup](../dev_setup/dev_env.md) and installed the NuttX \`menuconfig\`\` tool (see above).
|
||||
|
||||
2. 소스 코드를 다운로드하고 기존 대상을 빌드할 수 있는 지 확인합니다.
|
||||
|
||||
```sh
|
||||
git clone --recursive https://github.com/PX4/PX4-Autopilot.git
|
||||
cd PX4-Autopilot
|
||||
make px4_fmu-v5
|
||||
```
|
||||
|
||||
3. 동일한(또는 유사한) CPU 유형을 사용하는 기존 대상을 복사합니다.
|
||||
예: STM32F7의 경우
|
||||
|
||||
```sh
|
||||
mkdir boards/manufacturer
|
||||
cp -r boards/px4/fmu-v5 boards/manufacturer/my-target-v1
|
||||
```
|
||||
|
||||
Change **manufacturer** to the manufacturer name and **my-target-v1** to your board name.
|
||||
|
||||
Next you need to go through all files under **boards/manufacturer/my-target-v1** and update them according to your board.
|
||||
|
||||
1. **firmware.prototype**: update the board ID and name
|
||||
2. **default.px4board**: update the **VENDOR** and **MODEL** to match the directory names (**my-target-v1**).
|
||||
직렬 포트를 설정합니다.
|
||||
3. Configure NuttX (**defconfig**) via `make manufacturer_my-target-v1 menuconfig`: Adjust the CPU and chip, configure the peripherals (UART's, SPI, I2C, ADC).
|
||||
4. **nuttx-config/include/board.h**: Configure the NuttX pins.
|
||||
여러 가지 핀 옵션이 있는 주변 장치에서는 NuttX는 핀 정보을 알아야 합니다.
|
||||
They are defined in the chip-specific pinmap header file, for example [stm32f74xx75xx_pinmap.h](https://github.com/PX4/NuttX/blob/px4_firmware_nuttx-8.2/arch/arm/src/stm32f7/hardware/stm32f74xx75xx_pinmap.h).
|
||||
5. **src**: go through all files under **src** and update them as needed, in particular **board_config.h**.
|
||||
6. **init/rc.board_sensors**: start the sensors that are attached to the board.
|
||||
@@ -0,0 +1,52 @@
|
||||
# PX4 참조 비행 콘트롤러 디자인
|
||||
|
||||
The PX4 reference design is the [Pixhawk series](../flight_controller/pixhawk_series.md) of flight controllers. First released in 2011, this design is now in its 5th [generation](#reference_design_generations) (with the 6th generation board design in progress).
|
||||
|
||||
## 바이너리 호환성
|
||||
|
||||
특정 디자인으로 제조된 모든 보드는 바이너리 호환이 되어야 합니다(즉, 동일한 펌웨어를 실행하여야 함). 2018년부터 우리는 이 호환성을 확인하고 인증할 수 있는 바이너리 호환성 테스트 제품군을 제공할 것입니다.
|
||||
|
||||
FMU 1~3세대는 개방형 하드웨어로 설계되었으나, FMU 4세대와 5세대는 핀아웃 및 전원 공급 사양만 제공했습니다(개략도는 개별 제조업체에서 작성하였습니다). 우수한 호환성을 위하여 FMUv6 이상은 완전한 참조 디자인 모델링합니다.
|
||||
|
||||
<a id="reference_design_generations"></a>
|
||||
|
||||
## 레퍼런스 디자인 세대
|
||||
|
||||
- FMUv1: Development board \(STM32F407, 128 KB RAM, 1MB flash, [schematics](https://github.com/PX4/Hardware/tree/master/FMUv1)\) (no longer supported by PX4)
|
||||
- FMUv2: Pixhawk \(STM32F427, 168 MHz, 192 KB RAM, 1MB flash, [schematics](https://github.com/PX4/Hardware/tree/master/FMUv2)\)
|
||||
- FMUv3: Pixhawk variants with 2MB flash \(3DR Pixhawk 2 \(Solo\), Hex Pixhawk 2.1, Holybro Pixfalcon, 3DR Pixhawk Mini, STM32F427, 168 MHz, 256 KB RAM, 2 MB flash, [schematics](https://github.com/PX4/Hardware/tree/master/FMUv3_REV_D)\)
|
||||
- FMUv4: Pixracer \(STM32F427, 168 MHz, 256 KB RAM, 2 MB flash, [pinout](https://docs.google.com/spreadsheets/d/1raRRouNsveQz8cj-EneWG6iW0dqGfRAifI91I2Sr5E0/edit#gid=1585075739)\)
|
||||
- FMUv4 PRO: Drotek Pixhawk 3 PRO \(STM32F469, 180 MHz, 384 KB RAM, 2 MB flash, [pinout](https://docs.google.com/spreadsheets/d/1raRRouNsveQz8cj-EneWG6iW0dqGfRAifI91I2Sr5E0/edit#gid=1585075739)\)
|
||||
- FMUv5: Holybro Pixhawk 4 \(STM32F765, 216 MHz, 512 KB RAM, 2 MB flash, [pinout](https://docs.google.com/spreadsheets/d/1-n0__BYDedQrc_2NHqBenG1DNepAgnHpSGglke-QQwY/edit#gid=912976165)\)
|
||||
- FMUv5X: (Multiple Products) \(STM32F765, 400 MHz, 512KB RAM, 2 MB flash\) ([standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-011%20Pixhawk%20Autopilot%20v5X%20Standard.pdf))
|
||||
- FMUv6X: (Multiple Products) \(STM32H753, 480 MHz, 1 MB RAM, 2 MB flash\) and variant 6i \(i.MX RT1050, 600 MHz, 512 KB RAM, external flash\) ([standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-012%20Pixhawk%20Autopilot%20v6X%20Standard.pdf))
|
||||
- FMUv6C: (Multiple Products) \(STM32H743V, 480 MHz, 1 MB RAM, 2 MB flash\) ([standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-018%20Pixhawk%20Autopilot%20v6C%20Standard.pdf))
|
||||
- FMUv6U: (Multiple Products) \(STM32H753, 400 MHz, 1 MB RAM, 2 MB flash\) ([standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-016%20Pixhawk%20Autopilot%20v6U%20Standard.pdf))
|
||||
- FMUv6X-RT: (Multiple Products) \(NXP i.MX RT1176, 32 Bit Arm® Cortex®-M7, 1GHz 32 Bit Arm® Cortex®-M4, 400MHz secondary core, 2 MB RAM, 64 MB flash\) and variant 6i \(i.MX RT1050, 600 MHz, 512 KB RAM, external flash\) ([standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-020%20Pixhawk%20Autopilot%20v6X-RT%20Standard.pdf))
|
||||
|
||||
Starting with FMUv5X all new standards are published on GitHub under [Pixhawk/Pixhawk-Standards](https://github.com/pixhawk/Pixhawk-Standards). See [Pixhawk.org](https://pixhawk.org) for more info.
|
||||
|
||||
## 메인 IO 기능 분석
|
||||
|
||||
아래 다이어그램은 Pixhawk 시리즈 비행 콘트롤러의 FMU와 I/O 보드간 기능과 버스 분할을 나타냅니다(보드는 단일 물리적 모듈에 통합됨).
|
||||
|
||||

|
||||
|
||||
<!-- Draw.io version of file can be found here: https://drive.google.com/file/d/1H0nK7Ufo979BE9EBjJ_ccVx3fcsilPS3/view?usp=sharing -->
|
||||
|
||||
일부 Pixhawk 시리즈 컨트롤러는 공간이나 복잡성을 줄이기 위하여 특정 보드 의 기능 향상을 위하여 I/O 보드 없이 제작됩니다.
|
||||
In this case the I/O driver is not started.
|
||||
|
||||
:::info
|
||||
Manufacturer flight controller variants without an I/O board are often named as a "diminutive" of a version that includes the I/O board: e.g. _Pixhawk 4_ **Mini**_, \_CUAV v5 **nano**_.
|
||||
:::
|
||||
|
||||
Build targets that must run on flight controllers with an I/O board map the FMU outputs to `AUX` and the I/0 outputs to `MAIN` (see diagram above).
|
||||
If the target is run on hardware where I/O board is not present or has been disabled, the PWM MAIN outputs will not be present.
|
||||
You might see this, for example, by running `px4_fmu-v5_default` on [Pixhawk 4](../flight_controller/pixhawk4.md) (with IO) and [Pixhawk 4 Mini](../flight_controller/pixhawk4_mini.md) (without I/O).
|
||||
|
||||
:::warning
|
||||
On [Pixhawk 4 Mini](../flight_controller/pixhawk4_mini.md) this results in a mismatch between the `MAIN` label screenprinted on the flight controller and the `AUX` bus shown during [Actuator Configuration](../config/actuators.md).
|
||||
::: info that if a build target is only ever intended to run on a flight controller that does not have an I/0 board, then the FMU outputs are mapped to `MAIN` (for example, the `px4_fmu-v4_default` target for [Pixracer](../flight_controller/pixracer.md)).
|
||||
|
||||
PX4 PWM outputs are mapped to either `MAIN` or `AUX` ports in [Actuator Configuration](../config/actuators.md).
|
||||
@@ -0,0 +1,142 @@
|
||||
# 시리얼 포트 매핑
|
||||
|
||||
This topic shows how to determine the mapping between USART/UART serial port device names (e.g. "ttyS0") and the associated ports on a flight controller, such as `TELEM1`, `TELEM2`, `GPS1`, `RC SBUS`, `Debug console`.
|
||||
|
||||
The instructions are used to generate serial port mapping tables in flight controller documentation.
|
||||
For example: [Pixhawk 4 > Serial Port Mapping](../flight_controller/pixhawk4.md#serial-port-mapping).
|
||||
|
||||
:::info
|
||||
The function assigned to each port does not _have to_ match the name (in most cases), and is set using a [Serial Port Configuration](../peripherals/serial_configuration.md).
|
||||
Usually the port function is configured to match the name, which is why the port labelled `GPS1` will work with a GPS out of the box.
|
||||
:::
|
||||
|
||||
## STMxxyyy의 NuttX
|
||||
|
||||
<!-- instructions from DavidS here: https://github.com/PX4/PX4-user_guide/pull/672#issuecomment-598198434 -->
|
||||
|
||||
보드 설정 파일을 검사하여 STMxxyyy 아키텍처에서 NuttX 빌드에 대한 매핑 획득 방법을 설명합니다.
|
||||
FMUv5를 사용하지만, 다른 FMU 버전/NuttX 보드에도 유사하게 확장할 수 있습니다.
|
||||
|
||||
### default.cmake
|
||||
|
||||
The **default.px4board** lists a number of serial port mappings (search for the text "SERIAL_PORTS").
|
||||
|
||||
From [/boards/px4/fmu-v5/default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/default.px4board):
|
||||
|
||||
```
|
||||
SERIAL_PORTS
|
||||
GPS1:/dev/ttyS0
|
||||
TEL1:/dev/ttyS1
|
||||
TEL2:/dev/ttyS2
|
||||
TEL4:/dev/ttyS3
|
||||
```
|
||||
|
||||
Alternatively you can launch boardconfig using `make px4_fmu-v5 boardconfig` and access the serial port menu
|
||||
|
||||
```
|
||||
Serial ports --->
|
||||
(/dev/ttyS0) GPS1 tty port
|
||||
() GPS2 tty port
|
||||
() GPS3 tty port
|
||||
() GPS4 tty port
|
||||
() GPS5 tty port
|
||||
(/dev/ttyS1) TEL1 tty port
|
||||
(/dev/ttyS2) TEL2 tty port
|
||||
() TEL3 tty port
|
||||
(/dev/ttyS3) TEL4 tty port
|
||||
() TEL5 tty port
|
||||
```
|
||||
|
||||
### nsh/defconfig
|
||||
|
||||
The _nsh/defconfig_ allows you to determine which ports are defined, whether they are UART or USARTs, and the mapping between USART/UART and device.
|
||||
You can also determine which port is used for the [serial/debug console](../debug/system_console.md).
|
||||
|
||||
Open the board's defconfig file, for example: [/boards/px4/fmu-v5/nuttx-config/nsh/defconfig](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/nuttx-config/nsh/defconfig#L215-L221)
|
||||
|
||||
Search for the text "ART" until you find a section like with entries formatted like `CONFIG_STM32xx_USARTn=y` (where `xx` is a processor type and `n` is a port number).
|
||||
예:
|
||||
|
||||
```
|
||||
ttyS0 CONFIG_STM32F7_USART1=y
|
||||
ttyS1 CONFIG_STM32F7_USART2=y
|
||||
ttyS2 CONFIG_STM32F7_USART3=y
|
||||
ttyS3 CONFIG_STM32F7_UART4=y
|
||||
ttyS4 CONFIG_STM32F7_USART6=y
|
||||
ttyS5 CONFIG_STM32F7_UART7=y
|
||||
ttyS6 CONFIG_STM32F7_UART8=y
|
||||
```
|
||||
|
||||
The entries tell you which ports are defined, and whether they are UART or USART.
|
||||
|
||||
DEBUG 콘솔 매핑을 가져오기 위해 <code>SERIAL_CONSOLE</code>에 대한 <a href="https://github.com/PX4/PX4-Autopilot/blob/master/boards/px4/fmu-v5/nuttx-config/nsh/defconfig#L212">defconfig 파일</a>을 검색합니다.
|
||||
Increment the device number _ttyS**n**_ alongside (zero based) to get the device-to-serial-port mapping.
|
||||
|
||||
```
|
||||
CONFIG_UART7_SERIAL_CONSOLE=y
|
||||
```
|
||||
|
||||
To get the DEBUG console mapping we search the [defconfig file](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/nuttx-config/nsh/defconfig#L212) for `SERIAL_CONSOLE`.
|
||||
Below we see that the console is on UART7:
|
||||
|
||||
```
|
||||
#define PX4IO_SERIAL_DEVICE "/dev/ttyS6"
|
||||
#define PX4IO_SERIAL_TX_GPIO GPIO_UART8_TX
|
||||
#define PX4IO_SERIAL_RX_GPIO GPIO_UART8_RX
|
||||
#define PX4IO_SERIAL_BASE STM32_UART8_BASE
|
||||
```
|
||||
|
||||
### board_config.h
|
||||
|
||||
For flight controllers that have an IO board, determine the PX4IO connection from **board_config.h** by searching for `PX4IO_SERIAL_DEVICE`.
|
||||
|
||||
For example, [/boards/px4/fmu-v5/src/board_config.h](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v5/src/board_config.h#L59):
|
||||
|
||||
```
|
||||
ttyS0 CONFIG_STM32F7_USART1=y GPS1
|
||||
ttyS1 CONFIG_STM32F7_USART2=y TEL1
|
||||
ttyS2 CONFIG_STM32F7_USART3=y TEL2
|
||||
ttyS3 CONFIG_STM32F7_UART4=y TEL4
|
||||
ttyS4 CONFIG_STM32F7_USART6=y
|
||||
ttyS5 CONFIG_STM32F7_UART7=y DEBUG
|
||||
ttyS6 CONFIG_STM32F7_UART8=y PX4IO
|
||||
```
|
||||
|
||||
So the PX4IO is on `ttyS6` (we can also see that this maps to UART8, which we already knew from the preceding section).
|
||||
|
||||
### 결합
|
||||
|
||||
<a href="../flight_controller/pixhawk4.md#serial-port-mapping">비행 콘트롤러 문서</a>의 결과 표는 다음과 같습니다.
|
||||
|
||||
```
|
||||
ttyS0 CONFIG_STM32F7_USART1=y GPS1
|
||||
ttyS1 CONFIG_STM32F7_USART2=y TEL1
|
||||
ttyS2 CONFIG_STM32F7_USART3=y TEL2
|
||||
ttyS3 CONFIG_STM32F7_UART4=y TEL4
|
||||
ttyS4 CONFIG_STM32F7_USART6=y
|
||||
ttyS5 CONFIG_STM32F7_UART7=y DEBUG
|
||||
ttyS6 CONFIG_STM32F7_UART8=y PX4IO
|
||||
```
|
||||
|
||||
In the [flight controller docs](../flight_controller/pixhawk4.md#serial-port-mapping) the resulting table is:
|
||||
|
||||
| UART | 장치 | 포트 |
|
||||
| ------ | ---------- | --------------------------------- |
|
||||
| UART1 | /dev/ttyS0 | GPS |
|
||||
| USART2 | /dev/ttyS1 | TELEM1 (흐름 제어) |
|
||||
| USART3 | /dev/ttyS2 | TELEM2 (흐름 제어) |
|
||||
| UART4 | /dev/ttyS3 | TELEM4 |
|
||||
| USART6 | /dev/ttyS4 | RC SBUS |
|
||||
| UART7 | /dev/ttyS5 | 디버그 콘솔 |
|
||||
| UART8 | /dev/ttyS6 | PX4IO |
|
||||
|
||||
## 기타 아키텍처
|
||||
|
||||
:::info
|
||||
Contributions welcome!
|
||||
:::
|
||||
|
||||
## See Also
|
||||
|
||||
- [Serial Port Configuration](../peripherals/serial_configuration.md)
|
||||
- [MAVLink Telemetry (OSD/GCS)](../peripherals/mavlink_peripherals.md)
|
||||
Reference in New Issue
Block a user