Project Drohnen: Difference between revisions
Line 78: | Line 78: | ||
New major releases need new sd card content from https://downloads.open-tx.org/2.3/release/sdcard/opentx-x7/ | New major releases need new sd card content from https://downloads.open-tx.org/2.3/release/sdcard/opentx-x7/ | ||
Don't forget to save your own sounds first (e.g. SOUNDS/de/hello :) ) | |||
== Betaflight == | == Betaflight == |
Revision as of 10:05, 5 August 2021
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
Issue https://github.com/opentx/opentx/issues/6773 to get rid of the sed requirement below is solved. But in the meantime OpenTX has removed the Dockerfile from the repo. It still works, but you need to checkout an older git hash to retrieve it.
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. from github git://git.code.sf.net/p/dfu-util/dfu-util) and copy to /usr/local/bin
- Configure companion Settings/Communication to use that path
- Switch off Taranis
- Plug in USB (dfu-util -l should show the device now, dmesg should show "Product: STM32 BOOTLOADER" and lsusb a line like "Bus 007 Device 025: ID 0483:df11 STMicroelectronics STM Device in DFU Mode")
Found DFU: [0483:df11] ver=2200, devnum=24, cfg=1, intf=0, path="7-1.1", alt=3, name="@Device Feature/0xFFFF0000/01*004 e", serial="3795336E3138" Found DFU: [0483:df11] ver=2200, devnum=24, cfg=1, intf=0, path="7-1.1", alt=2, name="@OTP Memory /0x1FFF7800/01*512 e,01*016 e", serial="3795336E3138" Found DFU: [0483:df11] ver=2200, devnum=24, cfg=1, intf=0, path="7-1.1", alt=1, name="@Option Bytes /0x1FFFC000/01*016 e", serial="3795336E3138" Found DFU: [0483:df11] ver=2200, devnum=24, cfg=1, intf=0, path="7-1.1", alt=0, name="@Internal Flash /0x08000000/04*016Kg,01*064Kg,07*128Kg", serial="3795336E3138"
- 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/ Don't forget to save your own sounds first (e.g. SOUNDS/de/hello :) )
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
- Configure BMP280: https://github.com/betaflight/betaflight/wiki/Barometer-Configuration-(3.2)
- Betaflight Slack (User joba1): https://betaflightgroup.slack.com/messages
- Config of my FC (except I2C/BMP280?): https://github.com/betaflight/betaflight/blob/master/src/main/target/JHEF7DUAL/target.h
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