Turnigy 5x - Arduino RcLib Hacking-Mainboard

Status
Nicht offen für weitere Antworten.
#41
Hier wie versprochen ein paar Bilder meiner umgebauten Turnigy 5x.
Ich habe dem Sender eine Mini-Verlängerung für den mini-USB gegönnt. So kann man ohne den Sender aufschrauben zu müssen direkt von Aussen an den Arduino ran. Die Turnigy hat zu diesem Zweck seitlich schon Ausnehmungen, die man nur noch geringfügig erweitern muß, damit sich das ausgeht.

Ich habe nicht vor ein Display einzusetzten, also werde ich wohl den kompletten unteren Bereich des Senders noch entsprechend abdecken.

Die Frsky-Sub-Platine fürs Empfänger-Binden habe ich rückseitig angebracht.
Braucht man ja auch nicht so oft...

Als Hauptschalter einfach mittig einen 2-Pos Schalter vom Hobbyking, ebenso die beiden 3-Pos Schalter und das Poti.
Gibts dort recht günstig im Set.

Die Kabel von ebay sind leider etwas steif, aber egal, im Sender ist auch so genug Platz. Ok, Ordnung sieht vielleicht anders aus... ;-)

Das Frsky-Modul liegt vorerst einfach mal nur so drin. Auch die Antenne hält beim Zusammenschrauben des Gehäuses recht gut, wenngleich auch nicht bombig.

Alles in Allem bekommt man fast den Eindruck, HK hat die Turnigy 5x zum Umbau geschaffen, denn alles passt wunderbar.



Ich bin vollauf zufrieden!



Gruß aus Wien,
Christian
 

Anhänge

Erhaltene "Gefällt mir": nique

nique

Legal-LongRanger
#43
Christian

Kannst Du noch ein paar Worte zum Nano verlieren? Originalpinbelegung? Könnte man mit Nano bestellen?

Ich hab bei den Mini-Boards nun so verschiedene Erlebnisse hinter mir. Obwohl alle Kompatibel sind, sind gerade die Analogen Pins nich bei allen Klonen Pinkompatibel. Wie es beim Nano ist weiss ich nicht, da habe ich "nur" einen davon... Möchte nicht einen "falschen" bestellen.

Gute Arbeit!!!
 
#44
Beim Nano habe ich bei meinen zwischen 10 und 20 Stück aus diversen Quellen noch keine Unterschiede im Pinout gehabt. sollte also kein Problem sein. Einzig hatte ich mal einen Satz von Ebay aus China erwischt bei dem der Bootloader fehlte....

Meine letzten sind von hier:
http://www.ebay.com/itm/Nano-V3-0-A...le-/171078373098?ssPageName=ADME:L:OC:DE:3160
laufen prima, dauerte nur recht lange - wobei da auch das Chin. Neujahr dazwischen war.
 
Zuletzt bearbeitet:
#45
Hallo!

Ich hab hier nur preisgünstige (~4-5 EUR) pin kompatbile Nano-Clones in Verwendung.

Generell möchte ich hier keinen Vertrieb aufziehen, sondern hab lediglich ein paar Platinen mehr als ich selbst brauchen kann und würde mich freuen, wenn andere auch Gefallen an dem Projekt - das eigentlich Frickler ins Leben gerufen hat - finden.

Bei Interesse an der Platine bitte einfach PN an mich.
Für 5 EUR inkl. Paypal-Gebühr und Versand nach AT/DE schicke ich euch gerne was zu.

In den kommenden Tagen werde ich dann nochmal ein wenig den Code überarbeiten um diesen als möglichst übersichtlich und gut inline dokumentierte Basis zur Verfügung zu stellen.
Ein paar Kleinigkeiten aus frickler's code wurden abgeändert, Fehler behoben und zusätzliche Funktionen implementiert.

