DJI und das leidige PAL

Die DJI-FPV-Brille erzeugt bei schwachem Signal sehr wohl einen “Black-Screen”, dabei zeigt die Brille eine Sekunde lang das DJI-Logo.

Das passiert nur mit PAL.

Mit Signal-Format NTSC wird das Bild nur zu Rauschen und kommt auch sofort wieder.

Konsequenz: Die meisten Flugobjekte habe ich gerade auf NTSC umgestellt.

Ubuntu auf dem Laptop

Meine Spezial-Tastenkürzel

Laptop Lautsprecher an bei gestecktem Kopfhörer (Strg+Shift+S):

sh -c 'amixer -c 0 sset Speaker on && amixer -c 0 sset Speaker 100%'

Display heller bzw. dunkler (Strg+Shift+Cursor auf/ab):

sh -c 'gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepUp'

sh -c 'gdbus call --session --dest org.gnome.SettingsDaemon.Power --object-path /org/gnome/SettingsDaemon/Power --method org.gnome.SettingsDaemon.Power.Screen.StepDown'

Bildwiederholrate per command-line ändern (Strg+Shift+D/F) – das ist etwas unintuitiv:

#sh -c '/home/simon/set-wayland-cfg.sh 1920x1080@60.000499725341797 1'
#sh -c '/home/simon/set-wayland-cfg.sh 1920x1080@240.00050354003906 1'

#!/bin/bash
set -xeu -o pipefail
resolution="$1"
scale="$2"
function get_serial() {
   serial="$(gdbus call --session --dest org.gnome.Mutter.DisplayConfig \
   --object-path /org/gnome/Mutter/DisplayConfig \
   --method org.gnome.Mutter.DisplayConfig.GetResources | awk '{print $2}' | tr -d ',')"
   echo $serial
}
serial=$(get_serial)
gdbus call --session --dest org.gnome.Mutter.DisplayConfig \
   --object-path /org/gnome/Mutter/DisplayConfig \
   --method org.gnome.Mutter.DisplayConfig.ApplyMonitorsConfig \
   $serial 1 "[(0, 0, $scale, 0, true, [('eDP-1', '$resolution', [] )] )]" "[]"

Automatisierung

Der Killer-LAN kommt nicht aktiv aus dem suspend: Fix: Script in /usr/lib/systemd/system-sleep

#script restorelan

#!/bin/sh
if [ "${1}" == "pre" ]; then
   # Do the thing you want before suspend here, e.g.:
   echo "we are suspending at $(date)…" > /tmp/systemd_suspend_test
elif [ "${1}" == "post" ]; then
   # Do the thing you want after resume here, e.g.:
   echo "…and we are back from $(date)" >> /tmp/systemd_suspend_test
   modprobe -r alx
   modprobe alx
fi

Mit PulseEffects kann ich den Frequenzgang der Laptop-Quäken tunen:

Und den Equalizer bei eingesteckten Kopfhörern automatisch abschalten:

#starte gnome-session-properties und dann dieses Skript in Autostart eintragen: /home/simon/phoneeq.sh

#!/bin/bash
acpi_listen | while IFS= read -r line;
do
     if [ "$line" = "jack/headphone HEADPHONE plug" ]
     then
        dconf write /com/github/wwmm/pulseeffects/sinkinputs/equalizer/state false
        notify-send "headphones connected. Sound is flat."
     elif [ "$line" = "jack/headphone HEADPHONE unplug" ]
     then
        dconf write /com/github/wwmm/pulseeffects/sinkinputs/equalizer/state true
        notify-send "headphones disconnected. Sound is equalized."
     fi
done

Linux-Welt

dconf ist wohl sowas wie die Registry.

modprobe lädt/entlädt Kernel-Module. Dazu passen lsmod und modinfo.

lsusb -t zeigt z.B. angeschlossene USB-Geräte und die Datenrate. War interessant, weil ein USB3-Stick zu langsam war. Nach einem Reboot wurde er dann korrekt erkannt.

gdbus dient zum Zugriff auf laufende Programme, Treiber, etc. Stichwort D-Bus.

Für Audio gibt es auch zig Tools. pavucontrol, pulseeffects, pa-info, pactl, pacmd, paplay, parecord, alsamixer, amixer… da hab ich JACK noch gar nicht erwähnt…

Strom sparen

Powertop: sudo powertop –auto-tune

Reduce power per script: sudo pm-powersave true

gnome-settings: Energie sparen-Profil auswählen.

Display-Refreshrate auf 60Hz und dunkel stellen.

Fazit: Laptop bleibt leise und kühl. Auch wenig anspruchsvolle Spiele halten den Lüfter noch leise.

Kompatibilität

Es laufen viele Programme: Die ganzen inav, betaflight, blheli-Konfiguratoren, OpenTX-Companion, Steam-Spiele, Skype (auch im Chromium-Browser).

Der nvidia-Originaltreiber unterstützt “PRIME” (Optimus), damit bleibt der Laptop kühl und suspend klappt ohne Absturz. Ein bisschen scary ist das Vergeben eines “Passworts” für den SecureBoot. Das braucht Linux offenbar, um sich Zugriff auf die Hardware zu verschaffen. Das Passwort wird beim Reboot einmalig zum “Enroll MOK” abgefragt. Fertig.

Netflix und Amazon-Prime spielen ihre Medien ab.

In Firefox kann ich mein Profil importieren, Mailvelope läuft.

VLC spielt alle lokalen Medien ab.

Der HP-Drucker läuft einfach (und tatsächlich auch schneller als unter Windows, wo er ewig wartet bis er druckt).

Das Hersteller-Bildschirm-Farbprofil (ICC) lässt sich importieren.

Dark Mode: Ich nehme Qgir-dark, dazu Schriften auf 0,9 skaliert. Im gedit muss man in den Einstellungen (Schrift und Farbe) separat den dark-mode aktivieren.

Für die fehlenden Tastaturleds nehme ich Lock Key, das blendet in der Infoleiste die zwei Symbole für Caps- und Numlock ein.

SD-Card-Reader, Webcam, Ton, Mikrofon, kurzum, die Laptop-Hardware wird fast vollständig unterstützt. Ausnahmen: Externes Headset/Mikro, Tastatur-RGB-Beleuchtung und Spezialtasten (Helligkeit, Wifi, Lüfter). Der/die Lüfter lassen sich nicht direkt ansteuern. Die drei Energieoptionen (Leistung, Ausgewogen, Sparsam) funktionieren aber.

Dateien kopieren ist deutlich langsamer als unter Windows (es heißt, NTFS wäre ein reverse-engineered Treiber in Linux und daher nicht performant…).

grub knallt sich leider vor den Windows-Bootloader. Aber ich boote eh fast nur Linux. Ich hab’s noch nicht geschafft, Ubuntu aus dem Windows-Loader zu starten.

Wenn’s irgendwie mal komisch läuft, mach nen Neustart. In der Hinsicht läuft Windows “runder”. Linux wirkt auch mehr zusammengeschustert. Aber Ubuntu macht auf dieser Maschine Spaß. Ich habe das Gefühl, volle Kontrolle über das System zu haben.

Hin und wieder bleibt (wohl beim/nach dem Zocken) irgendwas “hängen” bzw läuft im Hintergrund (gnome-shell), da dreht der Lüfter auf. Da hilft dann nur neu anmelden oder Neustart.

Der alte VAIO lief ebenso sehr gut mit Ubuntu. Da haperte es auch mit den Spezialtasten (gibt aber einen Hack). Auf dem Gigabyte habe ich einfach andere Tastenkürzel aktiviert.

Jumper T-lite

Ich habe mir die kleine T-lite besorgt.

Das interne Modul muss mit serial multi geflasht werden (ich habe die only CC2500 bestellt, aber auch da muss die Multi-Firmware rein).

Damit man die Modelle am PC managen kann, braucht es die aktuelle Nightly vom Companion.

Dazu habe ich noch das “Klonen” ausprobiert. Dazu stellt man in einem Dummymodell das Multi auf FrSkyRX und Subtyp auf CloneRX. Dann Bind-Mode. Jetzt bindet man einfach mit der original Taranis und schon klont das Multi die ID. Top!

