Skip to content

Thrust stand

The thrust stand measures one motor on the bench at a time: the thrust, the current and the pack voltage at each throttle step. Until it runs, the current and thrust figures in Propulsion are model values. The stand is a bench tool, not a part of the aircraft, and its cost is not in the flight cart total.

To build it, follow Build the thrust stand.

thrust-stand-64 designs the stand in its own repository (../thrust-stand, commit f50c24b, 2026-10-12). th-eda chose the electronics, and th-main sliced the prints and keeps the parts list.

Item Status, 2026-10-19
Design Done for the stand and the electronics. The display is a 2.0 in colour TFT that Ryan already has (2026-10-18). The box tub stands free on four TPU feet in place of its wood-screw flanges (Ryan, 2026-10-19), and it is not final: it waits on the insert coupon’s result
Parts Priced at $311.05 in the parts list, with the corded emergency stop, the rotary encoder, the keyswitch interlock and the sensors (th-main ba8bd0b8, a02a6141, e64630a0; 2026-10-18 and 19). The XT90 plugs come from the aircraft’s spares (row 15a). Ryan already has the 10 kg load cell and an HX711
Prints The stand’s parts are printed: the motor bracket, the square-nut pillar, the two XT90 mounts and the insert coupon (thrust-stand-21, 2026-10-18). The first motor bracket had layer shifts and is scrap; Ryan used it only to test the fit of the load cell. The box tub and lid wait for the lid redraw
Firmware Written and unit tested (64 native tests, thrust-stand), not flashed. The safety rules on this page are the design it follows
Tests None yet: nothing has spun
A plywood board with a triangular printed pillar at the left. A load cell rises from the pillar to a motor bracket, a motor and a pale disc showing the 8 inch prop's sweep. At the right, a light grey box with a display, a keyswitch, a red-ringed button and a knob on its sloped lid.
The thrust stand, assembled. The motor axis is 230 mm above the board; the measurement box stands beside the pillar on four TPU feet, out of the prop’s plane of rotation. Bracket and pillar by niklasm, Printables 764679, CC BY-SA 4.0 (thrust-stand).

The pass marks are in To check on the thrust stand. Each result goes to the session that uses it.

Check Result goes to
The pusher at full throttle for 10 seconds on a fresh pack: the current, and the vibration of the prop th-aeronautics
The pusher stopped with the brake on: the blades fold aft with no airflow th-aeronautics
One lift motor with the 3-blade F8041 at hover thrust: the current th-aeronautics
One lift motor at full throttle, the duty capped at 0.82 and then increased in steps of 0.01 while the current stays under 49 A: the highest step that holds, and thrust against duty th-avionics (Q_M_SPIN_MAX, Q_M_THST_EXPO)
One lift motor from a braked stop, blades folded, to hover throttle: the time to 90 % of hover thrust th-avionics and th-eda; the stall test card sets its recovery floor from it

Do not run the 3-blade lift prop at full throttle without the duty cap. The model gives about 64 A, more than the motor’s 52 A peak.

The stand is niklasm’s Automated Thrust Testing Stand (Printables 764679, CC BY-SA 4.0), changed for these motors and this load cell. The load cell is a cantilever. One end is bolted to a printed pillar. The motor is on a printed bracket at the free end. The motor pushes the bracket, and the load cell bends. Ryan’s NOYITO 10 kg load cell has threaded M4 holes, 10 mm apart (confirmed with a screw, 2026-10-12).

Change Why
The four motor slots of the large bracket are 0.5 mm longer, for a bolt circle of 16 to 20 mm The EMAX ECO II 2807 and 3115 have four M3 on a 19 mm bolt circle. The original slots stop at 19.0 mm, and printed slots are usually small
The four walls of the bracket’s load-cell socket are 4 mm thick, not 2 mm, with a 2.5 mm chamfer into the original taper. The motor plate is then 12.95 mm thick Ryan: the socket fits the load cell, and its walls must be stronger. The 12.9 x 12.9 x 25 mm socket and its M4 holes do not change. Not printed or tested yet
The pillar’s base has four M4 square-nut pockets (DIN 557) on a 23.33 mm pitch, in place of two hex-nut pockets. The load-cell end does not change Ryan (2026-10-12)
An 18 mm plywood board replaces the printed bases The board is larger and stiffer. It holds the pillar, the measurement box and the pack under a strap, and it is clamped to the bench
A new measurement box replaces the Arduino box and its firmware The stand must measure current and pack voltage, and the original sketch has no throttle cut on abort

The changed bracket and pillar are CC BY-SA 4.0, the same licence as niklasm’s design. The 3D views show them. Drag to turn each model.

Loading 3D view…

Parts

Loading 3D view…

