/MicroQuad

This project is the quadcopter controller firmware for a bluetooth-based ESP32 microcontroller, using common off-the-shelf flight controller components

Primary LanguageC

MicroQuad

An ESP32 based micro-quadcopter project [Under Development]

This repo is based on the ESP32 architecture to implement a custom Bluetooth controlled 'smart' quadcopter, with a custom PCB design, using the BetaFPV 65S frame + brushless motors, it is in the early stages.

Ultimately, this project will be broken up into components that will make it easier for open-source developers to build their own quadcopter designs. It will enable sensor fusion for common IMU chips (like the MPU6000, MPU6050, ICM426XX, as well as magnetometers and GPS units) to allow for easy customization.

Features

  • ESP32-S3 SoC
  • ICM42688P Accelerometer + Gyro
  • RYS8830 GPS
  • QMC5883L Magnetometer
  • BME280 Air Pressure Sensor
  • VL53L1CX Range Finder
  • MCP73871T Battery Mgmt + Load Sharing
  • Breakout Board with USB-C via Small Ribbon Cable

alt text

To Build & Flash

  • Run idf.py build to check if the project builds
  • Run idf.py flash to flash to a connected ESP32

To Debug in VS Code

  • Launch OpenOCD using the command idf.py openocd
  • In VS Code's debug menu click 'Start Debugging' with the Eclipse CDT Remote target

Notes on Hacks

  • Currently there are a few hardcoded hacks here:
  • In VS Code's .vscode/settings.json, we are currently hardcoding a lot of esp32 executable paths which is not ideal because it will break whenever versions change
  • Also in settings.json we are hard coding the device serial port which is even hackier

TODO List

  • Add iOS controller codebase
  • Add PCB schematic + gerber files
  • Update firmware to utilize radians everywhere in the codebase instead of using degrees
  • Clean up the DebugHelper, there is a lot of now-unncessesary code in there
  • Break up the codebase in general, for example the core stability logic should be extracted to a different component from the Logger