diff --git a/.ci/Jenkinsfile-compile b/.ci/Jenkinsfile-compile index a3e67d3eed..8f11e5dade 100644 --- a/.ci/Jenkinsfile-compile +++ b/.ci/Jenkinsfile-compile @@ -44,7 +44,7 @@ pipeline { "ark_can-rtk-gps_default", "atl_mantis-edu_default", "av_x-v1_default", - "bitcraze_crazyflie_default", + "bitcraze_crazyflie2_default", "bitcraze_crazyflie21_default", "cuav_can-gps-v1_canbootloader", "cuav_can-gps-v1_default", diff --git a/.github/workflows/compile_nuttx.yml b/.github/workflows/compile_nuttx.yml index a54ac9337b..717e361a55 100644 --- a/.github/workflows/compile_nuttx.yml +++ b/.github/workflows/compile_nuttx.yml @@ -23,7 +23,7 @@ jobs: ark_cannode, atl_mantis-edu, av_x-v1, - bitcraze_crazyflie, + bitcraze_crazyflie2, bitcraze_crazyflie21, cuav_can-gps-v1, cuav_nora, diff --git a/.vscode/cmake-variants.yaml b/.vscode/cmake-variants.yaml index 9e983b46b5..9c836ab186 100644 --- a/.vscode/cmake-variants.yaml +++ b/.vscode/cmake-variants.yaml @@ -141,11 +141,16 @@ CONFIG: buildType: MinSizeRel settings: CONFIG: av_x-v1_default - bitcraze_crazyflie_default: - short: bitcraze_crazyflie + bitcraze_crazyflie2_default: + short: bitcraze_crazyflie2 buildType: MinSizeRel settings: - CONFIG: bitcraze_crazyflie_default + CONFIG: bitcraze_crazyflie2_default + bitcraze_crazyflie21_default: + short: bitcraze_crazyflie21 + buildType: MinSizeRel + settings: + CONFIG: bitcraze_crazyflie21_default cuav_can-gps-v1_default: short: cuav_can-gps-v1_default buildType: MinSizeRel diff --git a/Makefile b/Makefile index d43c96123e..6ef4d58221 100644 --- a/Makefile +++ b/Makefile @@ -271,7 +271,7 @@ misc_qgc_extra_firmware: \ check_nxp_fmuk66-v3_default \ check_nxp_fmurt1062-v1_default \ check_mro_x21_default \ - check_bitcraze_crazyflie_default \ + check_bitcraze_crazyflie2_default \ check_bitcraze_crazyflie21_default \ check_airmind_mindpx-v2_default \ sizes diff --git a/ROMFS/px4fmu_common/init.d/airframes/10015_tbs_discovery b/ROMFS/px4fmu_common/init.d/airframes/10015_tbs_discovery index 0b01898f4c..1cf768a331 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/10015_tbs_discovery +++ b/ROMFS/px4fmu_common/init.d/airframes/10015_tbs_discovery @@ -20,7 +20,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/10016_3dr_iris b/ROMFS/px4fmu_common/init.d/airframes/10016_3dr_iris index cbc9a768e3..f4c428f03a 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/10016_3dr_iris +++ b/ROMFS/px4fmu_common/init.d/airframes/10016_3dr_iris @@ -18,7 +18,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/10018_tbs_endurance b/ROMFS/px4fmu_common/init.d/airframes/10018_tbs_endurance index bbf00f86bc..d762a155b5 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/10018_tbs_endurance +++ b/ROMFS/px4fmu_common/init.d/airframes/10018_tbs_endurance @@ -20,7 +20,6 @@ # @maintainer Simon Wilks # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/1002_standard_vtol.hil b/ROMFS/px4fmu_common/init.d/airframes/1002_standard_vtol.hil index 6bc1b4faea..ecdfe1e4ac 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/1002_standard_vtol.hil +++ b/ROMFS/px4fmu_common/init.d/airframes/1002_standard_vtol.hil @@ -8,7 +8,6 @@ # @maintainer Roman Bapst # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/11001_hexa_cox b/ROMFS/px4fmu_common/init.d/airframes/11001_hexa_cox index 0b0495ffd3..7a12e1f47c 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/11001_hexa_cox +++ b/ROMFS/px4fmu_common/init.d/airframes/11001_hexa_cox @@ -18,7 +18,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # @board px4_fmu-v2 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/12001_octo_cox b/ROMFS/px4fmu_common/init.d/airframes/12001_octo_cox index 5fc70fdfd3..df90e8f9e4 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/12001_octo_cox +++ b/ROMFS/px4fmu_common/init.d/airframes/12001_octo_cox @@ -16,7 +16,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/13000_generic_vtol_standard b/ROMFS/px4fmu_common/init.d/airframes/13000_generic_vtol_standard index 4bdbb30015..b4be15f9ce 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13000_generic_vtol_standard +++ b/ROMFS/px4fmu_common/init.d/airframes/13000_generic_vtol_standard @@ -18,7 +18,6 @@ # @output AUX5 Throttle # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13001_caipirinha_vtol b/ROMFS/px4fmu_common/init.d/airframes/13001_caipirinha_vtol index 85e55bbe9d..da5fe315ef 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13001_caipirinha_vtol +++ b/ROMFS/px4fmu_common/init.d/airframes/13001_caipirinha_vtol @@ -13,7 +13,6 @@ # @maintainer Roman Bapst # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13002_firefly6 b/ROMFS/px4fmu_common/init.d/airframes/13002_firefly6 index 583a045696..7ac8b72187 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13002_firefly6 +++ b/ROMFS/px4fmu_common/init.d/airframes/13002_firefly6 @@ -18,7 +18,6 @@ # @output AUX4 Gear # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.vtol_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/13003_quad_tailsitter b/ROMFS/px4fmu_common/init.d/airframes/13003_quad_tailsitter index e88f711105..1e6183575c 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13003_quad_tailsitter +++ b/ROMFS/px4fmu_common/init.d/airframes/13003_quad_tailsitter @@ -8,7 +8,6 @@ # @maintainer Roman Bapst # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.vtol_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/13004_quad+_tailsitter b/ROMFS/px4fmu_common/init.d/airframes/13004_quad+_tailsitter index d162e82475..2787a04089 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13004_quad+_tailsitter +++ b/ROMFS/px4fmu_common/init.d/airframes/13004_quad+_tailsitter @@ -17,7 +17,6 @@ # @maintainer Roman Bapst # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.vtol_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/13005_vtol_AAERT_quad b/ROMFS/px4fmu_common/init.d/airframes/13005_vtol_AAERT_quad index 8949f18f20..451f56a75c 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13005_vtol_AAERT_quad +++ b/ROMFS/px4fmu_common/init.d/airframes/13005_vtol_AAERT_quad @@ -18,7 +18,6 @@ # @output AUX5 Throttle # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13006_vtol_standard_delta b/ROMFS/px4fmu_common/init.d/airframes/13006_vtol_standard_delta index 2207475135..3510f041d2 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13006_vtol_standard_delta +++ b/ROMFS/px4fmu_common/init.d/airframes/13006_vtol_standard_delta @@ -16,7 +16,6 @@ # @output AUX3 Motor # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13007_vtol_AAVVT_quad b/ROMFS/px4fmu_common/init.d/airframes/13007_vtol_AAVVT_quad index 7671ec1cf5..691878f283 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13007_vtol_AAVVT_quad +++ b/ROMFS/px4fmu_common/init.d/airframes/13007_vtol_AAVVT_quad @@ -8,7 +8,6 @@ # @maintainer Sander Smeets # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13008_QuadRanger b/ROMFS/px4fmu_common/init.d/airframes/13008_QuadRanger index 94e2a1a913..9b6b878baf 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13008_QuadRanger +++ b/ROMFS/px4fmu_common/init.d/airframes/13008_QuadRanger @@ -8,7 +8,6 @@ # @maintainer Sander Smeets # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.vtol_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/13009_vtol_spt_ranger b/ROMFS/px4fmu_common/init.d/airframes/13009_vtol_spt_ranger index 312ffd3e5b..5d6be051a7 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13009_vtol_spt_ranger +++ b/ROMFS/px4fmu_common/init.d/airframes/13009_vtol_spt_ranger @@ -8,7 +8,6 @@ # @maintainer Andreas Antener # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13012_convergence b/ROMFS/px4fmu_common/init.d/airframes/13012_convergence index 7cc6fc4d85..ec5d23cf02 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13012_convergence +++ b/ROMFS/px4fmu_common/init.d/airframes/13012_convergence @@ -17,7 +17,6 @@ # @output MAIN8 Elevon left # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.vtol_defaults @@ -74,4 +73,4 @@ then set PWM_OUT 1234 else set PWM_OUT 3456 -fi +fi diff --git a/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad b/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad index 1448257981..ddf416191a 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad +++ b/ROMFS/px4fmu_common/init.d/airframes/13013_deltaquad @@ -17,7 +17,6 @@ # @output MAIN8 Pusher reverse channel # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.vtol_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/13014_vtol_babyshark b/ROMFS/px4fmu_common/init.d/airframes/13014_vtol_babyshark index 5d1be9b55f..273b6f5cdb 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13014_vtol_babyshark +++ b/ROMFS/px4fmu_common/init.d/airframes/13014_vtol_babyshark @@ -17,7 +17,6 @@ # @output MAIN8 motor 4 # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13030_generic_vtol_quad_tiltrotor b/ROMFS/px4fmu_common/init.d/airframes/13030_generic_vtol_quad_tiltrotor index d62b42ee71..a01c098e96 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13030_generic_vtol_quad_tiltrotor +++ b/ROMFS/px4fmu_common/init.d/airframes/13030_generic_vtol_quad_tiltrotor @@ -21,7 +21,6 @@ # @output AUX8 Rudder # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13050_generic_vtol_octo b/ROMFS/px4fmu_common/init.d/airframes/13050_generic_vtol_octo index c56a10d692..b3ec61ddd7 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13050_generic_vtol_octo +++ b/ROMFS/px4fmu_common/init.d/airframes/13050_generic_vtol_octo @@ -20,7 +20,6 @@ # @output AUX5 Throttle # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/13200_generic_vtol_tailsitter b/ROMFS/px4fmu_common/init.d/airframes/13200_generic_vtol_tailsitter index d235153980..35e5fe7a4f 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/13200_generic_vtol_tailsitter +++ b/ROMFS/px4fmu_common/init.d/airframes/13200_generic_vtol_tailsitter @@ -13,7 +13,6 @@ # @maintainer Roman Bapst # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # @board holybro_kakutef7 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/14001_tri_y_yaw+ b/ROMFS/px4fmu_common/init.d/airframes/14001_tri_y_yaw+ index e12393eb6e..4629745c0a 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/14001_tri_y_yaw+ +++ b/ROMFS/px4fmu_common/init.d/airframes/14001_tri_y_yaw+ @@ -12,7 +12,6 @@ # # @maintainer Trent Lukaczyk # -# @board bitcraze_crazyflie exclude # @board px4_fmu-v2 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/14002_tri_y_yaw- b/ROMFS/px4fmu_common/init.d/airframes/14002_tri_y_yaw- index 425728199c..cfc0e9c125 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/14002_tri_y_yaw- +++ b/ROMFS/px4fmu_common/init.d/airframes/14002_tri_y_yaw- @@ -12,7 +12,6 @@ # # @maintainer Trent Lukaczyk # -# @board bitcraze_crazyflie exclude # @board px4_fmu-v2 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/15001_coax_heli b/ROMFS/px4fmu_common/init.d/airframes/15001_coax_heli index a8a65b7333..b65f8675d0 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/15001_coax_heli +++ b/ROMFS/px4fmu_common/init.d/airframes/15001_coax_heli @@ -13,7 +13,6 @@ # @maintainer Emmanuel Roussel # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/16001_helicopter b/ROMFS/px4fmu_common/init.d/airframes/16001_helicopter index ac1c5475c1..b33359f8b8 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/16001_helicopter +++ b/ROMFS/px4fmu_common/init.d/airframes/16001_helicopter @@ -14,7 +14,6 @@ # @output MAIN5 tail-rotor servo # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/17002_TF-AutoG2 b/ROMFS/px4fmu_common/init.d/airframes/17002_TF-AutoG2 index 8c847cbb44..af417381f4 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/17002_TF-AutoG2 +++ b/ROMFS/px4fmu_common/init.d/airframes/17002_TF-AutoG2 @@ -20,7 +20,6 @@ # @maintainer ThunderFly s.r.o., Roman Dvorak # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/17003_TF-G2 b/ROMFS/px4fmu_common/init.d/airframes/17003_TF-G2 index e677228cd8..5aaf2abba5 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/17003_TF-G2 +++ b/ROMFS/px4fmu_common/init.d/airframes/17003_TF-G2 @@ -15,7 +15,6 @@ # @maintainer ThunderFly s.r.o., Roman Dvorak # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/18001_TF-B1 b/ROMFS/px4fmu_common/init.d/airframes/18001_TF-B1 index b62f1a9831..20da9684a5 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/18001_TF-B1 +++ b/ROMFS/px4fmu_common/init.d/airframes/18001_TF-B1 @@ -10,7 +10,6 @@ # @maintainer ThunderFly s.r.o. # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.balloon_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/2100_standard_plane b/ROMFS/px4fmu_common/init.d/airframes/2100_standard_plane index 99e53f618b..1370cd9acd 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/2100_standard_plane +++ b/ROMFS/px4fmu_common/init.d/airframes/2100_standard_plane @@ -18,7 +18,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/2105_maja b/ROMFS/px4fmu_common/init.d/airframes/2105_maja index 026a0c3043..f1b4baf1b3 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/2105_maja +++ b/ROMFS/px4fmu_common/init.d/airframes/2105_maja @@ -20,7 +20,6 @@ # @maintainer Andreas Antener # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/2106_albatross b/ROMFS/px4fmu_common/init.d/airframes/2106_albatross index 47ed0c677b..0cbfed671c 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/2106_albatross +++ b/ROMFS/px4fmu_common/init.d/airframes/2106_albatross @@ -20,7 +20,6 @@ # # @maintainer Andreas Antener # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/2200_mini_talon b/ROMFS/px4fmu_common/init.d/airframes/2200_mini_talon index 8fbe544c5b..a70bc03771 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/2200_mini_talon +++ b/ROMFS/px4fmu_common/init.d/airframes/2200_mini_talon @@ -21,7 +21,6 @@ # @maintainer Friedrich Beckmann # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/24001_dodeca_cox b/ROMFS/px4fmu_common/init.d/airframes/24001_dodeca_cox index d2a4e75f48..8df222ef12 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/24001_dodeca_cox +++ b/ROMFS/px4fmu_common/init.d/airframes/24001_dodeca_cox @@ -22,7 +22,6 @@ # @maintainer Ian McNanie # @maintainer William Peale # -# @board bitcraze_crazyflie exclude # @board px4_fmu-v2 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/2507_cloudship b/ROMFS/px4fmu_common/init.d/airframes/2507_cloudship index 3b15aeb948..b8da28bd7a 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/2507_cloudship +++ b/ROMFS/px4fmu_common/init.d/airframes/2507_cloudship @@ -10,7 +10,6 @@ # @output MAIN4 tail thruster # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.airship_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/3000_generic_wing b/ROMFS/px4fmu_common/init.d/airframes/3000_generic_wing index 4b5ee877d6..2efb4e4ad3 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/3000_generic_wing +++ b/ROMFS/px4fmu_common/init.d/airframes/3000_generic_wing @@ -15,7 +15,6 @@ # # @maintainer # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/3031_phantom b/ROMFS/px4fmu_common/init.d/airframes/3031_phantom index b31b2230ce..6631d41204 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/3031_phantom +++ b/ROMFS/px4fmu_common/init.d/airframes/3031_phantom @@ -18,7 +18,6 @@ # @maintainer Simon Wilks # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/3032_skywalker_x5 b/ROMFS/px4fmu_common/init.d/airframes/3032_skywalker_x5 index f09bba392b..3b32859251 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/3032_skywalker_x5 +++ b/ROMFS/px4fmu_common/init.d/airframes/3032_skywalker_x5 @@ -16,7 +16,6 @@ # @maintainer Julian Oes # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/3033_wingwing b/ROMFS/px4fmu_common/init.d/airframes/3033_wingwing index d9a18853a2..23405523ef 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/3033_wingwing +++ b/ROMFS/px4fmu_common/init.d/airframes/3033_wingwing @@ -18,7 +18,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/3036_pigeon b/ROMFS/px4fmu_common/init.d/airframes/3036_pigeon index b889f38db9..83505c1322 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/3036_pigeon +++ b/ROMFS/px4fmu_common/init.d/airframes/3036_pigeon @@ -18,7 +18,6 @@ # @maintainer Simon Wilks # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/3100_tbs_caipirinha b/ROMFS/px4fmu_common/init.d/airframes/3100_tbs_caipirinha index cc74225a12..be9725b00b 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/3100_tbs_caipirinha +++ b/ROMFS/px4fmu_common/init.d/airframes/3100_tbs_caipirinha @@ -16,7 +16,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.fw_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4003_qavr5 b/ROMFS/px4fmu_common/init.d/airframes/4003_qavr5 index f1a3a33d3b..40918c26cc 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4003_qavr5 +++ b/ROMFS/px4fmu_common/init.d/airframes/4003_qavr5 @@ -8,7 +8,6 @@ # @maintainer James Goppert # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4009_qav250 b/ROMFS/px4fmu_common/init.d/airframes/4009_qav250 index 4efe6c7c5a..53e11a82d4 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4009_qav250 +++ b/ROMFS/px4fmu_common/init.d/airframes/4009_qav250 @@ -8,7 +8,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4014_s500 b/ROMFS/px4fmu_common/init.d/airframes/4014_s500 index 2c75a46c25..7f4d58fad9 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4014_s500 +++ b/ROMFS/px4fmu_common/init.d/airframes/4014_s500 @@ -8,7 +8,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4015_holybro_s500 b/ROMFS/px4fmu_common/init.d/airframes/4015_holybro_s500 index d16ec71d3f..90d85fdce7 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4015_holybro_s500 +++ b/ROMFS/px4fmu_common/init.d/airframes/4015_holybro_s500 @@ -8,7 +8,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4016_holybro_px4vision b/ROMFS/px4fmu_common/init.d/airframes/4016_holybro_px4vision index cf15f0cbca..85ed70b045 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4016_holybro_px4vision +++ b/ROMFS/px4fmu_common/init.d/airframes/4016_holybro_px4vision @@ -11,7 +11,6 @@ # @output MAIN4 motor 4 # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4017_nxp_hovergames b/ROMFS/px4fmu_common/init.d/airframes/4017_nxp_hovergames index dcfe0f943b..b70e458de5 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4017_nxp_hovergames +++ b/ROMFS/px4fmu_common/init.d/airframes/4017_nxp_hovergames @@ -11,7 +11,6 @@ # @output MAIN4 motor 4 # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # # @maintainer Iain Galloway # diff --git a/ROMFS/px4fmu_common/init.d/airframes/4019_x500_v2 b/ROMFS/px4fmu_common/init.d/airframes/4019_x500_v2 index 7cef516c41..5662f77804 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4019_x500_v2 +++ b/ROMFS/px4fmu_common/init.d/airframes/4019_x500_v2 @@ -8,7 +8,6 @@ # @maintainer Farhang Naderi # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4030_3dr_solo b/ROMFS/px4fmu_common/init.d/airframes/4030_3dr_solo index f698daed99..9cb655ab0a 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4030_3dr_solo +++ b/ROMFS/px4fmu_common/init.d/airframes/4030_3dr_solo @@ -13,7 +13,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4031_3dr_quad b/ROMFS/px4fmu_common/init.d/airframes/4031_3dr_quad index e29fbf8dd6..3dac624b37 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4031_3dr_quad +++ b/ROMFS/px4fmu_common/init.d/airframes/4031_3dr_quad @@ -8,7 +8,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4040_reaper b/ROMFS/px4fmu_common/init.d/airframes/4040_reaper index 45ec3f081b..1edd4f1f36 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4040_reaper +++ b/ROMFS/px4fmu_common/init.d/airframes/4040_reaper @@ -15,7 +15,6 @@ # @maintainer Blankered # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4041_beta75x b/ROMFS/px4fmu_common/init.d/airframes/4041_beta75x index a04cc31f98..c2cc1d31fb 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4041_beta75x +++ b/ROMFS/px4fmu_common/init.d/airframes/4041_beta75x @@ -18,7 +18,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4050_generic_250 b/ROMFS/px4fmu_common/init.d/airframes/4050_generic_250 index dfd2bacd61..0bc445050b 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4050_generic_250 +++ b/ROMFS/px4fmu_common/init.d/airframes/4050_generic_250 @@ -7,7 +7,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4051_s250aq b/ROMFS/px4fmu_common/init.d/airframes/4051_s250aq index 74c99d69d3..1082edc4ac 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4051_s250aq +++ b/ROMFS/px4fmu_common/init.d/airframes/4051_s250aq @@ -17,7 +17,6 @@ # @maintainer Lorenz Meier # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4052_holybro_qav250 b/ROMFS/px4fmu_common/init.d/airframes/4052_holybro_qav250 index aeb48c41d7..15586083f1 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4052_holybro_qav250 +++ b/ROMFS/px4fmu_common/init.d/airframes/4052_holybro_qav250 @@ -10,7 +10,6 @@ # @maintainer Beat Kueng # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4053_holybro_kopis2 b/ROMFS/px4fmu_common/init.d/airframes/4053_holybro_kopis2 index 24a9fa9c46..3f3e8044ca 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4053_holybro_kopis2 +++ b/ROMFS/px4fmu_common/init.d/airframes/4053_holybro_kopis2 @@ -8,7 +8,6 @@ # @maintainer Beat Kueng # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4071_ifo b/ROMFS/px4fmu_common/init.d/airframes/4071_ifo index c2147e2d1f..aa354a5f96 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4071_ifo +++ b/ROMFS/px4fmu_common/init.d/airframes/4071_ifo @@ -17,7 +17,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # @board cuav_x7pro exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/4072_draco b/ROMFS/px4fmu_common/init.d/airframes/4072_draco index 4181f9f03f..d96e7357a0 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4072_draco +++ b/ROMFS/px4fmu_common/init.d/airframes/4072_draco @@ -17,7 +17,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4073_ifo-s b/ROMFS/px4fmu_common/init.d/airframes/4073_ifo-s index bcafa15972..8c48b7462b 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4073_ifo-s +++ b/ROMFS/px4fmu_common/init.d/airframes/4073_ifo-s @@ -15,7 +15,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # @board cuav_x7pro exclude # # @maintainer Hyon Lim diff --git a/ROMFS/px4fmu_common/init.d/airframes/4080_zmr250 b/ROMFS/px4fmu_common/init.d/airframes/4080_zmr250 index 1a4ad19fbb..b642934f1f 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4080_zmr250 +++ b/ROMFS/px4fmu_common/init.d/airframes/4080_zmr250 @@ -8,7 +8,6 @@ # @maintainer Anton Matosov # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4090_nanomind b/ROMFS/px4fmu_common/init.d/airframes/4090_nanomind index 5215931a84..661b793c25 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4090_nanomind +++ b/ROMFS/px4fmu_common/init.d/airframes/4090_nanomind @@ -12,7 +12,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4100_tiltquadrotor b/ROMFS/px4fmu_common/init.d/airframes/4100_tiltquadrotor index d9d8a8bb63..b8e14f08a2 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4100_tiltquadrotor +++ b/ROMFS/px4fmu_common/init.d/airframes/4100_tiltquadrotor @@ -19,7 +19,6 @@ # @maintainer Ricardo Marques # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/4500_clover4 b/ROMFS/px4fmu_common/init.d/airframes/4500_clover4 index d8116882fe..cbf10f633b 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/4500_clover4 +++ b/ROMFS/px4fmu_common/init.d/airframes/4500_clover4 @@ -8,7 +8,6 @@ # @maintainer Oleg Kalachev # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle b/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle index 2c79163b34..c4e38812d7 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle +++ b/ROMFS/px4fmu_common/init.d/airframes/50000_generic_ground_vehicle @@ -10,7 +10,6 @@ # # @maintainer # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.rover_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover b/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover index 118e6915c9..4224aa8b02 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover +++ b/ROMFS/px4fmu_common/init.d/airframes/50003_aion_robotics_r1_rover @@ -13,7 +13,6 @@ # @maintainer Timothy Scott # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.rover_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/50004_nxpcup_car_dfrobot_gpx b/ROMFS/px4fmu_common/init.d/airframes/50004_nxpcup_car_dfrobot_gpx index 1c1d55b392..f0ee3def4b 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/50004_nxpcup_car_dfrobot_gpx +++ b/ROMFS/px4fmu_common/init.d/airframes/50004_nxpcup_car_dfrobot_gpx @@ -15,7 +15,6 @@ # @maintainer Katrin Moritz # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.rover_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/5001_quad_+ b/ROMFS/px4fmu_common/init.d/airframes/5001_quad_+ index 3d172387c8..cde0f8a1ae 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/5001_quad_+ +++ b/ROMFS/px4fmu_common/init.d/airframes/5001_quad_+ @@ -19,7 +19,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # @board px4_fmu-v2 exclude # diff --git a/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic b/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic index e0b33a9534..b76bda8645 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic +++ b/ROMFS/px4fmu_common/init.d/airframes/60000_uuv_generic @@ -8,7 +8,6 @@ # @maintainer # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.uuv_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus b/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus index 8ea8646956..8efc684178 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus +++ b/ROMFS/px4fmu_common/init.d/airframes/60001_uuv_hippocampus @@ -8,7 +8,6 @@ # @maintainer Daniel Duecker # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.uuv_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy b/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy index 44b876564d..e1786d63be 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy +++ b/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy @@ -17,7 +17,6 @@ # @maintainer Thies Lennart Alff # # @board px4_fmu-v2 exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.uuv_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/6001_hexa_x b/ROMFS/px4fmu_common/init.d/airframes/6001_hexa_x index c2bbb26cdb..8e1ab8cc49 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/6001_hexa_x +++ b/ROMFS/px4fmu_common/init.d/airframes/6001_hexa_x @@ -18,7 +18,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/6002_draco_r b/ROMFS/px4fmu_common/init.d/airframes/6002_draco_r index 70a88e3fdf..a1e218867e 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/6002_draco_r +++ b/ROMFS/px4fmu_common/init.d/airframes/6002_draco_r @@ -22,7 +22,6 @@ # @board px4_fmu-v4pro exclude # @board px4_fmu-v5 exclude # @board px4_fmu-v5x exclude -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/7001_hexa_+ b/ROMFS/px4fmu_common/init.d/airframes/7001_hexa_+ index e1db21eca3..e2ca42f3a4 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/7001_hexa_+ +++ b/ROMFS/px4fmu_common/init.d/airframes/7001_hexa_+ @@ -18,7 +18,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/8001_octo_x b/ROMFS/px4fmu_common/init.d/airframes/8001_octo_x index cabae69975..6d92f6ceae 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/8001_octo_x +++ b/ROMFS/px4fmu_common/init.d/airframes/8001_octo_x @@ -20,7 +20,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/ROMFS/px4fmu_common/init.d/airframes/9001_octo_+ b/ROMFS/px4fmu_common/init.d/airframes/9001_octo_+ index 95c2479560..82847d0146 100644 --- a/ROMFS/px4fmu_common/init.d/airframes/9001_octo_+ +++ b/ROMFS/px4fmu_common/init.d/airframes/9001_octo_+ @@ -20,7 +20,6 @@ # # @maintainer Lorenz Meier # -# @board bitcraze_crazyflie exclude # . ${R}etc/init.d/rc.mc_defaults diff --git a/boards/bitcraze/crazyflie/CMakeLists.txt b/boards/bitcraze/crazyflie2/CMakeLists.txt similarity index 100% rename from boards/bitcraze/crazyflie/CMakeLists.txt rename to boards/bitcraze/crazyflie2/CMakeLists.txt diff --git a/boards/bitcraze/crazyflie/default.px4board b/boards/bitcraze/crazyflie2/default.px4board similarity index 100% rename from boards/bitcraze/crazyflie/default.px4board rename to boards/bitcraze/crazyflie2/default.px4board diff --git a/boards/bitcraze/crazyflie/extras/bitcraze_crazyflie_bootloader.bin b/boards/bitcraze/crazyflie2/extras/bitcraze_crazyflie_bootloader.bin similarity index 100% rename from boards/bitcraze/crazyflie/extras/bitcraze_crazyflie_bootloader.bin rename to boards/bitcraze/crazyflie2/extras/bitcraze_crazyflie_bootloader.bin diff --git a/boards/bitcraze/crazyflie/firmware.prototype b/boards/bitcraze/crazyflie2/firmware.prototype similarity index 80% rename from boards/bitcraze/crazyflie/firmware.prototype rename to boards/bitcraze/crazyflie2/firmware.prototype index 9cd986e1b8..7b7617d0a3 100644 --- a/boards/bitcraze/crazyflie/firmware.prototype +++ b/boards/bitcraze/crazyflie2/firmware.prototype @@ -1,10 +1,10 @@ { "board_id": 12, - "magic": "Crazyflie", + "magic": "Crazyflie2", "description": "Firmware for the Crazyflie 2.0", "image": "", "build_time": 0, - "summary": "CRAZYFLIE", + "summary": "CRAZYFLIE 2.0", "version": "0.1", "image_size": 0, "image_maxsize": 1032192, diff --git a/boards/bitcraze/crazyflie/init/rc.board_defaults b/boards/bitcraze/crazyflie2/init/rc.board_defaults similarity index 87% rename from boards/bitcraze/crazyflie/init/rc.board_defaults rename to boards/bitcraze/crazyflie2/init/rc.board_defaults index 7eb60550b6..851a6431dd 100644 --- a/boards/bitcraze/crazyflie/init/rc.board_defaults +++ b/boards/bitcraze/crazyflie2/init/rc.board_defaults @@ -3,6 +3,9 @@ # board specific defaults #------------------------------------------------------------------------------ +# start CDCACM as soon as possible +sercon + # system_power unavailable param set-default CBRK_SUPPLY_CHK 894281 diff --git a/boards/bitcraze/crazyflie2/init/rc.board_mavlink b/boards/bitcraze/crazyflie2/init/rc.board_mavlink new file mode 100644 index 0000000000..164973f405 --- /dev/null +++ b/boards/bitcraze/crazyflie2/init/rc.board_mavlink @@ -0,0 +1,8 @@ +#!/bin/sh +# +# board specific MAVLink startup script. +#------------------------------------------------------------------------------ + +# Start MAVLink on the USB port +sleep 1 +mavlink start -d /dev/ttyACM0 diff --git a/boards/bitcraze/crazyflie/init/rc.board_sensors b/boards/bitcraze/crazyflie2/init/rc.board_sensors similarity index 86% rename from boards/bitcraze/crazyflie/init/rc.board_sensors rename to boards/bitcraze/crazyflie2/init/rc.board_sensors index 3d3ca47ec9..867313ef3f 100644 --- a/boards/bitcraze/crazyflie/init/rc.board_sensors +++ b/boards/bitcraze/crazyflie2/init/rc.board_sensors @@ -1,6 +1,6 @@ #!/bin/sh # -# Bitcraze Crazyflie specific board sensors init +# board specific sensors init #------------------------------------------------------------------------------ board_adc start diff --git a/boards/bitcraze/crazyflie/nuttx-config/include/board.h b/boards/bitcraze/crazyflie2/nuttx-config/include/board.h similarity index 100% rename from boards/bitcraze/crazyflie/nuttx-config/include/board.h rename to boards/bitcraze/crazyflie2/nuttx-config/include/board.h diff --git a/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig b/boards/bitcraze/crazyflie2/nuttx-config/nsh/defconfig similarity index 99% rename from boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig rename to boards/bitcraze/crazyflie2/nuttx-config/nsh/defconfig index f3465a41b9..1728885f9c 100644 --- a/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig +++ b/boards/bitcraze/crazyflie2/nuttx-config/nsh/defconfig @@ -25,7 +25,7 @@ # CONFIG_STM32_CCMEXCLUDE is not set CONFIG_ARCH="arm" CONFIG_ARCH_BOARD_CUSTOM=y -CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/bitcraze/crazyflie/nuttx-config" +CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/bitcraze/crazyflie2/nuttx-config" CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y CONFIG_ARCH_BOARD_CUSTOM_NAME="px4" CONFIG_ARCH_CHIP="stm32" @@ -176,6 +176,7 @@ CONFIG_USART2_RXBUFSIZE=300 CONFIG_USART2_RXDMA=y CONFIG_USART2_TXBUFSIZE=300 CONFIG_USART3_BAUD=57600 +CONFIG_USART3_RXDMA=y CONFIG_USART3_SERIAL_CONSOLE=y CONFIG_USART6_BAUD=57600 CONFIG_USART6_RXBUFSIZE=128 diff --git a/boards/bitcraze/crazyflie/nuttx-config/scripts/script.ld b/boards/bitcraze/crazyflie2/nuttx-config/scripts/script.ld similarity index 99% rename from boards/bitcraze/crazyflie/nuttx-config/scripts/script.ld rename to boards/bitcraze/crazyflie2/nuttx-config/scripts/script.ld index 0c6b6693c8..178b10ae35 100644 --- a/boards/bitcraze/crazyflie/nuttx-config/scripts/script.ld +++ b/boards/bitcraze/crazyflie2/nuttx-config/scripts/script.ld @@ -64,7 +64,6 @@ EXTERN(_vectors) /* force the vectors to be included in the output */ * code pulled in by libgcc.a requires it (and that code cannot be easily avoided). */ EXTERN(abort) -EXTERN(board_get_manifest) SECTIONS { diff --git a/boards/bitcraze/crazyflie/src/CMakeLists.txt b/boards/bitcraze/crazyflie2/src/CMakeLists.txt similarity index 100% rename from boards/bitcraze/crazyflie/src/CMakeLists.txt rename to boards/bitcraze/crazyflie2/src/CMakeLists.txt diff --git a/boards/bitcraze/crazyflie/src/board_config.h b/boards/bitcraze/crazyflie2/src/board_config.h similarity index 52% rename from boards/bitcraze/crazyflie/src/board_config.h rename to boards/bitcraze/crazyflie2/src/board_config.h index c8fd630b81..e198c50d34 100644 --- a/boards/bitcraze/crazyflie/src/board_config.h +++ b/boards/bitcraze/crazyflie2/src/board_config.h @@ -34,41 +34,24 @@ /** * @file board_config.h * - * PX4-CRAZYFLIE internal definitions + * board internal definitions */ #pragma once -/**************************************************************************************************** - * Included Files - ****************************************************************************************************/ - #include #include #include -/**************************************************************************************************** - * Definitions - ****************************************************************************************************/ -/* Configuration ************************************************************************************/ - -/* Crazyflie GPIOs **********************************************************************************/ -/* LEDs */ - - /* Radio TX indicator */ -#define GPIO_LED_RED_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN0) +#define GPIO_LED_RED_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN0) /* Radio RX indicator */ -#define GPIO_LED_GREEN_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN1) -#define GPIO_LED_GREEN_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN2) -#define GPIO_LED_RED_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN3) +#define GPIO_LED_GREEN_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN1) +#define GPIO_LED_GREEN_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN2) +#define GPIO_LED_RED_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN3) /* PX4: armed state indicator ; Stock FW: Blinking while charging */ -#define GPIO_LED_BLUE_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN2) +#define GPIO_LED_BLUE_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN2) #define BOARD_HAS_CONTROL_STATUS_LEDS 1 #define BOARD_OVERLOAD_LED LED_RED @@ -81,33 +64,18 @@ #define GPIO_FSYNC_MPU9250 (GPIO_OUTPUT|GPIO_PORTC|GPIO_PIN14) // Needs to be set low #define GPIO_DRDY_MPU9250 (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN13) +#define GPIO_NRF_TXEN (GPIO_INPUT|GPIO_PULLUP|GPIO_EXTI|GPIO_PORTA|GPIO_PIN4) /* NRF_FLOW_CTRL */ -#define GPIO_NRF_TXEN (GPIO_INPUT|GPIO_PULLUP|GPIO_EXTI|GPIO_PORTA|GPIO_PIN4) - - -/* - * I2C busses - */ -#define PX4_I2C_BUS_ONBOARD_HZ 400000 -#define PX4_I2C_BUS_EXPANSION_HZ 400000 - +/* I2C busses */ #define PX4_I2C_BUS_MTD 1 -#define BOARD_NUMBER_I2C_BUSES 3 -#define BOARD_I2C_BUS_CLOCK_INIT {PX4_I2C_BUS_ONBOARD_HZ, 100000, PX4_I2C_BUS_EXPANSION_HZ} - - -/* Devices on the onboard bus. - * - * Note that these are unshifted addresses. - */ -#define PX4_I2C_OBDEV_MPU9250 0x69 +#define BOARD_I2C_BUS_CLOCK_INIT {400000, 400000} /* USB OTG FS * * PA9 OTG_FS_VBUS VBUS sensing */ -#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9) +//#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9) /* * ADC channels @@ -117,15 +85,13 @@ #define ADC_CHANNELS 0 /* Tone alarm output : These are only applicable when the buzzer deck is attached */ -#define TONE_ALARM_TIMER 5 /* timer 5 */ -#define TONE_ALARM_CHANNEL 3 /* channel 3 */ +#define TONE_ALARM_TIMER 5 /* timer 5 */ +#define TONE_ALARM_CHANNEL 3 /* channel 3 */ #define GPIO_TONE_ALARM_IDLE (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN2) #define GPIO_TONE_ALARM (GPIO_ALT|GPIO_AF2|GPIO_SPEED_2MHz|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2) #define GPIO_TONE_ALARM_NEG (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN3) -/* PWM -*/ - +/* PWM */ #define DIRECT_PWM_OUTPUT_CHANNELS 4 /* This board overrides the defaults by providing @@ -159,71 +125,14 @@ __BEGIN_DECLS -/**************************************************************************************************** - * Public Types - ****************************************************************************************************/ - -/**************************************************************************************************** - * Public data - ****************************************************************************************************/ - #ifndef __ASSEMBLY__ -/**************************************************************************************************** - * Public Functions - ****************************************************************************************************/ - -/**************************************************************************************************** - * Name: board_peripheral_reset - * - * Description: - * Called to reset the periferal bus - * - ****************************************************************************************************/ - #define board_peripheral_reset(ms) -/**************************************************************************************************** - * Name: stm32_usbinitialize - * - * Description: - * Called to configure USB IO. - * - ****************************************************************************************************/ - extern void stm32_usbinitialize(void); - -/**************************************************************************** - * Name: board_i2c_initialize - * - * Description: - * Called to set I2C bus frequencies. - * - ****************************************************************************/ - -int board_i2c_initialize(void); - -/**************************************************************************************************** - * Name: stm32_spiinitialize - * - * Description: - * Called to configure SPI chip select GPIO pins for the PX4FMU board. - * - ****************************************************************************************************/ - extern void stm32_spiinitialize(void); - -/************************************************************************************ - * Name: stm32_spi_bus_initialize - * - * Description: - * Called to configure SPI Buses. - * - ************************************************************************************/ - extern int stm32_spi_bus_initialize(void); - #include #endif /* __ASSEMBLY__ */ diff --git a/boards/bitcraze/crazyflie/src/i2c.cpp b/boards/bitcraze/crazyflie2/src/i2c.cpp similarity index 100% rename from boards/bitcraze/crazyflie/src/i2c.cpp rename to boards/bitcraze/crazyflie2/src/i2c.cpp diff --git a/boards/bitcraze/crazyflie/src/init.c b/boards/bitcraze/crazyflie2/src/init.c similarity index 93% rename from boards/bitcraze/crazyflie/src/init.c rename to boards/bitcraze/crazyflie2/src/init.c index c1364b75af..e8072bb9e1 100644 --- a/boards/bitcraze/crazyflie/src/init.c +++ b/boards/bitcraze/crazyflie2/src/init.c @@ -87,14 +87,6 @@ extern void led_on(int led); extern void led_off(int led); __END_DECLS -/**************************************************************************** - * Protected Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - /************************************************************************************ * Name: stm32_boardinitialize * @@ -109,11 +101,9 @@ __EXPORT void stm32_boardinitialize(void) { /* configure LEDs */ - board_autoled_initialize(); /* configure SPI interfaces */ - stm32_spiinitialize(); stm32_usbinitialize(); @@ -154,7 +144,6 @@ __EXPORT int board_app_initialize(uintptr_t arg) #endif /* Configure the HW based on the manifest */ - px4_platform_configure(); return OK; diff --git a/boards/bitcraze/crazyflie/src/led.c b/boards/bitcraze/crazyflie2/src/led.c similarity index 100% rename from boards/bitcraze/crazyflie/src/led.c rename to boards/bitcraze/crazyflie2/src/led.c diff --git a/boards/bitcraze/crazyflie/src/mtd.cpp b/boards/bitcraze/crazyflie2/src/mtd.cpp similarity index 100% rename from boards/bitcraze/crazyflie/src/mtd.cpp rename to boards/bitcraze/crazyflie2/src/mtd.cpp diff --git a/boards/bitcraze/crazyflie/src/spi.cpp b/boards/bitcraze/crazyflie2/src/spi.cpp similarity index 100% rename from boards/bitcraze/crazyflie/src/spi.cpp rename to boards/bitcraze/crazyflie2/src/spi.cpp diff --git a/boards/bitcraze/crazyflie/src/timer_config.cpp b/boards/bitcraze/crazyflie2/src/timer_config.cpp similarity index 100% rename from boards/bitcraze/crazyflie/src/timer_config.cpp rename to boards/bitcraze/crazyflie2/src/timer_config.cpp diff --git a/boards/bitcraze/crazyflie/src/usb.c b/boards/bitcraze/crazyflie2/src/usb.c similarity index 75% rename from boards/bitcraze/crazyflie/src/usb.c rename to boards/bitcraze/crazyflie2/src/usb.c index af187d8df6..8b9ad0d3ad 100644 --- a/boards/bitcraze/crazyflie/src/usb.c +++ b/boards/bitcraze/crazyflie2/src/usb.c @@ -32,15 +32,11 @@ ****************************************************************************/ /** - * @file crazyflie_usb.c + * @file usb.c * * Board-specific USB functions. */ -/************************************************************************************ - * Included Files - ************************************************************************************/ - #include #include @@ -55,23 +51,11 @@ #include #include "board_config.h" -/************************************************************************************ - * Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - /************************************************************************************ * Name: stm32_usbinitialize * * Description: - * Called to setup USB-related GPIO pins for the PX4-STM32F4Discovery board. + * Called to setup USB-related GPIO pins for the board. * ************************************************************************************/ @@ -83,10 +67,6 @@ __EXPORT void stm32_usbinitialize(void) #ifdef CONFIG_STM32_OTGFS stm32_configgpio(GPIO_OTGFS_VBUS); - /* XXX We only support device mode - stm32_configgpio(GPIO_OTGFS_PWRON); - stm32_configgpio(GPIO_OTGFS_OVER); - */ #endif } @@ -105,4 +85,3 @@ __EXPORT void stm32_usbsuspend(FAR struct usbdev_s *dev, bool resume) { uinfo("resume: %d\n", resume); } - diff --git a/boards/bitcraze/crazyflie/syslink/CMakeLists.txt b/boards/bitcraze/crazyflie2/syslink/CMakeLists.txt similarity index 100% rename from boards/bitcraze/crazyflie/syslink/CMakeLists.txt rename to boards/bitcraze/crazyflie2/syslink/CMakeLists.txt diff --git a/boards/bitcraze/crazyflie/syslink/crtp.h b/boards/bitcraze/crazyflie2/syslink/crtp.h similarity index 100% rename from boards/bitcraze/crazyflie/syslink/crtp.h rename to boards/bitcraze/crazyflie2/syslink/crtp.h diff --git a/boards/bitcraze/crazyflie/syslink/drv_deck.h b/boards/bitcraze/crazyflie2/syslink/drv_deck.h similarity index 100% rename from boards/bitcraze/crazyflie/syslink/drv_deck.h rename to boards/bitcraze/crazyflie2/syslink/drv_deck.h diff --git a/boards/bitcraze/crazyflie/syslink/ringbuffer.cpp b/boards/bitcraze/crazyflie2/syslink/ringbuffer.cpp similarity index 100% rename from boards/bitcraze/crazyflie/syslink/ringbuffer.cpp rename to boards/bitcraze/crazyflie2/syslink/ringbuffer.cpp diff --git a/boards/bitcraze/crazyflie/syslink/ringbuffer.h b/boards/bitcraze/crazyflie2/syslink/ringbuffer.h similarity index 100% rename from boards/bitcraze/crazyflie/syslink/ringbuffer.h rename to boards/bitcraze/crazyflie2/syslink/ringbuffer.h diff --git a/boards/bitcraze/crazyflie/syslink/syslink.c b/boards/bitcraze/crazyflie2/syslink/syslink.c similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink.c rename to boards/bitcraze/crazyflie2/syslink/syslink.c diff --git a/boards/bitcraze/crazyflie/syslink/syslink.h b/boards/bitcraze/crazyflie2/syslink/syslink.h similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink.h rename to boards/bitcraze/crazyflie2/syslink/syslink.h diff --git a/boards/bitcraze/crazyflie/syslink/syslink_bridge.cpp b/boards/bitcraze/crazyflie2/syslink/syslink_bridge.cpp similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink_bridge.cpp rename to boards/bitcraze/crazyflie2/syslink/syslink_bridge.cpp diff --git a/boards/bitcraze/crazyflie/syslink/syslink_main.cpp b/boards/bitcraze/crazyflie2/syslink/syslink_main.cpp similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink_main.cpp rename to boards/bitcraze/crazyflie2/syslink/syslink_main.cpp diff --git a/boards/bitcraze/crazyflie/syslink/syslink_main.h b/boards/bitcraze/crazyflie2/syslink/syslink_main.h similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink_main.h rename to boards/bitcraze/crazyflie2/syslink/syslink_main.h diff --git a/boards/bitcraze/crazyflie/syslink/syslink_memory.cpp b/boards/bitcraze/crazyflie2/syslink/syslink_memory.cpp similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink_memory.cpp rename to boards/bitcraze/crazyflie2/syslink/syslink_memory.cpp diff --git a/boards/bitcraze/crazyflie/syslink/syslink_params.c b/boards/bitcraze/crazyflie2/syslink/syslink_params.c similarity index 100% rename from boards/bitcraze/crazyflie/syslink/syslink_params.c rename to boards/bitcraze/crazyflie2/syslink/syslink_params.c diff --git a/boards/bitcraze/crazyflie21/CMakeLists.txt b/boards/bitcraze/crazyflie21/CMakeLists.txt index 279415618d..6d654c81d6 100644 --- a/boards/bitcraze/crazyflie21/CMakeLists.txt +++ b/boards/bitcraze/crazyflie21/CMakeLists.txt @@ -31,4 +31,4 @@ # ############################################################################ -add_subdirectory(../crazyflie syslink) +add_subdirectory(../crazyflie2 syslink) diff --git a/boards/bitcraze/crazyflie21/default.px4board b/boards/bitcraze/crazyflie21/default.px4board index 61b075eb0c..655329d7a6 100644 --- a/boards/bitcraze/crazyflie21/default.px4board +++ b/boards/bitcraze/crazyflie21/default.px4board @@ -5,7 +5,6 @@ CONFIG_BOARD_CONSTRAINED_MEMORY=y CONFIG_BOARD_COMPILE_DEFINITIONS="-Wno-narrowing" CONFIG_DRIVERS_BAROMETER_BMP388=y CONFIG_DRIVERS_DISTANCE_SENSOR_VL53L1X=y -CONFIG_DRIVERS_GPS=y CONFIG_DRIVERS_IMU_BOSCH_BMI088_I2C=y CONFIG_DRIVERS_OPTICAL_FLOW_PMW3901=y CONFIG_DRIVERS_PWM_OUT=y @@ -17,13 +16,12 @@ CONFIG_MODULES_EKF2=y CONFIG_MODULES_EVENTS=y CONFIG_MODULES_FLIGHT_MODE_MANAGER=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 @@ -32,6 +30,7 @@ CONFIG_MODULES_RC_UPDATE=y CONFIG_MODULES_SENSORS=y CONFIG_SYSTEMCMDS_DMESG=y CONFIG_SYSTEMCMDS_HARDFAULT_LOG=y +CONFIG_SYSTEMCMDS_MFT=y CONFIG_SYSTEMCMDS_MIXER=y CONFIG_SYSTEMCMDS_MTD=y CONFIG_SYSTEMCMDS_NSHTERM=y @@ -39,8 +38,6 @@ CONFIG_SYSTEMCMDS_PARAM=y CONFIG_SYSTEMCMDS_PERF=y CONFIG_SYSTEMCMDS_PWM=y CONFIG_SYSTEMCMDS_REBOOT=y -CONFIG_SYSTEMCMDS_SD_BENCH=y -CONFIG_SYSTEMCMDS_SYSTEM_TIME=y CONFIG_SYSTEMCMDS_TOP=y CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y CONFIG_SYSTEMCMDS_TUNE_CONTROL=y diff --git a/boards/bitcraze/crazyflie21/init/rc.board_defaults b/boards/bitcraze/crazyflie21/init/rc.board_defaults index a1cd8b6a52..73fedae839 100644 --- a/boards/bitcraze/crazyflie21/init/rc.board_defaults +++ b/boards/bitcraze/crazyflie21/init/rc.board_defaults @@ -3,6 +3,9 @@ # board specific defaults #------------------------------------------------------------------------------ +# start CDCACM as soon as possible +sercon + # system_power unavailable param set-default CBRK_SUPPLY_CHK 894281 diff --git a/boards/bitcraze/crazyflie21/init/rc.board_mavlink b/boards/bitcraze/crazyflie21/init/rc.board_mavlink new file mode 100644 index 0000000000..164973f405 --- /dev/null +++ b/boards/bitcraze/crazyflie21/init/rc.board_mavlink @@ -0,0 +1,8 @@ +#!/bin/sh +# +# board specific MAVLink startup script. +#------------------------------------------------------------------------------ + +# Start MAVLink on the USB port +sleep 1 +mavlink start -d /dev/ttyACM0 diff --git a/boards/bitcraze/crazyflie21/init/rc.board_sensors b/boards/bitcraze/crazyflie21/init/rc.board_sensors index 60df800054..34c8731561 100644 --- a/boards/bitcraze/crazyflie21/init/rc.board_sensors +++ b/boards/bitcraze/crazyflie21/init/rc.board_sensors @@ -1,6 +1,6 @@ #!/bin/sh # -# Bitcraze Crazyflie specific board sensors init +# board specific sensors init #------------------------------------------------------------------------------ board_adc start diff --git a/boards/bitcraze/crazyflie21/nuttx-config/include/board.h b/boards/bitcraze/crazyflie21/nuttx-config/include/board.h index d3c2f95256..b8a483fed1 100644 --- a/boards/bitcraze/crazyflie21/nuttx-config/include/board.h +++ b/boards/bitcraze/crazyflie21/nuttx-config/include/board.h @@ -173,45 +173,33 @@ * */ /* E_TX2 / E_RX2 */ -#define GPIO_USART2_RX GPIO_USART2_RX_1 -#define GPIO_USART2_TX GPIO_USART2_TX_1 +#define GPIO_USART2_RX GPIO_USART2_RX_1 /* PA3 */ +#define GPIO_USART2_TX GPIO_USART2_TX_1 /* PA2 */ /* E_TX1 / E_RX1 */ -#define GPIO_USART3_RX GPIO_USART3_RX_2 -#define GPIO_USART3_TX GPIO_USART3_TX_2 +#define GPIO_USART3_RX GPIO_USART3_RX_2 /* PC11 */ +#define GPIO_USART3_TX GPIO_USART3_TX_2 /* PC10 */ /* NRF51 via syslink */ -#define GPIO_USART6_RX GPIO_USART6_RX_1 -#define GPIO_USART6_TX GPIO_USART6_TX_1 +#define GPIO_USART6_RX GPIO_USART6_RX_1 /* PC7 */ +#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PC6 */ +#define GPIO_USART6_TX GPIO_USART6_TX_1 /* PA4 */ + /* UART DMA configuration for USART6 */ #define DMAMAP_USART6_RX DMAMAP_USART6_RX_2 -/* - * I2C - * - * The optional _GPIO configurations allow the I2C driver to manually - * reset the bus to clear stuck slaves. They match the pin configuration, - * but are normally-high GPIOs. - */ -#define GPIO_I2C1_SCL GPIO_I2C1_SCL_1 -#define GPIO_I2C1_SDA GPIO_I2C1_SDA_1 -#define GPIO_I2C1_SCL_GPIO (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN6) -#define GPIO_I2C1_SDA_GPIO (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN7) +/* I2C */ +#define GPIO_I2C1_SCL GPIO_I2C1_SCL_1 /* PB6 */ +#define GPIO_I2C1_SDA GPIO_I2C1_SDA_1 /* PB7 */ -#define GPIO_I2C3_SCL GPIO_I2C3_SCL_1 -#define GPIO_I2C3_SDA GPIO_I2C3_SDA_1 -#define GPIO_I2C3_SCL_GPIO (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN8) -#define GPIO_I2C3_SDA_GPIO (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN9) +#define GPIO_I2C3_SCL GPIO_I2C3_SCL_1 /* PA8 */ +#define GPIO_I2C3_SDA GPIO_I2C3_SDA_1 /* PC9 */ -/* - * SPI - * - * E_MISO, E_MOSI, E_SCK exposed on headers - */ -#define GPIO_SPI1_MISO (GPIO_SPI1_MISO_1|GPIO_SPEED_50MHz) -#define GPIO_SPI1_MOSI (GPIO_SPI1_MOSI_1|GPIO_SPEED_50MHz) -#define GPIO_SPI1_SCK (GPIO_SPI1_SCK_1|GPIO_SPEED_50MHz) +/* SPI */ +#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 /* PA6 */ +#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 /* PA7 */ +#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 /* PA5 */ /* XXX since we allocate the HP work stack from CCM RAM on normal system startup, SPI1 will never run in DMA mode - so we can just give it a random config here. diff --git a/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig b/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig index 3202fd8125..c06b05017b 100644 --- a/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig +++ b/boards/bitcraze/crazyflie21/nuttx-config/nsh/defconfig @@ -44,10 +44,11 @@ CONFIG_CDCACM=y CONFIG_CDCACM_IFLOWCONTROL=y CONFIG_CDCACM_PRODUCTID=0x0016 CONFIG_CDCACM_PRODUCTSTR="PX4 Crazyflie v2.0" -CONFIG_CDCACM_RXBUFSIZE=300 -CONFIG_CDCACM_TXBUFSIZE=1000 +CONFIG_CDCACM_RXBUFSIZE=600 +CONFIG_CDCACM_TXBUFSIZE=2000 CONFIG_CDCACM_VENDORID=0x26ac CONFIG_CDCACM_VENDORSTR="Bitcraze AB" +CONFIG_CLOCK_MONOTONIC=y CONFIG_DEBUG_FULLOPT=y CONFIG_DEBUG_HARDFAULT_ALERT=y CONFIG_DEBUG_SYMBOLS=y @@ -55,6 +56,7 @@ CONFIG_DEFAULT_SMALL=y CONFIG_DEV_FIFO_SIZE=0 CONFIG_DEV_PIPE_MAXSIZE=1024 CONFIG_DEV_PIPE_SIZE=70 +CONFIG_DISABLE_MQUEUE=y CONFIG_FAT_DIRECT_RETRY=y CONFIG_FAT_LCNAMES=y CONFIG_FAT_LFN=y @@ -63,11 +65,10 @@ CONFIG_FDCLONE_STDIO=y CONFIG_FS_BINFS=y CONFIG_FS_CROMFS=y CONFIG_FS_FAT=y +CONFIG_FS_FATTIME=y CONFIG_FS_PROCFS=y -CONFIG_FS_PROCFS_EXCLUDE_BLOCKS=y -CONFIG_FS_PROCFS_EXCLUDE_MEMINFO=y -CONFIG_FS_PROCFS_EXCLUDE_MOUNT=y -CONFIG_FS_PROCFS_EXCLUDE_USAGE=y +CONFIG_FS_PROCFS_INCLUDE_PROGMEM=y +CONFIG_FS_PROCFS_REGISTER=y CONFIG_FS_ROMFS=y CONFIG_GRAN=y CONFIG_GRAN_INTR=y @@ -91,7 +92,6 @@ CONFIG_NSH_ARGCAT=y CONFIG_NSH_BUILTIN_APPS=y CONFIG_NSH_CMDPARMS=y CONFIG_NSH_CROMFSETC=y -CONFIG_NSH_DISABLE_EXPORT=y CONFIG_NSH_DISABLE_IFCONFIG=y CONFIG_NSH_DISABLE_IFUPDOWN=y CONFIG_NSH_DISABLE_TELNETD=y @@ -174,6 +174,7 @@ CONFIG_USART2_BAUD=57600 CONFIG_USART2_RXBUFSIZE=300 CONFIG_USART2_RXDMA=y CONFIG_USART2_TXBUFSIZE=300 +CONFIG_USART3_BAUD=57600 CONFIG_USART3_RXDMA=y CONFIG_USART3_SERIAL_CONSOLE=y CONFIG_USART6_BAUD=57600 diff --git a/boards/bitcraze/crazyflie21/src/CMakeLists.txt b/boards/bitcraze/crazyflie21/src/CMakeLists.txt index d967b47016..d574b47f00 100644 --- a/boards/bitcraze/crazyflie21/src/CMakeLists.txt +++ b/boards/bitcraze/crazyflie21/src/CMakeLists.txt @@ -35,6 +35,7 @@ add_library(drivers_board i2c.cpp init.c led.c + mtd.cpp spi.cpp timer_config.cpp usb.c diff --git a/boards/bitcraze/crazyflie21/src/board_config.h b/boards/bitcraze/crazyflie21/src/board_config.h index f457baffe1..ad730eb1e1 100644 --- a/boards/bitcraze/crazyflie21/src/board_config.h +++ b/boards/bitcraze/crazyflie21/src/board_config.h @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2012-2016 PX4 Development Team. All rights reserved. + * Copyright (c) 2021-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -34,41 +34,24 @@ /** * @file board_config.h * - * PX4-CRAZYFLIE internal definitions + * board internal definitions */ #pragma once -/**************************************************************************************************** - * Included Files - ****************************************************************************************************/ - #include #include #include -/**************************************************************************************************** - * Definitions - ****************************************************************************************************/ -/* Configuration ************************************************************************************/ - -/* Crazyflie GPIOs **********************************************************************************/ -/* LEDs */ - - /* Radio TX indicator */ -#define GPIO_LED_RED_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN0) +#define GPIO_LED_RED_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN0) /* Radio RX indicator */ -#define GPIO_LED_GREEN_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN1) -#define GPIO_LED_GREEN_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN2) -#define GPIO_LED_RED_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|\ - GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN3) +#define GPIO_LED_GREEN_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN1) +#define GPIO_LED_GREEN_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN2) +#define GPIO_LED_RED_R (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTC|GPIO_PIN3) /* PX4: armed state indicator ; Stock FW: Blinking while charging */ -#define GPIO_LED_BLUE_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN2) +#define GPIO_LED_BLUE_L (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTD|GPIO_PIN2) #define BOARD_HAS_CONTROL_STATUS_LEDS 1 #define BOARD_OVERLOAD_LED LED_RED @@ -78,37 +61,21 @@ #define LED_TX 4 #define LED_RX 5 -#define GPIO_FSYNC_MPU9250 (GPIO_OUTPUT|GPIO_PORTC|GPIO_PIN14) // Needs to be set low -#define GPIO_DRDY_MPU9250 (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN13) +#define GPIO_BMI088_INT_ACC (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN13) +#define GPIO_BMI088_INT_GYR (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN14) +#define GPIO_NRF_TXEN (GPIO_INPUT|GPIO_PULLUP|GPIO_EXTI|GPIO_PORTA|GPIO_PIN4) /* NRF_FLOW_CTRL */ -#define GPIO_NRF_TXEN (GPIO_INPUT|GPIO_PULLUP|GPIO_EXTI|GPIO_PORTA|GPIO_PIN4) - -#define GPIO_I2C4_DRDY1_BMP388 (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTG|GPIO_PIN5) - -/* - * I2C busses - */ -#define PX4_I2C_BUS_ONBOARD_HZ 400000 -#define PX4_I2C_BUS_EXPANSION_HZ 400000 - +/* I2C busses */ #define PX4_I2C_BUS_MTD 1 -#define BOARD_NUMBER_I2C_BUSES 3 -#define BOARD_I2C_BUS_CLOCK_INIT {PX4_I2C_BUS_ONBOARD_HZ, 400000, PX4_I2C_BUS_EXPANSION_HZ} - - -/* Devices on the onboard bus. - * - * Note that these are unshifted addresses. - */ -#define PX4_I2C_OBDEV_MPU9250 0x69 +#define BOARD_I2C_BUS_CLOCK_INIT {400000, 400000} /* USB OTG FS * * PA9 OTG_FS_VBUS VBUS sensing */ -#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9) +//#define GPIO_OTGFS_VBUS (GPIO_INPUT|GPIO_FLOAT|GPIO_SPEED_100MHz|GPIO_OPENDRAIN|GPIO_PORTA|GPIO_PIN9) /* * ADC channels @@ -118,15 +85,13 @@ #define ADC_CHANNELS 0 /* Tone alarm output : These are only applicable when the buzzer deck is attached */ -#define TONE_ALARM_TIMER 5 /* timer 5 */ -#define TONE_ALARM_CHANNEL 3 /* channel 3 */ +#define TONE_ALARM_TIMER 5 /* timer 5 */ +#define TONE_ALARM_CHANNEL 3 /* channel 3 */ #define GPIO_TONE_ALARM_IDLE (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN2) #define GPIO_TONE_ALARM (GPIO_ALT|GPIO_AF2|GPIO_SPEED_2MHz|GPIO_PUSHPULL|GPIO_PORTA|GPIO_PIN2) #define GPIO_TONE_ALARM_NEG (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_OUTPUT_CLEAR|GPIO_PORTA|GPIO_PIN3) -/* PWM -*/ - +/* PWM */ #define DIRECT_PWM_OUTPUT_CHANNELS 4 /* This board overrides the defaults by providing @@ -160,71 +125,16 @@ __BEGIN_DECLS -/**************************************************************************************************** - * Public Types - ****************************************************************************************************/ - -/**************************************************************************************************** - * Public data - ****************************************************************************************************/ - #ifndef __ASSEMBLY__ -/**************************************************************************************************** - * Public Functions - ****************************************************************************************************/ - -/**************************************************************************************************** - * Name: board_peripheral_reset - * - * Description: - * Called to reset the periferal bus - * - ****************************************************************************************************/ - #define board_peripheral_reset(ms) -/**************************************************************************************************** - * Name: stm32_usbinitialize - * - * Description: - * Called to configure USB IO. - * - ****************************************************************************************************/ +static inline int board_read_VBUS_state(void) { return -1; } extern void stm32_usbinitialize(void); - -/**************************************************************************** - * Name: board_i2c_initialize - * - * Description: - * Called to set I2C bus frequencies. - * - ****************************************************************************/ - -int board_i2c_initialize(void); - -/**************************************************************************************************** - * Name: stm32_spiinitialize - * - * Description: - * Called to configure SPI chip select GPIO pins for the PX4FMU board. - * - ****************************************************************************************************/ - extern void stm32_spiinitialize(void); - -/************************************************************************************ - * Name: stm32_spi_bus_initialize - * - * Description: - * Called to configure SPI Buses. - * - ************************************************************************************/ - extern int stm32_spi_bus_initialize(void); - #include #endif /* __ASSEMBLY__ */ diff --git a/boards/bitcraze/crazyflie21/src/init.c b/boards/bitcraze/crazyflie21/src/init.c index 6d1603600a..e603e6c4cc 100644 --- a/boards/bitcraze/crazyflie21/src/init.c +++ b/boards/bitcraze/crazyflie21/src/init.c @@ -32,9 +32,9 @@ ****************************************************************************/ /** - * @file crazyflie_init.c + * @file init.c * - * Crazyflie specific early startup code. This file implements the + * board specific early startup code. This file implements the * board_app_initialize() function that is called early by nsh during startup. * * Code here is run before the rcS script is invoked; it should start required @@ -46,7 +46,7 @@ ****************************************************************************/ #include -#include +#include #include #include @@ -87,14 +87,6 @@ extern void led_on(int led); extern void led_off(int led); __END_DECLS -/**************************************************************************** - * Protected Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - /************************************************************************************ * Name: stm32_boardinitialize * @@ -109,11 +101,9 @@ __EXPORT void stm32_boardinitialize(void) { /* configure LEDs */ - board_autoled_initialize(); /* configure SPI interfaces */ - stm32_spiinitialize(); stm32_usbinitialize(); @@ -153,5 +143,8 @@ __EXPORT int board_app_initialize(uintptr_t arg) stm32_spi_bus_initialize(); #endif + /* Configure the HW based on the manifest */ + px4_platform_configure(); + return OK; } diff --git a/boards/bitcraze/crazyflie21/src/mtd.cpp b/boards/bitcraze/crazyflie21/src/mtd.cpp new file mode 100644 index 0000000000..87b43991bc --- /dev/null +++ b/boards/bitcraze/crazyflie21/src/mtd.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** + * + * Copyright (C) 2021-2022 PX4 Development Team. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name PX4 nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +#include +#include +// KiB BS nB +static const px4_mft_device_t i2c1 = { // 24AA64FT on Base 8K 32 X 256 + .bus_type = px4_mft_device_t::I2C, + .devid = PX4_MK_I2C_DEVID(1, 0x50) +}; + + +static const px4_mtd_entry_t fmu_eeprom = { + .device = &i2c1, + .npart = 2, + .partd = { + { + .type = MTD_PARAMETERS, + .path = "/fs/mtd_params", + .nblocks = 128 + }, + { + .type = MTD_WAYPOINTS, + .path = "/fs/mtd_waypoints", + .nblocks = 128 + + } + }, +}; + +static const px4_mtd_manifest_t board_mtd_config = { + .nconfigs = 1, + .entries = { + &fmu_eeprom, + } +}; + +static const px4_mft_entry_s mtd_mft = { + .type = MTD, + .pmft = (void *) &board_mtd_config, +}; + +static const px4_mft_s mft = { + .nmft = 1, + .mfts = &mtd_mft +}; + +const px4_mft_s *board_get_manifest(void) +{ + return &mft; +} diff --git a/boards/bitcraze/crazyflie21/src/usb.c b/boards/bitcraze/crazyflie21/src/usb.c index af187d8df6..71321797b6 100644 --- a/boards/bitcraze/crazyflie21/src/usb.c +++ b/boards/bitcraze/crazyflie21/src/usb.c @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (C) 2012 PX4 Development Team. All rights reserved. + * Copyright (C) 2021-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -32,15 +32,11 @@ ****************************************************************************/ /** - * @file crazyflie_usb.c + * @file usb.c * * Board-specific USB functions. */ -/************************************************************************************ - * Included Files - ************************************************************************************/ - #include #include @@ -55,23 +51,11 @@ #include #include "board_config.h" -/************************************************************************************ - * Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - /************************************************************************************ * Name: stm32_usbinitialize * * Description: - * Called to setup USB-related GPIO pins for the PX4-STM32F4Discovery board. + * Called to setup USB-related GPIO pins for the board. * ************************************************************************************/ @@ -81,12 +65,8 @@ __EXPORT void stm32_usbinitialize(void) /* Configure the OTG FS VBUS sensing GPIO, Power On, and Overcurrent GPIOs */ -#ifdef CONFIG_STM32_OTGFS +#if defined(CONFIG_STM32_OTGFS) && defined(GPIO_OTGFS_VBUS) stm32_configgpio(GPIO_OTGFS_VBUS); - /* XXX We only support device mode - stm32_configgpio(GPIO_OTGFS_PWRON); - stm32_configgpio(GPIO_OTGFS_OVER); - */ #endif } diff --git a/src/drivers/imu/bosch/bmi088_i2c/BMI088.cpp b/src/drivers/imu/bosch/bmi088_i2c/BMI088.cpp index 54a8b2eed2..4fce6d73d0 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/BMI088.cpp +++ b/src/drivers/imu/bosch/bmi088_i2c/BMI088.cpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2020 PX4 Development Team. All rights reserved. + * Copyright (c) 2020-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -76,10 +76,7 @@ int BMI088::init() return ret; } - int res = Reset() ? 0 : -1; - _state = STATE::SELFTEST; - - return res; + return Reset() ? 0 : -1; } bool BMI088::Reset() diff --git a/src/drivers/imu/bosch/bmi088_i2c/BMI088.hpp b/src/drivers/imu/bosch/bmi088_i2c/BMI088.hpp index 6c1734a059..7c59c2ae7b 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/BMI088.hpp +++ b/src/drivers/imu/bosch/bmi088_i2c/BMI088.hpp @@ -65,23 +65,16 @@ protected: hrt_abstime _last_config_check_timestamp{0}; hrt_abstime _temperature_update_timestamp{0}; int _failure_count{0}; - int _overflow_data_size_count{0}; - int _overflow_fifo_max_samples_count{0}; - int _fifo_read_error_count{0}; - int _empty_count{0}; - int _total_failure_count{0}; - px4::atomic _drdy_timestamp_sample{0}; bool _data_ready_interrupt_enabled{false}; enum class STATE : uint8_t { - SELFTEST, RESET, WAIT_FOR_RESET, CONFIGURE, FIFO_READ, - } _state{STATE::SELFTEST}; + } _state{STATE::RESET}; uint16_t _fifo_empty_interval_us{2500}; // 2500 us / 400 Hz transfer interval diff --git a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.cpp b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.cpp index 6d7e4d6739..76f8ef220b 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.cpp +++ b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2020-2021 PX4 Development Team. All rights reserved. + * Copyright (c) 2020-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,6 +39,7 @@ using namespace time_literals; namespace Bosch::BMI088::Accelerometer { + BMI088_Accelerometer::BMI088_Accelerometer(const I2CSPIDriverConfig &config) : BMI088(config), _px4_accel(get_device_id(), config.rotation) @@ -47,7 +48,7 @@ BMI088_Accelerometer::BMI088_Accelerometer(const I2CSPIDriverConfig &config) : _drdy_missed_perf = perf_alloc(PC_COUNT, MODULE_NAME"_accel: DRDY missed"); } - ConfigureSampleRate(1600); + ConfigureSampleRate(_px4_accel.get_max_rate_hz()); } BMI088_Accelerometer::~BMI088_Accelerometer() @@ -80,32 +81,21 @@ void BMI088_Accelerometer::print_status() perf_print_counter(_drdy_missed_perf); } -uint8_t BMI088_Accelerometer::RegisterRead(Register reg) -{ - uint8_t add = static_cast(reg); - uint8_t cmd[2] = {add, 0}; - transfer(&cmd[0], 1, &cmd[1], 1); - return cmd[1]; -} - -uint8_t BMI088_Accelerometer::RegisterWrite(Register reg, uint8_t value) -{ - uint8_t add = static_cast(reg); - uint8_t cmd[2] = { add, value}; - return transfer(cmd, sizeof(cmd), nullptr, 0); -} - int BMI088_Accelerometer::probe() { const uint8_t ACC_CHIP_ID = RegisterRead(Register::ACC_CHIP_ID); - if (ACC_CHIP_ID != ID) { + if (ACC_CHIP_ID == ID_088) { + DEVICE_DEBUG("BMI088 Accel"); + + } else if (ACC_CHIP_ID == ID_090L) { + DEVICE_DEBUG("BMI090L Accel"); + + } else { DEVICE_DEBUG("unexpected ACC_CHIP_ID 0x%02x", ACC_CHIP_ID); return PX4_ERROR; } - PX4_WARN("Probe success, ACC_CHIP_ID: 0x%02x", ACC_CHIP_ID); - return PX4_OK; } @@ -114,27 +104,17 @@ void BMI088_Accelerometer::RunImpl() const hrt_abstime now = hrt_absolute_time(); switch (_state) { - case STATE::SELFTEST: - //PX4_WARN("Selftest state"); - //SelfTest(); - _state = STATE::RESET; - ScheduleDelayed(10_ms); - break; - case STATE::RESET: // ACC_SOFTRESET: Writing a value of 0xB6 to this register resets the sensor RegisterWrite(Register::ACC_SOFTRESET, 0xB6); _reset_timestamp = now; _failure_count = 0; _state = STATE::WAIT_FOR_RESET; - - ScheduleDelayed(1_ms); // Following a delay of 1 ms, all configuration settings are overwritten with their reset value. - break; case STATE::WAIT_FOR_RESET: - if (RegisterRead(Register::ACC_CHIP_ID) == ID) { + if ((RegisterRead(Register::ACC_CHIP_ID) == ID_088) || (RegisterRead(Register::ACC_CHIP_ID) == ID_090L)) { // ACC_PWR_CONF: Power on sensor RegisterWrite(Register::ACC_PWR_CONF, 0); @@ -191,15 +171,104 @@ void BMI088_Accelerometer::RunImpl() break; case STATE::FIFO_READ: { - SimpleFIFORead(now); + hrt_abstime timestamp_sample = now; + uint8_t samples = 0; + + if (_data_ready_interrupt_enabled) { + // scheduled from interrupt if _drdy_timestamp_sample was set as expected + const hrt_abstime drdy_timestamp_sample = _drdy_timestamp_sample.fetch_and(0); + + if ((now - drdy_timestamp_sample) < _fifo_empty_interval_us) { + timestamp_sample = drdy_timestamp_sample; + samples = _fifo_samples; + + } else { + perf_count(_drdy_missed_perf); + } + + // push backup schedule back + ScheduleDelayed(_fifo_empty_interval_us * 2); + } + + if (samples == 0) { + // check current FIFO count + const uint16_t fifo_byte_counter = FIFOReadCount(); + + if (fifo_byte_counter >= FIFO::SIZE) { + FIFOReset(); + perf_count(_fifo_overflow_perf); + + } else if ((fifo_byte_counter == 0) || (fifo_byte_counter == 0x8000)) { + // An empty FIFO corresponds to 0x8000 + perf_count(_fifo_empty_perf); + + } else { + samples = fifo_byte_counter / sizeof(FIFO::DATA); + + // tolerate minor jitter, leave sample to next iteration if behind by only 1 + if (samples == _fifo_samples + 1) { + timestamp_sample -= static_cast(FIFO_SAMPLE_DT); + samples--; + } + + if (samples > FIFO_MAX_SAMPLES) { + // not technically an overflow, but more samples than we expected or can publish + FIFOReset(); + perf_count(_fifo_overflow_perf); + samples = 0; + } + } + } + + bool success = false; + + if (samples >= 1) { + if (FIFORead(timestamp_sample, samples)) { + success = true; + + if (_failure_count > 0) { + _failure_count--; + } + } + } + + if (!success) { + _failure_count++; + + // full reset if things are failing consistently + if (_failure_count > 10) { + Reset(); + return; + } + } + + if (!success || hrt_elapsed_time(&_last_config_check_timestamp) > 100_ms) { + // check configuration registers periodically or immediately following any failure + if (RegisterCheck(_register_cfg[_checked_register])) { + _last_config_check_timestamp = now; + _checked_register = (_checked_register + 1) % size_register_cfg; + + } else { + // register check failed, force reset + perf_count(_bad_register_perf); + Reset(); + } + + } else { + // periodically update temperature (~1 Hz) + if (hrt_elapsed_time(&_temperature_update_timestamp) >= 1_s) { + UpdateTemperature(); + _temperature_update_timestamp = now; + } + } } + break; } } void BMI088_Accelerometer::ConfigureAccel() { - //PX4_WARN("ConfigureAccel"); const uint8_t ACC_RANGE = RegisterRead(Register::ACC_RANGE) & (Bit1 | Bit0); switch (ACC_RANGE) { @@ -231,15 +300,11 @@ void BMI088_Accelerometer::ConfigureSampleRate(int sample_rate) const float min_interval = FIFO_SAMPLE_DT; _fifo_empty_interval_us = math::max(roundf((1e6f / (float)sample_rate) / min_interval) * min_interval, min_interval); - PX4_WARN("_fifo_empty_interval_us %d", _fifo_empty_interval_us); _fifo_samples = math::min((float)_fifo_empty_interval_us / (1e6f / RATE), (float)FIFO_MAX_SAMPLES); - PX4_WARN("_fifo_samples %d", _fifo_samples); // recompute FIFO empty interval (us) with actual sample limit _fifo_empty_interval_us = _fifo_samples * (1e6f / RATE); - PX4_WARN("_fifo_empty_interval_us %d", _fifo_empty_interval_us); - //PX4_WARN("_fifo_samples %d", _fifo_samples); ConfigureFIFOWatermark(_fifo_samples); } @@ -265,7 +330,6 @@ void BMI088_Accelerometer::ConfigureFIFOWatermark(uint8_t samples) bool BMI088_Accelerometer::Configure() { - // first set and clear all configured register bits for (const auto ®_cfg : _register_cfg) { RegisterSetAndClearBits(reg_cfg.reg, reg_cfg.set_bits, reg_cfg.clear_bits); @@ -293,6 +357,7 @@ int BMI088_Accelerometer::DataReadyInterruptCallback(int irq, void *context, voi void BMI088_Accelerometer::DataReady() { + _drdy_timestamp_sample.store(hrt_absolute_time()); ScheduleNow(); } @@ -334,6 +399,20 @@ bool BMI088_Accelerometer::RegisterCheck(const register_config_t ®_cfg) return success; } +uint8_t BMI088_Accelerometer::RegisterRead(Register reg) +{ + uint8_t cmd = static_cast(reg); + uint8_t value = 0; + transfer(&cmd, 1, &value, 1); + return value; +} + +void BMI088_Accelerometer::RegisterWrite(Register reg, uint8_t value) +{ + uint8_t cmd[2] { (uint8_t)reg, value }; + transfer(cmd, sizeof(cmd), nullptr, 0); +} + void BMI088_Accelerometer::RegisterSetAndClearBits(Register reg, uint8_t setbits, uint8_t clearbits) { const uint8_t orig_val = RegisterRead(reg); @@ -349,10 +428,9 @@ uint16_t BMI088_Accelerometer::FIFOReadCount() { // FIFO length registers FIFO_LENGTH_1 and FIFO_LENGTH_0 contain the 14 bit FIFO byte uint8_t fifo_len_buf[2] {}; - fifo_len_buf[0] = static_cast(Register::FIFO_LENGTH_0) | DIR_READ; - // fifo_len_buf[1] dummy byte + uint8_t cmd = static_cast(Register::FIFO_LENGTH_0); - if (transfer(&fifo_len_buf[0], 1, &fifo_len_buf[0], 2) != PX4_OK) { + if (transfer(&cmd, 1, fifo_len_buf, sizeof(fifo_len_buf)) != PX4_OK) { perf_count(_bad_transfer_perf); return 0; } @@ -366,14 +444,13 @@ uint16_t BMI088_Accelerometer::FIFOReadCount() bool BMI088_Accelerometer::FIFORead(const hrt_abstime ×tamp_sample, uint8_t samples) { FIFOTransferBuffer buffer{}; - const size_t transfer_size = math::min(samples * sizeof(FIFO::DATA) + 4, FIFO::SIZE); + const size_t transfer_size = math::min(samples * sizeof(FIFO::DATA) + 2, FIFO::SIZE); - if (transfer((uint8_t *)&buffer, 1, (uint8_t *)&buffer, transfer_size) != PX4_OK) { + if (transfer(&buffer.cmd, 1, (uint8_t *)&buffer.FIFO_LENGTH_0, transfer_size) != PX4_OK) { perf_count(_bad_transfer_perf); return false; } - //PX4_WARN("Accel transfer success"); const size_t fifo_byte_counter = combine(buffer.FIFO_LENGTH_1 & 0x3F, buffer.FIFO_LENGTH_0); // An empty FIFO corresponds to 0x8000 @@ -463,119 +540,6 @@ bool BMI088_Accelerometer::FIFORead(const hrt_abstime ×tamp_sample, uint8_t return false; } -bool BMI088_Accelerometer::SimpleFIFORead(const hrt_abstime ×tamp_sample) -{ - sensor_accel_fifo_s accel{}; - accel.timestamp_sample = timestamp_sample; - accel.samples = 0; - accel.dt = FIFO_SAMPLE_DT; - - int fifo_fill_level = 0; - - uint8_t data_o[2] = { 0, 0 }; - uint8_t data_i[1] = {static_cast(Register::FIFO_LENGTH_0)}; - data_i[0] = static_cast(Register::FIFO_LENGTH_0); - - transfer(&data_i[0], 1, &data_o[0], 2); - fifo_fill_level = data_o[0] + (data_o[1] << 8); - - if (fifo_fill_level & 0x8000) { - return false; - } - - int n_frames_to_read = 6; - - // don't read more than 6 frames at a time - if (fifo_fill_level > n_frames_to_read * 7) { - fifo_fill_level = n_frames_to_read * 7; - } - - if (fifo_fill_level == 0) { - return false; - } - - uint8_t data[fifo_fill_level]; - - data[0] = static_cast(Register::FIFO_DATA); - - if (transfer(&data[0], 1, &data[0], fifo_fill_level) != PX4_OK) { - return false; - } - - const uint8_t *p = &data[0]; - - while (fifo_fill_level >= 7) { - uint8_t frame_len = 2; - - switch (p[0] & 0xFC) { - case 0x84: { - // accel frame - frame_len = 7; - const uint8_t *d = p + 1; - int16_t xyz[3] { - int16_t(uint16_t(d[0] | (d[1] << 8))), - int16_t(uint16_t(d[2] | (d[3] << 8))), - int16_t(uint16_t(d[4] | (d[5] << 8))) - }; - - - const int16_t tX[3] = {1, 0, 0}; - const int16_t tY[3] = {0, -1, 0}; - const int16_t tZ[3] = {0, 0, -1}; - - float x = 0; - float y = 0; - float z = 0; - - x = xyz[0] * tX[0] + xyz[1] * tX[1] + xyz[2] * tX[2]; - y = xyz[0] * tY[0] + xyz[1] * tY[1] + xyz[2] * tY[2]; - z = xyz[0] * tZ[0] + xyz[1] * tZ[1] + xyz[2] * tZ[2]; - - accel.x[accel.samples] = x; - accel.y[accel.samples] = y; - accel.z[accel.samples] = z; - accel.samples++; - - break; - } - - case 0x40: - // skip frame - frame_len = 2; - break; - - case 0x44: - // sensortime frame - frame_len = 4; - break; - - case 0x48: - // fifo config frame - frame_len = 2; - break; - - case 0x50: - // sample drop frame - frame_len = 2; - break; - } - - p += frame_len; - fifo_fill_level -= frame_len; - } - - _px4_accel.set_error_count(perf_event_count(_bad_register_perf) + perf_event_count(_bad_transfer_perf) + - perf_event_count(_fifo_empty_perf) + perf_event_count(_fifo_overflow_perf)); - - if (accel.samples > 0) { - //PX4_WARN("accel.samples: %d", accel.samples); - _px4_accel.updateFIFO(accel); - return true; - } - - return true; -} - void BMI088_Accelerometer::FIFOReset() { perf_count(_fifo_reset_perf); @@ -590,17 +554,17 @@ void BMI088_Accelerometer::FIFOReset() void BMI088_Accelerometer::UpdateTemperature() { // stored in an 11-bit value in 2’s complement format - uint8_t temperature_buf[4] {}; - temperature_buf[0] = static_cast(Register::TEMP_MSB) | ACC_I2C_ADDR_PRIMARY; + uint8_t temperature_buf[2] {}; + uint8_t cmd = static_cast(Register::TEMP_MSB); // temperature_buf[1] dummy byte - if (transfer(&temperature_buf[0], 1, &temperature_buf[0], sizeof(temperature_buf)) != PX4_OK) { + if (transfer(&cmd, 1, &temperature_buf[0], sizeof(temperature_buf)) != PX4_OK) { perf_count(_bad_transfer_perf); return; } - const uint8_t TEMP_MSB = temperature_buf[2]; - const uint8_t TEMP_LSB = temperature_buf[3]; + const uint8_t TEMP_MSB = temperature_buf[0]; + const uint8_t TEMP_LSB = temperature_buf[1]; // Datasheet 5.3.7: Register 0x22 – 0x23: Temperature sensor data uint16_t Temp_uint11 = (TEMP_MSB * 8) + (TEMP_LSB / 32); @@ -623,301 +587,4 @@ void BMI088_Accelerometer::UpdateTemperature() } } -bool BMI088_Accelerometer::SelfTest() -{ - PX4_WARN("Running self-test with datasheet recomended steps(page 17)"); - // Reset - PX4_WARN("Reseting the sensor"); - - if (RegisterWrite(Register::ACC_SOFTRESET, 0xB6) == PX4_OK) { - PX4_WARN("Reset success"); - } - - usleep(100000); - PX4_WARN("Accel on"); - - if (RegisterWrite(Register::ACC_PWR_CTRL, 0x04) == PX4_OK) { - PX4_WARN("Accel on success"); - } - - usleep(100000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - Configure(); - usleep(1000000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - const uint8_t ACC_CHIP_ID = RegisterRead(Register::ACC_CHIP_ID); - PX4_WARN("ACC_CHIP_ID: 0x%02x", ACC_CHIP_ID); - usleep(30000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - - if (RegisterWrite(Register::ACC_PWR_CONF, 0) == PX4_OK) { - PX4_WARN("Start sensor success"); - PX4_WARN("ACC_PWR_CONF(0): 0x%02x", RegisterRead(Register::ACC_PWR_CONF)); - } - - usleep(2000000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - - if (RegisterWrite(Register::ACC_RANGE, 0x03) == PX4_OK) { - PX4_WARN("Range set success"); - PX4_WARN("ACC_RANGE(0x03): 0x%02x", RegisterRead(Register::ACC_RANGE)); - } - - usleep(100000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - - if (RegisterWrite(Register::ACC_CONF, 0xA7) == PX4_OK) { - PX4_WARN("Conf set success"); - PX4_WARN("ACC_CONF(0xA7): 0x%02x", RegisterRead(Register::ACC_CONF)); - } - - usleep(100000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - - // Positive sel-test polarity - if (RegisterWrite(Register::ACC_SELF_TEST, 0x0D) == PX4_OK) { - PX4_WARN("Self-test positive mode set success"); - PX4_WARN("ACC_SELF_TEST(0x0D): 0x%02x", RegisterRead(Register::ACC_SELF_TEST)); - } - - usleep(100000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - - float *accel_mss = ReadAccelDataFIFO(); - PX4_WARN("Positive value"); - PX4_WARN("X %f", (double)accel_mss[0]); - PX4_WARN("Y %f", (double)accel_mss[1]); - PX4_WARN("Z %f", (double)accel_mss[2]); - - // Negative sel-test polarity - if (RegisterWrite(Register::ACC_SELF_TEST, 0x09) == PX4_OK) { - PX4_WARN("Self-test negative mode set success"); - PX4_WARN("ACC_SELF_TEST(0x09): 0x%02x", RegisterRead(Register::ACC_SELF_TEST)); - } - - usleep(600000); - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - float *accel_mss2 = ReadAccelDataFIFO(); - PX4_WARN("Negative value"); - PX4_WARN("X %f", (double)accel_mss2[0]); - PX4_WARN("Y %f", (double)accel_mss2[1]); - PX4_WARN("Z %f", (double)accel_mss2[2]); - - // Calculate difference between positive and negative sef-test response - float diff_x = accel_mss[0] - accel_mss2[0]; - float diff_y = accel_mss[1] - accel_mss2[1]; - float diff_z = accel_mss[2] - accel_mss2[2]; - - PX4_WARN("Diff value"); - PX4_WARN("diff_x %f", (double)diff_x); - PX4_WARN("diff_y %f", (double)diff_y); - PX4_WARN("diff_z %f", (double)diff_z); - - - if (diff_x >= 1000) { - PX4_WARN("X Axis self-test success"); - } - - if (diff_y >= 1000) { - PX4_WARN("Y Axis self-test success"); - } - - if (diff_z >= 500) { - PX4_WARN("Z Axis self-test success"); - } - - - // Disable self-test - RegisterWrite(Register::ACC_SELF_TEST, 0x00); - usleep(60000); - - PX4_WARN("Sensor ErrReg: 0x%02x", CheckSensorErrReg()); - // Reset - //PX4_WARN("Reseting the sensor again"); - //RegisterWrite(Register::ACC_SOFTRESET, 0xB6); - //usleep(100000); - return true; -} - -float *BMI088_Accelerometer::ReadAccelData() -{ - uint8_t cmd[1] = {0x12}; - - uint8_t buf[6] = {0, 0, 0, 0, 0, 0}; - uint8_t *buffer = buf; - - int16_t accel[3]; - - if (transfer(&cmd[0], 1, buffer, sizeof(buf)) == PX4_OK) { - PX4_WARN("ReadAccelData transfer success"); - } - - for (uint8_t i = 0; i < sizeof(buf); i++) { - PX4_WARN("buf[%d]: %f", i, (double)buf[i]); - } - - accel[0] = (buf[1] << 8) | buf[0]; - accel[1] = (buf[3] << 8) | buf[2]; - accel[2] = (buf[5] << 8) | buf[4]; - - float *accel_mss = new float[3]; - - accel_mss[0] = (float) accel[0] / 32768.0f * 1000.0f * powf(2.0f, 24.0f + 1.0f) * 1.50f; - accel_mss[1] = (float) accel[1] / 32768.0f * 1000.0f * powf(2.0f, 24.0f + 1.0f) * 1.50f; - accel_mss[2] = (float) accel[2] / 32768.0f * 1000.0f * powf(2.0f, 24.0f + 1.0f) * 1.50f; - - return accel_mss; -} - -float *BMI088_Accelerometer::ReadAccelDataFIFO() -{ - float *accel_mg = new float[3]; - struct FIFO::bmi08x_sensor_data bmi08x_accel; - uint8_t buffer[50] = {0}; - - PX4_WARN("FIFO mode is stop-at-full"); - /* Desired FIFO mode is stop-at-full: set bit #0 to 1 in 0x48. Bit #1 must always be one! */ - buffer[0] = 0x00 | 0x02; - RegisterWrite(Register::FIFO_CONFIG_0, buffer[0]); - PX4_WARN("FIFO_CONFIG_0(0x%02x): 0x%02x", buffer[0], RegisterRead(Register::FIFO_CONFIG_0)); - - PX4_WARN("Downsampling factor 2**4 = 16"); - /* Downsampling factor 2**4 = 16: write 4 into bit #4-6 of reg. 0x45. Bit #7 must always be one! */ - buffer[0] = 0x10 | 0x80; - RegisterWrite(Register::FIFO_DOWN_SAMPLING, buffer[0]); - PX4_WARN("FIFO_DOWN_SAMPLING(0x%02x): 0x%02x", buffer[0], RegisterRead(Register::FIFO_DOWN_SAMPLING)); - - /* Set water mark to 42 bytes (aka 6 frames, each 7 bytes: 1 byte header + 6 bytes accel data) */ - // uint16_t wml = 42; - // buffer[0] = (uint8_t) wml & 0xff; - // buffer[1] = (uint8_t) (wml >> 8) & 0xff; - // uint8_t add = static_cast(Register::FIFO_WTM_0); - // uint8_t cmd[3] = { add, buffer[0], buffer[1]}; - // transfer(cmd, sizeof(cmd), nullptr, 0); - // PX4_WARN("FIFO_WTM_0(0x%02x): 0x%02x",cmd[0], RegisterRead(Register::FIFO_WTM_0)); - - /* Enable the actual FIFO functionality: write 0x50 to 0x49. Bit #4 must always be one! */ - buffer[0] = 0x10 | 0x40; - RegisterWrite(Register::FIFO_CONFIG_1, buffer[0]); - PX4_WARN("FIFO_CONFIG_1(0x%02x): 0x%02x", buffer[0], RegisterRead(Register::FIFO_CONFIG_1)); - usleep(1000000); - - int fifo_fill_level = 0; - - uint8_t data_o[2] = { 0, 0 }; - uint8_t data_i[1] = {static_cast(Register::FIFO_LENGTH_0)}; - data_i[0] = static_cast(Register::FIFO_LENGTH_0); - - transfer(&data_i[0], 1, &data_o[0], 2); - fifo_fill_level = data_o[0] + 256 * data_o[1]; - PX4_WARN("fifo_fill_level %d", fifo_fill_level); - - // while(fifo_fill_level < wml) - // { - // transfer(&data_i[0], 1, &data_o[0], 2); - // fifo_fill_level = data_o[0] + 256 * data_o[1]; - // PX4_WARN("fifo_fill_level %d", fifo_fill_level); - // } - - uint8_t custom_size = 42; - uint8_t buffer_data[custom_size] = {0}; - buffer[0] = static_cast(Register::FIFO_DATA); - bmi08x_accel.x = 10; - PX4_WARN("bmi08x_accel %d", bmi08x_accel.x); - transfer(&buffer[0], 1, &buffer_data[0], custom_size); - - /* This is a super-simple FIFO parsing loop, hoping it will only find valid accel data packets */ - for (int i = 1; i < custom_size;) { - /* Header of acceleration sensor data frame: 100001xxb, where x is INT1/INT2 tag, ignored here */ - if (buffer_data[i] == (0x84 & 0x8c)) { - UnpackSensorData(&bmi08x_accel, &buffer_data[i + 1]); - PX4_WARN("Frame: %03d ax:%f ay:%f az:%f", i / 6, (double)bmi08x_accel.x, (double)bmi08x_accel.y, - (double)bmi08x_accel.z); - accel_mg[0] = bmi08x_accel.x; - accel_mg[1] = bmi08x_accel.y; - accel_mg[2] = bmi08x_accel.z; - float *data_in_mg = SensorDataTomg(accel_mg); - PX4_WARN("Frame mg: %03d ax:%f ay:%f az:%f", i / 6, (double)data_in_mg[0], (double)data_in_mg[1], - (double)data_in_mg[2]); - i += 7; - - } else { - i++; - } - } - - return accel_mg; -} - -uint8_t BMI088_Accelerometer::CheckSensorErrReg() -{ - return RegisterRead(Register::ACC_ERR_REG); -} - -void BMI088_Accelerometer::UnpackSensorData(struct FIFO::bmi08x_sensor_data *sens_data, uint8_t *buffer) -{ - uint16_t data_lsb; - uint16_t data_msb; - uint16_t start_idx = 0; - /* Gyro raw x data */ - data_lsb = buffer[start_idx++]; - data_msb = buffer[start_idx++]; - sens_data->x = (int16_t)((data_msb << 8) | data_lsb); - /* Gyro raw y data */ - data_lsb = buffer[start_idx++]; - data_msb = buffer[start_idx++]; - sens_data->y = (int16_t)((data_msb << 8) | data_lsb); - /* Gyro raw z data */ - data_lsb = buffer[start_idx++]; - data_msb = buffer[start_idx++]; - sens_data->z = (int16_t)((data_msb << 8) | data_lsb); -} - -float *BMI088_Accelerometer::SensorDataTomg(float *data) -{ - data[0] = (float) data[0] / 32768.0f * 1000.0f * powf(2.0f, 24.0f + 1.0f) * 1.50f; - data[1] = (float) data[1] / 32768.0f * 1000.0f * powf(2.0f, 24.0f + 1.0f) * 1.50f; - data[2] = (float) data[2] / 32768.0f * 1000.0f * powf(2.0f, 24.0f + 1.0f) * 1.50f; - return data; -} - -bool BMI088_Accelerometer::NormalRead(const hrt_abstime ×tamp_sample) -{ - const int16_t tX[3] = {1, 0, 0}; - const int16_t tY[3] = {0, -1, 0}; - const int16_t tZ[3] = {0, 0, -1}; - - float x = 0; - float y = 0; - float z = 0; - uint8_t buffer[6] = {0}; - uint8_t cmd[1] = {static_cast(Register::ACC_READ)}; - - transfer(&cmd[0], 1, &buffer[0], 6); - - uint8_t RATE_X_LSB = buffer[0]; - uint8_t RATE_X_MSB = buffer[1]; - - uint8_t RATE_Y_LSB = buffer[2]; - uint8_t RATE_Y_MSB = buffer[3]; - - uint8_t RATE_Z_LSB = buffer[4]; - uint8_t RATE_Z_MSB = buffer[5]; - - const int16_t accel_x = combine(RATE_X_MSB, RATE_X_LSB); - const int16_t accel_y = combine(RATE_Y_MSB, RATE_Y_LSB); - const int16_t accel_z = combine(RATE_Z_MSB, RATE_Z_LSB); - - // sensor's frame is +x forward, +y left, +z up - // flip y & z to publish right handed with z down (x forward, y right, z down) - x = accel_x * tX[0] + accel_y * tX[1] + accel_z * tX[2]; - y = accel_x * tY[0] + accel_y * tY[1] + accel_z * tY[2]; - z = accel_x * tZ[0] + accel_y * tZ[1] + accel_z * tZ[2]; - - //PX4_WARN("x: %f | y: %f | z: %f", (double)x, (double)y ,(double)z); - _px4_accel.update(timestamp_sample, x, y, z); - - return true; -} - } // namespace Bosch::BMI088::Accelerometer diff --git a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.hpp b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.hpp index 189ffe9a75..470da3bcb6 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.hpp +++ b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Accelerometer.hpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2020-2021 PX4 Development Team. All rights reserved. + * Copyright (c) 2020-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -55,7 +55,6 @@ private: void exit_and_cleanup() override; // Sensor Configuration - // static constexpr uint32_t RATE{1600}; // 1600 Hz static constexpr uint32_t RATE{1600}; // 1600 Hz static constexpr float FIFO_SAMPLE_DT{1e6f / RATE}; @@ -69,10 +68,6 @@ private: uint8_t FIFO_LENGTH_1{0}; FIFO::DATA f[FIFO_MAX_SAMPLES] {}; }; - // Transfer data without length - struct FIFOTransferBufferWithoutLength { - FIFO::DATA f[FIFO_MAX_SAMPLES] {}; - }; // ensure no struct padding static_assert(sizeof(FIFOTransferBuffer) == (4 + FIFO_MAX_SAMPLES *sizeof(FIFO::DATA))); @@ -97,7 +92,7 @@ private: bool RegisterCheck(const register_config_t ®_cfg); uint8_t RegisterRead(Register reg); - uint8_t RegisterWrite(Register reg, uint8_t value); + void RegisterWrite(Register reg, uint8_t value); void RegisterSetAndClearBits(Register reg, uint8_t setbits, uint8_t clearbits); uint16_t FIFOReadCount(); @@ -105,14 +100,6 @@ private: void FIFOReset(); void UpdateTemperature(); - void UnpackSensorData(struct FIFO::bmi08x_sensor_data *sens_data, uint8_t *buffer); - bool SelfTest(); - float *ReadAccelData(); - float *ReadAccelDataFIFO(); - float *SensorDataTomg(float *data); - uint8_t CheckSensorErrReg(); - bool SimpleFIFORead(const hrt_abstime ×tamp_sample); - bool NormalRead(const hrt_abstime ×tamp_sample); PX4Accelerometer _px4_accel; @@ -129,7 +116,7 @@ private: static constexpr uint8_t size_register_cfg{10}; register_config_t _register_cfg[size_register_cfg] { // Register | Set bits, Clear bits - { Register::ACC_PWR_CONF, 0, ACC_PWR_CONF_BIT::acc_pwr_save }, // + { Register::ACC_PWR_CONF, 0, ACC_PWR_CONF_BIT::acc_pwr_save }, { Register::ACC_PWR_CTRL, ACC_PWR_CTRL_BIT::acc_enable, 0 }, { Register::ACC_CONF, ACC_CONF_BIT::acc_bwp_Normal | ACC_CONF_BIT::acc_odr_1600, Bit1 | Bit0 }, { Register::ACC_RANGE, ACC_RANGE_BIT::acc_range_24g, 0 }, diff --git a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.cpp b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.cpp index ad177c68e5..a95b6ae087 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.cpp +++ b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.cpp @@ -48,7 +48,7 @@ BMI088_Gyroscope::BMI088_Gyroscope(const I2CSPIDriverConfig &config) : _drdy_missed_perf = perf_alloc(PC_COUNT, MODULE_NAME"_gyro: DRDY missed"); } - ConfigureSampleRate(2000); + ConfigureSampleRate(_px4_gyro.get_max_rate_hz()); } BMI088_Gyroscope::~BMI088_Gyroscope() @@ -98,13 +98,6 @@ void BMI088_Gyroscope::RunImpl() const hrt_abstime now = hrt_absolute_time(); switch (_state) { - - case STATE::SELFTEST: - //SelfTest(); - _state = STATE::RESET; - ScheduleDelayed(1_ms); - break; - case STATE::RESET: // GYRO_SOFTRESET: Writing a value of 0xB6 to this register resets the sensor. // Following a delay of 30 ms, all configuration settings are overwritten with their reset value. @@ -170,8 +163,90 @@ void BMI088_Gyroscope::RunImpl() break; case STATE::FIFO_READ: { - SimpleFIFORead(now); + hrt_abstime timestamp_sample = 0; + + if (_data_ready_interrupt_enabled) { + // scheduled from interrupt if _drdy_timestamp_sample was set as expected + const hrt_abstime drdy_timestamp_sample = _drdy_timestamp_sample.fetch_and(0); + + if ((now - drdy_timestamp_sample) < _fifo_empty_interval_us) { + timestamp_sample = drdy_timestamp_sample; + + } else { + perf_count(_drdy_missed_perf); + } + + // push backup schedule back + ScheduleDelayed(_fifo_empty_interval_us * 2); + } + + // always check current FIFO status/count + bool success = false; + const uint8_t FIFO_STATUS = RegisterRead(Register::FIFO_STATUS); + + if (FIFO_STATUS & FIFO_STATUS_BIT::Fifo_overrun) { + FIFOReset(); + perf_count(_fifo_overflow_perf); + + } else { + const uint8_t fifo_frame_counter = FIFO_STATUS & FIFO_STATUS_BIT::Fifo_frame_counter; + + if (fifo_frame_counter > FIFO_MAX_SAMPLES) { + // not technically an overflow, but more samples than we expected or can publish + FIFOReset(); + perf_count(_fifo_overflow_perf); + + } else if (fifo_frame_counter == 0) { + perf_count(_fifo_empty_perf); + + } else if (fifo_frame_counter >= 1) { + + uint8_t samples = fifo_frame_counter; + + // tolerate minor jitter, leave sample to next iteration if behind by only 1 + if (samples == _fifo_samples + 1) { + // sample timestamp set from data ready already corresponds to _fifo_samples + if (timestamp_sample == 0) { + timestamp_sample = now - static_cast(FIFO_SAMPLE_DT); + } + + samples--; + } + + if (FIFORead((timestamp_sample == 0) ? now : timestamp_sample, samples)) { + success = true; + + if (_failure_count > 0) { + _failure_count--; + } + } + } + } + + if (!success) { + _failure_count++; + + // full reset if things are failing consistently + if (_failure_count > 10) { + Reset(); + return; + } + } + + if (!success || hrt_elapsed_time(&_last_config_check_timestamp) > 100_ms) { + // check configuration registers periodically or immediately following any failure + if (RegisterCheck(_register_cfg[_checked_register])) { + _last_config_check_timestamp = now; + _checked_register = (_checked_register + 1) % size_register_cfg; + + } else { + // register check failed, force reset + perf_count(_bad_register_perf); + Reset(); + } + } } + break; } } @@ -306,16 +381,15 @@ bool BMI088_Gyroscope::RegisterCheck(const register_config_t ®_cfg) uint8_t BMI088_Gyroscope::RegisterRead(Register reg) { - uint8_t add = static_cast(reg); - uint8_t cmd[2] = {add, 0}; - transfer(&cmd[0], 1, &cmd[1], 1); - return cmd[1]; + uint8_t cmd = static_cast(reg); + uint8_t value = 0; + transfer(&cmd, 1, &value, 1); + return value; } void BMI088_Gyroscope::RegisterWrite(Register reg, uint8_t value) { - uint8_t add = static_cast(reg); - uint8_t cmd[2] = {add, value}; + uint8_t cmd[2] { (uint8_t)reg, value }; transfer(cmd, sizeof(cmd), nullptr, 0); } @@ -333,10 +407,9 @@ void BMI088_Gyroscope::RegisterSetAndClearBits(Register reg, uint8_t setbits, ui bool BMI088_Gyroscope::FIFORead(const hrt_abstime ×tamp_sample, uint8_t samples) { FIFOTransferBuffer buffer{}; - const size_t transfer_size = math::min(samples * sizeof(FIFO::DATA) + 1, FIFO::SIZE); + const size_t transfer_size = math::min(samples * sizeof(FIFO::DATA), FIFO::SIZE); - //PX4_WARN("Estimated transfer size: %d", transfer_size); - if (transfer((uint8_t *)&buffer, 1, (uint8_t *)&buffer, transfer_size) != PX4_OK) { + if (transfer((uint8_t *)&buffer.cmd, 1, (uint8_t *)&buffer.f, transfer_size) != PX4_OK) { perf_count(_bad_transfer_perf); return false; } @@ -390,125 +463,4 @@ void BMI088_Gyroscope::FIFOReset() } } -bool BMI088_Gyroscope::SelfTest() -{ - //Datasheet page 17 self test - - //Set bit0 to enable built in self test - RegisterWrite(Register::SELF_TEST, 0x01); - usleep(10000); - uint8_t res = 0; - uint8_t test_res = false; - - while (true) { - res = RegisterRead(Register::SELF_TEST); - - if ((res & 0x02) == 0x02) { - if ((res & 0x04) == 0x00) { - PX4_WARN("Gyro Self-test success"); - test_res = true; - - } else { - PX4_WARN("Gyro Self-test error"); - } - - break; - } - } - - RegisterWrite(Register::SELF_TEST, 0x00); - return test_res; -} - -bool BMI088_Gyroscope::NormalRead(const hrt_abstime ×tamp_sample) -{ - float x = 0; - float y = 0; - float z = 0; - uint8_t buffer[6] = {0}; - uint8_t cmd[1] = {static_cast(Register::READ_GYRO)}; - - transfer(&cmd[0], 1, &buffer[0], 6); - - uint8_t RATE_X_LSB = buffer[0]; - uint8_t RATE_X_MSB = buffer[1]; - uint8_t RATE_Y_LSB = buffer[2]; - uint8_t RATE_Y_MSB = buffer[3]; - uint8_t RATE_Z_LSB = buffer[4]; - uint8_t RATE_Z_MSB = buffer[5]; - - const int16_t gyro_x = combine(RATE_X_MSB, RATE_X_LSB); - const int16_t gyro_y = combine(RATE_Y_MSB, RATE_Y_LSB); - const int16_t gyro_z = combine(RATE_Z_MSB, RATE_Z_LSB); - - // sensor's frame is +x forward, +y left, +z up - // flip y & z to publish right handed with z down (x forward, y right, z down) - x = gyro_x; - y = (gyro_y == INT16_MIN) ? INT16_MAX : -gyro_y; - z = (gyro_z == INT16_MIN) ? INT16_MAX : -gyro_z; - - _px4_gyro.update(timestamp_sample, x, y, z); - - return true; -} - -bool BMI088_Gyroscope::SimpleFIFORead(const hrt_abstime ×tamp_sample) -{ - uint8_t n_frames; - sensor_gyro_fifo_s gyro{}; - gyro.timestamp_sample = timestamp_sample; - gyro.samples = 0; - gyro.dt = FIFO_SAMPLE_DT; - - uint8_t data_i[1] = {static_cast(Register::FIFO_STATUS)}; - - transfer(&data_i[0], 1, &n_frames, 1); - - n_frames &= 0x7F; - - int n_frames_to_read = 6; - - // don't read more than 8 frames at a time - if (n_frames > n_frames_to_read) { - n_frames = n_frames_to_read; - } - - if (n_frames == 0) { - return false; - } - - uint8_t data[6 * n_frames]; - data[0] = static_cast(Register::FIFO_DATA); - - if (transfer(&data[0], 1, &data[0], 6 * n_frames) != PX4_OK) { - //PX4_WARN("transfer(&data[0], 1, &data[0], fifo_fill_level) != PX4_OK"); - return false; - } - - for (uint8_t i = 0; i < n_frames; i++) { - const uint8_t *d = &data[i * 6]; - int16_t xyz[3] { - int16_t(uint16_t(d[0] | d[1] << 8)), - int16_t(uint16_t(d[2] | d[3] << 8)), - int16_t(uint16_t(d[4] | d[5] << 8)) - }; - - gyro.x[i] = xyz[0]; - gyro.y[i] = (xyz[1] == INT16_MIN) ? INT16_MAX : -xyz[1]; - gyro.z[i] = (xyz[2] == INT16_MIN) ? INT16_MAX : -xyz[2]; - gyro.samples++; - } - - _px4_gyro.set_error_count(perf_event_count(_bad_register_perf) + perf_event_count(_bad_transfer_perf) + - perf_event_count(_fifo_empty_perf) + perf_event_count(_fifo_overflow_perf)); - - if (gyro.samples > 0) { - //PX4_WARN("accel.samples: %d", accel.samples); - _px4_gyro.updateFIFO(gyro); - return true; - } - - return true; - -} } // namespace Bosch::BMI088::Gyroscope diff --git a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.hpp b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.hpp index 33d95b3b14..59d847bf02 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.hpp +++ b/src/drivers/imu/bosch/bmi088_i2c/BMI088_Gyroscope.hpp @@ -55,7 +55,7 @@ private: void exit_and_cleanup() override; // Sensor Configuration - static constexpr uint32_t RATE{400}; // 2000 Hz + static constexpr uint32_t RATE{2000}; // 2000 Hz static constexpr float FIFO_SAMPLE_DT{1e6f / RATE}; static constexpr int32_t FIFO_MAX_SAMPLES{math::min(FIFO::SIZE / sizeof(FIFO::DATA), sizeof(sensor_gyro_fifo_s::x) / sizeof(sensor_gyro_fifo_s::x[0]))}; @@ -95,9 +95,6 @@ private: bool FIFORead(const hrt_abstime ×tamp_sample, uint8_t samples); void FIFOReset(); - bool SelfTest(); - bool NormalRead(const hrt_abstime ×tamp_sample); - bool SimpleFIFORead(const hrt_abstime ×tamp_sample); PX4Gyroscope _px4_gyro; perf_counter_t _bad_register_perf{perf_alloc(PC_COUNT, MODULE_NAME"_gyro: bad register")}; @@ -114,13 +111,13 @@ private: register_config_t _register_cfg[size_register_cfg] { // Register | Set bits, Clear bits { Register::GYRO_RANGE, GYRO_RANGE_BIT::gyro_range_2000_dps, 0 }, - { Register::GYRO_BANDWIDTH, 0, GYRO_BANDWIDTH_BIT::gyro_bw_2000_Hz}, + { Register::GYRO_BANDWIDTH, 0, GYRO_BANDWIDTH_BIT::gyro_bw_532_Hz }, { Register::GYRO_INT_CTRL, GYRO_INT_CTRL_BIT::fifo_en, 0 }, { Register::INT3_INT4_IO_CONF, 0, INT3_INT4_IO_CONF_BIT::Int3_od | INT3_INT4_IO_CONF_BIT::Int3_lvl }, { Register::INT3_INT4_IO_MAP, INT3_INT4_IO_MAP_BIT::Int3_fifo, 0 }, { Register::FIFO_WM_ENABLE, FIFO_WM_ENABLE_BIT::fifo_wm_enable, 0 }, { Register::FIFO_CONFIG_0, 0, 0 }, // fifo_water_mark_level_trigger_retain<6:0> - { Register::FIFO_CONFIG_1, FIFO_CONFIG_1_BIT::FIFO_MODE_STREAM, 0 }, + { Register::FIFO_CONFIG_1, FIFO_CONFIG_1_BIT::FIFO_MODE, 0 }, }; }; diff --git a/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Accelerometer_Registers.hpp b/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Accelerometer_Registers.hpp index 02a9ea56c3..7652f5ba0d 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Accelerometer_Registers.hpp +++ b/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Accelerometer_Registers.hpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2019 PX4 Development Team. All rights reserved. + * Copyright (c) 2020-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -48,15 +48,14 @@ static constexpr uint8_t Bit7 = (1 << 7); static constexpr uint32_t SPI_SPEED = 10 * 1000 * 1000; // 10MHz SPI serial interface -static constexpr uint32_t I2C_400_SPEED = 400 * 1000; // 400kHz I2C interface -static constexpr uint32_t I2C_200_SPEED = 200 * 1000; // 200kHz I2C interface -static constexpr uint32_t I2C_100_SPEED = 100 * 1000; // 100kHz I2C interface +static constexpr uint32_t I2C_SPEED = 400 * 1000; // 400kHz I2C interface static constexpr uint8_t DIR_READ = 0x80; -static constexpr uint8_t ID = 0x1E; +static constexpr uint8_t ID_088 = 0x1E; +static constexpr uint8_t ID_090L = 0x1A; -static constexpr uint8_t ACC_I2C_ADDR_PRIMARY = 0x18; +static constexpr uint8_t ACC_I2C_ADDR_PRIMARY = 0x18; static constexpr uint8_t ACC_I2C_ADDR_SECONDARY = 0x19; enum class Register : uint8_t { @@ -74,7 +73,7 @@ enum class Register : uint8_t { ACC_CONF = 0x40, ACC_RANGE = 0x41, - FIFO_DOWN_SAMPLING = 0x45, + FIFO_DOWNS = 0x45, FIFO_WTM_0 = 0x46, FIFO_WTM_1 = 0x47, FIFO_CONFIG_0 = 0x48, @@ -87,24 +86,15 @@ enum class Register : uint8_t { ACC_PWR_CONF = 0x7C, ACC_PWR_CTRL = 0x7D, ACC_SOFTRESET = 0x7E, - ACC_SELF_TEST = 0x6D, - ACC_I2C_ADDR_PRIMARY_REG = 0x6D, - ACC_I2C_ADDR_SECONDARY_REG = 0x19, - ACC_READ = 0x12 }; // ACC_CONF enum ACC_CONF_BIT : uint8_t { // [7:4] acc_bwp acc_bwp_Normal = Bit7 | Bit5, // Filter setting normal - // [7:4] acc_bwp - acc_bwp_osr_4 = Bit7, // OSR4 + // [3:0] acc_odr acc_odr_1600 = Bit3 | Bit2, // ODR 1600 Hz - // [3:0] acc_odr - acc_odr_12_5 = Bit2 | Bit0, // ODR 12.5 Hz - // [3:0] acc_odr - acc_odr_100 = Bit3, // ODR 100 Hz }; // ACC_RANGE @@ -158,7 +148,7 @@ enum ACC_PWR_CTRL_BIT : uint8_t { namespace FIFO { - +static constexpr size_t SIZE = 1024; // 1. Acceleration sensor data frame - Frame length: 7 bytes (1 byte header + 6 bytes payload) // Payload: the next bytes contain the sensor data in the same order as defined in the register map (addresses 0x12 – 0x17). @@ -176,8 +166,6 @@ struct DATA { uint8_t ACC_Z_LSB; uint8_t ACC_Z_MSB; }; -static constexpr size_t SIZE = 1024; -//static constexpr size_t SIZE = sizeof(DATA) * 10; static_assert(sizeof(DATA) == 7); enum header : uint8_t { @@ -187,15 +175,6 @@ enum header : uint8_t { FIFO_input_config_frame = 0b01001000, sample_drop_frame = 0b01010000, }; -struct bmi08x_sensor_data { - /*! X-axis sensor data */ - int16_t x; - /*! Y-axis sensor data */ - int16_t y; - - /*! Z-axis sensor data */ - int16_t z; -}; } // namespace FIFO } // namespace Bosch::BMI088::Accelerometer diff --git a/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Gyroscope_Registers.hpp b/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Gyroscope_Registers.hpp index a3b4530c1c..647e4d2f3c 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Gyroscope_Registers.hpp +++ b/src/drivers/imu/bosch/bmi088_i2c/Bosch_BMI088_Gyroscope_Registers.hpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2020 PX4 Development Team. All rights reserved. + * Copyright (c) 2020-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -48,9 +48,7 @@ static constexpr uint8_t Bit7 = (1 << 7); static constexpr uint32_t SPI_SPEED = 10 * 1000 * 1000; // 10MHz SPI serial interface -static constexpr uint32_t I2C_400_SPEED = 400 * 1000; // 400kHz I2C interface -static constexpr uint32_t I2C_200_SPEED = 200 * 1000; // 200kHz I2C interface -static constexpr uint32_t I2C_100_SPEED = 100 * 1000; // 100kHz I2C interface +static constexpr uint32_t I2C_SPEED = 400 * 1000; // 400kHz I2C interface static constexpr uint8_t DIR_READ = 0x80; @@ -76,8 +74,6 @@ enum class Register : uint8_t { FIFO_CONFIG_0 = 0x3D, FIFO_CONFIG_1 = 0x3E, FIFO_DATA = 0x3F, - SELF_TEST = 0x3C, - READ_GYRO = 0x02, }; // FIFO_STATUS @@ -97,9 +93,7 @@ enum GYRO_RANGE_BIT : uint8_t { // GYRO_BANDWIDTH enum GYRO_BANDWIDTH_BIT : uint8_t { - gyro_bw_100_Hz = Bit2 | Bit1 | Bit0, - gyro_bw_200_Hz = Bit4, - gyro_bw_2000_Hz = 0x00, + gyro_bw_532_Hz = Bit2 | Bit1 | Bit0 }; // GYRO_INT_CTRL @@ -131,7 +125,6 @@ enum FIFO_WM_ENABLE_BIT : uint8_t { // FIFO_CONFIG_1 enum FIFO_CONFIG_1_BIT : uint8_t { FIFO_MODE = Bit6, - FIFO_MODE_STREAM = Bit7, }; diff --git a/src/drivers/imu/bosch/bmi088_i2c/bmi088_i2c_main.cpp b/src/drivers/imu/bosch/bmi088_i2c/bmi088_i2c_main.cpp index 34f5c46f9c..7184bef4d9 100644 --- a/src/drivers/imu/bosch/bmi088_i2c/bmi088_i2c_main.cpp +++ b/src/drivers/imu/bosch/bmi088_i2c/bmi088_i2c_main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** * - * Copyright (c) 2020, 2021 PX4 Development Team. All rights reserved. + * Copyright (c) 2020-2022 PX4 Development Team. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -60,19 +60,20 @@ extern "C" int bmi088_i2c_main(int argc, char *argv[]) uint16_t type = 0; const char *name = MODULE_NAME; - while ((ch = cli.getOpt(argc, argv, "AGR:")) != EOF) { switch (ch) { case 'A': type = DRV_ACC_DEVTYPE_BMI088; name = MODULE_NAME "_accel"; cli.i2c_address = 0x18; + cli.default_i2c_frequency = 400 * 1000; break; case 'G': type = DRV_GYR_DEVTYPE_BMI088; name = MODULE_NAME "_gyro"; cli.i2c_address = 0x69; + cli.default_i2c_frequency = 400 * 1000; break; case 'R': @@ -92,17 +93,14 @@ extern "C" int bmi088_i2c_main(int argc, char *argv[]) if (!strcmp(verb, "start")) { return ThisDriver::module_start(cli, iterator); - } - if (!strcmp(verb, "stop")) { + } else if (!strcmp(verb, "stop")) { return ThisDriver::module_stop(iterator); - } - if (!strcmp(verb, "status")) { + } else if (!strcmp(verb, "status")) { return ThisDriver::module_status(iterator); } - PX4_WARN("print_usage1"); ThisDriver::print_usage(); return -1; }