Ateities inžinerija · Aviamodelių kūrimas · build solve 2026-10-07

SOS drone v3

A 5-inch GPS quad that carries a tourniquet kit up to 200 m on its own, shows the scene live so a 112 dispatcher can see it, lands 5 m from the casualty facing them and plays spoken instructions.

Drone cost€288.85of €300
Take-off mass802 g704 g after delivery
Thrust / weight≈ 7estimate
Hover time≈ 7.4 min1300 mAh 6S
200 m mission≈ 16%of the pack, one way
Checks passed51 / 51model + simulator
loading 3D model…
Click a partDrag to orbit, scroll or pinch to zoom.
Rendered drone hovering over a meadow, props blurred, red payload box under the carbon frame
On the way. Camera, speaker and the box door face forward, GPS mast at the back.
Rendered drone landed in grass with the box door swung up and the tourniquet kit sliding out
Delivered. Door up, the CAT, gloves and the engraved card slide out toward the casualty.
Studio render from the front left: white head pod with camera lens, battery with strap, red box with white SOS 112 letters
Front left. White head pod, red box with the letters printed white on the AMS.
Studio render from the rear right: GPS mast with the ELRS antenna zip tied on its back, XT60 plug, box strap buckle
Rear right. GPS mast, ELRS antenna tied to its spine, XT60 and the strap buckle.
Close-up between the plates: flight controller on nylon spacers over the ESC, grommets, nyloc nuts, capacitor and wiring
Between the plates. FC on spacers over the 4-in-1 ESC, capacitor on the battery pads, twisted motor leads.
Dimensioned top and side drawing: motors 172 by 145 mm, overall 272 by 264 by 156 mm, box 175 by 66 by 54 mm, props 94 mm above the ground
All sizes in mm, generated from the same model the checks run on.

Shopping list

Prices checked live on 7 October 2026. Rotorama ships to Lithuania in 2-3 days. AliExpress prices are the cheapest listed variant, so pick the right one when ordering.

PartQty€Shop
Readytosky Mark4 5" frame120.69Rotorama
iFlight XING-E Pro 2207 1800KV462.36Rotorama
MicoAir H743 V2 + 55A AM32 stack, runs ArduPilot out of the box192.79Rotorama
MicoAir MG-903 GPS + compass116.39Rotorama
SkyGuy Nano 2.4G ELRS receiver113.49Rotorama
CNHL Ministar 1300 mAh 6S121.79Rotorama
Gemfan Hurricane 51477-3 props, sets of 426.18Rotorama
FC buzzer, battery strap 20x250, box strap 20x55039.27Rotorama
M3 screws x8, x12, x30, M3 square nuts, foam pads, heat shrink66.74Rotorama
Shipping to Lithuania (Packeta)7.00Rotorama
Seeed XIAO ESP32S3 Sense, camera + WiFi + computer115.49AliExpress
DFPlayer Mini, 28 mm 1 W speaker, microSD, 1 kΩ resistor47.09AliExpress
M3 male-female hex standoffs 6+6, shipping buffer4.17AliExpress
PETG (≈125 g), 3 mm plywood offcut, foam tape, zip ties5.40materials
Drone total288.85€11.15 left
Before ordering: on the TX16S open Model › Internal RF. CRSF/ELRS means buy as listed. MULTI (4-in-1) means swap the ELRS receiver for a FrSky D16 one such as the RadioMaster R81 (≈€10). Not in the budget: tools, charger, and the payload itself (genuine CAT Gen 7 tourniquet ≈€32, gloves). First buy once money allows: a second battery (€21.79).

The video is WiFi rather than analog because the analog chain came to about €315 once a USB 5.8 GHz receiver was included. The XIAO streams to a laptop, draws a dashboard with the GPS position for 112, bridges MAVLink for Mission Planner and drives the voice player, all for €15.49.

Print and cut

3D print · Bambu Lab X1 Carbon

