Hack-O-Copter
Der Begriff Hack-O-Copter beschreibt einen Nachbau des Quadrocopters „Hubsan X4“, der er sich einfach „hacken“ lässt; die Original-Firmware kann also überschrieben und durch eigene ersetzt werden. Er wird für ca. 21€ verkauft, siehe Beitrag „Hackbarer(?) 21 EUR Quadcopter“.
Die Original-Firmware kann nicht ausgelesen werden, es muss also eine komplett neue Firmware erstellt werden.
Dieser Artikel bezieht sich auf den Nachbau von JXD Modell Nr.385: http://www.jxdtoys.com/en/
Hinweis: Der Artikel enthält Infos bis zu diesem Beitrag. Weitere Inhalte aus dem Thread werden asap ergänzt.
Beschreibung des Quadrocopters
- Abmessungen → 8* 8*3cm (LxBxH)
- Gewicht → Infos ergänzen
- Lieferumfang → Quadrokopter, Fernbedienung, Handbuch
- Reichweite → ca. 100m
- Flugdauer und Ladezeit → ca. 7min / ca. 45min
- Funktionen → Infos (3 Empfindlichkeiten, umdrehen, Rekalibrierung, ...) ergänzen
- Link zur Bedienungsanleitung
Bedienung
- Fliegen: Auf ebenen Untergrund legen, nach ein paar Sekunden blinken die LEDs er langsamer, dann den linken Steuerhebel einmal hoch und wieder runter fahren.
- Empfindlichkeit: Mit der linken Funktionstaste lassen sich 3 empfindlichkeits Stufen einstellen. Die jeweilige Einstellung wird durch ein Piepen bestätigt.
- Flip Funktion: Die rechten Funktionstaste betätigen und entsprechend Links / Rechts oder Vorne / Hinten auf Anschlag. Der Copter rollt in die entsprechende Richtung um die eigene Achse.
- Sensor Kalibrieren: Auf ebenen Untergrund legen, beide Steuerknüppel nach links unten. Die LEDs blinken schnell. Steuerknüppel wieder in Neutralstellung.
Komponenten
Der Quadrocopter wird von vier kernlosen Gleichstrommotoren („Coreless DC“) angetrieben. Im Inneren des Gehäuses ist eine Platine. Ihre vergleichsweise modernen Hardware-Komponenten (Mikrocontroller, Sensoren, MOSFETs und Funkmodul) sind in den folgenden Kapiteln beschrieben.
Mikrocontroller
Der „Nuvoton Mini54ZAN“ ist ein Cortex-M0 MCU mit 16KiB Flash, 2KB SRAM und SWD. → Links zu Datenblättern ergänzen
Link zur KEIL Device-Database des Mini54ZAN: http://www.keil.com/dd/chip/6142.htm
Sensoren zur Flugstabilisierung
Für die Flugstabilisierung ist der Quadrocopter mit drei Gyroskopen und drei Beschleunigungssensoren ausgestattet. Diese sind alle zusammen im Intertialsensor „Invensense MPU-6050“ integriert. → Link zum Datenblatt
ESC
Die Ansteuerung der Gleichstrommotoren erfolgt über PWM und MOSFETs. Die verwendeten N-Kanal MOSFETs „G2310“ haben einen „Drain-Source On-Resistance“ von etwa 120mΩ.
Siehe http://www.mikrocontroller.net/attachment/193854/G2310.pdf
Funk- Transceiver
Für die 2,4GHz Funkstrecke zur Fernsteuerung ist mit einem „Beken BK2423“ integriert. Die Vermutung, dass dieser voll kompatibel zum NRF24L01 ist, liegt nahe, da der NRF24L01 die Daten der Fernbedienung empfangen kann.
Pinbelegung des Controllers
MINI51ZAN QFN33-Pin Manual 3.2.2, p.16
CPNx/CPPx = Analog comparator input CPO=Analog comparator output AINx= ADC input CK0=Frequency divider output TxEX=Timer capture/reset input
Pin | Port | Primary | Secondary | Function understood | External connection |
---|---|---|---|---|---|
1 | P1.5 | AIN5 | CPP0 | Partially | Connected to motor ctrl circuit 4 (sense?) |
2 | reset | YES | SWD Port reset | ||
3 | P3.0 | AIN6 | CPN1 | NC? | Not connected? |
4 | P5.4 | NC? | Not connected? | ||
5 | P3.1 | AIN7 | CPP1 | Partially | Connected to motor ctrl circuit 1 (sense?) |
6 | P3.2 | T0EX,STADC | INT0 | YES | MPU6050, pin 12 (interrupt) |
7 | P3.4 | SDA | T0 | YES | MPU6050, pin 24 (SDA) |
8 | P3.5 | SCL | T1 | YES | MPU6050, pin 23 (SCL) |
9 | P3.6 | T1EX,CK0 | CPO0 | Partially | Connected to test pad |
10 | P5.1 | XTAL2 | NC? | Not connected? | |
11 | P5.0 | XTAL1 | NC? | Not connected? | |
12 | VSS | YES | VSS | ||
13 | P5.2 | INT1 | Partially | Connected to unpopulated circuit part. Possibly be to control LEDS on left side | |
14 | P2.2 | PWM0 | NC? | Not connected? | |
15 | P2.3 | PWM1 | NC? | Not connected? | |
16 | P2.4 | PWM2 | Partially | Connected to Motor 1 ctrl | |
17 | P2.5 | PWM3 | Partially | Connected to Motor 2 ctrl | |
18 | P2.6 | PWM4 | CPO1 | Partially | Connected to Motor 3 ctrl |
19 | P4.6 | ICE_CLK (SWD) | YES | SWD Port CLK | |
20 | P4.7 | ICE_DAT (SWD) | YES | SWD Port Dat | |
21 | P0.7 | SPICLK | YES | BK2423 SPI CLK | |
22 | P0.6 | MISO | YES | BK2423 SPI MISO | |
23 | P0.5 | MOSI | YES | BK2423 SPI MOSI | |
24 | P0.4 | PWM5 | SPISS | Partially | Connected to Motor 4 ctrl |
25 | P0.1 | RTSn, RX | SPISS | YES | BK2434 SPI CSN |
26 | P0.0 | CTSn | TX | YES | Controls rront LEDS via 10 Ohm resistors |
27 | P5.3 | AIN0 | NC? | Not connected? | |
28 | VDD | YES | |||
29 | P1.0 | AIN1 | NO | Connected to motor ctrl circuit 2 (sense?) | |
30 | P1.2 | RX | AIN2 | YES | UART PORT RX |
31 | P1.3 | TX | AIN3 | YES | UART PORT TX |
32 | P1.4 | CPN0 | AIN4 | Partially | Connected to motor ctrl circuit 3 (sense?) |
33 | (Pad) | YES | VSS |
Schnittstellen
SWD-Port
Der SWD-Port ist über … herausgeführt. → Infos ergänzen
Serielle Schnittstelle
Die Anschlüsse führen zu den RX und TX Pins des MCUs. → Infos ergänzen
PIN 9
→ Infos ergänzen
I²C-Schnittstelle
→ Infos ergänzen
Programmierung neuer Firmware
Als alternative Firmware wurde von victzh das auf MultiWii basierende BradWii für den Copter portiert[1].
Die Sourcen können übersetzt und auf den Copter geflasht werden. Der Quadrocopter kann damit geflogen werden. Die Einstellungen der Regelparameter (PID-Tuning) ist noch nicht optimal. Der Quadrocopter fliegt noch nicht so stabil wie mit der original Firmware.
Momentan Bedarf es noch weitere Anpassungen der Zielhardware (JXD 385, Hubsan X4, V202). Je nach Modell ist die Unterstützung der Zielhardware unterschiedlich weit fortgeschritten (LEDs, ADC, ...)
Quellen der Firmware
Quellen:
- https://github.com/hackocopter
- Fork - Goebish: https://github.com/goebish/bradwii-X4 (Supportet auch JXD 385 und ist weiter in der Entwicklung)
Dokumentation:
→ Details ergänzen
Beschreibung der Toolkette
Im RCGroups Forum wurde ein Beitrag veröffentlich welcher die gesamte Toolchain erklärt:
Erklärung der Toolchain mit Youtubevideos
→ Details ergänzen
Notwendige Hardware und Software
Flash Adapter z.B.
- Drivers for ST-link V2 mini http://www.st.com/web/en/catalog/tools/PF258167#
oder ein Developmentkit von STM
Keil software/API:
→ Details ergänzen
Installation der Toolkette
→ Details ergänzen
ISP und ICD
Beschreibung der Firmware-Varianten
„Blinky“
→ Details ergänzen
Zubehör
Lade-Adapter
Schaltplan des beiliegenden Ladeadapters:
Auf der Platine vorgesehen sind weiter eine in Reihe zu R2 geschaltete Diode und ein Parallel zum Akku liegender Widerstand R5, welche allerdings nicht bestückt sind.
Bei vollem Akku erlischt die LED. Der vom USB-Port benötigte Strom beträgt bei leerem Akku etwa 450mA
Funkfernbedienung
Die Außenantenne ist nur „Verarsche“ ...
→ Infos ergänzen
→ Hinweis auf Idee: Neuen Sender entwickeln
Schaltbild der Fernbedienung
Das Schaltbild enthält alle funktionsrelevanten Bauteile. Es fehlen noch diverse Bauteilwerte. Auch der eine oder andere Stützkondensator fehlt eventuell.
Pinbelegung des Mikrocontrollers
Pinbelegung für CPU N79E814
Pin Name Funktion 1 P0.0 LCD, CS 2 P1.7 LCD, CLK 3 P1.6 LCD, DATA 4 RST Reset (10k - C) 5 VSS an Masse 6 P3.1 RF-Modul, MOSI 7 P3.0 RF-Modul, SCK 8 P1.4 RF-Modul, MISO 9 SDA RF-Modul, CSN 10 SCL 2K2 Pullup, unbestückter Schaltungsteil 11 P1.1 LED via 1kOhm 12 P1.0 Buzzer (via Transistor) 13 AD6 über Widerstände an Batteriespannung vor Regler 14 AD5 Auswertung Taster (Seite Yaw-Throttle) 15 VDD Versorgung 16 AD4 Poti "Throttle" 17 AD3 Poti "Yaw" 18 AD2 Poti "Roll", Dämpfung mit RC Glied 19 AD1 Poti "Pitch", Dämpfung mit RC Glied 20 AD0 Auswertung Taster (Seite Pitch-Roll)
Pinbelegung des Sendemoduls
1 3.3V 2 MOSI an PIN6 MCU 3 SCK an PIN7 MCU 4 MISO an PIN8 MCU 5 CE 6 GND 7 IRQ 8 CSN an PIN9 MCU 9 RXEN
Protokoll
Es handelt sich um das V202 Protokoll.
- Die Payload hat eine Länge von 16-Byte
- Das letzte Byte entspricht der Summe aller vorherigen Bytes (bzw. den unteren 8 Bit der Summe)
- Das Datenformat passt zu dem im GitRepo beschriebenen (https://github.com/hackocopter/Documentation/tree/master/RemoteControl)
- Das Datenformat passt zu der Implementierung des V202 Protokolls in der Deviation firmware (https://bitbucket.org/PhracturedBlue/deviation/src...)
Zum Channel Hopping:
- jedes Packet wird zweimal versendet
- es immer 16-Channel durchgehoppt (dann gehts wieder von vorne los)
- auch das passt zur Implementierung in der Deviation firmware
Siehe auch: http://www.mikrocontroller.net/topic/309185?goto=3410375#3410373
Tipps und Tricks
Bezugsquellen und Kauf
Händler
Auflistung von Händlern die den JXD 385 führen:
- tmart: http://www.tmart.com/
- RC Master: http://www.rcmaster.net
- Banggood: http://www.banggood.com/
- Everbuying: http://www.everbuying.com/
- ...
Direktkauf aus China
Bei Ebay ist der JXD-385 auch unter dem Namen JD-185 zu finden, die Komponenten sind absolut identisch, der Preis liegt jedoch bei ca. 25€ inkl. Versand. Den JXD-385 findet man bei ebay seltener und er liegt bei ca. 35€.
Bilder des JD-185:
- Aliexpress: http://de.aliexpress.com/ (Dort auch ohne Fernbedienung ab ~15€ zu haben)
- Ebay
→ Infos zu Aliexpress, ebay, Einfuhrumsatzsteuer und Käuferschutz ergänzen
Lieferanten aus Europa
- Tmart.com (GB): Von einer Bestellung bei Tmart.com rate ich (Richard78) ab. Ich habe am trotz Express-Lieferung (5-7 Tage) auch 3 Wochen nach der Bestellung noch keine Waren erhalten.
- RCMaster: JXD 385 bei RCMaster
→ Infos ergänzen
Ersatzakkus
Der Original-Akku hat 240mAh und wiegt …g. Die Abmessungen sind (LxBxH) 31x20x8 mm³ → Infos ergänzen
Möglicher Ersatzakku: Turnigy nano-tech 260mAh, 21g, 32x20x7 mm³ http://hobbyking.com/hobbyking/store/__24920__Turnigy_nano_tech_260mAh_1S_35_70C_Lipo_Pack_QR_Ladybird_Genius_CP_Mini_CP_.html
Der Akku ist etwas dicker als angegeben, passt aber gut in den Copter (380mAh, ca. 2,31€, …g) → Infos ergänzen
Propeller
Beim Kauf der Propeller sollte darauf geachtet werden, Propeller für den JXD385 zu kaufen. Propeller für den Hubsan H107 sind kleiner und haben weniger Halt auf der Motorwelle.
Lieferanten:
- RCMaster: Rotorblätter für JXD 385
Motoren
Achtung! Motoren vom Hubsan H107 sind nicht kompatibel, die Motorwelle des JXD 385 ist länger.
- RCMaster
- Linkslauf: Motor gegen den Uhrzeigersinn
- Rechtslauf: Motor im Uhrzeigersinn
→ Infos ergänzen
Frame
Das Frame lässt sich einzlen beziehen z.b. bei www.rcmaster.net.
Den Frame kann man ein wenig Optimieren, indem man an der Rückseite oben 2 kleine Vertiefungen feilt. Durch diese können dann die Kabel geführt werde. Beim einlegen des Akkus werden diese dann nicht mehr abegedrückt.
Am der Unterseite ebenfalls hinten können von den Halterippen für den Akku, 1-2 entfernt werden. Bei Verwendung größerer Akkus erleichtert dies den Akkuwechsel.
Reduzierung der Unfallfolgen
Für den JXD 385 ist ein Schutzring verfügbar, dieser macht den Quadrokopter zwar ein wenig schwerer, was sich auf die Flugeigenschaften auswirkt. Allerdings ist die Beeinträchtigung durch das zusätliche Gewicht noch akzeptabel.
Für Anfänger oder fliegen in beengten Verhältnissen sehr zu empfehlen.
Dieser Rahmen gibt auf jeden Fall weniger Äger mit der Frau / Freundin wegen kleinen schwarzen Strichen an den Wohnungswänden :)
Der Rahmen wird von außen auf an die Motoren geklipst, Rahmen welche zwischen Motor und Rotor gesteht werden funktionieren beim JXD 385 nicht (z.b. vom H107). Jedenfalls hatte hierbei schon einen Fehlkauf.
Bezugsquelle z.B. Amazon: Guard JXD 385
Ideen für neue Funktionen
Bessere Flugstabilisierung mit bestehender Sensorik
Neue Funktionen mit GPS-Sensor
→ Ideen ergänzen
Neue Funktionen mit Luftdruck-Sensor
→ Ideen ergänzen
Neue Funktionen mit Kamera
Alternativen: Keycam, Y3000, … → Infos ergänzen
Neue Funktionen mit Ultraschallsensor
→ Ideen ergänzen
Neue Funktionen mit Infrarot-Entfernungssensor
→ Ideen ergänzen
Neue Funktionen mit Bluetooth
→ Ideen ergänzen
Erweiterung der Original-Fernbedienung
Funkmodul mit PA + LNA
→ Details ergänzen
Erweiterung um ein Display
→ Details ergänzen
Neue Funktionen mit alternativer Fernbedienung
→ Ideen ergänzen
Weiterführende Links und Quellen
- http://www.jann.cc/2013/10/13/tiny_hackable_quadcopter.html → Details ergänzen
- Multiwii → Details ergänzen
- Paparazzi (http://paparazzi.enac.fr/wiki/Main_Page) → Details ergänzen