Archiv der Kategorie: Allgemein

Dynamic RPM filter

Betaflights RPM-Filter läuft jetzt auch über BLHeli_S-Regler.

Allerdings ist Betaflight nur noch wirklich auf F4-Flightcontrols zu gebrauchen.

Aber wenn man einen F4+BLHeli_S hat (und der Copter mit Propwash kämpft), sollte man sich das schon anschauen. Zusammen mit dem Blackbox-Logging kann man da ganz ordentlich was rausholen.

Anleitungen gibt es auf Youtube genug. Und Infos von UAVtech (PID tuning principals)! Nur kurz auf der Text/Bildspur:

Vorbereitung, falls erforderlich: Sichere den Diff und update den Copter auf Betaflight 4.1.x. Stelle den Diff wieder her.

Entferne die Propeller!

Akku dran (für die ESCs).

Lade BLHeli-Configurator und RPM-fähige BLHeli-Firmware (passend zum ESC) herunter. Starte den Configurator, Verbinde, Read Setup (dann siehst du die nötige ESC-Version) und flashe die ESCs:

C-H-40 ist meine ESC-Version. Dazu das passende Hex file Version 16.73 (evtl neuere verfügbar) unter https://github.com/JazzMaverick/BLHeli/tree/JazzMaverick-patch-1/BLHeli_S%20SiLabs suchen und alle ESCs flashen.

Akku wieder ab.

Aktiviere in Betaflight DSHOT300 oder 600 und die bidirektionale Motorkommunikation und stelle die Anzahl Pole (=Magnete) ein (i.d.R. 12 für kleine 3″, 14 für 5″ Setups):

Wenn nun der Copter mit Akku betrieben wird, sieht man im Motor-Tab die Drehzahl und Fehlerrate:

Die Fehlerrate sollte <3% sein.

Im Filter-Tab aktiviert man die dynamische RPM-Filterei:

Sichern und fertig.

Dann Props wieder dran und einfliegen. PIDs optimieren und Filter nach und nach mit dem Schieber nach rechts öffnen. Mit Blackbox kann man den Noise auf den Gyrowerten gut sehen. Auch der Setpoint (=Gyro-ermittelte Drehrate) versus Stick-Input ist interessant (Überschwinger=>D zu klein oder zu lasch=>D zu groß).

Auf keinen Fall die anderen Filter einfach deaktivieren!

Taranis Q flasht RX

Die Taranis Q kann auch ihre Empfänger flashen – Anleitungen gibt’s zuhauf, aber als Nachschlagestelle packe ich es auch ins Blog:

Vorne unten an der Funke ist eine Gummi-Klappe, darunter befindet sich links ein Servoanschluss. Links GND, Mitte Plus und rechts Signal.

Da kommt der Empfänger dran.

Dann im SD-Card-Menü in den Ordner Firmwares (am PC vorher befüllen) und mit lange Enter gedrückt das Popup-Menü öffnen.

Dort externes Modul auswählen und Enter. Los geht’s!

Für die „alte“ Taranis X9D ist der Steckplatz im Modulschacht (die Pins sind da anders; die unteren 3 sind von unten: Signal PuTTY SSH Windows , Minus, Plus)! Da gehört dann der Empfänger hin.

Tune up your Sailfly-X

Buzzer-Einbau

An den unteren Lötpads neben dem Pfeil gehört der Buzzer. Den Mini-Buzzer gibt es z.B. hier.

/\ oB-  oB+

Ich habe den Crazybee F4 Pro V2.1 (ohne integrierten Rx).

Buzzer eingebaut

Runcam nano 3 und TBS unify nano 32

Die alte Kamera wiegt 3,4g. Das Set aus nano3 und Unify 3,5g. Die Bildqualität der nano3 ist etwas besser. Und der Unify hoffentlich auch. Den nötigen Micro-5pin-Stecker habe ich aus einem alten 8er zurecht gezwickt. So blieb die alte Kamera heile.

Die Pins sind:

GND(black) 5V(red) SA(green) Vcam(yellow) Vtx(blue)
Die nano3 passt genau in den Ausschnitt. Der Unify ist lose dahinter. Die Antenne ist in dem Längsloch mit einem Stück Balsa fixiert.

Betaflight V4.1.3

Das neue Betaflight benötigt eine VTX-Table, bevor man den VTX konfigurieren darf! Siehe auch hier. Für den Unify nano32:

vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 3
vtxtable powervalues 14 20 26
vtxtable powerlabels 25 100 400

Für die originale Kamera bietet Happy-Model auch eine VTX-Konfiguration an. Da stimmt der Service!

Happy-Model hat die Motoren nicht „Multiwii-konform“. Sie sind links-rechts getauscht (danke Happy-Model). Hier die Infoseite. Eigentlich muss man nur das ins CLI eingeben:

resource MOTOR 1 B07 
resource MOTOR 2 B08 
resource MOTOR 3 B10 
resource MOTOR 4 B06 
resource PWM 1 D07 
resource PWM 3 D11 
resource PWM 5 D10 
resource PWM 6 A11 
resource PWM 7 F08 

Hier mein voller Diff:

# diff

# version
# Betaflight / STM32F411 (S411) 4.1.3 Jan 16 2020 / 11:34:23 (543a5e1ba) MSP API: 1.42
# manufacturer_id: HAMO   board_name: CRAZYBEEF4DX   custom defaults: YES

# start the command batch
batch start

board_name CRAZYBEEF4DX
manufacturer_id HAMO

# name: Sailfly X

# resources
resource MOTOR 1 B07
resource MOTOR 2 B08
resource MOTOR 3 B10
resource MOTOR 4 B06
resource PWM 1 D07
resource PWM 3 D11
resource PWM 5 D10
resource PWM 6 A11
resource PWM 7 F08

# beeper
beeper -ON_USB

# serial
serial 0 64 115200 57600 0 115200
serial 1 2048 115200 57600 0 115200

# aux
aux 0 0 0 1300 2100 0 0
aux 1 1 1 1700 2100 0 0
aux 2 13 2 1300 1700 0 0
aux 3 35 2 1700 2100 0 0

# vtxtable
vtxtable bands 5
vtxtable channels 8
vtxtable band 1 BOSCAM_A A FACTORY 5865 5845 5825 5805 5785 5765 5745 5725
vtxtable band 2 BOSCAM_B B FACTORY 5733 5752 5771 5790 5809 5828 5847 5866
vtxtable band 3 BOSCAM_E E FACTORY 5705 5685 5665 5645 5885 5905 5925 5945
vtxtable band 4 FATSHARK F FACTORY 5740 5760 5780 5800 5820 5840 5860 5880
vtxtable band 5 RACEBAND R FACTORY 5658 5695 5732 5769 5806 5843 5880 5917
vtxtable powerlevels 3
vtxtable powervalues 14 20 26
vtxtable powerlabels 25 100 400

# master
#set acc_calibration = -75,175,-66
set rssi_channel = 16
set fpv_mix_degrees = 40
set serialrx_provider = SBUS
set dshot_idle_value = 500
set motor_poles = 12
set vbat_min_cell_voltage = 300
set vbat_warning_cell_voltage = 310
set ibata_scale = 1175
set small_angle = 180
set pid_process_denom = 1
set osd_warn_esc_fail = OFF
set osd_vbat_pos = 2401
set osd_rssi_pos = 2361
set osd_tim_1_pos = 54
set osd_tim_2_pos = 2422
set osd_flymode_pos = 408
set osd_g_force_pos = 65
set osd_throttle_pos = 2392
set osd_current_pos = 2369
set osd_mah_drawn_pos = 2412
set osd_craft_name_pos = 2442
set osd_warnings_pos = 329
set osd_disarmed_pos = 426
set vtx_power = 1
set vtx_low_power_disarm = UNTIL_FIRST_ARM
set vtx_freq = 5860
set gyro_1_sensor_align = CW90FLIP
set gyro_1_align_pitch = 1800
set gyro_1_align_yaw = 900
set name = Sailfly X

profile 0

# profile 0
set dterm_lowpass2_type = BIQUAD
set vbat_pid_gain = ON
set feedforward_transition = 30
set iterm_relax_type = GYRO
set iterm_relax_cutoff = 11
set p_pitch = 24
set i_pitch = 78
set d_pitch = 26
set f_pitch = 90
set p_roll = 29
set d_roll = 30
set f_roll = 95
set p_yaw = 45
set i_yaw = 55
set f_yaw = 25
set d_min_roll = 18
set d_min_pitch = 20
set d_min_boost_gain = 30
set d_min_advance = 0

rateprofile 0

# rateprofile 0
set roll_rc_rate = 120
set pitch_rc_rate = 120
set roll_expo = 23
set pitch_expo = 23
set roll_srate = 75
set pitch_srate = 75
set tpa_rate = 80
set tpa_breakpoint = 1700
set throttle_limit_type = SCALE
set throttle_limit_percent = 75