Es gibt jetzt grundsätzlich mal 3 Profile (kann man leicht auf z.B. 6 oder 9 erweitern).
Aus diesen kann man beim Einschalten des Senders mit einem Schalter (oder auch Schalter-Kombi bei mehr als 3) auswählen.
Im Profil festgelegt sind:
- DR/EXPO getrennt für AIL, ELE, RUD und jeweils 3 Flugphasen die dann wiederum auch mittels Schalter, der gleichzeitig auf einem Kanal liegt gewählt werden können. Dient z.B. um im ACRO-Mode andere Settings zu fliegen als z.B. im BARO/LEVEL mode für ruhige FPV-Aufnahmen.
- ORANGE/RED-Schwellwerte für A1/A2-Telemetrie Spannungen, da sich diese klarerweise für 2s/3s-Modelle unterscheiden
- in Vorbereitung: Flighttimer
- in Vorbereitung fürs Sound-Modul: Sound-File Referenzen für Modellname und Flugphasen.

Ein Arduino-Sketch fürs Kalibrieren der Knüppel bzw. Spannungsteiler gibts dann auch noch.

Ansonsten sind alle Features mal so weit drin:
- Akustische Warnung bei unterschreiten der ORANGE/RED-Schwellwerte für Sender-Spannung, RSSI, A1 und A2 Telemetrie-Werte. (derzeit mal nur unterschiedliche Beeps, mit dem Soundmodul dann entsprechende Ansagen)
- Volle 8 Kanäle (4 Steuerachsen, 2 3-pos Schalter, 1 2-pos Schalter, 1 Poti), wobei einer der 2 3-Pos Schalter kombiniert auch DR/EXPO mitändert.

Alles zusammen belegt derzeit mal rund 1/3 des gesamten Speichers, ist also noch genug Raum für Erweiterungen.
Ich persönlich stehe nicht so sehr auf Display bei der kleinen Funke, aber so ein mini I2C-OLED drängt sich regelrecht auf.

Was mir während der Inbetriebnahme und der ersten Tests aufgefallen ist:

- Der Spannungsteiler laut Schaltplan mit 1k und 2k Widerständen geht bis 15V, während wohl realistisch eh nur 6V (bei Einsatz von Batterien) anliegen oder man selbst mit 1s oder 2s Lipos noch immer weit darunter liegt.
Daher würde es sich anbieten den Spannungsteiler entsprechend anzupassen um eine genauere Auflösung im eigentlich interessanten Messbereich zu erlangen.

- Im Gehäuse wird es beim Einsaz von 2.54mm Pins eher knapp, daher habe ich die Anschluss-Litzen für den Sender, Buzzer und LED direkt angelötet. Sollte es eine Rev 1.1 der Platine geben, werden das dann wohl eher ebenfalls Mini-Stecker werden.

- der 3.3V Anschluss ist im Normalbetrieb nutzlos. Hab erst als die Platine in Produktion ging bemerkt, daß die 3.3V nur in Zusammenhang mit der Speisung über USB funktionieren. Egal, braucht man wahrscheinlich eh nicht, aber nur, daß sich halt niemand wundert/ärgert... Fällt also in einer eventuellen Rev 1.1 auch weg oder kommt ein Regler dazu, mal sehen.

- Die Arduino RC-Lib verwendet 16bit-Timer was den Parallel-Betrieb einer Software-Serial unmöglich macht. Daher konnte ich dann meine CLI-Variante samt EEPROM-Speicherplatz-Handling nun doch nicht mit rein nehmen. wäre zu schön gewesen, das ganze per bluetooth konfigurieren zu können...

- Mit dem Kalibrieren der Knüppel bin ich noch nicht so ganz glücklich;
@Frickler: Vielleicht hast Du ja einen Tipp? Die Wertebereiche liegen bei mir (unterschiedlich bei jedem Knüppel) so ca. zwischen
20 und 950, während ich am Dreh-Poti den vollen Bereich von 0-1023 ausreizen kann. Ich hab den Eindruck, daß es an der mechanischen Grenze der Knüppel liegt, d.h. das Poti selbst könnte noch geringfügig mehr gedreht werden. Vielleicht kann man da noch was an der Mechanik im wahrsten Sinne des Wortes "feilen".

- Auch noch nicht ganz klar ist mir, wie man die Trimmung am besten handhaben könnte, so daß man da möglichst wenig unabsichtlich verstellt; mit Heißkleber fixieren?


So far...
Gruß aus Wien,
Christian
 