Für alle Modelle muss man dann aber Clone D8/D16 auswählen.

Und die Schalter sind weniger, d.h. Schalter sind auch umzubelegen.

XJB145 Tune

Für die Kollegen:

Ich hab schnell mal die PIDs vom XJB145 (auf Betaflight 3.5) optimiert. Die PIDtoolbox macht’s möglich!

# diff

# masterset 
gyro_lowpass_hz = 120
set dyn_notch_quality = 15
set dyn_notch_width_percent = 30
set rc_smoothing_type = FILTER
set blackbox_p_ratio = 64
set small_angle = 180
set pid_process_denom = 2
set debug_mode = GYRO_SCALED

# profile
profile 0
set dterm_notch_hz = 234
set dterm_notch_cutoff = 200
set iterm_rotation = OFF
set smart_feedforward = ON
set iterm_relax = RP
set p_pitch = 55
set i_pitch = 40
set d_pitch = 23
set p_roll = 45
set i_roll = 40
set d_roll = 21
set p_yaw = 45
set i_yaw = 90
set f_yaw = 90
set abs_control_gain = 5

# rateprofile
rateprofile 0
#set thr_mid = 0
#set thr_expo = 30
#set roll_expo = 20
#set pitch_expo = 20
#set roll_srate = 80
#set pitch_srate = 80
set tpa_rate = 20
set tpa_breakpoint = 1050

Yaw ist etwas zickig – egal wie ich P und I rauf und runter setze, es schießt immer schnell ein und erreicht dann erst flach den Setpoint. Könnte natürlich auch was mit den anderen Optionen zu tun haben. Aber ich finde, er fliegt auch so super.

Hier noch die alten PIDs, leicht zu hoch, aber noch unkritisch (Filter auf default):

set dterm_notch_cutoff = 0
set iterm_rotation = OFF
set smart_feedforward = ON
set iterm_relax = RP
set p_pitch = 57
set i_pitch = 40
set d_pitch = 24
set f_pitch = 60
set p_roll = 55
set i_roll = 40
set d_roll = 24
set f_roll = 60
set p_yaw = 65
set i_yaw = 60
set f_yaw = 60
set abs_control_gain = 5

Lipo-Vergleich – Innenwiderstand

Die Messungen stammen von einem Hota D6+, sind also eher für den Vergleich. Wobei der Spannungsabfall unter Last im Flieger zu einer Messung gut passt.

  • R-Line 650 95C – ca 12mOhm/Zelle
  • R-Line 850 95C – ca 10mOhm/Zelle
  • Tattu 450mAh 75C Stick – ca. 40mOhm/Zelle (!)
  • Tattu 850 75C – ca. 20mOhm/Zelle
  • Nanotech 950 25C – ca. 20mOhm/Zelle

ZOHD Dart 250g

Der neue Dart 250g.

Mit leicht gekürzten Flügeln, Motor mit Abstand und gut mit Sekundenkleber verleimt.

Ohne Lipo liegt er bei ca. 175g. Mit 6s 650 dann bei 287g. So wird er seinem Namen leider nicht gerecht. Dafür hat er DJI HD FPV drin.

Der Motor ist ein Brotherhobby VY1507-3100, der soll an 6s noch gehen. Da bin ich mal gespannt, ob der nicht gleich abfackelt. Propeller ist ein HQProp 3x5x3. Damit sollten Pitchspeeds von über 270km/h möglich sein.

Der Regler ist ein Holybro Tekko32 F3 35A. Den hab ich auf 30A begrenzt, damit der Motor nicht gekillt wird. Das Schöne am BLHeli_32 ist, dass man Telemetrie mit Strom, Spannung, Drehzahl und Temperatur bekommt (wenn man denn einen freien Serialport hat). Und Inav kann die auch anzeigen. So langt eine Mini-FC (F4-XSD) mit 4 UARTs. Die durfte ich gleich noch mal für den Softserial (GPS!) anfädeln, weil die letzte Klebung die dünnen Drähte nicht gehalten hatte.

