Re-building 1S 80mm freestyle quad
I damaged ESC #2 on the 1S Matrix AIO (Meteor75 Pro), either by running a motor with damaged windings or from a voltage spike in a crash. It’s overheating, not giving full power to the motor, and the video feed has white washouts during high throttle. So I’m replacing the AIO with JHEMCU G474ELRS and HGLRC Zeuz nano 350mw VTX. Update: the ELRS receiver on the AIO died after a week or so. Update: using another VTX (ZENCHANSI 棕熊 W007 400mw) until I solve the problem with the Zeus nano VTX table (very low output power on all frequences).
Meteor75 frame is scraping the battery and motor screws against the ground, so I am replacing it with a clone of Mobula7 but for 45mm props (80mm base and 47mm ducts instead of 75mm and 43mm). It has 2S battery tray, and with 1S battery the whoop will land on the lower part of the frame without the battery or motor screws touching the ground. Another solution to the problem would be keep the meteor75pro frame and printing the battery bumper. At first, I tried to pad the battery with foam, but it didn’t help much.
The battery is mounted using rubber bands with zip ties, occupying the lower part of the 2S holder and pressing the 1S battery to the frame.
Camera - Caddx Ant with f/1.2 lens or Caddx Ant Lite with f/2.5 lens. the canopy for the Ant Lite is 3D printed, needs to be modified for the regular Ant edition. the motors are 1102 22000kv left from the Meteor75. the props are 乾丰 (gemfan) 45mm-3 (1.5mm shaft). 20AVG battery lead.
batteries: batches of 高能 (GNB) 100C 550mAh LiHV 1S A30 and 格氏 (Tattu) 95C 550mAh 1S LiHV (resoldered A30).
Highlights of this build’s configuration: 1s, PAL analog, OSD profile change on a pot, VTX power change on a pot, turtle mode without arming, full weather protection, battry crash protection, RHCP antenna for VTX, whip-style antenna for RX, buzzer, 220uf 16v cap, tuned filters.
components
- 津航电子 (JHEMCU) G474ELRS - 1-2s, 4 UARTS, 12A bluejay, STM32G474: 170MHz core 512KB flash 128KB RAM, 8MB blackbox, BETAFPV 2.4GHz Lite RX (serial) IPEX gen1
- 衢州市云端智能科技 (Happymodel) 5.8G Crown LDS antenna RHCP, 3.5dBi, 5500-6000MHz, IPEX gen1
- 卡德克斯技术 (Caddx) Ant lite (f/2.5 lens). Update: swapped to Caddx Ant (f/1.2 lens), not in the pictures
- Mobula7 frame (80mm clone) - 45mm props, 80mm base, 47mm ducts
ZENCHANSI 棕熊 W007 400mw vtx- 化骨龙航模 (HGLRC) Zeuz nano 350mw VTX. review.
- 哈鸣科技 (BETAFPV) 1102 22000kv motors (left from Meteor75 Pro)
- 乾丰 (gemfan) 45mm-3 props (1.5mm shaft)
- 220uF 16v capacitor
- 20AWG wires for the battery lead, A30 connector
- added: cyclone EP1 ELRS 2.4ghz nano rx (IPEX gen1), whip antenna
pictures
the process
- wiring diagrams for the FC are here here
connect the FC, check that it is working, backup the config (
dump,diff all showdefaultsand save the outputs into separate files)- UARTs:
1 2 3 4
UART1: SBUS UART2: VTX (IRC Tramp) UART3: onboard ELRS (died), the pads are too tiny to work with UART4: external ELRS RX
- wiring:
| VTX pads | FC pads | wire color |
|---|---|---|
| 5V | 5V | red |
| GND | GND | black |
| video | VTX | yellow |
| RX | TX2 | purple |
| Caddx Ant | FC pads | wire color |
|---|---|---|
| 5-25V | 5V | red |
| GND | GND | black |
| VIDEO | CAM | yellow |
| ELRS RX | FC pads | wire color |
|---|---|---|
| 5V | 5V | red |
| GND | GND | black |
| TX | RX4 | yellow |
| RX | TX4 | white |
install the components into the frame, secure what needed with zip ties
Caddx Ant camera settings (using OSD menu board): AE mode to BLC=3, brightness=35, contrast auto, saturation manual=20
flash betaflight v2025.12, target
JHEG474, analog OSD, add features: camera control. restore the original backup- reflash bluejay, target
Z-H-30, PWM 48kHz (I get runaways on 96kHz for some reason), adjust the direction of the motors (props out)1 2 3 4 5 6
startup sliders to the max rampup x3 motor timing 22.5 degrees ESC power rating 2S+ temperature protection Disabled beacon delay 1 min
flash the onboard ELRS receiver (target
BETAFPV 2.4GHz Lite RX)(optional) connect to the FC using elrs wifi. in BF configurator options enable manual connection, connect to the RX wifi, then use porttcp://10.0.0.1calibrate accelerometer
- adjust current sensor calibration values
1
set ibata_scale = 487
- in motors tab, turn on motor direction is reversed for the props out configuration. it makes the mixer to expect that motors 1 and 2 are reversed (spinning clockwise)
1
set yaw_motors_reversed = ON
radio setup
- ADC Filter OFF
- send radio’s RTC data to the flight controller to have correct time in blackbox files and on the OSD: go to special functions, add
ON Lua bfbkgd Onand turn the checkmark on - ch5 inverted - arm
- ch6 inverted, SA - air / acro / angle
- ch7 - turtle mode
- ch8 (aux4), S2 - VTX power switching
- ch9 - buzzer
- ch10 - SW2 2pos - aux6 blackbox
- CH11 (AUX7), S1 - OSD profile switching
- ch12 - SW3 toggle - aux8 blackbox erase
restore my settings
load elrs 150Hz rate profile (although some of the values will be changed with the filters tuning later)
UARTs:
1
2
3
4
5
serial VCP 1 115200 57600 0 115200
serial UART1 0 115200 57600 0 115200
serial UART2 8192 115200 57600 0 115200
serial UART3 0 115200 57600 0 115200
serial UART4 64 115200 57600 0 115200
- (not working) camera control. measure the OSD pin voltage. set mode
camera control 1to a channel. enable led_strip feature. flip the channel, activate usingthrottle=0, yaw=100
1
2
3
4
resource
resource LED_STRIP 1 none
resource camera_control 1 B02
set camera_control_ref_voltage = 330
- misc. the
beaconsettings saved me once, the buzzer wire got disconnected in a crash but I didn’t notice. later the quad dived into a deep bush and I could find it only thanks to the faint beeping sound from the motors.
1
2
3
4
5
6
7
feature -AIRMODE
feature TELEMETRY
feature OSD
beacon RX_LOST
beacon RX_SET
set baro_hardware = NONE
set pidsum_limit_yaw = 1000
- modes (for my radio setup)
1
2
3
4
5
6
7
8
9
# aux
aux 0 0 0 1900 2100 0 0
aux 1 0 2 1900 2100 0 0
aux 2 1 1 1900 2100 0 0
aux 3 13 4 1900 2100 0 0
aux 4 26 5 1900 2100 0 0
aux 5 28 1 900 1100 0 0
aux 6 31 7 1900 2100 0 0
aux 7 35 2 1925 2100 0 0
- ZENCHANSI 棕熊 W007 400mw vtx.
not using
it uses smartaudio 2.1 protocol, so the power values will be in dBm. BF CLI has the command vtx_info to show the power levels that the VTX supports
1
2
3
4
# vtx_info
# level 23 dBm, power 200 mW
# level 26 dBm, power 400 mW
# level 0 dBm, power 1 mW
this is the table that I made based off the pictures in the listing, the TBS webpage and the output of vtx_info.
1
2
3
4
5
6
7
8
9
10
11
vtxtable bands 6
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5843 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACE_LOW L FACTORY 5362 5399 5436 5473 5510 5543 5584 5621
vtxtable band 6 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 3
vtxtable powervalues 14 23 26
vtxtable powerlabels 25 200 400
the following official vtxtable which their tech support sent to me is incorrect:
1
2
3
4
5
6
7
8
9
10
vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5843 5866
vtxtable band 3 BOSCAM_E C FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK D FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND E FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 3
vtxtable powervalues 14 23 26
vtxtable powerlabels 25 200 400
1
2
3
4
5
6
7
8
9
10
vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A CUSTOM 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B CUSTOM 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 FATSHARK F CUSTOM 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 4 RACEBAND R CUSTOM 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable band 5 IMD6 I CUSTOM 5362 5399 5436 5473 5510 5547 5584 5621
vtxtable powerlevels 4
vtxtable powervalues 25 100 200 400
vtxtable powerlabels 25 100 200 350
- vtx settings
1
2
3
4
5
set vtx_band = 4
set vtx_channel = 8
set vtx_power = 1
set vtx_low_power_disarm = UNTIL_FIRST_ARM
set vcd_video_system = PAL
- in-flight VTX power switching on a pot, used S2 (BF:aux4, radio:ch8). 0 means no change.
<index> <aux_channel> <vtx_band> <vtx_channel> <vtx_power> <start_range> <end_range>.
1
2
3
4
vtx 0 3 0 0 1 900 1249
vtx 1 3 0 0 2 1250 1499
vtx 2 3 0 0 3 1500 1749
vtx 3 3 0 0 4 1750 2100
the radio reporting current VTX power level with audio messages can be set up like this:
- PIDs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
profile 0
set profile_name = working
set dterm_lpf1_dyn_min_hz = 82
set dterm_lpf1_dyn_max_hz = 165
set dterm_lpf1_static_hz = 82
set dterm_lpf2_static_hz = 165
set vbat_sag_compensation = 100
set anti_gravity_gain = 40
set crash_dthreshold = 80
set crash_gthreshold = 600
set crash_setpoint_threshold = 500
set crash_recovery_rate = 150
set crash_recovery = ON
set iterm_relax_type = GYRO
set iterm_windup = 85
set pidsum_limit = 1000
set pidsum_limit_yaw = 1000
set throttle_boost = 0
set p_pitch = 87
set i_pitch = 157
set d_pitch = 44
set f_pitch = 35
set p_roll = 70
set i_roll = 124
set d_roll = 39
set f_roll = 28
set p_yaw = 70
set i_yaw = 124
set f_yaw = 28
set d_max_roll = 52
set d_max_pitch = 60
set d_max_advance = 0
set auto_profile_cell_count = 1
set launch_control_mode = NORMAL
set thrust_linear = 20
set feedforward_averaging = OFF
set feedforward_smooth_factor = 30
set feedforward_jitter_factor = 9
set dyn_idle_min_rpm = 75
set simplified_master_multiplier = 120
set simplified_d_gain = 110
set simplified_pi_gain = 130
set simplified_feedforward_gain = 20
set simplified_pitch_pi_gain = 120
set simplified_dterm_filter_multiplier = 110
set tpa_rate = 80
set tpa_breakpoint = 1500
set motor_output_limit = 100
- rates
1
2
3
4
5
6
7
8
9
rateprofile 0
set rateprofile_name = sasha
set roll_rc_rate = 16
set pitch_rc_rate = 16
set yaw_rc_rate = 16
set roll_srate = 90
set pitch_srate = 90
set yaw_srate = 90
- filters (adjusted for this build):
1
2
3
4
5
6
7
8
9
10
11
set gyro_lpf1_static_hz = 0
set gyro_lpf2_static_hz = 1000
set dyn_notch_q = 500
set dyn_notch_min_hz = 119
set dyn_notch_max_hz = 370
set gyro_lpf1_dyn_min_hz = 0
set rc_smoothing_auto_factor = 25
set rc_smoothing_auto_factor_throttle = 25
set rpm_filter_weights = 100,20,20
set rpm_filter_min_hz = 119
set rpm_filter_fade_range_hz = 0
- motors (important) and battery:
1
2
3
4
5
6
7
8
9
10
11
set dshot_bidir = ON
set dshot_bitbang = AUTO
set motor_pwm_protocol = DSHOT300
set motor_poles = 12
set bat_capacity = 550
set vbat_max_cell_voltage = 440
set vbat_full_cell_voltage = 420
set vbat_min_cell_voltage = 320
set vbat_warning_cell_voltage = 340
set beeper_dshot_beacon_tone = 3
set small_angle = 180
- OSD. if BF is set to NTSC and the camera outputs PAL, the osd elements will not be visible
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
set osd_units = METRIC
set osd_warn_bitmask = 270335
set osd_rssi_alarm = 20
set osd_link_quality_alarm = 80
set osd_rssi_dbm_alarm = -90
set osd_rsnr_alarm = 4
set osd_cap_alarm = 550
set osd_alt_alarm = 120
set osd_distance_alarm = 0
set osd_esc_temp_alarm = 0
set osd_esc_rpm_alarm = -1
set osd_esc_current_alarm = -1
set osd_core_temp_alarm = 70
set osd_ah_max_pit = 20
set osd_ah_max_rol = 40
set osd_ah_invert = OFF
set osd_logo_on_arming = OFF
set osd_logo_on_arming_duration = 5
set osd_arming_logo = 0
set osd_tim1 = 2560
set osd_tim2 = 2561
set osd_vbat_pos = 396
set osd_rssi_pos = 448
set osd_link_quality_pos = 6629
set osd_link_tx_power_pos = 4549
set osd_rssi_dbm_pos = 6624
set osd_rsnr_pos = 64
set osd_tim_1_pos = 385
set osd_tim_2_pos = 6647
set osd_remaining_time_estimate_pos = 472
set osd_flymode_pos = 6643
set osd_anti_gravity_pos = 341
set osd_g_force_pos = 375
set osd_throttle_pos = 289
set osd_vtx_channel_pos = 4128
set osd_crosshairs_pos = 237
set osd_ah_sbar_pos = 4334
set osd_ah_pos = 4206
set osd_current_pos = 6635
set osd_mah_drawn_pos = 6616
set osd_wh_drawn_pos = 341
set osd_motor_diag_pos = 341
set osd_craft_name_pos = 394
set osd_pilot_name_pos = 341
set osd_gps_speed_pos = 4323
set osd_gps_lon_pos = 17
set osd_gps_lat_pos = 0
set osd_gps_sats_pos = 6592
set osd_home_dir_pos = 4206
set osd_home_dist_pos = 4172
set osd_flight_dist_pos = 407
set osd_compass_bar_pos = 42
set osd_altitude_pos = 20726
set osd_pid_roll_pos = 341
set osd_pid_pitch_pos = 341
set osd_pid_yaw_pos = 341
set osd_debug_pos = 385
set osd_debug2_pos = 234
set osd_power_pos = 341
set osd_pidrate_profile_pos = 341
set osd_warnings_pos = 14729
set osd_avg_cell_voltage_pos = 14796
set osd_pit_ang_pos = 341
set osd_rol_ang_pos = 341
set osd_battery_usage_pos = 393
set osd_disarmed_pos = 14603
set osd_nheading_pos = 397
set osd_up_down_reference_pos = 4348
set osd_ready_mode_pos = 14508
set osd_nvario_pos = 4374
set osd_esc_tmp_pos = 4150
set osd_esc_rpm_pos = 288
set osd_esc_rpm_freq_pos = 341
set osd_rtc_date_time_pos = 341
set osd_adjustment_range_pos = 341
set osd_flip_arrow_pos = 14574
set osd_core_temp_pos = 4118
set osd_log_status_pos = 341
set osd_stick_overlay_left_pos = 341
set osd_stick_overlay_right_pos = 341
set osd_stick_overlay_radio_mode = 2
set osd_rate_profile_name_pos = 20
set osd_pid_profile_name_pos = 374
set osd_profile_name_pos = 341
set osd_rcchannels_pos = 341
set osd_camera_frame_pos = 142
set osd_efficiency_pos = 341
set osd_total_flights_pos = 341
set osd_aux_pos = 341
set osd_sys_goggle_voltage_pos = 341
set osd_sys_vtx_voltage_pos = 341
set osd_sys_bitrate_pos = 341
set osd_sys_delay_pos = 341
set osd_sys_distance_pos = 341
set osd_sys_lq_pos = 341
set osd_sys_goggle_dvr_pos = 341
set osd_sys_vtx_dvr_pos = 341
set osd_sys_warnings_pos = 341
set osd_sys_vtx_temp_pos = 407
set osd_sys_fan_speed_pos = 341
set osd_stat_bitmask = 8521444
set osd_profile = 1
set osd_profile_1_name = -
set osd_profile_2_name = -
set osd_profile_3_name = -
set osd_gps_sats_show_pdop = OFF
set osd_displayport_device = AUTO
set osd_rcchannels = -1,-1,-1,-1
set osd_camera_frame_width = 24
set osd_camera_frame_height = 11
set osd_stat_avg_cell_value = OFF
set osd_framerate_hz = 12
set osd_menu_background = TRANSPARENT
set osd_aux_channel = 1
set osd_aux_scale = 200
set osd_aux_symbol = 65
set osd_craftname_msgs = OFF
- in-flight OSD profile switching on a pot. I use S1, set it to CH11 (AUX7 in BF)
1
adjrange 0 0 6 900 2100 29 6 0 0
- blackbox for filter tuning
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
blackbox_sample_rate = 1/2
blackbox_device = SPIFLASH
blackbox_disable_pids = OFF
blackbox_disable_rc = ON
blackbox_disable_setpoint = OFF
blackbox_disable_bat = ON
blackbox_disable_alt = ON
blackbox_disable_rssi = ON
blackbox_disable_gyro = OFF
blackbox_disable_gyrounfilt = OFF
blackbox_disable_acc = ON
blackbox_disable_attitude = ON
blackbox_disable_debug = OFF
blackbox_disable_motors = OFF
blackbox_disable_rpm = OFF
blackbox_disable_gps = ON
blackbox_mode = NORMAL
blackbox_high_resolution = OFF
testing
- after successful test flights, apply
P-1025conformal coating to the FC and VTX boards (I already applied it to the camera board), addKafuter K-705silicon sealant to the places where wires are soldered to the FC pads, U.FL connectors on FC and VTX. apply blueLoctite-243onto last threads of the motor screws.
Update on the AIO’s RX failure
after a week or so flying, the RSSI suddenly got way too low, like there is no antenna connected. the flight before it was normal, I changed the battery for a fresh one and RSSI was low. I removed the ELRS antenna’s IPEX connector from the AIO board and soldered the antenna directly, but it didn’t help. reflashing also did nothing. I don’t know if it’s a result of a crash or a faulty AIO board. now I need to disable the integrated RX by shorting the two pads located between the battery’s negative pad and the ELRS WiFi antenna, then connect an external RX to the UART3 pads located between battery’s positive pad and motor 3 pads, the pad closer to the edge of the board being the R3 pad. Update: turns out these tiny pads are very fragile and one came off of the board after I tried to solder the wire to it. So I had to use UART4 to connect the new RX. No GPS for this build will be possible, except for if I remap the resources of SCL and SDA pads to UART3 RX and TX, or use soft serial. like this:
the original mapping:
1
2
3
4
resource SERIAL_TX 3 B10
resource SERIAL_RX 3 B11
resource I2C_SCL 1 A15
resource I2C_SDA 1 B07
new mapping:
1
2
3
4
resource I2C_SCL 1 none
resource I2C_SDA 1 none
resource SERIAL_TX 3 A15
resource SERIAL_RX 3 B07
The new RX is:
1
2
BETAFPV 2.4GHz Nano RX
Firmware Rev. 3.5.3 (40555e) ISM2G4
references
- https://oscarliang.com
- https://www.youtube.com/@ChrisRosser
- https://www.youtube.com/watch?v=EhYKeZfSQIw
- https://www.youtube.com/@JoshuaBardwell
- https://www.youtube.com/@MediocreNerd
- https://speedybee.zendesk.com/hc/en-us/articles/18769825525531-Experiencing-a-Runaway-takeoff-During-Drone-s-First-Flight
- https://www.team-blacksheep.com/media/files/vtx-table-for-betaflight.txt
- https://www.betaflight.com/docs/wiki/guides/current/VTX-CLI-Settings

