#46
- ORANGE/RED-Schwellwerte für A1/A2-Telemetrie Spannungen, da sich diese klarerweise für 2s/3s-Modelle unterscheiden

@Frickler: Vielleicht hast Du ja einen Tipp? Die Wertebereiche liegen bei mir (unterschiedlich bei jedem Knüppel) so ca. zwischen
20 und 950, während ich am Dreh-Poti den vollen Bereich von 0-1023 ausreizen kann. Ich hab den Eindruck, daß es an der mechanischen Grenze der Knüppel liegt, d.h. das Poti selbst könnte noch geringfügig mehr gedreht werden. Vielleicht kann man da noch was an der Mechanik im wahrsten Sinne des Wortes "feilen".
- Auch noch nicht ganz klar ist mir, wie man die Trimmung am besten handhaben könnte, so daß man da möglichst wenig unabsichtlich verstellt; mit Heißkleber fixieren?
Für die FrSky Warnschwellen hatte ich damals Zellenspannugen und Zellenzahl definiert im Code, was noch fehlt ist der Code um beim Start die Zellenzahl anhand der Spannung zu raten/setzten, so ginge es dann automatisch für 2-3S (bei gleichem Teiler am FrSky Sensor)

20-950 ist doch OK, bei den Kreuzknüppeln ist es meist so das sie den Potibereich nicht ganz ausreizen, vor allem wenn wie hier die Trimmung ja auch noch mechanisch aufs Poti wirkt. Denke das geht klar soweit. Sind dann immernoch über 900 Werte vom AD und intern arbeitet die Lib meines Wissens eh mit 255 Werten - Feiner steuert mit den kleinen Knüppel eh niemand. Und Ja, die Trimmer würde ich einfach mit Heißkleber fixieren. Beim Kopter sollte man die ja eh nicht nutzen und wenn man verschiedene Modelle drauf hat isses eh nicht Sinnvoll mit mechanischer Trimmung.

Statt dem CLi würde ich eher das kleine i2c Oled einbauen,dann könnte man da den Modellnamen und die Telemetriewerte anzeigen. Umschaltung des Modells 1-3 z.B. über Schalterdtellung beim einschalten der Funke oder so.
Kostetz halt nicht die Welt das Teil: http://www.ebay.com/itm/CO-16-OLED-...-l-/251456238262?ssPageName=ADME:L:OC:DE:3160
 
Zuletzt bearbeitet:

nique

Legal-LongRanger
#47
Hab was zum kalibrieren rausgefunden. Bin auch darüber gestolpert, weil ich die für die Taranis als "Schaltererweiterung" zweckentfremdet habe.

Die Trimmung erfolgt mechanisch! Das heisst, du kommst auf 0 wenn der Knüppel nach unten UND die Trimmung nach unten geht. Ditto in die andere Richtung. Tja - das ist halt der "billige" Weg. Somit dürften wir ohne mechanische Nacharbeit nie den Vollausschlag erhalten.

Nebenbei: Frickler, ich denke, dass deine OLED-Ansteuerung hier noch gut mit eingebaut werden könnte - oder?



EDIT: Grrr, war da wohl zu langsam.
 

nique

Legal-LongRanger
#48
Hmm, wollt eben ein DHT-Modul ordern. Funzt das mit X8R Empfänger? Und liest das auch die Telemetrie die über den S.Port reinkommt richtig aus? Auf einer HK-Seite werden nur die D-Empfänger als Telemetriefähig aufgelistet und die neuen X-er nicht erwähnt.
 
#49
Gute Frage, kann ich dir nicht beantworten,

aber nochmal als Anmerkung.
Der Aktuelle Arduino Code kann noch garkeine Telemetrie, ich hatte damit mal angefangen was zu proggen um A1 und A2 sowie RSSI auszulesen, habs aber nie getestet. Ist alles keine Hexerei, muss aber gemacht werden.
Da meine 5X aber mit er9x und anderem Prozessor läuft werde ich selbst am Arduino Code nicht sehr viel machen. Stehe aber gerne helfend bereit.
 

nique

Legal-LongRanger
#50
Ich brauche Telemetrie auch noch nicht. Wird ja erst die Schüler-Funke der Kids. Aber wenn ich schon einen Sender einbaue, dann möglichst den, der zum restlichen Gelump passt. Hast Du schon mal einen XJT offen gehabt? Könnte die Platine reinpassen? Weil dort hätte ich dann S.Port...

Ein paar Grundzüge vom S.Port habe ich vom OpenXSensor aufgeschnappt. Und wenn ich dort das setzen eines Telemetriewerts schaffe, sollte auf dem Sender das auslesen auch im Machbaren sein.
 

Rangarid

Erfahrener Benutzer
#52
S Port hat ein neues Protokoll. Beim OpenXSensor kann man sich das anschauen. Dann könnte man sehen ob es kompatibel ist. Denke aber nicht. Das Vario dient ja nicht umsonst als Schnittstelle zwischen S Port und Telemetrie der älteren Empfänger.
 

Rangarid

Erfahrener Benutzer
#54
Man kann es ganz gut an der Taranis sehen. Es gibt 2 verschiedene Frsky implementierungen. Einmal das normale bekannte Protokoll und einma S Port. Hier mal ein Auszug:
https://github.com/opentx/opentx/tree/next/radio/src/telemetry[TABLE="class: grid, width: 100%, align: center"]
[TR]
[TD]Altes Protokoll[/TD]
[TD]Neues Protokoll[/TD]
[/TR]
[TR]
[TD]// FrSky old DATA IDs (1 byte)
#define GPS_ALT_BP_ID 0x01
#define TEMP1_ID 0x02
#define RPM_ID 0x03
#define FUEL_ID 0x04
#define TEMP2_ID 0x05
#define VOLTS_ID 0x06
#define GPS_ALT_AP_ID 0x09
#define BARO_ALT_BP_ID 0x10
#define GPS_SPEED_BP_ID 0x11
#define GPS_LONG_BP_ID 0x12
#define GPS_LAT_BP_ID 0x13
#define GPS_COURS_BP_ID 0x14
#define GPS_DAY_MONTH_ID 0x15
#define GPS_YEAR_ID 0x16
#define GPS_HOUR_MIN_ID 0x17
#define GPS_SEC_ID 0x18
#define GPS_SPEED_AP_ID 0x19
#define GPS_LONG_AP_ID 0x1A
#define GPS_LAT_AP_ID 0x1B
#define GPS_COURS_AP_ID 0x1C
#define BARO_ALT_AP_ID 0x21
#define GPS_LONG_EW_ID 0x22
#define GPS_LAT_NS_ID 0x23
#define ACCEL_X_ID 0x24
#define ACCEL_Y_ID 0x25
#define ACCEL_Z_ID 0x26
#define CURRENT_ID 0x28
#define VARIO_ID 0x30
#define VFAS_ID 0x39
#define VOLTS_BP_ID 0x3A
#define VOLTS_AP_ID 0x3B
#define FRSKY_LAST_ID 0x3F
[/TD]
[TD]// FrSky new DATA IDs (2 bytes)
#define RSSI_ID 0xf101
#define ADC1_ID 0xf102
#define ADC2_ID 0xf103
#define BATT_ID 0xf104
#define SWR_ID 0xf105
#define T1_FIRST_ID 0x0400
#define T1_LAST_ID 0x040f
#define T2_FIRST_ID 0x0410
#define T2_LAST_ID 0x041f
#define RPM_FIRST_ID 0x0500
#define RPM_LAST_ID 0x050f
#define FUEL_FIRST_ID 0x0600
#define FUEL_LAST_ID 0x060f
#define ALT_FIRST_ID 0x0100
#define ALT_LAST_ID 0x010f
#define VARIO_FIRST_ID 0x0110
#define VARIO_LAST_ID 0x011f
#define ACCX_FIRST_ID 0x0700
#define ACCX_LAST_ID 0x070f
#define ACCY_FIRST_ID 0x0710
#define ACCY_LAST_ID 0x071f
#define ACCZ_FIRST_ID 0x0720
#define ACCZ_LAST_ID 0x072f
#define CURR_FIRST_ID 0x0200
#define CURR_LAST_ID 0x020f
#define VFAS_FIRST_ID 0x0210
#define VFAS_LAST_ID 0x021f
#define CELLS_FIRST_ID 0x0300
#define CELLS_LAST_ID 0x030f
#define GPS_LONG_LATI_FIRST_ID 0x0800
#define GPS_LONG_LATI_LAST_ID 0x080f
#define GPS_ALT_FIRST_ID 0x0820
#define GPS_ALT_LAST_ID 0x082f
#define GPS_SPEED_FIRST_ID 0x0830
#define GPS_SPEED_LAST_ID 0x083f
#define GPS_COURS_FIRST_ID 0x0840
#define GPS_COURS_LAST_ID 0x084f
#define GPS_TIME_DATE_FIRST_ID 0x0850
#define GPS_TIME_DATE_LAST_ID 0x085f[/TD]
[/TR]
[/TABLE]