Parts
Joint Hardware
Bracket to load cell 2 x M4 x 12, A2 stainless (4 mm wall, 8 mm into the load cell)
Pillar to load cell 2 x M4 x 16, A2 stainless
Pillar to board 4 x M4 x 30 into four M4 square nuts (DIN 557, 7 x 7 x 3.2 mm) in the pillar’s base pockets. The pitch is 23.33 mm, and the outer pair is 70 mm apart. Drill the board to match. The heads go in counterbores below the board
Motor to bracket 4 x M3 x 16, about 3 mm into the motor. The bracket plate is 12.95 mm thick. Measure each motor’s thread depth before you install the screws

Past the bolted end, the load cell must not touch the pillar. Only the two bolts hold it.

Put one drop of medium-strength (blue) thread locker on the load-cell screws, the motor screws and the base screws. Put it on the screw threads only. Keep it off the PETG: it can crack some plastics.

The motor axis is 230 mm above the board (measured in the Blender assembly). An 8 in prop clears the board by 128 mm, and the 10 in pusher prop by 103 mm. Install each prop so that its airflow goes away from the pillar and the measurement box.

The stand's parts pulled apart vertically. From the top: a motor bracket with a four-hole motor face, the motor beside it, a pale prop disc, a square aluminium load cell, a triangular pillar with four square-nut pockets along its base, and the plywood board.
The stand’s load path, exploded: motor, bracket, load cell, pillar and board, with the fasteners for each joint. The pillar-to-cell bolt length is not found yet. Bracket and pillar by niklasm, Printables 764679, CC BY-SA 4.0 (thrust-stand).

The pack’s power goes through the box. A shunt in the positive line lets the box measure the current itself, and the box also reads the load cell and drives the ESC. A phone shows the readings through the box’s own web page, and a small display on the lid shows them at the bench.

The box tub is not final: it waits on the insert coupon’s result. A render of the whole stand follows.

The measurement box from the front left. On the lid: a keyswitch, an 18.5 mm start/abort button with a red ring, a black knob for the menu encoder and the dark 2.0 inch screen. On the front wall a 3.5 mm jack labelled EPO; on the left wall a 3.5 mm jack, a round 3-pin connector labelled TEMP and a USB-C opening. Teal feet under the corners.
The box from the front left: the lid controls, the EPO jack on the front wall, and the load-cell jack, TEMP connector and USB-C on the left wall (thrust-stand).
The measurement box from the back right. On the back wall, an XT90 panel mount for the battery and a round 4-pin connector labelled SENSORS. On the right wall, a second XT90 panel mount for the ESC and a small slot for the ESC's 3-pin signal plug. Vent slots on the lid.
The box from the back right: battery in on the back wall, ESC out and the ESC signal port on the right wall, and the SENSORS connector. Plug the ESC lead in first and the pack last. XT90 panel mounts by L340, Printables 1530294, CC BY 4.0 (thrust-stand).
An exploded view of the box. The lid floats above with the keyswitch, button, knob and screen. In the see-through tub below: a large green perfboard, two smaller green boards (HX711 and INA228), a copper shunt with lugs, two yellow XT90 connectors, and grey connector bodies on the walls. Teal feet with pegs below the corners.
The box exploded: the lid lifted with its controls, the feet below, and the tub drawn see-through so the parts inside show. The tub is not final (thrust-stand).
Function Part Notes
Controller Seeed XIAO ESP32-S3 The box’s own board. The XIAO boards in row 16 are for the aircraft. The USB-C port is open through the wall
Load cell amplifier HX711 at 80 samples a second The box is drawn around the Adafruit 5974, which has a 10/80 switch. The listing photos of Ryan’s board (XFW-HX711) show 10/80 Hz pads. This is not yet checked on his board
Current and voltage INA228 on a 1.000 mΩ shunt (Bourns RSA-100-100, ±0.25 %) in the positive line The onboard shunt is removed, and a twisted Kelvin pair goes from the shunt’s sense screws to the INA228. On the positive side, the ESC and the controller have the same ground. 1 mV is 1 A
Display AITRIP 2.0 in colour TFT module, 240 x 320, ST7789V, on SPI, with its own backlight resistor (Ryan’s own modules, chosen 2026-10-18 in place of the 2.42 in OLED; th-main c772def7) On the lid. Its mount waits for Ryan’s measurement of a module
I/O coprocessor Serial Wombat SW8B on the I2C bus It drives the buzzer and the button’s ring light, so that the XIAO has pins for the TFT. The keyswitch and the abort button stay on the XIAO’s own pins. A fault on the I2C bus during a test aborts the test
Logic power 5 V switching regulator, 9 to 72 V in, on a fused tap from the 10 AWG line, with a TVS diode after the fuse The 72 V input is above the voltage spikes that the Lucid’s brake can put on the bus
Power path XT90-S male (anti-spark) in, on the back wall; the shunt; XT90 female out, on the right wall; 10 AWG Each XT90 is in an XT90 Panel Mount Unisex (L340, CC BY 4.0), with 2 x M3 x 10 and nuts
ESC signal DShot, with PWM as an alternative DShot is how the flight controller drives the Lucid. Bidirectional DShot also gives the rpm
Controls Ryan’s own keyswitch to arm, his 18.5 mm start and abort button with a ring light, and a buzzer. A reed relay (Standex SIL05-1A72-71D) is a second cut in the ESC line The keyswitch replaces the flip-covered toggle switch. The reed relay’s coil and pinout are estimates (th-eda with thrust-stand-21)
Emergency stop An IDEC XA1E-BV302-R e-stop in a Bud HP-3651-B pendant, on 2.1 m (7 ft) of 24 AWG 2-core cable through an M12 gland. A window comparator (MCP6547, with a TLV3402 as the backup) and an SN74HC4066 switch read the loop A corded stop in a hand-held pendant (th-eda with thrust-stand-21)
Encoder Bourns PEC11R-4220F-S0024 with a Davies 1230-J knob th-eda with thrust-stand-21
Sensors An ADS1115 breakout (Adafruit 1085) for two NTC thermistors and the 3V3 rail, an MLX90614ESF-BCF 10° infrared thermometer for the motor bell, a BME280 breakout (Adafruit 2652), and three TDK B57861S 10k NTCs (two used, one spare) On two GX12 connectors with different pin counts, 4-pin SENSORS and 3-pin TEMP, so the leads cannot be swapped (th-eda, 2026-10-19)

