Da qualche giorno è stato rilasciato il nuovo firmware Betaflight 4.5 per la maggior parte delle schede Flight Controller (FC) attualmente in commercio.
In questo articolo entreremo maggiormente nel dettaglio di alcune modifiche introdotte dal firmware 4.5 riguardanti la gestione del GPS, la gestione della bussola o magnetometro, la gestione della configurazione dei filtri e del PID Tuning, modifiche sostanziali che vanno di fatto a migliorare le versioni precedenti del firmware Betaflight ma al contempo vanno a sconvolgere molte delle basi, che fino ad oggi avevamo consolidato, riguardanti la configurazione dei nostri droni.
Vi ricordiamo anche che, per poter configurare e installare il firmware 4.5, occorre aver installato nel proprio computer il configuratore Betaflight 10.10.0 il cui utilizzo è spiegato in questo articolo. Sempre nell’articolo trovate le nozioni di base necessarie per la prima configurazione del modello su cui andate ad installare il firmware 4.5.
Per quanto riguarda invece le modifiche, che vi stiamo per spiegare, potete far riferimento alla pagina “release notes” di Betaflight (sito in inglese).
Introduzione ai cambiamenti
Noi dello staff del blog di Rhobby FPV abbiamo provato diverse versioni RC (Release Candidate) del firmware 4.5 che ormai sono in circolazione da qualche mese. Alcune delle schede FC, che trovate recensite nel blog, avevano già installata la versione 4.5 del firmware prima ancora che venisse diffusa la versione stabile. L’impressione avuta è stata quella di volare con droni molto stabili e ben controllabili, sensazioni che con le versioni di firmware 4.4.1 / 4.4.2 erano un po’ svanite perchè, nonostante si volasse con droni costruiti decentemente, regolati e piddati correttamente, il rischio di incappare in problemi legati all’elettronica e alla gestione del firmware non ottimale era sempre in agguato.
Vediamo quindi il motivo per cui il drone vola meglio e soprattutto cosa cambia nel metodo di regolazione dei filtri dei disturbi e del PID Tuning.
Il focus dei miglioramenti è tutto incentrato sul fatto che questo firmware va a modificare in maniera importante il sistema di gestione della bussola (magnetometro), il metodo di elaborazione dei dati recepiti dal GPS e, di conseguenza, anche il sistema di gestione del ciclo informazioni legato all’elaborazione PID e del ciclo di informazioni proveniente dal giroscopio. Per questo motivo è fortemente sconsigliato ripristinare i backup dei setup salvati dalle versioni precedenti di Betaflight. Questo vale soprattutto se intendete volare sfruttando il GPS Rescue o se usate abitualmente la Modalità Angle o Horizon, ma anche per quanto riguarda il ripristino di precedenti profili di regolazione dei filtri e dei PID.
Miglioramenti al sistema di navigazione GPS
Per quanto riguarda i cambiamenti sulla gestione del GPS, la prima modifica sostanziale è legata alla procedura di configurazione automatica. Questa procedura è stata ottimizzata in modo da garantire un corretto settaggio della velocità di comunicazione della porta seriale in relazione alla capacità di elaborazione delle informazioni del processore. Purtroppo, con questi cambiamenti, diversi dei modelli di GPS non dotati di processore compatibile UBLOX o dotati di chipset un po’ datati, come la versione 8030 KT o la serie M8 in generale, potrebbero non funzionare più correttamente
Il nuovo firmware è stato ottimizzato al meglio per lavorare bene con i nuovi GPS della serie M, con chipset nativo ublox, in particolare il GPS M10, prodotto che potrete trovare visitando questo link. Sempre per quanto concerne i GPS, sistemi che utilizzano protocolli NMEA non saranno più supportati in quanto è un protocollo ritenuto non sicuro.
La quantità di informazioni che vengono passate dal GPS al Flight controller è stata ottimizzata e differenziata, a seconda che il drone sia in volo o sia collegato al configuratore, in modo da non sovraccaricare eccessivamente il chip di elaborazione dati della FC, in particolare sulle schede che ancora montano la versione ARM F4 come la F405/F403. Vi ricordiamo che dalla versione Betaflight 4.3 non è più possibile volare con processori MCU ARM F2/F3 mentre è inutile nascondere il fatto che la versione Betaflight 4.5 lavora bene con processori della serie ARM F7 più che con i processori F4. La differenza sta tutta nella frequenza di calcolo e di gestione delle informazioni che arrivano al processore.
Riguardo proprio questo aspetto legato alla velocità di elaborazione dati e alla frequenza di lettura delle informazioni, gli sviluppatori di Betaflight suggeriscono, agli utenti che vogliono utilizzare il GPS, di limitare a 4kHz la frequenza di aggiornamento del PID Loop in quanto questa è la frequenza che lavora correttamente con una velocità di Baud rate di 57600, che è quella che normalmente è impostata per la trasmissione dati seriale con il GPS.
Ora questa modifica proposta va anche ad influenzare il resto della configurazione del drone soprattutto se si vola con schede controllo volo (FC) che montano il giroscopio INVENSENSE MPU6000 o il giroscopio TDK ICM 42688P, i quali lavorano su frequenze di aggiornamento di 8kHZ del bus dati. Vedremo più avanti nell’articolo, quindi, come possiamo muoverci per correre ai ripari.
Miglioramenti riguardo la bussola o magnetometro e calibrazione
Per quanto riguarda il magnetometro, che non è altro che la bussola del nostro drone, sono state fatte implementazioni importanti a livello di configurazione e di calibrazione. Come già detto, le nuove procedure renderanno ancor più preciso il volo del Drone ma allo stesso tempo diventerà importante, per chi costruisce e assembla il sistema, verificare sempre il corretto posizionamento e orientamento indicato dal costruttore della scheda FC.
Nella schermata di configurazione del GPS Rescue potrete vedere come è orientato il Drone rispetto alla mappa geografica, sempre se il GPS ha agganciato una posizione valida, e capire se dovrete calibrare o meno la bussola.
Potrete quindi impostare correttamente da CLI il valore di deriva magnetica legata alla zona geografica in cui volate e poi procedere alla calibrazione. La calibrazione prevede il fatto che dovete premere a terra il frame del Drone per almeno 30 secondi per iniziare il procedimento.
Riassumendo quanto detto finora, il sistema è ora in grado di determinare al meglio come è orientato il drone in aria e di conseguenza vengono evitati i problemi avuti fino ad ora legati alla gestione del GPS Rescue che, in determinate circostanze, portava il drone ad allontanarsi rispetto la posizione di partenza (HOME) invece che rientrare verso il punto di decollo.
La maggior precisione nel determinare l’orientamento del drone e la direzione del suo movimento vanno a migliorare anche l’esperienza di volo in Angle o Horizon evitando che il drone abbia movimenti incontrollati di rollio e beccheggio. Tra l’altro c’è da considerare anche il fatto che, finalmente, anche in Angle o Horizon verranno applicati i valori di Rates che si usano in volo Acro quindi sicuramente l’esperienza di volo risulterà più gradevole.
Gestione dei filtri
Con il rilascio della versione 4.5 del firmware sono stati introdotti alcuni cambiamenti anche sulla gestione dei filtri. In particolare una più stretta collaborazione con Chris Rosser ha portato a comprendere che le indicazioni date in precedenza sul setup dei filtri devono essere riviste e differenziate a seconda del tipo di drone che si va a configurare.
Torniamo quindi all’analisi fatta sull’uso di schede controllo volo con giroscopio con frequenza di aggiornamento del bus seriale a 8kHZ.
Abbiamo visto che, per gestire al meglio le informazioni provenienti dalle periferiche I/O della nostra scheda controllo volo, in particolare il GPS che funziona correttamente con una frequenza di lettura del suo collegamento seriale a 57600Hz, è necessario mantenere la velocità di aggiornamento del controllore PID a 4kHZ. Questo si porta dietro anche un miglioramento nella gestione del carico di processi sulla CPU con una migliore gestione della temperatura di funzionamento e della MMU (unità di gestione della memoria).
A riguardo infatti ricordiamo che solo le CPU STM32 F7 sono in grado di gestire correttamente una frequenza di LOOP PID a 8 kHZ, oltre a lavorare molto bene con ESC BLHeli 32, in quanto entrambi i sistemi comunicano a 32 bit. Se si usano CPU STM32 F4, nella nuova versione di Betaflight 4.5, è fortemente consigliato impostare il LOOP PID a 4kHZ ed usare ESC (regolatori elettronici dei motori) con BL HELI S e protocollo motori DSHOT 300. Tutto questo per favorire al meglio la comunicazione seriale a 8 bit.
Questi accorgimenti base sono importanti per prevenire i problemi di Desync dei motori che non sono altro che un riflesso dei problemi di Desync tra la lettura dei dati di input del Gyro e delle altre periferiche su bus seriale e la comunicazione con il controllore PID, generati da problemi di stack overflow dell’MMU che riceveva troppe eccezioni da gestire.
Cosa succede però ad impostare due frequenze differenti tra il Loop PID e il Loop Gyro? Si possono generare problemi di Aliasing, cioè un differimento tra la lettura dei dati del Gyro e la correzione applicata dalla CPU, che può rendere meno stabile il volo. Una corretta configurazione dei filtri di Betaflight previene però questi difetti.
Partiamo quindi nell’osservare questa immagine riguardante la configurazione dei filtri nella tab PID Tuning.
Per poter regolare i filtri occorre innanzitutto abilitare la modalità esperto. Qui basta spostare il flag che trovate in alto a destra della pagina del configuratore Betaflight sotto le impostazioni di connessione.
Nella versione Betaflight 4.5 vi troverete disabilitati di Default il filtro passabasso (Gyro lowpass Filter). Questa è un’impostazione che, in precedenza, era stata ritenuta corretta per migliorare l’elaborazione dei dati provenienti dal giroscopio. In realtà questo è vero solo in parte.
Abbiamo visto infatti che, dovendo cambiare la frequenza di aggiornamento del loop pid, avremo dei disturbi dovuti al fenomeno di Antialiasing che andranno a “sporcare” le alte frequenze registrate dal PID Controller.
Per risolvere questo problema è necessario abilitare il Gyro Lowpass Filter 2 (Passabasso Gyro 2) impostandolo affinché tagli le frequenze più alte. Nell’immagine lo vedete settato su un valore prudenziale di 800Hz ma potreste benissimo portarlo anche al valore massimo di 1kHZ.
Nelle versioni di FC che montano processori F722/F745 e nelle schede con giroscopio BMI 270, dove potrete impostare la stessa frequenza di aggiornamento dei loop Gyro e PID (8kHz/8kHz o 3.2kHz/3.2kHz) potrete anche ipotizzare di disabilitare il Gyro Lowpass Filter 2.
Per quanto riguarda il Gyro BMI 270, se montate la scheda ruotata di 270° rispetto il suo asse di orientamento, vi consigliamo di abilitare lo stesso il Gyro Lowpass Filter 2 impostandolo su una frequenza bassa intorno ai 135Hz e sul modo PT2 che è un po’ più aggressivo rispetto al modo PT1.
Un’altra novità riguarda il sistema di filtraggio dei disturbi dati dalla rotazione dei motori. Questo sistema corrisponde al gruppo di configurazione degli RPM gyro filter nella TAB tuning dei filtri.
Nella versione 4.5 del firmware è possibile determinare la forza con cui ogni armonica attiva agisce sul filtro stesso. Questo serve perchè, in base al tipo di eliche che usate, potrete avere disturbi diversi legati alla rotazione dei motori. In passato il suggerimento era quello di impostare RPM Gyro FIlter con un numero di armoniche pari ad 1. Ad oggi il consiglio è di tenere almeno 3 armoniche attive.
Diversi studi su varie blackbox registrate con diverse configurazioni di droni ed eliche hanno dimostrato che con eliche Bipala si hanno meno disturbi legati alla prima armonica ma più disturbi sulla seconda. Al contrario, con eliche a 3 puntelli tendenzialmente è più forte la prima armonica e meno intense le successive due.
Se guardate l’immagine dove sono riportati i due grafici presi da Betaflight Blackbox Explorer potete capire subito a colpo d’occhio quello che abbiamo spiegato. Nel primo grafico, riferito al drone con eliche bipala, abbiamo una linea più marcata al centro mentre nel secondo grafico, riferito al drone con eliche tripala, la linea più marcata è la prima e la terza mentre la seconda al centro è quasi invisibile. Da tre pale in su il consiglio è di aggiungere una armonica per ogni pala aggiuntiva dell’elica fino ad un massimo di 5. Tuttavia le eliche con tre, quattro, cinque o più pale avranno sempre più marcata la prima armonica e l’ultima selezionata.
Per modificare la priorità di intervento delle armoniche selezionate si dovrà utilizzare il terminale CLI, ultima pagina del configuratore di betaflight, digitando il comando
set rpm_filter_weights = 100, 0, 80 per eliche a tre pale
set rpm_filter_weights = 100, 80, 0 per eliche a due pale
Col primo comando si dà peso maggiore alla prima armonica, poi alla terza mentre la seconda rimane a zero, mentre nel secondo caso si ha maggior peso sulla prima armonica, poi sulla seconda e la terza sta a zero.
Per quanto riguarda il valore della frequenza di taglio minima dovrete impostare il punto in cui parte la prima curva legata ai disturbi dei motori. Generalmente un valore di 100 o 120Hz può andare bene.
Riguardo gli altri filtri non c’è nulla da segnalare. La configurazione si porta avanti come si faceva nei precedenti firmware di Betaflight.
Il dinamic Notch filter vi servirà sempre per eliminare i disturbi di risonanza del frame del drone. Tali disturbi sono riconoscibili nel grafico di Betaflight Blackbox Explorer come bande continue verticali.
Generalmente ne è presente una sola, come nei grafici dell’immagine precedente, per cui vi basterà impostare 1 notch counter o numero notch, la frequenza minima di taglio leggermente sotto il valore in cui ha inizio la banda verticale, nell’immagine intorno a 150/160Hz ma non deve mai essere inferiore a 100Hz, mentre il valore di frequenza massima deve essere superiore al valore in cui termina la prima curva di disturbi dei motori quindi tendenzialmente intorno ai 600Hz. Il fattore Q, che dermina l’ampiezza e l’intensità con cui il filtro agisce all’interno del range di frequenza impostato, generalmente può essere tenuto su un valore di 500.
Nel caso però il vostro grafico risulti molto pulito, cioè è ben visibile solo la banda verticale e non altri disturbi sopra la curva dei disturbi dei motori, potrete aumentare il valore Q fino a 1000 testando sempre il funzionamento del drone per vedere che non diventi troppo instabile.
Il filtro low pass D TERM, che serve per eliminare tutti gli altri disturbi presenti legati alla costruzione del drone, può essere impostato basandosi su alcune configurazioni comuni ma deve essere comunque testato sul campo con alcuni voli di prova. Per impostarlo dovete disattivare la funzione di dipendenza dalla barra slider. Successivamente occorre impostare una frequenza minima di taglio partendo da un valore relativamente basso, esempio 80Hz, e una frequenza massima su valori intorno a 125Hz. Il valore esponenziale della curva di lavoro del filtro nel range minimo massimo impostato può essere aumentato leggermente dal valore di 5, cioè curva lineare, e portato a 6 o 7 in modo da rendere il filtro più aggressivo alle basse frequenze.
Una volta impostato potrete fare dei voli di prova andando prima ad incrementare il valore di frequenza minima, fino al punto in cui a bassi livelli di Throttle si noteranno vibrazioni del drone, poi stessa cosa si aumenterà il livello di frequenza massima fino al punto in cui il drone presenterà oscillazioni in volo. Se non volete impazzire nelle varie prove in questa tabella trovate dei valori medi di frequenza massima e minima da poter usare a seconda della configurazione del vostro drone.
Riguardo il tipo di filtro da impostare vi sono un po’ di pareri discordanti. Tendenzialmente si potrebbe utilizzare il filtro BIQUAD in quanto più preciso ed aggressivo di altri tipi di filtro ma al contempo questo tipo di filtro passa basso risulta essere più pesante da gestire in termini di elaborazioni dei dati e introduce parecchia latenza nella risposta e questo potrebbe portare a problemi di overflow del bus PID che, come visto, portano solo guai. Alcuni specialisti quindi ritengono più efficace impostare un filtro tipo PT2 o PT3.
Quello che possiamo dirvi è di provare sempre stando attenti a fare voli brevi controllando che il drone non abbia strane oscillazioni e che i motori non si vadano a scaldare eccessivamente.
Indicazioni finali
Nella versione 4.5 del firmware sono state apportate modifiche anche riguardo la modalità di volo Angle e Horizon per quanto concerne la manovrabilità del drone. Nella nuova versione alla modalità Angle e Horizon saranno applicati i medesimi Rates della modalità manuale Acro rendendo sicuramente il drone più reattivo. Ora molti dei piloti che sfruttano queste modalità lo fanno per volare al chiuso con droni Toothpick o Tinywhoop. Diventa molto importante quindi controllare anche i valori impostati nei rates e nella tabella di configurazione dei PID per quanto riguarda i valori della curva di Throttle.
Tra le novità introdotte vi è anche la modifica del valore di TPA ai livelli di Throttle bassi. Questa aggiunta consente di risolvere i problemi di vibrazioni che presentavano alcune build di droni con impostazioni di PID tuning molto spinte.
Queste impostazioni si modificano sempre da terminale CLI con i comandi tpa_low_breakpoint, che imposta il punto di Throttle nel quale disattivare la limitazione TPA, e il comando tpa_low_rate che imposta la percentuale di riduzione del termine derivativo D e del termine proporzionale P al valore di Throttle Zero fino al valore di TPA Breakpoint. I valori di default sono 1050 e 20 cioè fino al valore di Throttle di 1050 il valore di P e D viene limitato del 20%.
In generale diverse modifiche introdotte favoriscono la configurazione e il setup dei droni da corsa quindi chi usa il drone per volo cinematico o per volo freestyle dovrà comunque intervenire sul PID Tuning per poter adattare il proprio drone al proprio stile.
In generale vi consigliamo di introdurre un valore limite di Throttle, di impostare a zero il valore di Throttle Mid e di aumentare un po’ il livello esponenziale della curva portandolo 0,5 o comunque ad un valore che vi darà la giusta risposta dello stick del Gas al vostro comando. Nella Tab di configurazione della ricevente vi consigliamo poi di modificare RC Smoothing, se lo tenete attivo, cambiando il valore di Auto factor.
A seconda del tipo di volo che volete provare, il valore Auto factor deve essere aumentato o diminuito. Per che chi fa volo racing il controllo di RC Smoothing può essere disabilitato o tenuto attivo con valori di Auto Factor impostati su 20-30. Chi fa freestyle può impostare valori di Auto Factor intorno a 40-50. Chi ama più uno stile Juicy freestyle può tenere valori intorno a 50-60. Chi deve fare volo cinematico, soprattutto se si vuole fare riprese con un bell’effetto sfocato, potrà tenere valori tra 90-100.
Conclusioni
Il firmware 4.5 ha sicuramente introdotto tanti miglioramenti portando Betaflight ad un livello superiore. Sicuramente chi ha sviluppato il sistema ha voluto portare più attenzione alle richieste della comunità andando a risolvere gli errori, anche importanti, che erano stati introdotti nella versione 4.4.x. Si è voluto lavorare anche per migliorare il sistema di guida autonoma del drone per rendere Betaflight utilizzabile anche su droni creati per principianti o droni che devono essere impiegati in ambito professionale, dove la guida totalmente manuale è sconsigliata data l’elevata possibilità di poter perdere il controllo del drone stesso.
Si è lavorato tanto anche per rendere Betaflight sempre più fruibile da chi usa il drone per fare racing e partecipare alle varie competizioni presenti sul territorio nazionale ed internazionale.
Purtroppo alcune novità costringeranno molti piloti ad applicarsi nuovamente per configurare sempre al top i propri droni dovendo però ripartire da zero con setup puliti.
Non disperate comunque perché il team del blog di Attacco by Rhobby FPV sarà sempre al vostro fianco pubblicando utili guide e dando i consigli migliori.