* Implemented driver for MCP23017 * fixed compatability with mcp23009. (naming of instantiated GPIO-Devices) * removed some comments * removed even more comments * commented out instatntiation of driver since it will not be used with v6x * removed last useless comments * re-activated gpio_mcp23009 driver, removed useless comments and empty lines * removed empty lines at the end of mcp23017.cpp * removed empty line * Implemented driver for MCP23017 * fixed compatability with mcp23009. (naming of instantiated GPIO-Devices) * removed some comments * removed even more comments * commented out instatntiation of driver since it will not be used with v6x * removed last useless comments * re-activated gpio_mcp23009 driver, removed useless comments and empty lines * removed empty lines at the end of mcp23017.cpp * removed empty line * basic working implementation * first improved driver version with shared code base for MCP23009 & MCP23017 (built as state machine with sanity checks) * removed unused imports * changed module name from MCP to MCP230XX * removed debug print statements * adjusted auto start command of driver * removed comments * -added seperate main functions for both derivative modules (mcp23009 and mcp23017) * compile common functions as shared library in src/lib/drivers * fixed cleanup of modules * ->unclean working version with shared common library * used make format * working & cleaned version * -> Added CallbackHandler to be able to use multiple reading GPIO-expanders simultaneously -> Removed old mcap23009 calls and pin registrations -> Adjusted GpioIn.msg to contain MAX_INSTANCES * ->removed unused imports ->used make format * Fix: Re-enabled platform_mcp_gpio for accton-godwit, cuav, fmu-v5x * Fix: enabled platform_mcp_gpio in px4/fmu-v5x * added depency to fmu-v5x * Fix: removed new lines * Fix: fixed linker errors * removed unused linkage against mcp-library * Made mcp start calls consistent for fmu-v5x and fmu-v6x * moved logging of comm errors to read/write function directly * added perf_count for sanity_check * removed error message * ensured member variables follow naming convention * added retries to probe function * simplyfied state-logic * add break to terminate loop early * ensured clean state when register_gpios() fails * add registered-flag to pins * used path from top dir instead of relative path in CMakeLists * used constexpr to set parameters instead of calculating them at runtime * style: used make format * fix: corrected i2c_bus assignment * style: init input of callbackhandler to 0 * fix: mark pin as registered if successful * style: made arguments const type --------- Co-authored-by: Alexander Lerach <alexander@auterion.com>
PX4 Drone Autopilot
This repository holds the PX4 flight control solution for drones, with the main applications located in the src/modules directory. It also contains the PX4 Drone Middleware Platform, which provides drivers and middleware to run drones.
PX4 is highly portable, OS-independent and supports Linux, NuttX and MacOS out of the box.
- Official Website: http://px4.io (License: BSD 3-clause, LICENSE)
- Supported airframes (portfolio):
- Multicopters
- Fixed wing
- VTOL
- Autogyro
- Rover
- many more experimental types (Blimps, Boats, Submarines, High Altitude Balloons, Spacecraft, etc)
- Releases: Downloads
Releases
Release notes and supporting information for PX4 releases can be found on the Developer Guide.
Building a PX4 based drone, rover, boat or robot
The PX4 User Guide explains how to assemble supported vehicles and fly drones with PX4. See the forum and chat if you need help!
Changing Code and Contributing
This Developer Guide is for software developers who want to modify the flight stack and middleware (e.g. to add new flight modes), hardware integrators who want to support new flight controller boards and peripherals, and anyone who wants to get PX4 working on a new (unsupported) airframe/vehicle.
Developers should read the Guide for Contributions. See the forum and chat if you need help!
Weekly Dev Call
The PX4 Dev Team syncs up on a weekly dev call.
Note
The dev call is open to all interested developers (not just the core dev team). This is a great opportunity to meet the team and contribute to the ongoing development of the platform. It includes a QA session for newcomers. All regular calls are listed in the Dronecode calendar.
Maintenance Team
See the latest list of maintainers on MAINTAINERS file at the root of the project.
For the latest stats on contributors please see the latest stats for the Dronecode ecosystem in our project dashboard under LFX Insights. For information on how to update your profile and affiliations please see the following support link on how to Complete Your LFX Profile. Dronecode publishes a yearly snapshot of contributions and achievements on its website under the Reports section.
Supported Hardware
For the most up to date information, please visit PX4 User Guide > Autopilot Hardware.
Project Governance
The PX4 Autopilot project including all of its trademarks is hosted under Dronecode, part of the Linux Foundation.