Open plate_x1c.3mf in Bambu Studio: all four parts on one plate, already standing right. Bambu PETG HF, 0.20 mm Standard, 4 wall loops, 20% infill, supports off, brim on the box and door. The mast and pod can go in PETG-CF for stiffness. With the AMS, paint the “SOS 112” letters white.

PartGramsOn the bedNote
Payload box91closed back wall down175 mm tall, brim. Raised “SOS 112” on both sides
Box door7on its bottom edgehinge pin: 70 mm of 1.75 mm filament
Head pod15as flownholds camera, voice player, speaker, WiFi antenna
GPS mast12uprightELRS antenna clips on its back

Laser · red cut, blue score, black engrave

PartMaterialQty
Skid bars 140 × 14 mm, widen the stance to 40°3 mm birch ply2
Instruction card 85 × 54 mm, Lithuanian, goes in the box3 mm ply1
Landing pad tiles 300 × 300, tape into 600 mmbox cardboard4

Wires to cut

Measured on the model plus slack: motors ≈135 mm, battery lead ≈120 mm, XIAO cable ≈135 mm, voice player power ≈130 mm, buzzer ≈85 mm, receiver ≈70 mm.

Assembly

  1. Frame. Build the Mark4, but where the 4 standoffs meet the bottom plate use M3 male-female 6 mm standoffs from below. Their open ends point down and carry the box.
  2. Motors. Front right and rear left spin CCW, front left and rear right spin CW, props in.
  3. ESC. Softmounts, ESC arrow forward. Solder the motors, the XT60 lead and the capacitor (stripe to minus). M3×30 stack screws from below.
  4. Flight controller. 8-pin cable to the ESC, FC on the nylon spacers, arrow forward, USB to the side.
  5. Receiver and buzzer behind the stack, on the SBUS/CRSF and LED/Buzzer plugs. Receiver TX and RX cross over.
  6. Mast on the 2 rear top-plate screws (M3×12). GPS on top, arrow forward, its cable down the channel and out of the notch at the mast's foot, round the left edge of the top plate to the GPS port. ELRS antenna on its back, element vertical, 3 zip ties.
  7. Head pod. Flash the XIAO first. XIAO D0 through 1 kΩ to the voice player RX, speaker on SPK1/SPK2. Cables to UART4 (XIAO) and UART5 (voice player power). Pod on the 2 front screws (M3×12).
  8. Battery on top with its centre about 5 mm behind the motor centre, lead to the back.
  9. Box. Skids with M3×8 and square nuts, foam pads under the ends, door on its pin. Screw the box to the hanging standoffs from inside (M3×8). Kit in, strap lengthwise over the roof, round the hinge, down the door, under the skids.
  10. Balance. Lift by the front and rear motors and slide the battery until it hangs level.

Wiring

Block diagram: battery to ESC, ESC to motors and flight controller; GPS, ELRS receiver, buzzer, XIAO and DFPlayer on the flight controller ports; XIAO to DFPlayer to speaker; XIAO to laptop over WiFi
FC plug (JST-SH)Goes toArduPilot
GPS · GND 5V TX3 RX3 SCL SDAMG-903 GPS + compassSERIAL3 GPS
UART4 · GND 5V TX4 RX4XIAO: TX4→D7, RX4→D6SERIAL4 MAVLink2 115200
UART5 · GND 5Vvoice player power onlynone
SBUS/CRSF · GND 5V TX6 RX6ELRS receiver, TX/RX crossedSERIAL6 RC in
LED/Buzzer · 5V Buzz−buzzerbuilt in
ESC 8-pin55A AM32 ESCmotors 1-4, current, ESC telemetry

Software

Flight controller

  1. Flash ArduCopter 4.7.1 for MicoAir743v2 (hold BOOT, plug USB).
  2. Mission Planner › Initial Tune Parameters: prop 5.1 in, 6S.
  3. Load ardupilot/sos.param, write, reboot. All 66 values checked against the official 4.7.1 list. It caps the takeoff throttle: the default made the simulator climb to 30 m instead of 15.
  4. Calibrate accelerometer, the GPS compass (untick the internal one), radio. Motor test, swap two wires on any motor that spins backwards.
  5. TX16S: ELRS, AETR, ch5 three-position LOITER / AUTO / RTL, ch7 motor emergency stop, ch8 arm.

