Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a95a06a
baro uses i2c2
mmosca Jan 24, 2025
9feab27
fix MATEKF405 variants BBL logging
stronnag Mar 7, 2025
87f768e
[matekf405mini] sp3 across all variants
stronnag Mar 20, 2025
28c4825
Foxeer F405 V2 target
DzikuVx Apr 1, 2025
c6d9b92
Fix S4 timer mapping
DzikuVx Apr 1, 2025
6a45be7
FlycolorF4 target
DzikuVx Jun 24, 2025
415886c
Fix flash/osd SPI assignment
DzikuVx Jun 24, 2025
832ed32
Merge pull request #10950 from error414/change-gimbal-sensitivity-fro…
sensei-hacker Jul 6, 2025
052fbeb
Merge pull request #10951 from iNavFlight/mmosca-gf20
sensei-hacker Jul 6, 2025
f3d0c1e
Merge pull request #10952 from iNavFlight/jh_fix_matekF405_variants
sensei-hacker Jul 6, 2025
925d443
Merge tag '8.0.1' into dzikuvx-foxeerf405v2
DzikuVx Jul 13, 2025
e6296c5
Merge pull request #10963 from iNavFlight/flycolorf4-target
DzikuVx Jul 13, 2025
e3d9847
Merge pull request #10964 from iNavFlight/dzikuvx-foxeerf405v2
DzikuVx Jul 13, 2025
2e6c6fc
Targets for darkmatter BRAHMA boards
DzikuVx Jul 13, 2025
41f0897
Merge pull request #10965 from iNavFlight/dzikuvx-darkmatter-targets
DzikuVx Jul 15, 2025
0e87157
[osd] suppress gcc 15 warings where character arry is defined as stri…
stronnag Jul 17, 2025
b9a1480
Revert "[osd] suppress gcc 15 warings where character arry is defined…
stronnag Jul 17, 2025
e2e1816
SpeedyBeeF405Wing V2 target
DzikuVx Jul 21, 2025
b676941
Merge pull request #10976 from iNavFlight/dzikuvx-speedybeef405wingv2
DzikuVx Jul 21, 2025
4198f53
fix msp_override during receiver type reconfiguration (#10971)
stronnag Aug 30, 2025
3cab774
DAKEFPVF722 SPL06 support
sensei-hacker Sep 10, 2025
18d92d6
Merge pull request #11022 from sensei-hacker/DAKEFPVF722-SPLO06
sensei-hacker Sep 10, 2025
dc2cf05
lucid: add pc13 for 9v en, default values for USR and timer config
bkleiner Aug 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
"rth_trackback.h": "c",
"platform.h": "c",
"timer.h": "c",
"bus.h": "c"
"bus.h": "c",
"io.h": "c"
},
"editor.tabSize": 4,
"editor.insertSpaces": true,
Expand Down
6 changes: 6 additions & 0 deletions src/main/rx/msp_override.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,12 @@ bool mspOverrideUpdateCheck(timeUs_t currentTimeUs, timeDelta_t currentDeltaTime
}
}

// Changing receiver_type from MSP to anything can cause a race with
// the function pointer as NULL. This will not end well, so bail out early.
if(rxRuntimeConfigMSP.rcFrameStatusFn == NULL) {
return false;
}

