Skip to content

hpvdt/Falcon_flight_stick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Falcon Flight Stick

A custom-designed flight control stick for the Falcon Aircraft project — designing both hardware and firmware for force sensing, CAN communication, and USB HID joystick interfacing.

image image

Overview

The Falcon Flight Stick is a force-sensing joystick that measures user input via strain gauges and communicates with the aircraft’s control system through CAN bus or to a computer host via USB-C.
This project demonstrates my ability to proficiently design, route, and program an embedded system from the ground up — including power delivery, signal integrity, and firmware architecture.


Key Features

  • MCU Core: STM32F103CBU6 managing all board-level events with an external 8Mhz Oscillator
  • Sensing System: Three strain gauges read via a precision Texas Instruments ADS131M03IRUK ADC (32-bit SPI interface)
  • Connectivity:
    • USB-C (HID joystick or virtual COM port)
    • CAN bus daisy-chain communication
  • Memory: 1×128-byte EEPROM for calibration data
  • Power System:
    • TI TPS62177 step-down converter for higher current ditial power
    • ADI LT1962 LDO (3.3V) for low noise, low current analog power
    • Automatic protection between USB-C and LiPo (12V) sources
  • PCB Stackup: 4-layer board with separated analog/digital planes for signal integrity
  • Breakout Button Matrix:
    • button matrix allowing for a hotswappable and fully customizable button interface on the joystick
    • Up to 25 individual buttons, all allowable for interrupts

Hardware Design

Hardware Repository

The latest hardware version is Falcon Flight Stick Rev5.
Previous revisions were experimental or undocumented.

Design Breakdown

The STM32 MCU is programmed through ST-LinkV3 (SWD) and communicates via UART for debug and development.
Differential USB data lines enable HID or COM functionality, depending on firmware.

Strain gauge signals are processed through a TI ADC, which triggers SPI reads via a DRDY interrupt.
Processed values are sent to the servo controller board (via CAN) or USB interface.


Power Architecture

The power subsystem ensures stable operation from multiple sources:

  • 12V LiPo (CAN chain) or 5V USB-C
  • Both inputs are protected from backfeed
  • Outputs:
    • 3.3V Digital (MCU, logic)
    • 3.3V Analog (ADC, strain gauge front-end)

These rails are physically isolated to minimize noise and ground-reference drift.


Schematics

Full schematic set:
Schematic


PCB Layout

Summary

  • 4-layer stackup for power and noise isolation
  • Separated analog/digital ground and power planes
  • Power trace widths sized by current draw
  • Labelled parts for developer readability

Views

Full Layout:

Layer 1: Signal

Layer 2: Power

Layer 3: GND / AGND

Layer 4: Signal 2


3D Model


Firmware (Planned / In Progress)

Example outline:

  • USB HID joystick emulation via STM32 HAL
  • CAN message handling for actuator control
  • ADC data acquisition and digital filtering
  • EEPROM calibration storage

Tools Used

  • KiCad 8.0 – PCB and schematic design
  • STM32CubeIDE – Firmware development & MCU pinout planning
  • JLCPCB – Fabrication and assembly
  • SolidWorks – 3D mechanical integration
  • GitHub / Git – Version control

About

Flight Stick HW and SW files for the Falcon Aircraft

Resources

Stars

Watchers

Forks