Head unit

Arduino, board XIAO_ESP32S3 with OPI PSRAM, upload firmware/sos_cam. It makes the WiFi SOS-DRONE. The laptop opens http://192.168.4.1/ for the camera, position with a Google Maps link, height, distance, battery and voice buttons. Mission Planner connects on UDP 14550. Share the dashboard tab in the video call with 112, internet through the phone over USB.

Voice: record the instructions in Lithuanian on a phone, save as 0001.mp3 on the microSD. It plays on repeat for 3 minutes once the drone lands away from where it took off.

Flying

  1. Props off: motor test, radio-off failsafe, emergency stop.
  2. LOITER hover at 2 m, then Auto Tune in AltHold on a calm day.
  3. 50 m AUTO mission empty, then with 100 g of sand.
  4. Range check: drone on a stand 250 m away with video streaming, radio link quality above 80%. This proves WiFi and ELRS get along on 2.4 GHz.
  5. 200 m with the real kit.
make_mission.py BASE_LAT BASE_LON CASUALTY_LAT CASUALTY_LON writes the mission: climb to 15 m, hover 20 s 25 m short of the casualty so 112 sees the scene, land 5 m short facing them. Wait about 30 s after the GPS fix, then arm in AUTO with the throttle down. It does not fly back: it only has to buy time until the ambulance arrives, and the crew unplugs it and drives it back.
The whole mission in ArduPilot SITL 4.7.1 with the real params, 4× speed: take-off, 20 s overview hover, landing 5 m from the casualty. It does not fly back: the ending shows the ambulance arriving and driving it back (illustrated, not simulated). Made from the simulator log by sitl/video.py.
render progress loading
The same logged flight rendered in Blender: the detailed drone model flies the real SITL trajectory over a field at a forest edge, with the camera view 112 would get during the hover. People, ambulance and the ending are illustrated. The sound follows the log too: the motor pitch comes from the logged motor outputs, heard from each camera with distance and Doppler, and the head pod plays the real Lithuanian voice message. Still rendering on two laptops: frames not done yet show a still from the shot's test render, and the video is rebuilt with the new frames every hour. Made by film/film.py and film/sound.py.

Verification

CheckResult
Collisions, 42 parts pairwisenonepass
Spinning props to anything3.6 mm closest, tips 15.5 mm apartpass
Door and kitdoor swings 150° free, kit slides straight outpass
Camera viewnothing of the drone in frame. Casualty visible hovering 25 m out at 15 m, and landed 5 m away. Out of frame for ≈8 s mid-descentpass
GPS sky view, compass distances0% blocked above 10°, 53-113 mm from noise sourcespass
Centre of gravity0.8 mm off loaded, 1.3 mm emptypass
Tip-over on the skids40° sideways, 44° fore-aft, props 94 mm off the groundpass
Thrust, power, enduranceT/W ≈7, 7.4 min hover, mission 16% of the pack one wayestimate
5 V rail, plugs, serial ports0.95 of 3 A, one job per portpass
Screws4+ mm of thread everywhere, stack screws clear the top platepass
Printability4 watertight parts on one X1C plate, no supportspass
ArduPilot parameters66 of 66 valid in 4.7.1pass
Head unit firmwarecompiles for XIAO ESP32S3, parser and voice-player frames tested with real MAVLinkpass
Mission in ArduPilot SITL 4.7.1armed in AUTO, cruise 15.1 m, 26 s overview, landed 8.0 m from the casualty facing them (1° off). Voice code replayed on the telemetry fired once, after the landingpass
Budget€288.85 of €300pass

Measure first

The frame and a few parts are modelled from shop data. When they arrive, measure these, set them at the top of sos.scad and run ./make.sh. If every check still passes, print.

Limits