The XT90 connectors are rated 45 A continuous (Amass). The 49 A lift motor tests last only a few seconds.

Thrust stand safety design gives the reasons for these rules and shows the two cuts in the ESC line.

These rules come before the firmware. The original sketch sent mid throttle at power-on, swept the full throttle range, and did not stop the motor when a test was aborted. The new box does not do these things.

  • The ESC signal is zero throttle from power-on until the box is armed. The box sends no signal before the ESC pin is set up.
  • Each test profile has a duty cap: 0.82 for the 3-blade lift prop. The output layer applies the cap, not the sweep logic.
  • At 49 A (lift) or 44 A (pusher), the INA228 alert cuts the throttle to zero in an interrupt. The trip is set in the INA228’s own register, so it does not wait for the main loop.
  • The button, the keyswitch, the phone page, and a lost phone connection during a test each stop the test at zero throttle.
  • The keyswitch is the hardware arm interlock, with a reed relay as a second cut in the ESC line. The controller reads the key’s position through an 18k and 33k divider. th-eda is drawing this circuit (2026-10-18), and the full interlock rule follows when it is done.

After the interlock cuts the signal, the ESC needs a period at zero throttle before it arms again. Check this on the bench.

The bench layout has two rules of its own:

  • Keep the box, the operator, the emergency stop pendant and the pack out of a band 30° either side of the prop’s plane of rotation, measured from the hub. A blade that comes off leaves in that plane. The 30° is our own conservative choice, not a figure from a published standard. The box as drawn is about 35° out of the plane, 192 mm along the motor axis (thrust-stand, 2026-10-19).
  • Set the prop so that its wash blows away from the pillar and the box.

The stand uses the flight ESCs: the TBS Lucid 4-in-1 for a lift motor (row 2b), and the DYS Aria for the pusher (row 5). Record the AM32 settings of each ESC before you change them for the bench. Restore them before the ESC goes back in the aircraft.

th-main sliced these jobs on the Core One with the HF0.4 nozzle, in PETG. A G-code file is correct only for the STL it was sliced from: if a part changes, it is sliced again.

Part Time Mass
Heat-set insert coupon (print first, after the printer repair) 14 min 29 s 4.95 g
XT90 Panel Mount x 2 (L340, plain), flange down, 0.3 mm layers 18 min 16 s 8.46 g
Motor bracket, motor face down 46 min 43 s 17.11 g
Pillar, square-nut base, flat, 0.28 mm layers, no supports 1 h 14 min 57 s 50.19 g
Box lid, top face down To be sliced again after the lid redraw
Box tub, floor down, no supports To be sliced again after the lid redraw

The jobs print in the order of the table. The insert coupon and the XT90 mounts print first, then the bracket. Before the pillar prints, examine the bracket’s slots and centre hole for a layer shift, and record the height at which any shift starts.

After printing, drill through the pillar’s six horizontal holes (two for the load cell, four for the base) so that the bolts go in. Use a 4.2 to 4.3 mm drill (M4).

Work Author Licence Use here
Automated Thrust Testing Stand Powered by Arduino (Printables 764679) niklasm CC BY-SA 4.0 (the sketch’s own header says CC BY-NC 4.0) The motor bracket and the pillar, changed as above. The Arduino box and the sketch are not used
XT90 Panel Mount Unisex (Printables 1530294) L340 CC BY 4.0 Printed without changes, two off
The measurement box thrust-stand-64 (CAD), th-eda (electronics) CC BY-SA 4.0, the same as the stand (Ryan, 2026-10-12) The box on this page

Comments on

    Comments are reviewed before they appear. Please leave out places, addresses and other personal details.

    A Supported Systems Flight

    This build log is written and kept by Supported Systems, a small studio that makes thoughtful, user-first technology. The airframe, the hangar and the simulation are ours.

    Visit supported.systems