Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions boards/amovlab/flycore/LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# AMOVLAB Flycore license overview

This file summarizes the license information that is relevant to the AMOVLAB Flycore
board support and to the PX4 firmware image built from this repository. It is based
on license files, README files, NOTICE files, and file headers present in this
checkout.

The PX4 repository root is licensed under BSD-3-Clause. PX4 documentation is
licensed separately under CC-BY-4.0. Third-party components keep their own
licenses as listed below.

| Path / module | Origin | License | Copyright | Note |
| --- | --- | --- | --- | --- |
| `boards/amovlab/flycore/src/*.c`, `boards/amovlab/flycore/src/*.cpp`, `boards/amovlab/flycore/src/*.h`, `boards/amovlab/flycore/src/CMakeLists.txt` | AMOVLAB Flycore board support adapted from PX4 board support code | BSD-3-Clause | PX4 Development Team where present; Flycore adaptation contributed for AMOVLAB board support | Most source files contain the BSD-3-Clause license text and PX4 copyright headers. |
| `boards/amovlab/flycore/nuttx-config/include/board.h`, `boards/amovlab/flycore/nuttx-config/scripts/*.ld`, `boards/amovlab/flycore/src/sdio.c` | Flycore-specific NuttX board configuration derived from NuttX/PX4 board support | BSD-3-Clause-style NuttX license text in file headers | Gregory Nutt and/or PX4 Development Team where present | These files include NuttX/PX4 permissive license headers and Flycore-specific hardware configuration values. |
| `boards/amovlab/flycore/default.px4board`, `boards/amovlab/flycore/bootloader.px4board`, `boards/amovlab/flycore/firmware.prototype`, `boards/amovlab/flycore/init/*`, `boards/amovlab/flycore/nuttx-config/Kconfig`, `boards/amovlab/flycore/nuttx-config/bootloader/defconfig`, `boards/amovlab/flycore/nuttx-config/nsh/defconfig` | AMOVLAB Flycore board build, boot, and default configuration | BSD-3-Clause | AMOVLAB/PX4 contributors | SPDX identifiers are present in the comment-capable config files. `firmware.prototype` is JSON, so it is documented here instead of adding invalid JSON comments. |
| `boards/amovlab/flycore/extras/amovlab_flycore_bootloader.bin` | Generated Flycore bootloader binary | Same license set as the bootloader source components used to build it | Derived from PX4 and NuttX bootloader sources | Generated by `make amovlab_flycore_bootloader`; no source header can be embedded in the binary file itself. |
| `LICENSE`, `README.md`, `src/**`, `platforms/common/**`, `platforms/nuttx/src/px4/**` | PX4 upstream code reused by Flycore firmware | BSD-3-Clause | PX4 Development Team | The repository root `LICENSE` is BSD-3-Clause and the root `README.md` states PX4 source code is BSD-3-Clause. |
| `docs/**`, including `docs/en/flight_controller/amovlab_flycore.md` and `docs/assets/flight_controller/amovlab_flycore/**` | PX4 documentation and Flycore documentation assets | CC-BY-4.0 | AMOVLAB and PX4 documentation contributors | `docs/LICENSE` is CC-BY-4.0. Flycore documentation images are owned by AMOVLAB or used with permission and may be contributed under the PX4 documentation license. Documentation assets are not part of the firmware image. |
| `platforms/nuttx/NuttX/nuttx/**` | Apache NuttX RTOS | Apache-2.0 with additional bundled third-party notices in `LICENSE`/`NOTICE` | Apache Software Foundation and listed third-party authors | NuttX root `LICENSE` is Apache-2.0. Some older or imported files contain compatible BSD-style notices; check file headers for exact per-file attribution. |
| `platforms/nuttx/NuttX/apps/**` | Apache NuttX Apps | Apache-2.0 with additional bundled third-party notices in `LICENSE`/`NOTICE` | Apache Software Foundation and listed third-party authors | NuttX Apps root `LICENSE` is Apache-2.0 and documents bundled compatible components. |
| `platforms/nuttx/NuttX/nuttx/arch/arm/src/imxrt/**`, `platforms/nuttx/NuttX/nuttx/arch/arm/src/s32k1xx/**`, `platforms/nuttx/NuttX/nuttx/arch/arm/src/s32k3xx/**`, `platforms/nuttx/NuttX/nuttx/boards/arm/s32k*/**` | NXP i.MXRT/S32K NuttX HAL and board support present in the repository | Apache-2.0 for NuttX files; some NXP/Freescale-origin code has compatible BSD-style notices | Apache Software Foundation; NXP/Freescale where present | Local files contain Apache Software Foundation headers and NXP copyright notices. Flycore uses STM32H7, so these NXP paths are repository components but are not part of the Flycore target build. |
| `src/drivers/uavcan/**` excluding `libdronecan` | PX4 DroneCAN/UAVCAN integration | BSD-3-Clause | PX4 Development Team | PX4 integration layer follows the PX4 repository license and file headers. Flycore enables UAVCAN support. |
| `src/drivers/uavcan/libdronecan/**` | DroneCAN/libuavcan third-party library | MIT | Pavel Kirienko; UAVCAN/DroneCAN Development Team where present | `src/drivers/uavcan/libdronecan/LICENSE` and `src/drivers/uavcan/libdronecan/dsdl/LICENSE` are MIT. |
| `src/drivers/cyphal/**` excluding submodules and `o1heap` | PX4 Cyphal integration | BSD-3-Clause | PX4 Development Team | Local PX4 Cyphal integration files carry PX4 copyright headers and follow the repository BSD-3-Clause license. |
| `src/drivers/cyphal/o1heap/**` | o1heap allocator used by Cyphal | MIT-style permissive license text in file headers | Pavel Kirienko | Local `o1heap.c`/`o1heap.h` contain the MIT permission grant and copyright notice. |
| `src/drivers/cyphal/libcanard`, `src/drivers/cyphal/public_regulated_data_types`, `src/drivers/cyphal/legacy_data_types` | Cyphal/OpenCyphal data types and libcanard submodules | TBD / needs verification | TBD / needs verification | These are gitlinks in this checkout and are not initialized locally, so their license files were not available for local verification. They are listed for repository completeness; the Flycore default firmware build enables DroneCAN/UAVCAN via `src/drivers/uavcan/libdronecan`, whose MIT license is verified locally. |
| `src/modules/mavlink/mavlink/**` | MAVLink submodule | Generator is (L)GPL v3; generated code is MIT by the exception in `COPYING` | MAVLink contributors and Free Software Foundation where present | Firmware uses generated MAVLink code; `COPYING` states generated binary/product output is under MIT. |
| `src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client/**` | Micro-XRCE-DDS Client PX4 submodule | Apache-2.0 | Upstream contributors; verify file-level copyrights where needed | Local `LICENSE` is Apache-2.0. |
| `src/drivers/gps/devices/**` | PX4 GPSDrivers submodule | BSD-3-Clause | PX4 Pro Drone Autopilot | Local `LICENSE.md` contains BSD-3-Clause license text. |
| `src/lib/events/libevents/**` | MAVLink libevents submodule | BSD-3-Clause | MAVLink Development Team | Local `LICENSE.md` contains BSD-3-Clause license text. |
| `src/lib/heatshrink/heatshrink/**` | heatshrink compression library | ISC-style permissive license text | Scott Vokes | Local `LICENSE` grants use, copy, modify, and distribute with attribution. |
| `src/drivers/ins/microstrain/mip_sdk/**` | MicroStrain MIP SDK | MIT | Parker Hannifin Corp. | Local `LICENSE.txt` is MIT. |
| `src/drivers/ins/sbgecom/sbgECom/**` | SBG Systems ECom SDK | MIT | SBG Systems SAS | Local `LICENSE.md` is MIT. |
| `src/drivers/transponder/sagetech_mxs/sg_sdk/**` | Sagetech SDK | Apache-2.0 | TBD / needs verification from file headers | Local `LICENSE` is Apache-2.0. This SDK is not selected in the local Flycore default firmware build. |
| `src/lib/crypto/monocypher`, `src/lib/crypto/libtomcrypt`, `src/lib/crypto/libtommath` | Crypto submodules referenced by PX4 | TBD / needs verification | TBD / needs verification | These are gitlinks and are not initialized locally in this checkout, so their license files were not available for local verification. They are not selected in the local Flycore default firmware build. |

