To build the firmware or the simulator, you need to clone the repository using git:
git clone https://github.com/okalachev/flix.git
cd flix
-
Install Arduino CLI:
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=~/.local/bin sh
-
Install Gazebo 11:
curl -sSL http://get.gazebosim.org | sh
Set up your Gazebo environment variables:
echo "source /usr/share/gazebo/setup.sh" >> ~/.bashrc source ~/.bashrc
-
Install SDL2 and other dependencies:
sudo apt-get update && sudo apt-get install build-essential libsdl2-dev
-
Add your user to the
input
group to enable joystick support (you need to re-login after this command):sudo usermod -a -G input $USER
-
Run the simulation:
make simulator
-
Install Homebrew package manager, if you don't have it installed:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install Arduino CLI, Gazebo 11 and SDL2:
brew tap osrf/simulation brew install arduino-cli brew install gazebo11 brew install sdl2
Set up your Gazebo environment variables:
echo "source /opt/homebrew/share/gazebo/setup.sh" >> ~/.zshrc source ~/.zshrc
-
Run the simulation:
make simulator
- Install QGroundControl mobile app on your smartphone.
- Connect your smartphone to the same Wi-Fi network as the machine running the simulator.
- If you're using a virtual machine, make sure that its network is set to the bridged mode with Wi-Fi adapter selected.
- Run the simulation.
- Open QGroundControl app. It should connect and begin showing the virtual drone's telemetry automatically.
- Go to the settings and enable Virtual Joystick. Auto-Center Throttle setting should be disabled.
- Use the virtual joystick to fly the drone!
- Connect your USB remote control to the machine running the simulator.
- Run the simulation.
- Calibrate the RC using
cr
command in the command line interface and stop the simulation. - Copy the calibration results to the source code (
gazebo/joystick.h
). - Run the simulation again.
- Use the USB remote control to fly the drone!
- Install Arduino IDE (version 2 is recommended).
- Install ESP32 core, version 3.0.5 (version 2.x is not supported). See the official Espressif's instructions on installing ESP32 Core in Arduino IDE.
- Install the following libraries using Library Manager:
FlixPeriph
, the latest version.MAVLink
, version 2.0.11.
- Clone the project using git or download the source code as a ZIP archive.
- Open the downloaded Arduino sketch
flix/flix.ino
in Arduino IDE. - Build and upload the firmware using Arduino IDE.
-
Windows users might need to install USB to UART bridge driver from Silicon Labs.
-
Compile the firmware using
make
. Arduino dependencies will be installed automatically:make
You can flash the firmware to the board using command:
make upload
You can also compile the firmware, upload it and start serial port monitoring using command:
make upload monitor
See other available Make commands in the Makefile.
Before flight you need to calibrate the accelerometer:
- Open Serial Monitor in Arduino IDE (use use
make monitor
command in the command line). - Type
ca
command there. - Copy calibration results to the source code (
flix/imu.ino
).
- Install QGroundControl mobile app on your smartphone.
- Power the drone using the battery.
- Connect your smartphone to the appeared
flix
Wi-Fi network. - Open QGroundControl app. It should connect and begin showing the drone's telemetry automatically.
- Go to the settings and enable Virtual Joystick. Auto-Center Throttle setting should be disabled.
- Use the virtual joystick to fly the drone!
Before flight using remote control, you need to calibrate it:
- Open Serial Monitor in Arduino IDE (use use
make monitor
command in the command line). - Type
cr
command there. - Copy calibration results to the source code (
flix/rc.ino
).
Then you can use your remote control to fly the drone!
See firmware overview for more details.