config
config copied to clipboard
add config file for iflight_h743_aio_v1
Hi,
I've developed a config file for iflight h743 aio v1. The board doesn't have a config file since 4.3. I have tested most features including the bidirectional feature which was a problem in the past. Everything seems fine!
UART7 -> GPS -> WORKS! UART2 -> DJI Telemetry -> WORKS! UART4 -> ELRS -> WORKS! Bidirectional -> WORKS! Buzzer -> WORKS! HD OSD -> WORKS! Blackbox -> WORKS!
The only issue I found was with the BF Configurator. Sometimes, it freezes and it starts beeping. I reboot the fc and it goes fine. This happens more often when I save changes.
no way for any of us to confirm this config with out hardware
@sugaarK Thanks. I understand it. Anyhow, I thought other people may benefit from this. A BF developer recommended to submit the config here. I have been using this config without any issue for a while but I understand that it might not be safe to add this config without a through test.
no way for any of us to confirm this config with out hardware
I have one.
The only issue I found was with the BF Configurator. Sometimes, it freezes and it starts beeping. I reboot the fc and it goes fine. This happens more often when I save changes.
Be sure to use a nightly configurator 10.10 until official 10.10 is released (not 10.9). It may solve you problem, if not open issue-ticket (but i'm not sure if it is configurator or fc-hardware or your computer)
The only issue I found was with the BF Configurator. Sometimes, it freezes and it starts beeping. I reboot the fc and it goes fine. This happens more often when I save changes.
Be sure to use a nightly configurator 10.10 until official 10.10 is released (not 10.9). It may solve you problem, if not open issue-ticket (but i'm not sure if it is configurator or fc-hardware or your computer)
I use rc2 for both firmware and cobfigurator. I am 100% sure it is not my computer. I have multiple other aio and fcs. It seems some fc hardware configuration that causes the configurator geta confused. It never happens during a flight. I also observed if I call bf via osd+stuck and save multiple times, it freezes and requires restart.
I've gone back, installed 4.3.0 for the IFLIGHT_H743_AIO target and done a dump hardware
then then repeat that for current master with this PR.
BTFL_cli_4.3.0_IFLIGHT_H743_AIO.txt BTFL_cli_master_IFLIGHT_H743_AIO.txt
There are differences associated with SOFTSERIAL_TX
etc. as we changed the nomenclature, so those are OK.
We changed SPI_MOSI
to SPI_SDI
etc., so also good.
resource ADC_EXT 1 C01
has changed to NONE
We previously defined timer D12 AF2
and timer C08 AF3
which we don't now.
We also used to have dma pin D12 10
and dma pin C08 0
.
D12
is LED_STRIP
and C08
is camera control. Have you tested those?
timer E13 AF
has changed to timer E13 AF192
timer E14 AF1
has changed to timer E14 AF192
dma pin E09 2
# pin E09: DMA1 Stream 2 Request 11
dma pin E11 3
# pin E11: DMA1 Stream 3 Request 12
dma pin B04 4
# pin B04: DMA1 Stream 4 Request 23
dma pin B05 5
# pin B05: DMA1 Stream 5 Request 24
dma pin E13 6
# pin E13: DMA1 Stream 6 Request 13
dma pin E14 7
# pin E14: DMA1 Stream 7 Request 14
has changed to
dma pin E09 4
# pin E09: DMA1 Stream 4 Request 11
dma pin E11 5
# pin E11: DMA1 Stream 5 Request 12
dma pin B04 6
# pin B04: DMA1 Stream 6 Request 23
dma pin B05 7
# pin B05: DMA1 Stream 7 Request 24
dma pin E13 2
dma pin E14 3
Have you tested all motor outputs?
Previously set dashboard_i2c_bus = 0
, now set dashboard_i2c_bus = 1
.
I've gone back, installed 4.3.0 for the IFLIGHT_H743_AIO target and done a
dump hardware
then then repeat that for current master with this PR.BTFL_cli_4.3.0_IFLIGHT_H743_AIO.txt BTFL_cli_master_IFLIGHT_H743_AIO.txt
There are differences associated with
SOFTSERIAL_TX
etc. as we changed the nomenclature, so those are OK.We changed
SPI_MOSI
toSPI_SDI
etc., so also good.
resource ADC_EXT 1 C01
has changed toNONE
We previously defined
timer D12 AF2
andtimer C08 AF3
which we don't now. We also used to havedma pin D12 10
anddma pin C08 0
.
D12
isLED_STRIP
andC08
is camera control. Have you tested those?
timer E13 AF
has changed totimer E13 AF192
timer E14 AF1
has changed totimer E14 AF192
dma pin E09 2 # pin E09: DMA1 Stream 2 Request 11 dma pin E11 3 # pin E11: DMA1 Stream 3 Request 12 dma pin B04 4 # pin B04: DMA1 Stream 4 Request 23 dma pin B05 5 # pin B05: DMA1 Stream 5 Request 24 dma pin E13 6 # pin E13: DMA1 Stream 6 Request 13 dma pin E14 7 # pin E14: DMA1 Stream 7 Request 14
has changed to
dma pin E09 4 # pin E09: DMA1 Stream 4 Request 11 dma pin E11 5 # pin E11: DMA1 Stream 5 Request 12 dma pin B04 6 # pin B04: DMA1 Stream 6 Request 23 dma pin B05 7 # pin B05: DMA1 Stream 7 Request 24 dma pin E13 2 dma pin E14 3
Have you tested all motor outputs?
Previously
set dashboard_i2c_bus = 0
, nowset dashboard_i2c_bus = 1
.
Thanks @SteveCEvans. I followed the same process to figure out how maps have been done. I also looked at other H7 boards on the master. I am 100% sure 4 motors work because I flew with them. This board doesn't have LED and CAM pins so there is no way to test them or test them without direct soldering to the MCU. DMA parts are the most confusing part that I could fix and still lack knowledge in that part. Is it possible to map UART1 to SDA and SCL because this board doesn't have i2c pads? It has more than enough pads for UARTs.
This board doesn't have LED
You sure about that?
https://github.com/betaflight/config/assets/11480839/4ec9f10e-459d-474c-a02b-ac05f362289b
And notice the LED pad directly opposite that LED in the centre of the top-side of the board.
make IFLIGHT_H743_AIO_V1 EXTRA_FLAGS="-DUSE_LEDSTRIP"
And apply this config.
#
# diff all
# version
# Betaflight / STM32H743 (SH74) 4.5.0 Feb 17 2024 / 01:10:52 (0daed9f) MSP API: 1.46
# start the command batch
batch start
# reset configuration to default settings
defaults nosave
board_name IFLIGHT_H743_AIO
manufacturer_id IFRC
mcu_id 004200283339510533383930
signature
# timer
timer D12 AF2
# pin D12: TIM4 CH1 (AF2)
# dma
dma pin D12 10
# pin D12: DMA2 Stream 2 Request 29
# feature
feature SERVO_TILT
feature RANGEFINDER
feature TELEMETRY
feature LED_STRIP
feature DISPLAY
feature OSD
feature CHANNEL_FORWARDING
feature TRANSPONDER
# led
led 0 7,6::CY:0
# master
set gyro_to_use = FIRST
set ledstrip_rainbow_freq = 284
profile 0
profile 1
profile 2
profile 3
# restore original profile selection
profile 0
rateprofile 0
rateprofile 1
rateprofile 2
rateprofile 3
# restore original rateprofile selection
rateprofile 0
# save configuration
save
#
@SteveCEvans damn! I didn't know that at all. No documentation says those are LED pads.
Your script activated the on-board LED for sure. Thanks.
I need to add this time to the config. I tested and it activated the on-bard led.
TIMER_PIN_MAP( 10, PD12, 1, 10)
I will test those three pads for external LEDs? Are there other pads that I am not aware of such as sda and scl? LOL I attached two pictures with those pins numbered to be sure we are talking about the same thing. 1 -> 3.3V 2-> seems signal 3-> 3.3V 4-> GND For 5v LEDs we need to source them from other pads.
I moved to digital so no analog stuff anymore so I can't test C08 camera control
. where is that pad?
Those four pins are the debug lines with SWDIO and SWCLK. In my photo you’ll see I’ve soldered to them; a bit of a challenge!
The camera control isn’t available, nor are I2C. Not sure why they were in the original definition.
The LED pad is on the output of the onboard LED so you can create a chain longer than one.
Are you talking about the following pads for LED? Which one is it? or you are talking about direct soldering to the legs of the onboard LED?
No, The pad marked LED!
Thanks. Do you think of any other concerns about the config file? I assume analog cam and vtx should be fine bcs I don't have analog stuff to test it anymore.
@SteveCEvans Do you think it is possible to resource remap uart1 or other uarts to sda or scl pads?
Led pad is now working with the recent config file. https://github.com/betaflight/config/assets/13341052/c0208a68-aaae-4fa6-8f01-d78bd277a640
@SteveCEvans Do you think it is possible to resource remap uart1 or other uarts to sda or scl pads?
Unfortunately not. From the datasheet:
@SteveCEvans lack the domain knowledge to understand it but datasheet says a9 should have alternative use which ks i2c. Is there any other uart that can be mapped to be used for i2c?
I've been testing this more and more. I noticed if I fly more than 5mins, some of OSD items disappear. I use the latest BF code and DJI fpv goggle with WTF. I don't have such problem with other BF versions or boards. I feel this might be sth related to the config file or it is a bug in the latest BF. I also can't see the number of satellite reported on the osd even thought the BF configure shows it is there and my radio reports correctly the number of satellites via telemetry.
@dukevah , please rebase upon current master
and reply if everything is resolved or still needs resolution.
[technically, iFlight should be making this pull-request.]
This config already exists?
https://github.com/betaflight/config/blob/master/configs/IFLIGHT_H743_AIO/config.h
This config already exists?
:man_facepalming: yep.
after comparing locally (collapsing/fixing spacing and sorting certain sections) i see these diffs:
--- this pr Tue Jun 25 10:17:04 2024
+++ ./configs/IFLIGHT_H743_AIO/config.h Tue Jun 25 10:17:04 2024
@@ -23,32 +23,24 @@
#pragma once
#define FC_TARGET_MCU STM32H743
-
#define BOARD_NAME IFLIGHT_H743_AIO
#define MANUFACTURER_ID IFRC
#define USE_ACC
#define USE_ACC_SPI_MPU6000
-#define USE_ACC_SPI_MPU6000
-#define USE_ACCGYRO_BMI270
#define USE_BARO
-#define USE_BARO_DPS310
+#define USE_BARO_BMP280
#define USE_FLASH
#define USE_FLASH_M25P16
#define USE_GYRO
#define USE_GYRO_SPI_MPU6000
#define USE_MAX7456
-
#define BEEPER_PIN PD15
#define MOTOR1_PIN PB0
#define MOTOR2_PIN PB1
#define MOTOR3_PIN PE9
#define MOTOR4_PIN PE11
-#define MOTOR5_PIN PB4
-#define MOTOR6_PIN PB5
-#define MOTOR7_PIN PE13
-#define MOTOR8_PIN PE14
#define RX_PPM_PIN PA3
#define LED_STRIP_PIN PD12
#define UART1_TX_PIN PA9
@@ -67,9 +59,7 @@
#define UART8_RX_PIN PE0
#define I2C1_SCL_PIN PB8
#define I2C1_SDA_PIN PB9
-#define I2C2_SCL_PIN PB10
-#define I2C2_SDA_PIN PB11
-#define LED0_PIN PC13
+#define LEPD_PIN PC13
#define SPI1_SCK_PIN PA5
#define SPI2_SCK_PIN PB13
#define SPI3_SCK_PIN PC10
@@ -86,25 +76,19 @@
#define ADC_VBAT_PIN PC3
#define ADC_RSSI_PIN PC5
#define ADC_CURR_PIN PC2
+#define FLASH_CS_PIN PA15
#define MAX7456_SPI_CS_PIN PE4
#define GYRO_1_EXTI_PIN PD0
-#define GYRO_2_EXTI_PIN PD8
#define GYRO_1_CS_PIN PA4
-#define GYRO_2_CS_PIN PB12
-#define FLASH_CS_PIN PA15
#define TIMER_PIN_MAPPING \
- TIMER_PIN_MAP( 0, PA12, 1, 14 ) \
+ TIMER_PIN_MAP( 0, PD12, 1, 10 ) \
TIMER_PIN_MAP( 1, PA3, 1, 0 ) \
- TIMER_PIN_MAP( 2, PB0, 2, 0 ) \
- TIMER_PIN_MAP( 3, PB1, 2, 1 ) \
- TIMER_PIN_MAP( 4, PE9, 1, 4 ) \
- TIMER_PIN_MAP( 5, PE11, 1, 5 ) \
- TIMER_PIN_MAP( 6, PB4, 1, 6 ) \
- TIMER_PIN_MAP( 7, PB5, 1, 7 ) \
- TIMER_PIN_MAP( 8, PE13, 2, 2 ) \
- TIMER_PIN_MAP( 9, PE14, 2, 3 ) \
- TIMER_PIN_MAP( 10, PD12, 1, 10)
+ TIMER_PIN_MAP( 2, PC8, 2, 0 ) \
+ TIMER_PIN_MAP( 3, PB0, 2, 0 ) \
+ TIMER_PIN_MAP( 4, PB1, 2, 1 ) \
+ TIMER_PIN_MAP( 5, PE9, 1, 2 ) \
+ TIMER_PIN_MAP( 6, PE11, 1, 3 ) \
#define ADC1_DMA_OPT 8
#define ADC3_DMA_OPT 9
@@ -114,19 +98,15 @@
#define TIMUP4_DMA_OPT 0
#define TIMUP8_DMA_OPT 0
-#define DEFAULT_GYRO_TO_USE GYRO_CONFIG_USE_GYRO_BOTH
+#define BARO_I2C_INSTANCE (I2CDEV_1)
#define MAG_I2C_INSTANCE (I2CDEV_1)
-#define USE_BARO
-#define BARO_I2C_INSTANCE (I2CDEV_1)
+#define ADC_INSTANCE ADC1
#define DEFAULT_BLACKBOX_DEVICE BLACKBOX_DEVICE_FLASH
#define DEFAULT_CURRENT_METER_SOURCE CURRENT_METER_ADC
#define DEFAULT_VOLTAGE_METER_SOURCE VOLTAGE_METER_ADC
-#define DEFAULT_CURRENT_METER_SCALE 100
+#define DEFAULT_VOLTAGE_METER_SCALE 110
+#define DEFAULT_CURRENT_METER_SCALE 200
#define BEEPER_INVERTED
#define MAX7456_SPI_INSTANCE SPI4
-#define DASHBOARD_I2C_INSTANCE (I2CDEV_1)
-#define USE_SPI_GYRO
+#define FLASH_SPI_INSTANCE SPI3
#define GYRO_1_SPI_INSTANCE SPI1
-#define USE_SPI_GYRO
-#define GYRO_2_SPI_INSTANCE SPI2
-#define FLASH_SPI_INSTANCE SPI3
This config already exists?
https://github.com/betaflight/config/blob/master/configs/IFLIGHT_H743_AIO/config.h
@haslinghuis Yes. It was not there when I developed the config file. The board was abandoned and it took me a week to develop one. The team was uninterested in my PR and went with their PRs. Not sure how PRs are managed (or contributions are appreciated!)
Betaflight is in the process of reformulating the rules for new targets and essential is a matter between manufacturer and development team to minimize support issues where we asses schematics, design and configuration issues as samples allow for testing and evaluation.