Share anonymous usage countsiynk counts what happens in the labs (a lesson passed, a step built, a fault tried) for the live counters and leaderboards. Each event carries a random id for this browser, never your name or your code.
0/120 of 12 done in this workshop: the build, tests, quizzes and courses
Fly itFinish the build and the safety tests first, or fly the factory-built craft.
Parts
…
Battery
unplugged
Fault
none
Tiny Whoop 65 mm on the workbench
Loading the figure…
Drag to turn it, click a part to select it. Press Escape to come back to the page.
Waiting for the figure…
The log fills as you plug in, test and fly.
Design it
Pick the battery, motors and props. Every number below is recalculated from this craft's own model.
Calculated for this build
All-up weight
26 g
Thrust : weight
4.0 : 1
Hover throttle
50%
Max current
14 A
Hover time
7.3 min
Hard-flying time
3.1 min
Checks
Parts match. Light, safe and fun indoors.
No problems found with this combination.
Cost
Category
Parts
Cost
Electrical
6
$102
Mechanical
4
$15
Total (approx.)
10
$117
Build it
Fit the parts in order. The figure refuses a part that cannot go on yet and tells you why.
Parts 0/11
1.Start with the framenot fitted
2.Screw in the four motorsnot fitted
3.Mount the AIO, arrow forwardnot fitted
4.Plug in the motorsnot fitted
5.Solder the BT2.0 battery leadnot fitted
6.Fit the VTX antennanot fitted
7.Route the ELRS antennanot fitted
8.Snap on the canopynot fitted
9.Fit the cameranot fitted
10.Slide the pack into its holdernot fitted
11.Press the props on, lastnot fitted
Try a real mistake
Fit a part the wrong way on purpose and see which test or flight catches it.
Selected part
Nothing selected. Click any part on the figure, a wiring block, or a name in the list.
Parts in the box
Wiring
Every connection on the craft. Choose one to select both ends on the figure, or open the hand-inked wiring sheet.
power
motor phases
video
radio
power:→BT2.0 · 1S LiHV 3.8 V nominal, 4.35 V full
The pack's BT2.0 plug meets the pigtail. One LiHV cell is 4.35 V full and 3.8 V nominal; at full throttle the whoop pulls 10 to 15 A through this plug.
power:→VBAT+ / GND pads · ADC PA0 voltage, PA1 current
The pigtail is soldered to the AIO's + and - pads. Betaflight reads the pack voltage on PA0 and the current sensor on PA1 (current_meter = ADC), so the OSD shows the real draw.
motor phases:→ESC M1-M4 (PB0 PB1 PB6 PC13) · DShot300 bidir · 5 A each
The four ESC channels (Betaflight outputs M1 to M4 on PB0, PB1, PB6 and PC13) drive the motor sockets with DShot300 and bidirectional rpm telemetry, 5 A each.
motor phases:→JST1.25 3-pin × 4 · phases A/B/C
Three phase wires per motor in a JST1.25 plug. Any order spins it; the spin direction is set in the Bluejay ESC firmware.
video:→CAM pads · 5 V, GND, CVBS · OSD AT7456E
Camera 5 V, ground and video into the CAM pads, through the AT7456E OSD chip that writes the voltage, timer and warnings on the picture.
radio:→UART3 · CRSF · ELRS 2.4 GHz on the AIO
The ExpressLRS receiver is on the AIO, wired to UART3 as serial RX with the CRSF protocol (the target's default).
radio:→UART2 · SmartAudio 2.0 · 5.8 GHz 25-400 mW
The analog VTX is on the AIO, with SmartAudio 2.0 on UART2, so Betaflight sets the band, channel and power (25, 100, 200 or 400 mW).
Safety tests
Real builds get these checks before the first flight. Run them in order: the figure enforces what each one needs.
Tests 0/5
1.
Smoke stopper test
Not run yet
How it is done
A smoke stopper (a fuse or current-limiting lamp in the battery lead) goes between the pack and the craft for the very first power-up. If something is shorted, the lamp lights instead of the ESC burning.
2.
Motor direction check (props off)
Not run yet
How it is done
Props off, battery in: spin each motor alone from the Motors tab and compare its direction with the frame diagram. A wrong one is reversed in the ESC configurator, never by guessing.
3.
Accelerometer calibration
Not run yet
How it is done
With the craft on a level surface, calibrate the accelerometer so the self-levelling modes know which way is down.
4.
Receiver test
Not run yet
How it is done
Check the link quality and that every stick and switch moves the right channel.
5.
Failsafe test (props off)
Not run yet
How it is done
Props off and armed, switch the radio off: the craft must carry out its failsafe action, not hold the last stick positions.
Betaflight CLI console
A working emulation of the Betaflight command line for this craft: real setting names, real limits and real error messages.
Entering CLI Mode, type 'exit' to return, or 'help'
Up and down recall earlier commands.
Configuration snippets
First setup after flashing after the build
Sets the mixer, the board alignment, the motor protocol and the two UARTs the AIO wires inside. DShot300 is plenty for a whoop's ESCs, and dshot_bidir lets them report rpm. The default motor_poles of 14 is wrong for 9N12P whoop motors: with 12 every rpm reading and filter notch lands where it should. motor_idle is in hundredths of a percent, so 700 is 7 %.
# Betaflight 2026.6.2, BETAFPV Matrix 1S 5IN1 (target BETAFPVG473): ELRS on UART3, VTX on UART2mixerQUADXset align_board_yaw = 0# AIO arrow toward the camera; 180 if it points backset motor_pwm_protocol = DSHOT300set dshot_bidir = ON# rpm telemetry for the RPM filterset motor_poles = 12# 0702 whoop motors are 9N12P; the default 14 is wrong hereset motor_idle = 700# 7 % idle, units of 0.01 % (default 550)set yaw_motors_reversed = OFF# props in (ON = props out)serialUART364115200576000115200# 64 = serial RX (the target default)set serialrx_provider = CRSFserialUART22048115200576000115200# 2048 = SmartAudio VTX (the target default)save
One LiHV cell: voltages and the current sensor after the build
A LiHV cell is full at 4.35 V, above Betaflight's default 4.30 V maximum, so vbat_max_cell_voltage must go up or the cell count and OSD go wrong. One cell sags hard under load, so the warning and minimum go lower than on a 5-inch. The AIO has a real current sensor (ADC); calibrate ibata_scale against what your charger puts back in. vbat_sag_compensation keeps the stick feel the same as the pack sags.
# One LiHV cell: full is 4.35 V, and 1S sags hard, so warn lateset current_meter = ADC# the 5IN1 has a real current sensorset ibata_scale = 750# the target default; calibrate against your chargerset vbat_max_cell_voltage = 440# must sit above 4.35 V (default 430)set vbat_full_cell_voltage = 435# LiHV full (default 410)set vbat_warning_cell_voltage = 330# default 350set vbat_min_cell_voltage = 320# default 330set bat_capacity = 300# mAh, for the mAh-left warningset vbat_sag_compensation = 100# % (0-150): same stick feel as the pack sagssave
Switches: arm, angle, turtle after the build
aux takes the mode's number: 0 ARM, 1 ANGLE, 35 FLIP OVER AFTER CRASH (turtle). The channel counts from 0 = AUX1 and the range is in microseconds. Turtle gets its own switch on AUX3 so it never fights with angle on AUX2. There is no ACRO mode to switch on: acro is what flies when angle is off.
# aux <slot> <mode id> <AUX n - 1> <from us> <to us> <logic> <linked>aux0001700210000# ARM on AUX1 highaux1111300210000# ANGLE on AUX2 mid + high (low = acro)aux23521700210000# FLIP OVER AFTER CRASH (turtle) on AUX3 highsave
Turtle mode (flip over after crash) after the build
Upside down, flip AUX3 on and arm: Betaflight skips its upside-down arming block, tells the ESCs to run backwards, and the stick you push lifts that side over. Turtle needs a DShot protocol, because the reverse command is a DShot command. With crashflip_auto_rearm OFF the whoop disarms when you switch turtle off and shows FLIP_SWITCH until you disarm and arm again.
# Turtle mode: arm upside down with AUX3 high and the motors run backwardsset motor_pwm_protocol = DSHOT300# turtle needs DShot: it reverses the ESCs by DShot commandaux23521700210000set crashflip_motor_percent = 0# power to the motors that are not lifting (0-100)set crashflip_rate = 0# 0 = no attenuation; units of 10 deg/s (0-250)set crashflip_auto_rearm = OFF# OFF: disarm and re-arm after the flip (FLIP_SWITCH flag)save
RPM filter at whoop speeds after the build
A 1S whoop motor turns 60,000 to 100,000 rpm, 1,000 to 1,700 times a second, far above a 5-inch's noise. With rpm from every motor, Betaflight puts notch filters exactly on it, which is why motor_poles must be right. The third harmonic carries little on a whoop, so its weight goes to 0.
# RPM filter: notches that follow each motor, 1000-1700 Hz on a 1S whoopset dshot_bidir = ONset motor_poles = 12set rpm_filter_harmonics = 3# 0 turns it offset rpm_filter_min_hz = 100set rpm_filter_weights = 100,60,0# the third harmonic carries little on a whoopsave
VTX power levels after the build
Paste the factory vtxtable from the AIO's manual first. SmartAudio 2.0 takes level numbers (0 to 3) for the four powers, where SmartAudio 2.1 would take dBm. 25 mW on Raceband 1 is plenty indoors, and vtx_low_power_disarm keeps it lowest while the whoop sits on the bench.
# Paste the factory vtxtable from the 5IN1 manual first (SmartAudio 2.0: 25 / 100 / 200 / 400 mW)vtxtable powerlevels 4vtxtable powervalues 0123# SmartAudio 2.0 takes level numbers (2.1 takes dBm)vtxtable powerlabels 25100200400set vtx_band = 5set vtx_channel = 1# R1, 5658 MHzset vtx_power = 1# 25 mW: plenty indoorsset vtx_low_power_disarm = ON# lowest power until armedsave
Failsafe: drop after the build
When the radio link is lost, stage 1 holds the fallback values (sticks centred, throttle low) for failsafe_delay (15 = 1.5 s), so a short glitch passes. If the link stays gone, stage 2 DROP stops the motors. For a 25 g whoop indoors that is the safe choice; GPS-RESCUE needs a GPS this craft does not have.
# Lost link: hold 1.5 s (stage 1), then stop the motors and fall (stage 2)set failsafe_delay = 15# tenths of a secondset failsafe_procedure = DROP# right for a 25 g whoop: it falls a metre onto the carpetsave
"Altitude hold" is a simulator aid here for Altitude hold (easy, sim only)
Betaflight's ALTHOLD (mode 3) holds height with a barometer or GPS, and a whoop AIO has neither. iynk's altitude hold makes the first flights easy; on the real whoop you learn the same thing in angle mode, with the tilt capped at 45 degrees for a room.
# No barometer and no GPS on a whoop: Betaflight ALTHOLD (mode 3) cannot run here.# iynk's "altitude hold" is a simulator aid. On the real whoop, learn in Angle:aux1111300210000# ANGLE on AUX2 mid + highset angle_limit = 45save
Angle mode for Angle mode
The flight controller levels the whoop when you let go and never tilts it past angle_limit: 45 degrees here, gentler than the default 60, which suits furniture. angle_p_gain is how hard it levels. Older Betaflight called these level_limit and angle_level_strength; those names no longer exist.
# Angle mode: self-levelling, tilt cappedaux1111300210000# ANGLE on AUX2 mid + highset angle_limit = 45# max tilt, degrees (10-80, default 60): gentle for a roomset angle_p_gain = 50# how hard it levels (0-200, default 50)save
Acro rates for Acro (rate) mode
With ACTUAL rates, rc_rate is the centre sensitivity and srate the full-stick rate, both divided by 10: 70 degrees a second around the centre and 670 at full stick, the numbers the range flies. Yaw stops at 300 degrees a second, which is easier between furniture. AIRMODE keeps full control at zero throttle, so you can drop through a gap.
# Acro is what it flies with ANGLE off (AUX2 low): the Betaflight default rates, softer yawset rates_type = ACTUALset roll_rc_rate = 7# centre: 70 deg/sset roll_srate = 67# full stick: 670 deg/sset roll_expo = 0set pitch_rc_rate = 7set pitch_srate = 67set pitch_expo = 0set yaw_rc_rate = 7set yaw_srate = 30# yaw: 300 deg/s, easier between furnitureset yaw_expo = 0featureAIRMODE# full control at zero throttle: whoops dive through gapssave
Lap timer and the pack on the OSD for Gate race (angle)
osd_tim1 packs the timer source and its precision into one number: 2 (since the last arm) plus 1 x 16 (hundredths) is 18. Each _pos value is 2048 (OSD profile 1) plus the column plus 32 per row: the timer top right, the cell voltage bottom left.
# Lap timer and the pack on the OSD for whoop racingset osd_tim1 = 18# source 2 (last armed) + precision 1 (hundredths) << 4set osd_tim_1_pos = 2103# 2048 (OSD profile 1) + column 23 + row 1 x 32set osd_avg_cell_voltage_pos = 2433# 2048 + column 1 + row 12 x 32save
Living room run: link quality and warnings for Range: Living room
Angle mode for the run, with link quality top left, the warnings in the middle where you cannot miss LOW BATTERY, and the mAh used bottom right. Indoors, walls and furniture are what weaken the link, not distance.
# The living room in Angle: link quality and warnings where you can see themaux1111300210000# ANGLE on AUX2 mid + highset osd_link_quality_pos = 2081# 2048 + column 1 + row 1 x 32set osd_warnings_pos = 2377# 2048 + column 9 + row 10 x 32set osd_mah_drawn_pos = 2455# 2048 + column 23 + row 12 x 32save
Check yourself · Mount the AIO, arrow forward
Check yourself · Solder the BT2.0 battery lead
Check yourself · Press the props on, last
Check yourself
Meet the whoop
A Tiny Whoop is the indoor trainer of FPV: a 65 mm quad of about 25 g whose ducts guard the props, so it can bump into walls, furniture and people without doing harm. One all-in-one board carries the flight controller, four 5 A ESCs, an ExpressLRS receiver, the OSD and a 5.8 GHz video transmitter. A 14 mm nano camera sits in the canopy and a single-cell LiHV pack slides into a holder underneath. It runs the same Betaflight firmware, PID loop and modes as a 5-inch quad and uses the same goggles and radio, so what you learn here carries over. Pick the pack, motors and props and watch the numbers change, build it part by part, check the motors with the props off, then fly the living room.
Practice task
Fly the three-gate race round the room, then the living room run: under the coffee table, between the dining chairs, past the lamp, over the sofa and down onto the rug. On a real whoop: check every motor's direction with the props off, run the receiver and failsafe tests, learn turtle mode before you need it, and land when the OSD shows about 3.3 V. Expect about 4 minutes of mixed flying on a 300 mAh pack, less than the calculator's hover time.
Build it, test it with the props off, then fly the living room