const uint8_t frameStatus = rxRuntimeConfigMSP.rcFrameStatusFn(&rxRuntimeConfigMSP);
if (frameStatus & RX_FRAME_COMPLETE) {
rxDataProcessingRequired = true;
Expand Down
1 change: 1 addition & 0 deletions src/main/target/BRAHMA_F405/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target_stm32f405xg(BRAHMA_F405)
41 changes: 41 additions & 0 deletions src/main/target/BRAHMA_F405/target.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* This file is part of INAV.
*
* INAV is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* INAV is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with INAV. If not, see <http://www.gnu.org/licenses/>.
*/


#include <stdint.h>

#include "platform.h"
#include "drivers/io.h"
#include "drivers/pwm_mapping.h"
#include "drivers/bus.h"

timerHardware_t timerHardware[] = {

DEF_TIM(TIM1, CH3N, PB1, TIM_USE_OUTPUT_AUTO, 0, 0 ),
DEF_TIM(TIM1, CH2N, PB0, TIM_USE_OUTPUT_AUTO, 0, 1 ),
DEF_TIM(TIM2, CH4, PA3, TIM_USE_OUTPUT_AUTO, 0, 0 ),
DEF_TIM(TIM2, CH3, PA2, TIM_USE_OUTPUT_AUTO, 0, 0 ),

DEF_TIM(TIM4, CH4, PB9, TIM_USE_OUTPUT_AUTO, 0, 0 ),
DEF_TIM(TIM3, CH1, PB4, TIM_USE_OUTPUT_AUTO, 0, 0 ),
DEF_TIM(TIM3, CH2, PB5, TIM_USE_OUTPUT_AUTO, 0, 0 ),
DEF_TIM(TIM3, CH4, PC9, TIM_USE_OUTPUT_AUTO, 0, 0 ),

DEF_TIM(TIM8, CH3, PC8, TIM_USE_LED, 0, 0 ),
};

const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]);
149 changes: 149 additions & 0 deletions src/main/target/BRAHMA_F405/target.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
/*
* This file is part of INAV.
*
* INAV is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* INAV is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with INAV. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

#define USE_TARGET_CONFIG

#define USBD_PRODUCT_STRING "BRAHMA_F405"
#define TARGET_BOARD_IDENTIFIER "DMF4"


// ******** Board LEDs **********************
#define LED0 PA8


// ******* Beeper ***********
#define BEEPER PC13
#define BEEPER_INVERTED

//BMI270
#define USE_IMU_BMI270
#define IMU_BMI270_ALIGN CW0_DEG
#define BMI270_SPI_BUS BUS_SPI3
#define BMI270_CS_PIN SPI3_NSS_PIN

// *************** Baro **************************
#define USE_I2C

#define USE_I2C_DEVICE_1
#define I2C1_SCL PB6
#define I2C1_SDA PB7
#define DEFAULT_I2C_BUS BUS_I2C1

#define USE_BARO
#define BARO_I2C_BUS DEFAULT_I2C_BUS
#define BARO_I2C_ADDR 0x77
#define USE_BARO_DPS310


//*********** Magnetometer / Compass *************
#define USE_MAG
#define MAG_I2C_BUS DEFAULT_I2C_BUS
#define USE_MAG_ALL

// ******* SERIAL ********
#define USE_VCP

#define USE_UART1
#define UART1_TX_PIN PA9
#define UART1_RX_PIN PA10


#define USE_UART3
#define UART3_TX_PIN PB10
#define UART3_RX_PIN PB11

#define USE_UART4
#define UART4_TX_PIN PA0
#define UART4_RX_PIN PA1

#define USE_UART6
#define UART6_TX_PIN PC6
#define UART6_RX_PIN PC7

#define SERIAL_PORT_COUNT 5


// ******* SPI ********
#define USE_SPI

#define USE_SPI_DEVICE_1
#define SPI1_NSS_PIN PA4
#define SPI1_SCK_PIN PA5
#define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7

#define USE_SPI_DEVICE_2
#define SPI2_NSS_PIN PB12
#define SPI2_SCK_PIN PB13
#define SPI2_MISO_PIN PB14
#define SPI2_MOSI_PIN PB15

#define USE_SPI_DEVICE_3
#define SPI3_NSS_PIN PB3
#define SPI3_SCK_PIN PC10
#define SPI3_MISO_PIN PC11
#define SPI3_MOSI_PIN PC12

// ******* ADC ********
#define USE_ADC
#define ADC_CHANNEL_1_PIN PC4
#define ADC_CHANNEL_2_PIN PC3
#define ADC_CHANNEL_3_PIN PC5
#define VBAT_ADC_CHANNEL ADC_CHN_1
#define CURRENT_METER_ADC_CHANNEL ADC_CHN_2
#define RSSI_ADC_CHANNEL ADC_CHN_3

#define VBAT_SCALE_DEFAULT 1100
#define CURRENT_METER_SCALE 270

// ******* OSD ********
#define USE_MAX7456
#define MAX7456_SPI_BUS BUS_SPI1
#define MAX7456_CS_PIN PA4

//******* FLASH ********
#define USE_FLASHFS
#define USE_FLASH_M25P16
#define M25P16_SPI_BUS BUS_SPI2
#define M25P16_CS_PIN PB12

#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT

//************ LEDSTRIP *****************
#define USE_LED_STRIP
#define WS2811_PIN PC8

// ******* FEATURES ********
#define SERIALRX_UART SERIAL_PORT_USART1
#define SERIALRX_PROVIDER SERIALRX_SBUS

#define DEFAULT_FEATURES (FEATURE_TX_PROF_SEL | FEATURE_OSD | FEATURE_CURRENT_METER | FEATURE_VBAT | FEATURE_BLACKBOX | FEATURE_TELEMETRY)

#define TARGET_IO_PORTA 0xffff
#define TARGET_IO_PORTB 0xffff
#define TARGET_IO_PORTC 0xffff
#define TARGET_IO_PORTD (BIT(2))

#define MAX_PWM_OUTPUT_PORTS 8
#define TARGET_MOTOR_COUNT 4

// ESC-related features
#define USE_DSHOT
#define USE_ESC_SENSOR
#define USE_SERIAL_4WAY_BLHELI_INTERFACE
1 change: 1 addition & 0 deletions src/main/target/BRAHMA_F722/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target_stm32f722xe(BRAHMA_F722)
41 changes: 41 additions & 0 deletions src/main/target/BRAHMA_F722/target.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* This file is part of INAV.
*
* INAV is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* INAV is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with INAV. If not, see <http://www.gnu.org/licenses/>.
*/


#include <stdint.h>

#include "platform.h"
#include "drivers/io.h"
#include "drivers/timer.h"
#include "drivers/pwm_mapping.h"
#include "drivers/bus.h"

timerHardware_t timerHardware[] = {
DEF_TIM(TIM8, CH3, PC8, TIM_USE_OUTPUT_AUTO, 0, 0 ), // S1
DEF_TIM(TIM8, CH4, PC9, TIM_USE_OUTPUT_AUTO, 0, 0 ), // S2
DEF_TIM(TIM1, CH1, PA8, TIM_USE_OUTPUT_AUTO, 0, 1 ), // S3
DEF_TIM(TIM1, CH2, PA9, TIM_USE_OUTPUT_AUTO, 0, 1 ), // S4

DEF_TIM(TIM3, CH3, PB0, TIM_USE_OUTPUT_AUTO, 0, 0 ), // S5
DEF_TIM(TIM3, CH4, PB1, TIM_USE_OUTPUT_AUTO, 0, 0 ), // S6
DEF_TIM(TIM1, CH3, PA10, TIM_USE_OUTPUT_AUTO, 0, 0 ), // S7
DEF_TIM(TIM3, CH1, PB4, TIM_USE_OUTPUT_AUTO, 0, 0 ), // S8

DEF_TIM(TIM2, CH2, PB3, TIM_USE_LED, 0, 0 ), // LED_STRIP – D(1, 6, 3)
};

const int timerHardwareCount = sizeof(timerHardware) / sizeof(timerHardware[0]);
Loading
Loading