Skip to content

DEV-MASTER HEX / Build 3420

Pre-release
Pre-release

Choose a tag to compare

@nerdCopter nerdCopter released this 06 Jun 19:25
1fe599c

HEX BUILD of MASTER — F4/F7 + H7 (first H7 build)

Build 3420 · Commit f58927c

EmuFlight 0.4.3 base + all changes including STM32H7 support

Feedback welcome in Discord or GitHub Discussions

Changes since 0.4.3:

⚡ STM32H7 Support (NEW)

  • feat(h7): STM32H7 MCU support — H743/H750/H723/H725/H730/H735/H7A3 (#1194)
  • feat(targets): 70 H7 targets imported with full flash define audit (#1233)
  • fix(spi): SPIDEV_6 support for STM32H7 SPI6 peripheral (#1240)

Filters

  • feat(filter): replace biquad with SVF filters (#1245)

Barometer

  • feat(baro): DPS310/SPL06/SPL07 barometer driver (#1180)
  • fix(targets): add barometer_dps310.c for 114 DPS310 targets (#1188)

USB / MSC

  • fix(usb/msc): MSC UTC reboot mode, H7 stale-flag clear, timezone param, NAND fix (#1246)
  • fix(usb): cap CDC_Send_DATA spin to prevent WWDG reset under TX backpressure (#1141)

Flash

  • feat(flash): backport W25N/W25Q128FV drivers to BF 4.5-m parity
  • fix(flash/nand): NAND fixes; re-enable W25M02G on STELLARH7DEV (#1231)
  • fix(link): align F7 linker scripts with BF 4.5-m MOVABLE_FLASH layout (#1214)

Gyro / Bus

  • fix(gyro): BMI270 DLPF_EXPERIMENTAL reads lpf param, not hardware_lpf (#1134)
  • fix(gyro): backport clockMicrosToCycles + gyroShortPeriod init for MPU6000 (#1133)
  • fix(gyro): always deassert CS on shared SPI bus in dual-gyro mode (#1153)
  • fix(bus_spi): clamp DMA SPI transfer length to dmaTxBuffer size (#1152)
  • fix(bus_spi): guard IMUF9001 DMA transfer length against overflow (#1162)
  • fix(imuf9001): propagate spiReadWriteBufRB return value; rename to imufSendReceiveSpi (#1139)

Config / OSD

  • fix(config): stop silently zeroing rssi_channel when RSSI_ADC is enabled (#1138)
  • fix(config): unconditionally clamp failsafe_procedure to valid range (#1151)
  • fix(osd): cast max7456 DMA IRQ DR-drain read to void (#1140)

DShot / Motor

  • fix(dshot): align MOTOR_BITLENGTH=20 and ARR=n-1 with Betaflight (#1175)
  • fix(dshot/proshot): explicitly write frame-reset slots in DMA buffers (#1173)

Receivers / Telemetry

  • fix(sfhss): check cc2500 init result; enable SFHSS on CRAZYBEEF4FR (#1170)
  • fix(rx): JETI ExBus unconditionally use SERIAL_BIDIR (#1168)
  • fix(jeti): correct EXTEL_MAX_LEN, sensor data types, GPS frame guard (#1176)
  • feat(jeti): GPS and G-Force sensor telemetry (#1181)

MSP / Arming

  • fix(msp): per-client arming disable to prevent DJI MSP bypass (#1159)
  • fix(brushed): remove pinioSet from pwmWriteStandard; enforce no-3D for brushed protocol (#1166)

Position

  • fix(position): implement getEstimatedVario() (#1185)

Camera

  • feat: camera_control_button_resistance CLI setting (#1171)

Fixes (also in Build 3419)

  • fix: pidCopyProfile silently rejected copy to last profile (#1104)
  • fix: Smith Predictor compilation guards (#1094)
  • fix: intptr_t cast in cmsMenuExit() (#1095)
  • fix: global variable multiple-definition linker errors (#1098)
  • fix: BMI270 DLPF_EXPERIMENTAL 6.4k code size reduction (#989)
  • HELIOSPRING/derivatives: set IMUF PT(N) default to PT2 (#1093)
  • PreArm: allow Re-Arm without resetting PreArm AUX (#1090)
  • IMUF blackbox: trim leading whitespace from headers (#1091)

New / Updated Targets

  • [target] DARWINF411 (#1089)
  • FOXEERF722V4: add USE_BARO_BMP280 (#1179)
  • [target] fix RUSHBLADEF7HD_I2C (#1157)
  • [target] fix VGOODRCF4 motor map/gyro align, VGOODF722DUAL OSD (#1154)
  • fix(targets): correct scale define names from BF 4.5-m (#1201)
  • fix(APEXF7): PINIO2 + UART4 MSP default for DJI Vista (#1172)
  • [target] FREEAXISF4 (F411) (#1077)
  • [target] NBD_INFINITYAIO255 (#1080)
  • [target] FLYSPARKF4 (F405) (#1088)
  • [target] TMOTORF7 / TMOTORF7_AIO — fix motor3 timer/channel (#1082)
  • [target] JHEF411HD — add LED0 pin (#1083)
  • [target] JHEF745 — DShot burst on by default (#1087)
  • [target] TUNERCF405 update (#1078)

Non-functional / no-op changes

  • fix: comprehensive unit test fixes (#1099)
  • feat(h7): add STM32H7 vendor libraries — prerequisite for H7 support (#1195)
  • feat: add complete SITL (Software-In-The-Loop) build support (#1100)
  • feat(ci): add SITL compile gate and expand build to 12 parallel groups (#1192)
  • fix(sitl): resolve make SITL warnings
  • fix(bus): guard DMA HAL types against SIMULATOR_BUILD for SITL compile (#1191)
  • fix(make): parallel build races, forced re-link, and CI observability (#1238)
  • fix(make): arm_sdk download/install progress reporting and CI compatibility (#1147)
  • fix(make): clean_all wipes obj/main directly; bare clean redirects to clean_all (#1182)
  • fix(build): always recompile version.o with explicit 7-char revision (#1125)
  • fix(fc_tasks): add missing io/flashfs.h include (#1235)
  • fix(msc): align H7 SPI SD MSC fops with EF symbol name (#1242)
  • fix(drivers): bus_i2c_busdev.h self-contained; dmaTransactionInProgress static (#1146)
  • fix(accgyro): add USE_DUAL_GYRO guard to ICM20649/ICM42605/ICM42688P (#1145)
  • fix(telemetry): add missing stdlib.h in jetiexbus.c for abs() (#1198)
  • fix(mixer): add 'f' suffix to double literals in twoPassMix (#1150)
  • fix(codacy): replace invalid extraOptions with documented language key (#1187)
  • build: remove hardcoded -j from submake targets (#1202)
  • build(make): switch arm sdk download to xpack github cdn (#1163)
  • refactor(make): remove dead official target and OFFICIAL_TARGETS variable (#1243)
  • refactor(make): prune dead entries from UNSUPPORTED_TARGETS; remove F3 targets
  • refactor(docs): remove obsolete documentation (#1196)
  • refactor(docs): debloat — remove stale assets, auto-generate CLI reference (#1193)
  • upgrade to python3 (#977)
  • github-actions: update upload/download artifact to v4 (#1092)
  • github: workflow updates (#1086, #1086)
  • ci: remove Travis CI and split macOS unit tests (#1197)
🏗️ Bus/SPI Architecture — extDevice_t refactor (BF 4.5-m parity):

Multi-stage refactor aligning EmuFlight's SPI/I2C/DMA bus layer with Betaflight 4.5-maintenance. No behavior change for end users; prerequisite for H7 DMA and future bus work.

  • refactor(bus): align naming with BF 4.5-m, phase 1 (#1108)
  • refactor(bus): naming cleanup, phase 2 (#1111)
  • refactor(bus): bus-resource split infrastructure, phase 3 (#1113)
  • refactor(bus): Stage L-drivers — spiSetBusInstance BF-convention (#1114)
  • refactor(bus): Stage J — I2C bus-resource split (#1116)
  • refactor(bus): Stage K — MPU-slave bus-resource split (#1117)
  • refactor(bus): Stage L.2 — rename gyro *_SPI_INSTANCE → *_SPI_BUS (#1118, #1119)
  • refactor(bus): Stage M — DMA infrastructure scaffold (#1121)
  • refactor(I.4): remove inline busType/instance/handle from extDevice_s (#1126)
  • refactor(bus): Stage M.3.a/b — spiSequenceStart polled path (#1128)
  • refactor(bus): Stage M.3.c — dma_reqmap infrastructure (#1129)
  • refactor(bus): Stage M.3.d–g — async DMA SPI implementation (#1130)
  • refactor(gyro): Stage M.4 — EXTI-triggered non-blocking DMA gyro read (#1131)