Skip to main content
Version: FILS English

RO10-Strigoi

A simple drone flight control system developed by MATEI Sebastian-Alexandru (1221EA - PM 2025) that leverages Rust programming language with the Embassy Hardware Abstraction Layer (HAL). This project aims to create a high-performance, reliable flight controller for drone systems with advanced capabilities including precise data acquisition and comprehensive peripheral control for servos and Electronic Speed Controllers (ESCs).

info

Author: Sebastian-Alexandru MATEI
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-MateiSebastian9

Description

The project is split in 3 parts. The Drone itself, the ground station and the yoke. The drone is fully written in Rust. The drone was designed by me in Fusion 360. The only files that are not mine are the ones in "import" folder( eg. arduino uno).

Motivation

I think things that fly fast are cool.

Architecture

Schematic Diagram

Include a diagram showing the components and their connections.

Schematic diagram

Fixed wing plane (STMH7S3L8 MCU - RUST + EMBASSY HAL)

  • Role: This component is responsible for flight data aquisition, ground communication and flight decisions.
  • Connections: The standard package of the drone has the following sensors:

I. Sensors and communication

  1. Ebyte E32 900D - Radio Transmitter / Reciever used to send sensor data from drone to ground station. (UART Communication)
  2. TS832 FPV Transmitter - This is a premade solution tipical in FPV drones. It connects to an AV FPV Camera.
  3. MPU9250 for gyro, accelerometer, magnetometer and temperature data. This is used to know the orientation of the plane on each axis. It is usefull for a precise control of the drone. (I2C Communication)
  4. NEO 8M - GPS module with High-precision positioning with 2.5m CEP accuracy capable of multi-constellation support (GPS, GLONASS, Galileo, BeiDou). It is used to know where the aircraft is on the map. (UART Communication)
  5. MS5621 - precise barometric sensor used in estimating the current vertical height. (I2C Communication)
  6. AT24X256 EEPROM - Small non volatile memory used to store encryption keys and flight parameters.(I2C Communication)

II.Thrust and Control

  1. 70MM EDF + 80A ZMR Brushless ESC - these are the thrusters of the UAV and are controlled via a standard ESC signal.
  2. 20KG DS5320PRO Coreless Servo - these steer the plane and are controlled via a standard servo PWM signal.

Ground Station ( ARDUINO UNO - Arduino C + Python GUI)

  • Role: This one takes information from the aircraft and displays it to the UAV pilot. It uses a RJ45 connection to communicate with a custom yoke.
  • Connections: Arduino UNO - powered via the 12v barrel jack, connected to the RC Transmitter via UART. EBYTE E32 900D - Used to send commands to the UAV. 50MM 5v FAN and 10k termistor - provides cooling.

Yoke(Just Hardware connected to the UNO via RJ45)

  • Role: JoyStick for the drone. Simple 2DOF design with bearings and potentiometers.
  • Connections: 100K Potentiometers - used to detect the orientation of the plane Yoke and how the depth at which the throttle trigger is pulled. Vibration Motors - used for haptic feedback. Buttons and rocker switches - used to control "equipment".

Log

Week 5 - 11 May

Started 3D design, software and arhitecture of the project. Drone Data Aquisition was fully dealt with and started development on the Ground Station. The components were ordered 1 month in advance. Most of them arrived. Only needed ones are the 6S battery and the AV FPV Camera.

![]

Week 12 - 18 May

Continue documenting your progress.

Week 19 - 25 May

Continue documenting your progress.

Hardware

Describe your hardware setup in detail.

Schematics

Include your schematic diagrams.

![]

Bill of Materials

No.Item NameQtyStatusDescription
1STM32H7L8S31DeliveredSTM Family Microcontroller
2NEO 8M GPS1DeliveredGPS module for location tracking
3MPU-9250 10DOF Gyro1DeliveredGyroscope for aircraft orientation
4MS5611 Pressure Sensor1DeliveredPrecision sensor for altitude determination
5EEPROM AT24C2561DeliveredEEPROM storage for FHSS/DHSS seed and keys
670MM EDF2DeliveredElectric Ducted Fan propulsion units
73.7V LIION CELL1610 AvailableBattery cells for power supply
85000MAH 100C 6S LIPO1NeededHigh-performance LiPo battery pack
9MAX485 RS485 to TTL1Waiting DeliveryCommunication interface converter
1080A ESC ZMR Brushless2DeliveredElectronic Speed Controllers with BEC/UBEC
112W RF Power Wideband Amplifier2DeliveredRange amplifiers for extended communication
12TS832 and RC8321DeliveredVideo transmitter/receiver system
No.Item NameQtyStatusDescription
1312dBi High Gain RP SMA Male Omni Foldable2Delivered40cm Antennas for communication
14EBYTE E32 900 30D3Delivered900MHz RC transmitter/receiver modules
15ARDUINO UNO1DeliveredMiddleman between transmitter and GUI
16MP1584EN 3A3DeliveredStepdown Modules for power management
17JX Servo PDI-1181MG 18g 3.5KG6DeliveredHigh-torque servo motors for control surfaces

Software

No.Software ComponentDescription
1Embassy HAL (stm32h7xx-hal)Hardware abstraction layer for STM32H7 microcontrollers
2NalgebraLinear algebra library for flight dynamics calculations
3mpu9250Library for interfacing with the MPU-9250 gyroscope
4dshot-rsDigital motor protocol implementation for ESC control
5pidProportional-Integral-Derivative control algorithm implementation
6madgwickOrientation filter algorithm for sensor fusion
7heaplessMemory allocation utilities for embedded systems
8embedded-hal-busCommunication bus abstractions for embedded hardware
9eeprom24x-rsInterface library for AT24C256 EEPROM
10ebyte-e32-rsDriver for Ebyte E32 LoRa modules for wireless communication
  1. [Reference Link]