## Flycore header status

Many Flycore source files contain full BSD-3-Clause or NuttX BSD-style license
text. SPDX identifiers were added to the following comment-capable Flycore
configuration files:

- `boards/amovlab/flycore/bootloader.px4board`
- `boards/amovlab/flycore/default.px4board`
- `boards/amovlab/flycore/init/rc.board_defaults`
- `boards/amovlab/flycore/init/rc.board_sensors`
- `boards/amovlab/flycore/nuttx-config/Kconfig`
- `boards/amovlab/flycore/nuttx-config/bootloader/defconfig`
- `boards/amovlab/flycore/nuttx-config/nsh/defconfig`
- `boards/amovlab/flycore/src/hw_config.h`

`boards/amovlab/flycore/firmware.prototype` is a JSON template and remains
without an inline SPDX comment to keep the file valid JSON; its license is covered
by this overview and the AMOVLAB Flycore board support contribution.

## Firmware-only PID compatibility note

The Flycore firmware image is built from permissively licensed PX4 board code, PX4
upstream code, Apache-2.0 NuttX RTOS code, and permissively licensed third-party
libraries documented above. No non-FOSS license was identified in the local source
evidence for the Flycore target. Remaining `TBD / needs verification` entries are
for repository components that were not selected in the local Flycore default
firmware build; they should still be confirmed before treating this overview as
complete evidence for all repository submodules.
7 changes: 7 additions & 0 deletions boards/amovlab/flycore/bootloader.px4board
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#
# SPDX-License-Identifier: BSD-3-Clause
#

CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
CONFIG_BOARD_ROMFSROOT=""
87 changes: 87 additions & 0 deletions boards/amovlab/flycore/default.px4board
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#
# SPDX-License-Identifier: BSD-3-Clause
#

CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
CONFIG_BOARD_ARCHITECTURE="cortex-m7"
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS2"
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS0"
CONFIG_BOARD_SERIAL_TEL2="/dev/ttyS1"
Comment thread
farhangnaderi marked this conversation as resolved.
CONFIG_BOARD_SERIAL_TEL3="/dev/ttyS3"
CONFIG_BOARD_SERIAL_GPS2="/dev/ttyS5"
CONFIG_BOARD_SERIAL_RC="/dev/ttyS4"
CONFIG_COMMON_INS=y
CONFIG_DRIVERS_ADC_BOARD_ADC=y
CONFIG_DRIVERS_BAROMETER_MS5611=y
CONFIG_COMMON_DISTANCE_SENSOR=y
CONFIG_COMMON_MAGNETOMETER=y
CONFIG_COMMON_TELEMETRY=y
CONFIG_DRIVERS_CDCACM_AUTOSTART=y
CONFIG_DRIVERS_DSHOT=y
CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_IMU_BOSCH_BMI088=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM42688P=y
Comment thread
farhangnaderi marked this conversation as resolved.
CONFIG_DRIVERS_LIGHTS_RGBLED=y
CONFIG_DRIVERS_LIGHTS_RGBLED_AW2023=y
CONFIG_DRIVERS_PWM_OUT=y
CONFIG_COMMON_RC=y
CONFIG_DRIVERS_RC_INPUT=y

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
CONFIG_DRIVERS_RC_INPUT=y
CONFIG_DRIVERS_COMMON_RC =y

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PX4's current Kconfig symbol is CONFIG_COMMON_RC, so I added that to the Flycore default board config.

