Skip to content

New target: SDMODELH7V2 (STM32H743)#11341

Merged
sensei-hacker merged 3 commits intoiNavFlight:maintenance-9.xfrom
sensei-hacker:target/sdmodelh7v2
Feb 28, 2026
Merged

New target: SDMODELH7V2 (STM32H743)#11341
sensei-hacker merged 3 commits intoiNavFlight:maintenance-9.xfrom
sensei-hacker:target/sdmodelh7v2

Conversation

@sensei-hacker
Copy link
Member

@sensei-hacker sensei-hacker commented Feb 17, 2026

Summary

Adds support for the SDMODEL SDH7 V2 flight controller (STM32H743).

Hardware

Component Details
MCU STM32H743
IMU MPU6000 on SPI4, CW270 alignment
Baro BMP280 + MS5611 on I2C1
Mag IST8310 on I2C1
OSD MAX7456 on SPI2
Blackbox SD card on SPI1
UARTs VCP + UART1-4, UART6, UART7 (RX-only, ESC sensor)
Motors 8 outputs: TIM3 (M1-2), TIM2 (M3-4), TIM5 (M5-6), TIM8 (M7-8)
LED strip PD12 (TIM4)
Camera control PE9 (TIM1)

Changes

  • src/main/target/SDMODELH7V2/CMakeLists.txt
  • src/main/target/SDMODELH7V2/target.h
  • src/main/target/SDMODELH7V2/target.c

SDMODEL SDH7 V2 flight controller with MPU6000 on SPI4 (CW270),
MAX7456 OSD on SPI2, SD card blackbox on SPI1, BMP280/MS5611 baro
and IST8310 mag on I2C1, 8 motor outputs across TIM2/3/5/8,
VCP + 6 UARTs (UART7 RX-only for ESC sensor).
@sensei-hacker sensei-hacker added this to the 9.1 milestone Feb 17, 2026
@sensei-hacker sensei-hacker added the New target This PR adds a new target label Feb 17, 2026
@sensei-hacker
Copy link
Member Author

sensei-hacker commented Feb 17, 2026

  • Samples received
  • Flash firmware
  • Calibrate
  • Orientation matches
  • Gyro working
  • Accel working
  • Baro working
  • UART1
  • UART3
  • UART4
  • UART6
  • UART7
  • Buzzer working
  • DShot support on m1-4
  • Additional motor / servo outputs
  • Voltage sensor
  • Current sensor
  • I2C Bus
  • Analog Camera working
  • Video Out working
  • OSD working
  • LEDs working
  • Blackbox
  • PINIO1
  • PINIO2

…RT2 for onboard Bluetooth MSP

Remove the camera control timer output on PE9. Add config.c to wire
PINIO1/PINIO2 to USER1/USER2 mode boxes and preset UART2 for MSP at
115200 baud since it is connected to an onboard Bluetooth module.
Comment on lines +148 to +153
#define USE_PINIO
#define USE_PINIOBOX
#define PINIO1_PIN PE13
#define PINIO1_FLAGS PINIO_FLAGS_INVERTED
#define PINIO2_PIN PB11
#define PINIO2_FLAGS PINIO_FLAGS_INVERTED

Choose a reason for hiding this comment

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

@sensei-hacker
Copy link
Member Author

Merging this with the following configuration. VTX power is USER1, cam pin is USER2, Bleutooth is turned off upon arming.

// VTX power
#define PINIO1_PIN PB11
#define PINIO1_FLAGS PINIO_FLAGS_INVERTED
pinioBoxConfigMutable()->permanentId[0] = BOX_PERMANENT_ID_USER1;

// Cam pin
#define PINIO2_PIN PE9
#define PINIO2_FLAGS PINIO_FLAGS_INVERTED
pinioBoxConfigMutable()->permanentId[1] = BOX_PERMANENT_ID_USER2;

// Bluetooth (off on arm)
#define PINIO3_PIN PE13
#define PINIO3_FLAGS PINIO_FLAGS_INVERTED
pinioBoxConfigMutable()->permanentId[2] = findBoxByActiveBoxId(BOXARM)->permanentId;

#define PINIO2_PIN PB11

// Cam pin
#define PINIO2_PIN PE9

Choose a reason for hiding this comment

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

PE9 = CAMERA CONTROL not PINIO

Choose a reason for hiding this comment

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

(Well kind of GPIO but not as PINIO)

Copy link

@haslinghuis haslinghuis Feb 22, 2026

Choose a reason for hiding this comment

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

@sensei-hacker

PIN PINIO BOX CONFIG FUNCTION
PE13 1 0 129 disable BT device on ARM
PB11 2 40 129 VTX PWR

Copy link
Member Author

Choose a reason for hiding this comment

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

By camera control do you mean?:

  1. Runcam UART control
  2. Switching between the cam 1 pad and the cam2 pad
  3. Emulating a joystick board (pwm)

Copy link

@haslinghuis haslinghuis Feb 22, 2026

Choose a reason for hiding this comment

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

Guess run cam - but not sure which UART is responsible
Definite not 2.

Copy link
Member Author

@sensei-hacker sensei-hacker Feb 23, 2026

Choose a reason for hiding this comment

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

Yeah it doesn't look like there is a uart that can use that pin. So Runcam is out.

We could make it a PWM which could be used to emulate a camera joystick if someone want to, or for any other PWM use. Of course the board already has 8 PWM, and no exposed PINIO available. Having a PINIO could be useful.

I'm somewhat tempted to do both. Assign it so that the user can use it either for PINIO or PWM.
Doing that would only require adding a guard in the PINIO section which skips setting it as pinio if it's being used by the servo or motor mixers:

  if (ioRec->owner == OWNER_MOTOR || ioRec->owner == OWNER_SERVO) {
      continue;  // Pin already claimed by PWM - skip PINIO
  }

@okok125
Copy link

okok125 commented Feb 23, 2026

Thank You @haslinghuis and @sensei-hacker So Much.

@sensei-hacker
Copy link
Member Author

I have something more planned for camera control and PINIO in INAV 9.1 or maybe 10, but for now I'm merging this with it as pinio.

@sensei-hacker sensei-hacker merged commit 9e4bb24 into iNavFlight:maintenance-9.x Feb 28, 2026
20 of 21 checks passed
@okok125
Copy link

okok125 commented Feb 28, 2026

Thank you so much of @sensei-hacker

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

New target This PR adds a new target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants