forked from sim-/kk
-
Notifications
You must be signed in to change notification settings - Fork 17
/
README
134 lines (114 loc) · 3.11 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
KK board flight controller software for AVR microcontrollers
(re)written by Dane Gardner
Based on KK by Simon Kirby <https://github.com/sim-/kk>
Based on XXcontrol_KR_v1.5 by Minsoo Kim
Based on XXcontrol by Mike Barton
Based on excellent assembly code by Rolf R Bakke (kapteinkuk)
With ideas from Rune Hasvold (CyCrow) and OlliW on rcgroups
Thanks, everyone!
NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. Always test
without propellers! Please do not ship derivative works without
source; keep this code open as Rolf first so kindly released his
design and code to the community.
Should fit on 48, 88, 168, and 328. I've tested TRICOPTER mode on an
ATmega88A. You may wish to use avrdude -t to "dump calibration" and
check timings on a digital scope. Temperature and voltage shift the
oscillator frequency a little, and each chip responds differently.
See doc8271.pdf page 401.
I notice a few microseconds of output jitter still with the internal
oscillator. It seems that only an external resonator or crystal will
solve this, but those pins are currently used for Rx and the LED, and
the Rx pin cannot be moved to another pin that does not share another
PCINT unless RESET is used for that purpose. If using all hardware
PPM, it may be acceptable to have a more expensive interrupt handler
that simply logs the interrupt time and pin states and do the rest of
the processing in RxGetChannels().
See http://www.kkmulticopter.com/
Hardware PPM supported on motor outputs M1, M2, M5 and M6; software
PPM on M3 and M4 (Rx interrupts can cause some jitter). M3 and M4
outputs will be copied to M5 and M6, when not otherwise used, to allow
use of full hardware PPM.
General motor output setup:
Single
M1 CCW
|
|
M2 (Servo)
|
|
M5 ---- ---- M3
(Servo) | (Servo)
|
M4 (Servo)
Dual
M1 CCW
|
M2 CW
|
|
|
M5/M3 ----+----
(Servo) |
|
M6/M4 (Servo)
Twin
/ --- \
/ | \
M1 CW | M2 CCW
|
M3 | M4
(Servo) | (Servo)
|
|
M5 (Tail Servo, Optional)
M6 (Tail Servo Reverse, Optional)
Tri
M1 CW M2 CCW
\ /
\.---./
| |
`---'
|
|M4/M6 (Tail Servo)
M3/M5 CCW
Quad-+
M1 CW
|
|
|
.---.
M2 CCW----| |----M3/M5 CCW
`---'
|
|
|
M4/M6 CW
Quad-X
M1 CW M2 CCW
\ /
\.--./
| |
/`--'\
/ \
M4/M6 CCW M3/M5 CW
Hex
M1 CW
|
M6 CCW | M2 CCW
\ | /
\ .---. /
-| |-
/ `---' \
/ | \
M5 CW | M3 CW
|
M4 CCW
Y6
M1,4 M2,5 M1->3 = CW
\ / M4->6 = CCW
\.---./
| |
`---'
|
|
M3,6