Anstatt die ESC eines copters mit dem üblichen PWM anzusteuern kann man das auch seriell machen. Die simonk / konze ESC firmware beinhaltet schon ein recht geniales serielles protokoll. Ich nenne es das konze-protokoll. Genial deshalb weil alle ESC zusammen auf ein serielles signal hören und sich die eigenen daten anhand ihrer ID heraussuchen. Man braucht also auch für einen octacopter nur eine uart auf der FC.
Das funktioniert nur bei ESC die pwm-in auch zum rxd pin durchgeschleift haben. Das sind z.b. die "HK blue series 12A und 20A", und die "hk 20A ubec", aber auch modernere wie z.b. die "Tarot TL300G5 6A" (z.z. keine firmware für die tarot).
An der firmware muss man "uart" einschalten und "int0" und "icp" im typenfile ausschalten. Dazu noch eine kleine änderung wegen dem bootloader.
Firmware für "bs_nfet.hex" ESC habe ich getestet und auf rcgroups zum download bereit.
simonk esc kompatibilitäts liste
Download, ohne garantie, auf eigenes risiko
Der FC code muss natürlich auch geändert werden. Einen entsprechenden driver für multiwii habe ich getestet und geflogen. Ein driver für baseflight habe ich getestet aber nicht geflogen. Driver für cleanflight oder betaflight habe ich nicht. Die multiwii / baseflight teile werde ich hier unten reinstellen.
F450 copter mit seriellen esc, flugbereit:
ToDo liste:
Das Konze protokoll hat eine auflösung von 200 schritten und eine maximale refresh rate von etwas unter 2ms. Für mich reicht das volkommen aus, das fliegt sich wunderbar, sehr reaktionsschnell, sehr präzise, aber da geht noch viel mehr. Bei 1ms looptime wäre wohl 128kbaud das richtige, das geht problemlos. Etwas schwieriger ist die auflösung hochzuschrauben. Ich denke 12 bit / 4096 steps reichen. Das sind dann 7 bytes per message bei 4 motoren. Durchaus machbare firmwareänderung.
Die motor ID ist fix in der firmware eingestellt. Das heisst jeder motor braucht einen eigene firmware. Das ist schrott. Die ID gehört ins eeprom und muss sich leicht umprogrammieren lassen.
Das serielle Konze protokoll ist nur in simonk firmware enthalten, bei blheli nicht. Das müsste zuerst in avr-blheli, und dann in silabs-blheli reingepackt werden ...
Die seriellen driver sollten für cleanflight / betaflight implementiert werden. Das ist relativ einfach.
Dank des kürzeren protokolls hat 128kbaud bessere auflösung und ist schneller als dshot150. 256kbaud (getestet und läuft) ist schneller asl dsot300. 512kbaud hab ich nicht getestet, da seriell aber weniger pegelwechsel als dshot hat dürfte es auch schneller sein. Ich sage SESC ist das bessere / einfachere / schnellere protokoll.
Und ... man kann damit 10 eur F4 boards verwenden.
Das funktioniert nur bei ESC die pwm-in auch zum rxd pin durchgeschleift haben. Das sind z.b. die "HK blue series 12A und 20A", und die "hk 20A ubec", aber auch modernere wie z.b. die "Tarot TL300G5 6A" (z.z. keine firmware für die tarot).
An der firmware muss man "uart" einschalten und "int0" und "icp" im typenfile ausschalten. Dazu noch eine kleine änderung wegen dem bootloader.
Firmware für "bs_nfet.hex" ESC habe ich getestet und auf rcgroups zum download bereit.
simonk esc kompatibilitäts liste
Download, ohne garantie, auf eigenes risiko
Der FC code muss natürlich auch geändert werden. Einen entsprechenden driver für multiwii habe ich getestet und geflogen. Ein driver für baseflight habe ich getestet aber nicht geflogen. Driver für cleanflight oder betaflight habe ich nicht. Die multiwii / baseflight teile werde ich hier unten reinstellen.
F450 copter mit seriellen esc, flugbereit:
ToDo liste:
Das Konze protokoll hat eine auflösung von 200 schritten und eine maximale refresh rate von etwas unter 2ms. Für mich reicht das volkommen aus, das fliegt sich wunderbar, sehr reaktionsschnell, sehr präzise, aber da geht noch viel mehr. Bei 1ms looptime wäre wohl 128kbaud das richtige, das geht problemlos. Etwas schwieriger ist die auflösung hochzuschrauben. Ich denke 12 bit / 4096 steps reichen. Das sind dann 7 bytes per message bei 4 motoren. Durchaus machbare firmwareänderung.
Die motor ID ist fix in der firmware eingestellt. Das heisst jeder motor braucht einen eigene firmware. Das ist schrott. Die ID gehört ins eeprom und muss sich leicht umprogrammieren lassen.
Das serielle Konze protokoll ist nur in simonk firmware enthalten, bei blheli nicht. Das müsste zuerst in avr-blheli, und dann in silabs-blheli reingepackt werden ...
Die seriellen driver sollten für cleanflight / betaflight implementiert werden. Das ist relativ einfach.
Dank des kürzeren protokolls hat 128kbaud bessere auflösung und ist schneller als dshot150. 256kbaud (getestet und läuft) ist schneller asl dsot300. 512kbaud hab ich nicht getestet, da seriell aber weniger pegelwechsel als dshot hat dürfte es auch schneller sein. Ich sage SESC ist das bessere / einfachere / schnellere protokoll.
Und ... man kann damit 10 eur F4 boards verwenden.
Zuletzt bearbeitet: