Project Drohnen

From JoBaPedia
Jump to navigation Jump to search

Drohnen

Taranis Q X7

Docker Build Environment

A build is only fully supported with some debian environments (see OpenTX 2.2 Linux Build Instructions). Using docker to solve this for opensuse:

sudo zypper in docker
sudo systemctl start docker
sudo usermod "$USER" -a -G docker

Create docker image

Roughly following OpenTX-2.3-Docker-Build-Instructions

Opened issue https://github.com/opentx/opentx/issues/6773 to get rid of the sed requirement below

tag="release/2.3.14"
pcb="X7"
opts="-DGVARS=YES -DLUA=YES -DLUA_COMPILER=YES -DHELI=NO -DDEBUG=NO -DCMAKE_BUILD_TYPE=Release"

git clone --recursive https://github.com/opentx/opentx.git
cd opentx
git checkout f7163806f6061cb0a806e5d9f5d2328cbe5f3550
cp -av radio/util/Dockerfile /tmp/
git checkout "$tag"
cd radio/util
mv -v /tmp/Dockerfile .
# sed -i 's@/debian/pool@/debian-archive/debian/pool@' Dockerfile
docker build -t "opentx-$tag" .
cd -
mkdir "build-$pcb"
docker run -v "$PWD:/opentx" -e "OPENTX_VERSION_SUFFIX=$tag" -w "/opentx/build-$pcb" "opentx-$tag" cmake -DPCB="$pcb" $opts ../
docker run -v "$PWD:/opentx" -e "OPENTX_VERSION_SUFFIX=$tag" -w "/opentx/build-$pcb" "opentx-$tag" make firmware

Other build options (e.g PCB, TRANSLATIONS, ...) can be looked up with

docker run -v "$PWD:/opentx" -e "OPENTX_VERSION_SUFFIX=$tag" -w "/opentx/build-$pcb" "opentx-$tag" cmake -LH

Companion

Companion can be built with

docker run -v "$PWD:/opentx" -e "OPENTX_VERSION_SUFFIX=$tag" -w "/opentx/build-$pcb" "opentx-$tag" make companion23

Run companion within docker (for testing, no usb access)

xopts="-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix"
docker run -v "$PWD:/opentx" -e "OPENTX_VERSION_SUFFIX=$tag" -w "/opentx/build-$pcb" $xopts "opentx-$tag" ./companion23

Companion runs fine in the opensuse host OS (for normal use, including talking with radio via usb)

"build-$pcb/companion23"

Flash Firmware

  • Copy "build-$pcb"/firmware.bin to the SD cards Firmware directory
  • Insert SD card into the sender
  • Start sender in bootloader mode (press left and right trim to the inside while powering on)
  • Select firmware in menu and start update

or

  • Install dfu-util (e.g. github) and copy to /usr/local/bin
  • Configure companion Settings/Communication to use that path
  • Switch off Taranis
  • Plug in USB
  • Read firmware as backup
  • Read Models as backup
  • Write new firmware

New major releases need new sd card content from https://downloads.open-tx.org/2.3/release/sdcard/opentx-x7/

Betaflight

Disable ModemManager

sudo systemctl stop ModemManager
sudo systemctl disable ModemManager

Register STM32 as Udev Device

  • Create file /etc/udev/rules.d/45-stdfu-permissions.rules
# DFU (Internal bootloader for STM32 MCUs)
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
  • Activate changed rules
sudo udevadm control --reload-rules
sudo udevadm trigger

Build And Start Current Betaflight Configurator

git clone https://github.com/betaflight/betaflight-configurator.git
cd betaflight-configurator/
git checkout 10.5.1
sudo zypper in nodejs10
sudo npm install yarn -g
sudo npm install gulp -g
npm install
gulp release --linux64
apps/betaflight-configurator/linux64/betaflight-configurator

Build And Flash Betaflight Firmware

git clone https://github.com/betaflight/betaflight.git
cd betaflight
git checkout 4.0.6
make arm_sdk_install
make JHEF7DUAL
  • In Betaflight Configurator select "Firmware Update", then select "Load Firmware (local)".
  • Choose betaflight/obj/*.hex file
  • Select "Flash Firmware" (sometimes needed twice to start the flash)
  • After flash connect again. Log includes build time.

Useful Links

Flight Controller Config

  • Current target GepRC Stable F7 (mini 20x20): EXF722DUAL: flashed current version 4.2.5
  • R-XSR: Recv con (R4) + soldered S.Port (T3) (T3 unlike doc which uses T1 that I use for GPS)
  • GPS: 5-Pin conn (Uart1) is actually Uart5 but receive did not work -> soldered to pads worked
  • Buzzer: Buzzer/LED conn
  • LED strip: Buzzer/LED conn LED + Vid conn 5V/Gnd