Aber für die ca. 4 Gramm mehr könnte man auch einfach wieder die Omnibus F4 Pro reinbauen und sich den ganzen Terz mit dem Fädeldraht sparen.

Mit dem CRSF Empfänger kriege ich die Telemetrie sogar auf die Funke.

  • UART1: CRSF
  • UART3: ESC
  • UART6: DJI-OSD
  • SS1: GPS

Im INAV-Konfigurator gibt es sogar ein Preset für den Dart 250g. Sieht alles sehr zahm aus.

Multi-Modul und FrSky – RC Framerate

Da bin ich beim Tunen drübergestolpert – mein Setpoint sieht sehr unruhig aus – wie als würde das RC-Filtern nicht richtig arbeiten. Stellt sich raus:

Ich habe alle Modelle im “D16”-Modus gebunden. Da sendet das Modul die 16 Kanäle auf zweimal – und der Empfänger gibt die dann mit ca. 100 Hz aus. Dummerweise wiederholt er die gleichen Werte immer zweimal.

Man muss unbedingt den Modus D16 8ch nehmen!

Vorsicht: Receiver-ID, Frequenztuning und Failsafe werden beim Umschalten des Subprotokolls zurückgesetzt.

Vorher

Nachher

Noch ein Flieger-Bau – Warum nicht?

Ich hab einen ZOHD Dart 250g bestellt. Ja, der kostet über doppelt so viel wie ein Phenix60. Dazu kommt der auch noch als PNP, Kit gibt’s grad nicht (und kostet dann auch kaum weniger). Aber ich musste ihn haben. Der Phenix wird nämlich nie ein Speeder sein…

Dazu muss der Dart 250g dann zünftig overpowered (6s) werden. Da liegt noch ein EFAW 2407R-2800 rum, kann man ja gemütlich mit einer 4,1² APC anfangen. Besorge ich noch einen Tekko32 65A ESC, schmeiß noch ein XSD-F4, BN220 GPS, CRSF nano, Lipo-Beeper, Servo-BEC und MiniFPV (Baby-Ratel und TBS Unify Pro V3) dazu, sollte schon was schnelles rauskommen. Ich hab vor einigen Monaten ein Video gesehen, der hat den Dart ordentlich getuned. Kann also klappen. Ach ja – sub-250g ist dann nicht mehr drin.

Dazu noch ein paar Optimierungen:

  • Winglets nach außen geneigt und ordentlich fixiert/versteift.
  • Flügelspitzen gerade abschneiden (kein curved-up).
  • Mit Tape leicht laminieren.
  • Motor mit 2-3cm Abstandhalter. Ich brauche für den fetten Motor eh einen alternativen Mount.
  • Heck etwas schnittiger zuschneiden.
  • Alufolie zwischen GPS und ESC/FC.

Neuer alter F1-Wing

Beinahe kam der F1-Wing von Sonic-Modell schon als “analoger” “LOS”-Flieger in die Luft. Aber dann wollte ich mehr. So wie 6s.

Dann kann man den Flieger auch gleich neu aufsetzen, mit INAV und allen Schikanen:

  • Omnibus F4 Pro v2
  • BN220 GPS
  • F80 Pro 2500kv
  • 4,7² APC
  • Tekko32 F3 65A Metal ESC mit BLHeli_32 und Telemetrie
  • Irgendwelche digitalen Servos (hab ich beim Erstbau schon rein)
  • Die gute Runcam Eagle
  • Rush Tank VTX
  • Lipo-Beeper
  • 6s 1050mAh R-Line Lipo

Ich fand ihn zuerst etwas hässlich, aber das Design überzeugt mit durchdachten Details und er ist unglaublich stabil. Der Schaum ist das festeste EPP, das ich je gefühlt hab. Da drückst du keine Delle rein. Die Flügel haben mehrere Carbonstreben und der Holm ist ein recht langes 1cm Quadratkantrohr. Da geht nix ab.

Da steht er natürlich in direkter Konkurrenz mit der Stryker #2.