# end the command batch
batch end

Und heute noch Props reversed (out statt in).

Make UK(65) great again

Jetzt habe ich den alten UK65 wieder hervorgekramt.

Der kleine 22g-Copter war damals echt schrottig. Keine Power, irre schnell die Akkus geleert, Kamera kaputt… keine Freude!

Einmal ESCs auf JESC mit 48khz PWM updaten – ich erkenne ihn nicht wieder! Plötzlich Power, die ihn an die Decke katapultiert.

Die Akkus und den Stecker habe ich alle nachgelötet.

https://blog.whichfpvkwad.com/2019/07/02/complete-guide-to-improve-the-flight-of-your-ur65-uk65-us65-drone/

https://blog.whichfpvkwad.com/2020/01/06/increase-flight-time-of-your-tinywhoop-by-flashing-esc-blheli_s-jesc/

https://rotorbuilds.com/build/21167

NodeMCU

Dank Heise weiß auch ich nun, dass die ESP8266 jetzt in Arduino integriert sind.

Und so läuft jetzt endlich die Temperaturüberwachung mit DS18B20.

Sehr schön. Und zwischen den Messungen legt er sich brav in Tiefschlaf mit 0,2mA. Da hält der Lipo eine Weile.

Schaltplan ist bocksimpel – NodeMCU 5V-Pin und GND an Akku (1s) und Pin D4 an den Signalpin (Mitte) des DS18B20, dazu noch einen Pullup 4,7k an 3,3V. VDD und GND des DS18B20 noch an 3,3V und GND. Fertig. Der parasitic mode hat bei mir nicht geklappt, dazu hätte ich noch einen FET gebraucht, der während der Messung den Pullup überbrückt. Da ist die normale Versorgung des Sensors einfacher zu haben.

Meinen Code teile ich auch:

#include <ESP8266WiFi.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define D0 16
#define D1 5
#define D2 4
#define D3 0
#define D4 2
#define D5 14
#define D6 12
#define D7 13
#define D8 15
#define D9 3
#define D10 1

#define myPeriodic   60 //in sec
#define ONE_WIRE_BUS D4

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature DS18B20(&oneWire);

float prevTemp = 0;
const char* server = "api.thingspeak.com";
String apiKey ="<<insert API key here>>";
const char* MY_SSID = "my54";
const char* MY_PWD = "<<WLAN password>>";

void setup() {
 Serial.begin(115200);
 delay(1000);
 connectWifi();
}

void loop() {
 float temp;
 
 DS18B20.requestTemperatures();
 temp = DS18B20.getTempCByIndex(0);
 
 Serial.print("t=");
 Serial.println(temp);

 if (temp<84.0)
  sendTemperatureTS(temp);
 
 WiFi.mode(WIFI_OFF);
 WiFi.forceSleepBegin();
 delay(1);
 Serial.println("power down");
 ESP.deepSleep(myPeriodic*1000000);
}

void connectWifi()
{
 Serial.print("Connecting to "+*MY_SSID);
 WiFi.begin(MY_SSID, MY_PWD);
 while (WiFi.status() != WL_CONNECTED) {
  delay(1000);
  Serial.print(".");
 }
 Serial.println("Connected");
}//end connect

void sendTemperatureTS(float temp)
{
 WiFiClient client;
 if (client.connect(server, 80)) {
  Serial.println("Transmitting data");
  String postStr = apiKey;
  postStr += "&field1=";
  postStr += String(temp);
  postStr += "\r\n\r\n";
  client.print("POST /update HTTP/1.1\n");
  client.print("Host: api.thingspeak.com\n");
  client.print("Connection: close\n");
  client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
  client.print("Content-Type: application/x-www-form-urlencoded\n");
  client.print("Content-Length: ");
  client.print(postStr.length());
  client.print("\n\n");
  client.print(postStr);
  delay(1000);
 }//end if
 client.stop();
}//end send

Aufgeschraubt

Mal wieder was aufgemacht: Die DX LCD-Monitore. Echter Pfusch: Die Controller sind am zusammengefalteten und geknickten Flachbandkabel schief draufgeklebt. Weil sonst der Deckel nicht zugeht…

20161214_205411_web

Tuner 600

20161007_171100_web

Diese Dose ist ihre 11,50EUR echt wert. Die Tasten vom Tyros und Roland funktionieren wieder alle! Tuner 600 eignet sich spezifisch auch für Grafitkontakte. Und riecht fruchtig erfrischend 🙂