CONFIG_DRIVERS_TONE_ALARM=y
CONFIG_DRIVERS_UAVCAN=y
CONFIG_BOARD_UAVCAN_TIMER_OVERRIDE=6
CONFIG_MODULES_AIRSPEED_SELECTOR=y
CONFIG_MODULES_BATTERY_STATUS=y
CONFIG_MODULES_COMMANDER=y
CONFIG_MODULES_CONTROL_ALLOCATOR=y
CONFIG_MODULES_DATAMAN=y
CONFIG_MODULES_EKF2=y
CONFIG_MODULES_EVENTS=y
CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
CONFIG_MODULES_FW_ATT_CONTROL=y
CONFIG_MODULES_FW_AUTOTUNE_ATTITUDE_CONTROL=y
CONFIG_MODULES_FW_LATERAL_LONGITUDINAL_CONTROL=y
CONFIG_MODULES_FW_MODE_MANAGER=y
CONFIG_MODULES_FW_RATE_CONTROL=y
CONFIG_MODULES_GIMBAL=y
CONFIG_MODULES_GYRO_CALIBRATION=y
CONFIG_MODULES_LAND_DETECTOR=y
CONFIG_MODULES_LANDING_TARGET_ESTIMATOR=y
CONFIG_MODULES_LOAD_MON=y
CONFIG_MODULES_LOGGER=y
CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y
CONFIG_MODULES_MANUAL_CONTROL=y
CONFIG_MODULES_MAVLINK=y
CONFIG_MODULES_MC_ATT_CONTROL=y
CONFIG_MODULES_MC_AUTOTUNE_ATTITUDE_CONTROL=y
CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=y
CONFIG_MODULES_MC_POS_CONTROL=y
CONFIG_MODULES_MC_RATE_CONTROL=y
CONFIG_MODULES_NAVIGATOR=y
CONFIG_MODULES_RC_UPDATE=y
CONFIG_MODULES_ROVER_POS_CONTROL=y
CONFIG_MODULES_SENSORS=y
CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
CONFIG_NUM_MISSION_ITMES_SUPPORTED=1000
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
CONFIG_SYSTEMCMDS_DMESG=y
CONFIG_SYSTEMCMDS_GPIO=y
CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y
CONFIG_SYSTEMCMDS_I2CDETECT=y
CONFIG_SYSTEMCMDS_LED_CONTROL=y
CONFIG_SYSTEMCMDS_MFT=y
CONFIG_SYSTEMCMDS_MTD=y
CONFIG_SYSTEMCMDS_NSHTERM=y
CONFIG_SYSTEMCMDS_PARAM=y
CONFIG_SYSTEMCMDS_PERF=y
CONFIG_SYSTEMCMDS_REBOOT=y
CONFIG_SYSTEMCMDS_SD_BENCH=y
CONFIG_SYSTEMCMDS_SERIAL_TEST=y
CONFIG_SYSTEMCMDS_SYSTEM_TIME=y
CONFIG_SYSTEMCMDS_TOP=y
CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y
CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
CONFIG_SYSTEMCMDS_UORB=y
CONFIG_SYSTEMCMDS_VER=y
CONFIG_SYSTEMCMDS_WORK_QUEUE=y
Binary file not shown.
13 changes: 13 additions & 0 deletions boards/amovlab/flycore/firmware.prototype
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"board_id": 1218,
"magic": "AMOVLABv1",
"description": "Firmware for the AMOVLAB Flycore board",
"image": "",
"build_time": 0,
"summary": "AMOVLAB Flycore",
"version": "0.1",
"image_size": 0,
"image_maxsize": 1966080,
"git_identity": "",
"board_revision": 0
}
20 changes: 20 additions & 0 deletions boards/amovlab/flycore/init/rc.board_defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/sh
#
# SPDX-License-Identifier: BSD-3-Clause
#
# board specific defaults
#
# No onboard magnetometer; yaw uses GPS when available unless the user adds
# an external compass module (see amovlab_flycore.md).
#------------------------------------------------------------------------------

if ver hwtypecmp FLYCORE000000
then
param set-default SYS_AUTOSTART 4014
fi

param set-default BAT1_V_DIV 10.89
param set-default BAT1_A_PER_V 36.367515152

# Multicopter Position Control control and Land Detector
param set-default MPC_LAND_CRWL 0.5
23 changes: 23 additions & 0 deletions boards/amovlab/flycore/init/rc.board_sensors
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/sh
#
# SPDX-License-Identifier: BSD-3-Clause
#
# AMOVLAB FLYCORE specific board sensors init
#
# Onboard: BMI088 + ICM42688P + MS5611 (no magnetometer).
# External I2C1 / I2C4 can host an optional GPS/compass module if the user
# installs one; default firmware does not start magnetometer drivers here.
# COMMON_MAGNETOMETER is enabled in the build so optional modules can be
# started manually from NSH if needed.
#------------------------------------------------------------------------------
board_adc start

# Internal SPI1 bus BMI088 accel/gyro
bmi088 -A -R 2 -s start
bmi088 -G -R 2 -s start

# Internal SPI2 bus ICM42688p
icm42688p -R 4 -s start

# Internal barometer on SPI1
ms5611 -s start
19 changes: 19 additions & 0 deletions boards/amovlab/flycore/nuttx-config/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#
# SPDX-License-Identifier: BSD-3-Clause
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#
config BOARD_HAS_PROBES
bool "Board provides GPIO or other Hardware for signaling to timing analyze."
default y
---help---
This board provides GPIO FMU-CH1-5, CAP1-6 as PROBE_1-11 to provide timing signals from selected drivers.

config BOARD_USE_PROBES
bool "Enable the use the board provided FMU-CH1-5, CAP1-6 as PROBE_1-11"
default n
depends on BOARD_HAS_PROBES

---help---
Select to use GPIO FMU-CH1-5, CAP1-6 to provide timing signals from selected drivers.
93 changes: 93 additions & 0 deletions boards/amovlab/flycore/nuttx-config/bootloader/defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
#
# SPDX-License-Identifier: BSD-3-Clause
#
# This file is autogenerated: PLEASE DO NOT EDIT IT.
#
# You can use "make menuconfig" to make any modifications to the installed .config file.
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
# modifications.
#
# CONFIG_DEV_CONSOLE is not set
# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
# CONFIG_SPI_EXCHANGE is not set
# CONFIG_STM32H7_SYSCFG is not set
CONFIG_ARCH="arm"
CONFIG_ARCH_BOARD_CUSTOM=y
CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/amovlab/flycore/nuttx-config"
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
CONFIG_ARCH_BOARD_CUSTOM_NAME="px4"
CONFIG_ARCH_CHIP="stm32h7"
CONFIG_ARCH_CHIP_STM32H743VI=y
CONFIG_ARCH_CHIP_STM32H7=y
CONFIG_ARCH_INTERRUPTSTACK=768
CONFIG_ARMV7M_BASEPRI_WAR=y
CONFIG_ARMV7M_ICACHE=y
CONFIG_ARMV7M_MEMCPY=y
CONFIG_ARMV7M_USEBASEPRI=y
CONFIG_BOARDCTL=y
CONFIG_BOARDCTL_RESET=y
CONFIG_BOARD_ASSERT_RESET_VALUE=0
CONFIG_BOARD_INITTHREAD_PRIORITY=254
CONFIG_BOARD_LATE_INITIALIZE=y
CONFIG_BOARD_LOOPSPERMSEC=95150
CONFIG_BOARD_RESET_ON_ASSERT=2
CONFIG_CDCACM=y
CONFIG_CDCACM_IFLOWCONTROL=y
CONFIG_CDCACM_PRODUCTID=0x61a0
CONFIG_CDCACM_PRODUCTSTR="PX4 BL AMOV FLYCORE"
CONFIG_CDCACM_RXBUFSIZE=600
CONFIG_CDCACM_TXBUFSIZE=12000
CONFIG_CDCACM_VENDORID=0x1d50
CONFIG_CDCACM_VENDORSTR="Amovlab"
CONFIG_DEBUG_FULLOPT=y
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_TCBINFO=y
CONFIG_DEFAULT_SMALL=y
CONFIG_EXPERIMENTAL=y
CONFIG_FDCLONE_DISABLE=y
CONFIG_FDCLONE_STDIO=y
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=y
CONFIG_IDLETHREAD_STACKSIZE=750
CONFIG_INIT_ENTRYPOINT="bootloader_main"
CONFIG_INIT_STACKSIZE=3194
CONFIG_LIBC_FLOATINGPOINT=y
CONFIG_LIBC_LONG_LONG=y
CONFIG_LIBC_STRERROR=y
CONFIG_MEMSET_64BIT=y
CONFIG_MEMSET_OPTSPEED=y
CONFIG_PREALLOC_TIMERS=50
CONFIG_PTHREAD_STACK_MIN=512
CONFIG_RAM_SIZE=245760
CONFIG_RAM_START=0x20010000
CONFIG_RAW_BINARY=y
CONFIG_SERIAL_TERMIOS=y
CONFIG_SIG_DEFAULT=y
CONFIG_SIG_SIGALRM_ACTION=y
CONFIG_SIG_SIGUSR1_ACTION=y
CONFIG_SIG_SIGUSR2_ACTION=y
CONFIG_SPI=y
CONFIG_STACK_COLORATION=y
CONFIG_START_DAY=30
CONFIG_START_MONTH=11
CONFIG_STDIO_BUFFER_SIZE=32
CONFIG_STM32H7_BKPSRAM=y
CONFIG_STM32H7_DMA1=y
CONFIG_STM32H7_DMA2=y
CONFIG_STM32H7_OTGFS=y
CONFIG_STM32H7_PROGMEM=y
CONFIG_STM32H7_SERIAL_DISABLE_REORDERING=y
CONFIG_STM32H7_TIM1=y
CONFIG_STM32H7_UART7=y
CONFIG_SYSTEMTICK_HOOK=y
CONFIG_SYSTEM_CDCACM=y
CONFIG_TASK_NAME_SIZE=24
CONFIG_TTY_SIGINT=y
CONFIG_TTY_SIGINT_CHAR=0x03
CONFIG_TTY_SIGTSTP=y
CONFIG_UART7_RXBUFSIZE=512
CONFIG_UART7_TXBUFSIZE=512
CONFIG_USBDEV=y
CONFIG_USBDEV_BUSPOWERED=y
CONFIG_USBDEV_MAXPOWER=500
CONFIG_USEC_PER_TICK=1000
Loading
Loading