Man kann ganz gut in der S PORT implementierung sehen, dass es das alte Protokoll versteht. Andersrum könnte es höchstens über die Userdaten übertragen werden. Das müsste man dann mal testen.
 

nique

Legal-LongRanger
#55
Ich tipp auch mal, dass es nicht geht. Denn der Empfänger erhält ja das alte Datenformat und sendet dies. Und warum soll ein alter Sender das beim Empfangen in S.Port zurückwandeln? Der kennt dies Protokoll ja auch nicht.

Werd dann mal den XJT bestellen und hoffen, dass ich den reinbekomme - sonst hab ich zumindest Ersatz für die Taranis. Da ist genau derselbe Sender drin.
 

nique

Legal-LongRanger
#56
Noch ne Frage zum 9V Stepup. Wozu?

Hehe

Ich meine, wenn ich das ganze mit 2S Versorge, sollte das doch auch gehen? Der Nano verträgt das und auch das Sendemodul. Eigentlich habe ich keine Lust auf 9 V - ist nicht meine Lieblingsspannung... Wo wird die sonst noch benötigt? Selbst das OLED-Display begnügt sich mit 5V.
 

nique

Legal-LongRanger
#58
Blöööööd - sorry. Dachte halt nicht daran, dass man die Funke mit 4AA betreiben könnte. Wenn das XJT zu gross ist, habe ich schon daran gedacht, das Batteriefacht als Senderfach zu nutzen und den Strom sonstwo hinzupacken.
 
#59
@der-Frickler: Du hast ja die 5x schon länger im Einsatz. Wie viele Stunden würdest Du in etwa schätzen kommt man mit einem Satz Batterien mittlerer Qualität?
Welche Schwell-Werte sind hier ratsam? Ausgehend von 6V (4x1.5V) hätte ich mal sicherheitshalber den Schwellwert für die Warnstufe ORANGE auf 5V und für RED auf 4.8V gelegt...?

Bei Verwendung der internen Batterien oder auch NiMh-Akkus wäre es eine Überlegung wert, ob man nicht den Spannungsteiler von dzt. 1:3 auf 1:2 ändert. Ich werde daher hier voraussichtlich den 1k durch einen 2k ersetzen.
Auf diese Weise kann man dann problemlos bis 10V messen, was man vermutlich eh nie ausreizt.
oder andersrum gesagt hat man pro V ca. 100 Schritte.
 
#60
Ich nutze momentan die Aldi Batterien und habe davon jetzt 3 oder 4 Satz durch - fliege aber auch seit ich die 5x habe fast nur mit dieser und habe sie auch zu hause beim einstellen und Kopter bauen oft aus Versehen an.
Warnschwelle habe ich beim er9x auf Minimum, ich glaube 4v, weiter runter ging es nimmer ;_) Da es Batterien sind ist mir das Tiefentladen ja egal und der Step-Up schaufelt immer noch genug raus - dann sollte man halt innerhalb der nächsten Minuten landen und n Satz neue dabei haben.

Wenn ich meine nochmal aufmache dann baue ich auf 1S 2P Lipo Rundzellen um, die kann ich dann auch per USB laden ;_)

Ja, richtig, den Spannungsteiler könnte man ändern, ich hatte ihn halt so bemessen das bis 3S gehen, kommt ja hier auch nicht auf 1/100tel an, bei 15V max liegt die Auflösung ja noch bei ~15mV - sollte reichen
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten