Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NXP i.MXRT port of PX4 FMUv5 #13678

Merged
merged 31 commits into from Jan 29, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b511d4b
Add nxp imxrt device support
davids5 Dec 4, 2019
248283f
Adding NXP fmurt1062-v1
davids5 Dec 4, 2019
0a596b3
fmurt1062-v1:Rev to match Rev A HW
davids5 Dec 5, 2019
5f8a38a
fmurt1062-v1 Build for BB Rev A
davids5 Dec 5, 2019
29aa030
fmurt1062-v1:Invert USDHC CD
davids5 Dec 10, 2019
e89387a
fmurt1062-v1:Remove EVK build options
davids5 Dec 10, 2019
4151784
fmurt1062-v1:Update board modules ==FMUv5
davids5 Dec 13, 2019
d53415d
fmurt1062-v1:Support clock setting for SPI and I2C from board.h
davids5 Dec 13, 2019
847182d
fmurt1062-v1:Support configurations to fine tune LPI2C Timeouts.
davids5 Dec 13, 2019
25aeaac
fmurt1062-v1:Update board modules ==FMUv5
davids5 Dec 13, 2019
f30f465
fmurt1062-v1:Support imxrt_lpi2c_reset uses GPIO with SION
davids5 Dec 13, 2019
3ad47ce
fmurt1062-v1:Correct ttyS usage
davids5 Dec 13, 2019
05b3b53
fmurt1062-v1:Fix and enable support for debut Probes
davids5 Dec 13, 2019
f6c9cdc
fmurt1062-v1:Fix LPUART3 CTS Pin definition
davids5 Dec 13, 2019
c87c66f
fmurt1062-v1:Fix LPUART8 RX, TX pin definitions
davids5 Dec 13, 2019
f128e04
fmurt1062-v1:Consistently use ONE/ZERO on inital OUTPUT settings
davids5 Dec 13, 2019
904e14e
imxrt:ToneAlarmInterface Reset mode is dependant on Chan 1
davids5 Dec 13, 2019
6cbfb1d
fmurt1062-v1:Set BAT ADC scaling
davids5 Dec 17, 2019
0ed606b
fmurt1062-v1:Add nARMED Support
davids5 Dec 17, 2019
ab0fd4a
fmurt1062-v1:Add GPIO info
davids5 Dec 17, 2019
1b8c7a3
fmurt1062-v1:Add SPI4 RESET and SYNC
davids5 Dec 17, 2019
24186cd
fmurt1062-v1:Correct SPI1_DRDY4_ICM20602
davids5 Dec 17, 2019
73b60ff
nxp_fmurt1062-v1:OC remove Pull up - OC have series 47K
davids5 Dec 17, 2019
d548d10
iimxr:Needed more margin on minimum reload.
davids5 Dec 20, 2019
b3fcf32
Updateded NuttX with backports of PX4 imxrt contrib
davids5 Dec 21, 2019
6bee345
nxp_fmurt1062-v1:PROBES:carry includes and path needed
davids5 Dec 24, 2019
179b27f
nxp_fmurt1062-v1:RC is on LPUART6 ttyS5
davids5 Jan 13, 2020
c003de0
nxp_fmurt1062-v1:Performance tuning
davids5 Jan 16, 2020
c414ae1
nxp_fmurt1062-v1:Memory Reorg
davids5 Jan 17, 2020
b0392b2
imxrt:Add critmon
davids5 Jan 28, 2020
ed7f916
Update platforms/nuttx/NuttX/nuttx: imxrt backports merged
davids5 Jan 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions .ci/Jenkinsfile-compile
Expand Up @@ -37,6 +37,7 @@ pipeline {
"modalai_fc-v1_default",
"mro_x21_default", "mro_ctrl-zero-f7_default", "mro_x21-777_default",
"nxp_fmuk66-v3_default",
"nxp_fmurt1062-v1_default",
"omnibus_f4sd_default",
"px4_fmu-v2_default", "px4_fmu-v2_fixedwing", "px4_fmu-v2_lpe", "px4_fmu-v2_multicopter", "px4_fmu-v2_rover", "px4_fmu-v2_test",
"px4_fmu-v3_default",
Expand Down
1 change: 1 addition & 0 deletions Makefile
Expand Up @@ -253,6 +253,7 @@ px4fmu_firmware: \

misc_qgc_extra_firmware: \
check_nxp_fmuk66-v3_default \
check_nxp_fmurt1062-v1_default \
check_intel_aerofc-v1_default \
check_mro_x21_default \
check_bitcraze_crazyflie_default \
Expand Down
125 changes: 125 additions & 0 deletions boards/nxp/fmurt1062-v1/default.cmake
@@ -0,0 +1,125 @@

px4_add_board(
PLATFORM nuttx
VENDOR nxp
MODEL fmurt1062-v1
LABEL default
TOOLCHAIN arm-none-eabi
ARCHITECTURE cortex-m7
ROMFSROOT px4fmu_common
TESTING
# UAVCAN_INTERFACES 2

SERIAL_PORTS
GPS1:/dev/ttyS1
TEL1:/dev/ttyS3
TEL2:/dev/ttyS2
GPS2:/dev/ttyS4

DRIVERS
adc
barometer # all available barometer drivers
batt_smbus
camera_capture
camera_trigger
differential_pressure # all available differential pressure drivers
distance_sensor # all available distance sensor drivers
# dshot not ported
gps
#heater
imu/adis16448
imu/adis16477
imu/adis16497
imu/bmi055
imu/mpu6000
irlock
lights/blinkm
lights/rgbled
lights/rgbled_ncp5623c
lights/rgbled_pwm
magnetometer # all available magnetometer drivers
mkblctrl
optical_flow # all available optical flow drivers
#osd
pca9685
power_monitor/ina226
#protocol_splitter
# pwm_input - not ptorable
pwm_out_sim
px4fmu
rc_input
roboclaw
safety_button
tap_esc
telemetry # all available telemetry drivers
# test_ppm not portable
tone_alarm
# uavcan
MODULES
airspeed_selector
attitude_estimator_q
battery_status
camera_feedback
commander
dataman
ekf2
events
fw_att_control
fw_pos_control_l1
land_detector
landing_target_estimator
load_mon
local_position_estimator
logger
mavlink
mc_att_control
mc_pos_control
mc_rate_control
#micrortps_bridge
navigator
rc_update
rover_pos_control
sensors
sih
vmount
vtol_att_control
SYSTEMCMDS
bl_update
config
dmesg
dumpfile
esc_calib
#hardfault_log # Needs bbsrm
i2cdetect
led_control
mixer
motor_ramp
motor_test
mtd
nshterm
param
perf
pwm
reboot
reflect
sd_bench
shutdown
tests # tests and test runner
top
topic_listener
tune_control
usb_connected
ver
work_queue
serial_test
EXAMPLES
bottle_drop # OBC challenge
fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
hello
hwtest # Hardware test
#matlab_csv_serial
px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html
px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
rover_steering_control # Rover example app
uuv_example_app
)
13 changes: 13 additions & 0 deletions boards/nxp/fmurt1062-v1/firmware.prototype
@@ -0,0 +1,13 @@
{
"board_id": 28,
"magic": "PX4FWv1",
"description": "Firmware for the NXPFMURT1062v1 board",
"image": "",
"build_time": 0,
"summary": "NXPFMURT1062v1",
"version": "0.1",
"image_size": 0,
"image_maxsize": 8388608,
"git_identity": "",
"board_revision": 0
}
14 changes: 14 additions & 0 deletions boards/nxp/fmurt1062-v1/init/rc.board_defaults
@@ -0,0 +1,14 @@
#!/bin/sh
#
# PX4 FMUv5 specific board defaults
#------------------------------------------------------------------------------


if [ $AUTOCNF = yes ]
then

fi

set LOGGER_BUF 64

safety_button start
7 changes: 7 additions & 0 deletions boards/nxp/fmurt1062-v1/init/rc.board_mavlink
@@ -0,0 +1,7 @@
#!/bin/sh
#
# PX4 FMUv5 specific board MAVLink startup script.
#------------------------------------------------------------------------------

# Start MAVLink on the USB port
mavlink start -d /dev/ttyACM0
58 changes: 58 additions & 0 deletions boards/nxp/fmurt1062-v1/init/rc.board_sensors
@@ -0,0 +1,58 @@
#!/bin/sh
#
# PX4 FMUv5 specific board sensors init
#------------------------------------------------------------------------------
#
# UART mapping on NXP FMURT1062:
#
# LPUART7 /dev/ttyS0 CONSOLE
# LPUART2 /dev/ttyS1 GPS
# LPUART3 /dev/ttyS2 TELEM2 (GPIO flow control)
# LPUART4 /dev/ttyS3 TELEM1 (UART flow control)
# LPUART5 /dev/ttyS4 TELEM4 GPS2
# LPUART6 /dev/ttyS5 TELEM3 (RC_INPUT)
# LPUART8 /dev/ttyS6 PX4IO
#
#------------------------------------------------------------------------------

adc start

# Internal SPI bus ICM-20602
mpu6000 -R 8 -s -T 20602 start

# Internal SPI bus ICM-20689
mpu6000 -R 8 -z -T 20689 start

# Internal SPI bus BMI055 accel
bmi055 -A -R 10 start

# Internal SPI bus BMI055 gyro
bmi055 -G -R 10 start

# Possible external compasses
ist8310 -C -b 1 start
ist8310 -C -b 2 start
hmc5883 -C -T -X start
qmc5883 -X start
lis3mdl -X start

# ICM20948 as external magnetometer on I2C (e.g. Here GPS)
if ! icm20948 -X -M -R 6 start
then
# external emulated AK09916 (Here2) is rotated 270 degrees yaw
ak09916 -X -R 6 start
fi

# Possible internal compass
ist8310 -C -b 5 start

# Baro on internal SPI
ms5611 -s start

# External RM3100 (I2C or SPI)
rm3100 start

# Possible pmw3901 optical flow sensor
pmw3901 start

px4flow start &
32 changes: 32 additions & 0 deletions boards/nxp/fmurt1062-v1/nuttx-config/Kconfig
@@ -0,0 +1,32 @@
#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

choice
prompt "Boot Flash"
default NXP_FMURT1062_V3_QSPI_FLASH

config NXP_FMURT1062_V3_HYPER_FLASH
bool "HYPER Flash"

config NXP_FMURT1062_V3_QSPI_FLASH
bool "QSPI Flash"

endchoice # Boot Flash

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-8, as PROBE_1-8 to provide timing signals
from selected drivers.

config BOARD_USE_PROBES
bool "Enable the use the board provided FMU-CH1-8 as PROBE_1-8"
default n
depends on BOARD_HAS_PROBES

---help---
Select to use GPIO FMU-CH1-8, as PROBE_1-8 to provide timing signals
from selected drivers.