├── AVR-FUSES
├── MPP_Tracker_Fuses.xml
└── README
├── Freifunk-Open-MPPT-English.pdf
├── Freifunk-Open-MPPT.odp
├── LICENSE
├── README-Flashing-Firmware
├── README.md
├── Schematic-and-Board
├── 78LXX-SO8.dcm
├── 78LXX-SO8.lib
├── Freifunk-Open-MPPT-Schematic.pdf
├── IRF5303.dcm
├── IRF5303.lib
├── MP-Tracker
├── MP-Tracker-BOM.net
├── MP-Tracker-cache.lib
├── MP-Tracker.kicad_pcb
├── MP-Tracker.net
├── MP-Tracker.pro
├── MP-Tracker.sch
├── MPP-Tracker-TI-Elektra.lbr
├── Notes-about-etching-the-pcb-yourself.txt
├── OP-Amp-Without-cooling-pad.pretty
│ └── SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm.kicad_mod
├── TL081.pretty
│ └── SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm.kicad_mod
└── TODO
├── TODO
├── kavr-bootloader
├── INSTALL
├── Makefile
├── README
├── kavr.c
├── kavr.hex
├── program.sh
└── set-fuses.sh
└── uC-Sourcecode
├── GPLv2_License
├── Makefile
├── README
├── main.c
├── main.hex
└── serial-parameters-setserial.txt
/AVR-FUSES/MPP_Tracker_Fuses.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/AVR-FUSES/README:
--------------------------------------------------------------------------------
1 | The XML file contains the fuse AVR description for the free AVR8-Burn-O-Mat tool.
2 |
3 | URL: http://avr8-burn-o-mat.aaabbb.de/
--------------------------------------------------------------------------------
/Freifunk-Open-MPPT-English.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elektra42/freifunk-open-mppt/04f1f887f4316e768c6a41976076ece553c9d145/Freifunk-Open-MPPT-English.pdf
--------------------------------------------------------------------------------
/Freifunk-Open-MPPT.odp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elektra42/freifunk-open-mppt/04f1f887f4316e768c6a41976076ece553c9d145/Freifunk-Open-MPPT.odp
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | SOME LICENSE-FOO:
2 | +++++++++++++++++
3 |
4 | This is a Open-Source and Open-Hardware project under General Public License
5 | v2 for the programming source files and Creative Commons - Attribution - ShareAlike 3.0
6 | for the hardware design files.
7 |
8 | You can use it commercially, however you are required to give credits to the
9 | author(s) and any derivative work based on this sources has to be put under
10 | the same license, which requires you to give your customers access to the
11 | sources and design files.
12 |
--------------------------------------------------------------------------------
/README-Flashing-Firmware:
--------------------------------------------------------------------------------
1 | *****************************************************
2 | * How to flash/update the Freifunk-Open-MPP-Tracker *
3 | *****************************************************
4 |
5 | Whenever you power up the Freifunk-Open-MPP-Tracker, it will wait 15 seconds
6 | for the upload of a new firmware via the serial port. So you can flash the
7 | Freifunk-Open-MPPT without a dedicated programmer :)
8 |
9 | All you need is a 3.3 Volt level compatible serial port. Serial ports are
10 | now a legacy on Laptops and PCs, but there are cheap USB-serial-adapters
11 | available. You will also need a serial port level shifter that is
12 | compatible with 3.3 Volt levels. You can get both from your hacker-friendly
13 | electronics store.
14 |
15 | Don't connect the Freifunk-Open-MPPT directly to a standard PC serial port
16 | or USB-to-serial dongle without a level shifter in between, as standard
17 | RS-232 ports use way higher voltages than 3.3 Volt. A standard-level serial
18 | port will certainly destroy the Atmega8!
19 |
20 | If you are in the middle of nowhere and you can't get your hands on a serial
21 | port and/or level shifter, take a look at the bottom of this text. There is
22 | a solution ;)
23 |
24 |
25 | Step one:
26 | *********
27 |
28 | Power off the MPPT: Disconnect it from solar panel and battery.
29 |
30 | Connect the 3.3 Volt compatible serial port to the 2 x 5 pin header with
31 | jumper cable.
32 |
33 | MOSI Pin_1 * | * Pin_2 MISO
34 | SCLK Pin_3 * | * Pin_4 3.3V
35 | TX Pin_5 * | * Pin_6 GND
36 | RX Pin_7 * | * Pin_8 GND
37 | RST Pin_9 * | * Pin_10 GND
38 |
39 |
40 | Pin #1 is the pin next to the crystal. You have to make 4 connections:
41 |
42 | 3.3 V -- 3.3 V
43 | TX -- RX
44 | RX -- TX
45 | GND -- GND
46 |
47 | Step two:
48 | *********
49 |
50 | Actually, we can flash the firmware with just the 'cat' command that every
51 | Unix-like operating systems has. However, we need to configure the serial
52 | port of our PC/Laptop with the following settings beforehand:
53 |
54 | 9600 baud
55 | 8-N-1
56 | Software flow control (Xon/Xoff) enabled
57 |
58 | I use the program 'minicom' to set the serial parameters of the serial port
59 | (Linux) via the 'minicom' menu. Then I stop minicom without resetting the
60 | serial port (minicom will ask if it should do that before it stops, just
61 | choose 'no')
62 |
63 | You can also use 'putty' or any other terminal software to set up the serial
64 | port and upload the firmware file.
65 |
66 | Step three:
67 | ***********
68 |
69 | Go to the directory with the new firmware. By default, the firmware is the
70 | file 'main.hex'. If you want to flash via a terminal software, select
71 | main.hex for upload. The transfer protocol is ASCII.
72 |
73 | As an alternative, type the command
74 |
75 | cat main.hex > /dev/ttyUSB0
76 |
77 | on the command line, but don't press 'Return' yet.
78 |
79 | ttyUSB0 is the first USB to serial port in the system. If you use a
80 | different port, change /dev/tty-something accordingly.
81 |
82 | Step four:
83 | **********
84 |
85 | Power on the Freifunk-Open-MPPT by connecting it to the battery. Start the
86 | file-upload within 15 seconds after connecting the power.
87 |
88 | Wait until the upload is finished. Let another few seconds pass. Power-cycle
89 | the Freifunk-Open-MPPT again.
90 |
91 | If the communication with the device doesn't work, you might have confused
92 | TX and RX lines. Swap the lines and try again.
93 |
94 | Congratulations, you have just flashed a new firmware to the device!
95 |
96 | #################################################
97 | # I have no serial port and/or no level shifter #
98 | #################################################
99 |
100 | If you have no serial port and no level shifter, you can use the 3.3 V
101 | serial port of a WiFi router, running OpenWRT or LEDE. In order to use the
102 | serial port of the router for flashing, you have to disable the serial root
103 | console. To disable the serial root console of your router, comment out the
104 | line
105 |
106 | ::askconsole:/bin/ash --login
107 |
108 | in /etc/inittab
109 |
110 | As long as you have disabled the serial console, don't accidently
111 | misconfigure your router, as you can no longer log into the device via
112 | serial port for debugging ;)
113 |
114 | 'minicom' or 'picocom' are available as a software packages for OpenWRT/LEDE.
115 |
116 | You don't have to install a terminal software, if you know how to set up the serial port
117 | with the 'setserial' utility, that is also available as a software package.
118 |
119 | The combination of 'setserial' and 'cat' will save precious space in the
120 | flash of your router ;)
121 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | These are preliminary sources and CAD files from the
2 | Freifunk-Open-MPP-Tracker project.
3 |
4 |
5 | ## SOME LICENSE-FOO:
6 | This is a Open-Source and Open-Hardware project under General Public License
7 | v2 and Creative Commons - Attribution - ShareAlike 3.0.
8 | For more information, check out the LICENSE file.
9 |
10 | ## A QUICK OVERVIEW OF THE DIRECTORIES:
11 |
12 | #### AVR-FUSES
13 | Contains a XML configuration file to program the fuses of the AVR. I am
14 | using the AVR dragon board and AVR-Burn-O-Mat software to program the fuses.
15 |
16 | #### SCHEMATIC AND BOARD
17 | Electronic CAD files and component libraries, made with KiCAD. KiCAD is a free and
18 | open ECAD tool. Due to the intend to provide a open hardware and open
19 | software project for DIY home-brewers, I have decided to use a free and open
20 | source ECAD software tool, too. It is my first project with KiCAD, though.
21 |
22 | #### uC-SOURCECODE
23 | AVR-GCC source and Makefile.
24 |
25 | ## SOME NOTES ABOUT THIS DESIGN
26 | Basically this hardware has two building blocks:
27 | The MPP controller section and the buck converter.
28 |
29 | At the moment, the buck converter section is based on the el cheapo and
30 | low-fi MC33063 controller chip. It can easily be replaced by a faster and
31 | more fancy switch converter IC to construct a more powerful and slightly more
32 | efficient buck converter section. However, with the external powerful P-MOS
33 | switches, the efficiency was already around 94% with the first prototype
34 | (measured at 2 Ampere output current).
35 |
36 | One reason to replace the MC33063 might be noise. Under low load, the
37 | MC33063 will skip pulses of the PWM, so the switching frequency becomes
38 | audible.
39 |
40 | # External references
41 |
42 | * https://wiki.freifunk.net/Freifunk-MPP-Tracker
43 | * https://wiki.freifunk.net/Freifunk-Mast
44 |
--------------------------------------------------------------------------------
/Schematic-and-Board/Freifunk-Open-MPPT-Schematic.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/elektra42/freifunk-open-mppt/04f1f887f4316e768c6a41976076ece553c9d145/Schematic-and-Board/Freifunk-Open-MPPT-Schematic.pdf
--------------------------------------------------------------------------------
/Schematic-and-Board/IRF5303.dcm:
--------------------------------------------------------------------------------
1 | EESchema-DOCLIB Version 2.0
2 | #
3 | #End Doc Library
4 |
--------------------------------------------------------------------------------
/Schematic-and-Board/IRF5303.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3
2 | #encoding utf-8
3 | #
4 | # +3.3V-RESCUE-MP-Tracker
5 | #
6 | DEF +3.3V-RESCUE-MP-Tracker #PWR 0 0 Y Y 1 F P
7 | F0 "#PWR" 0 -40 30 H I C CNN
8 | F1 "+3.3V-RESCUE-MP-Tracker" 0 110 30 H V C CNN
9 | F2 "" 0 0 60 H V C CNN
10 | F3 "" 0 0 60 H V C CNN
11 | DRAW
12 | X +3.3V 1 0 0 0 U 30 30 0 0 W N
13 | C 0 60 20 0 1 0 N
14 | P 3 0 1 0 0 0 0 40 0 40 N
15 | ENDDRAW
16 | ENDDEF
17 | #
18 | # C-RESCUE-MP-Tracker
19 | #
20 | DEF C-RESCUE-MP-Tracker C 0 10 N Y 1 F N
21 | F0 "C" 0 100 40 H V L CNN
22 | F1 "C-RESCUE-MP-Tracker" 6 -85 40 H V L CNN
23 | F2 "" 38 -150 30 H V C CNN
24 | F3 "" 0 0 60 H V C CNN
25 | $FPLIST
26 | SM*
27 | C?
28 | C1-1
29 | $ENDFPLIST
30 | DRAW
31 | P 2 0 1 20 -80 -30 80 -30 N
32 | P 2 0 1 20 -80 30 80 30 N
33 | X ~ 1 0 200 170 D 40 40 1 1 P
34 | X ~ 2 0 -200 170 U 40 40 1 1 P
35 | ENDDRAW
36 | ENDDEF
37 | #
38 | # CP1-RESCUE-MP-Tracker
39 | #
40 | DEF CP1-RESCUE-MP-Tracker C 0 10 N N 1 F N
41 | F0 "C" 50 100 50 H V L CNN
42 | F1 "CP1-RESCUE-MP-Tracker" 50 -100 50 H V L CNN
43 | F2 "" 0 0 60 H V C CNN
44 | F3 "" 0 0 60 H V C CNN
45 | $FPLIST
46 | CP*
47 | SM*
48 | $ENDFPLIST
49 | DRAW
50 | T 0 -50 100 80 0 0 0 + Normal 0 C C
51 | A 0 -200 180 563 1236 0 1 15 N 100 -50 -100 -50
52 | P 4 0 1 15 -100 50 100 50 50 50 50 50 N
53 | X ~ 1 0 200 150 D 40 40 1 1 P
54 | X ~ 2 0 -200 180 U 40 40 1 1 P
55 | ENDDRAW
56 | ENDDEF
57 | #
58 | # IRF9540N-RESCUE-MP-Tracker
59 | #
60 | DEF IRF9540N-RESCUE-MP-Tracker Q 0 0 Y Y 1 F N
61 | F0 "Q" 0 -148 40 H V R CNN
62 | F1 "IRF9540N-RESCUE-MP-Tracker" 0 149 40 H V R CNN
63 | F2 "TO220" -219 101 29 H V C CNN
64 | F3 "" 0 0 60 H V C CNN
65 | $FPLIST
66 | TO220*
67 | $ENDFPLIST
68 | DRAW
69 | C 50 0 111 0 1 14 N
70 | C 50 0 125 0 1 0 N
71 | C 100 -50 5 0 1 0 N
72 | C 100 50 5 0 1 0 N
73 | P 2 0 1 20 25 -40 25 -65 N
74 | P 2 0 1 20 25 15 25 -15 N
75 | P 2 0 1 20 25 65 25 40 N
76 | P 2 0 1 0 120 -10 115 -15 N
77 | P 2 0 1 10 125 105 140 125 N
78 | P 2 0 1 10 130 -100 145 -120 N
79 | P 2 0 1 0 140 -10 120 -10 N
80 | P 2 0 1 0 140 -10 145 -5 N
81 | P 2 0 1 10 165 -60 185 -70 N
82 | P 2 0 1 10 165 60 185 75 N
83 | P 2 0 1 10 180 0 205 0 N
84 | P 3 0 1 10 0 60 0 -60 0 -60 N
85 | P 4 0 1 0 30 -50 100 -50 100 -100 100 -100 N
86 | P 4 0 1 0 30 0 100 0 100 -50 100 -50 N
87 | P 4 0 1 0 30 50 100 50 100 100 100 100 N
88 | P 4 0 1 0 55 15 55 -15 95 0 55 15 F
89 | P 4 0 1 0 100 50 130 50 130 -50 100 -50 N
90 | P 4 0 1 0 130 -10 140 15 120 15 130 -10 F
91 | X G 1 -200 -50 200 R 40 40 1 1 I
92 | X D 2 100 200 100 D 40 40 1 1 P
93 | X S 3 100 -200 100 U 40 40 1 1 P
94 | ENDDRAW
95 | ENDDEF
96 | #
97 | # R-RESCUE-MP-Tracker
98 | #
99 | DEF R-RESCUE-MP-Tracker R 0 0 N Y 1 F N
100 | F0 "R" 80 0 40 V V C CNN
101 | F1 "R-RESCUE-MP-Tracker" 7 1 40 V V C CNN
102 | F2 "" -70 0 30 V V C CNN
103 | F3 "" 0 0 30 H V C CNN
104 | $FPLIST
105 | R?
106 | SM0603
107 | SM0805
108 | R?-*
109 | SM1206
110 | $ENDFPLIST
111 | DRAW
112 | S -40 150 40 -150 0 1 12 N
113 | X ~ 1 0 250 100 D 60 60 1 1 P
114 | X ~ 2 0 -250 100 U 60 60 1 1 P
115 | ENDDRAW
116 | ENDDEF
117 | #
118 | # TL082-RESCUE-MP-Tracker
119 | #
120 | DEF TL082-RESCUE-MP-Tracker U 0 20 Y Y 2 F N
121 | F0 "U" -50 200 60 H V L CNN
122 | F1 "TL082-RESCUE-MP-Tracker" -50 -250 60 H V L CNN
123 | F2 "" 0 0 60 H V C CNN
124 | F3 "" 0 0 60 H V C CNN
125 | DRAW
126 | P 4 0 1 6 -200 200 200 0 -200 -200 -200 200 f
127 | X V- 4 -100 -400 250 U 40 40 0 1 W
128 | X V+ 8 -100 400 250 D 40 40 0 1 W
129 | X ~ 1 500 0 300 L 40 40 1 1 O
130 | X - 2 -500 -100 300 R 40 40 1 1 I
131 | X + 3 -500 100 300 R 40 40 1 1 I
132 | X + 5 -500 100 300 R 40 40 2 1 I
133 | X - 6 -500 -100 300 R 40 40 2 1 I
134 | X ~ 7 500 0 300 L 40 40 2 1 O
135 | ENDDRAW
136 | ENDDEF
137 | #
138 | #End Library
139 |
--------------------------------------------------------------------------------
/Schematic-and-Board/MP-Tracker:
--------------------------------------------------------------------------------
1 | .HEA
2 | .TIM Sa 17 Sep 2016 12:26:42 CEST
3 | .APP "Eeschema 4.0.2+dfsg1-stable"
4 |
5 | .ADD_COM U1 "MC34063"
6 | .ADD_COM C8 "1n5"
7 | .ADD_COM C9 "100n"
8 | .ADD_COM R1 "180R"
9 | .ADD_COM Q2 "IRFR5303"
10 | .ADD_COM R3 "470R"
11 | .ADD_COM R2 "4K7"
12 | .ADD_COM D1 "1N4148"
13 | .ADD_COM D5 "DIODESCH"
14 | .ADD_COM L1 "170u"
15 | .ADD_COM C11 "100n"
16 | .ADD_COM R20 "47k"
17 | .ADD_COM R21 "4k4"
18 | .ADD_COM C13 "1000u"
19 | .ADD_COM C6 "330u"
20 | .ADD_COM L2 "1u"
21 | .ADD_COM C14 "330u"
22 | .ADD_COM D4 "6V2-SOT23"
23 | .ADD_COM R13 "3K9"
24 | .ADD_COM R11 "22k"
25 | .ADD_COM R12 "3k9"
26 | .ADD_COM R19 "3k9"
27 | .ADD_COM R16 "6k8"
28 | .ADD_COM U3 "ATMEGA8-AI"
29 | .ADD_COM X1 "3.6864MHz"
30 | .ADD_COM C5 "15p"
31 | .ADD_COM C4 "15p"
32 | .ADD_COM P1 "DIL10"
33 | .ADD_COM C7 "100n"
34 | .ADD_COM R9 "3k3"
35 | .ADD_COM R8 "27k"
36 | .ADD_COM R26 "15k"
37 | .ADD_COM R27 "3k3"
38 | .ADD_COM R25 "2k2"
39 | .ADD_COM R17 "1k"
40 | .ADD_COM U2 "TL082"
41 | .ADD_COM R18 "22k"
42 | .ADD_COM R22 "1M"
43 | .ADD_COM D3 "ZD-3V3-SOT23"
44 | .ADD_COM R23 "22k"
45 | .ADD_COM R24 "22k"
46 | .ADD_COM C10 "100n"
47 | .ADD_COM R10 "1K"
48 | .ADD_COM C2 "100n"
49 | .ADD_COM D6 "ZD-3V3-SOT23"
50 | .ADD_COM C3 "100n"
51 | .ADD_COM C1 "100n"
52 | .ADD_COM R6 "47R"
53 | .ADD_COM Q4 "IRFR5303"
54 | .ADD_COM R5 "10k"
55 | .ADD_COM D2 "1N4001"
56 | .ADD_COM R7 "1k"
57 | .ADD_COM R4 "1k"
58 | .ADD_COM R14 "33k"
59 | .ADD_COM C12 "10n"
60 | .ADD_COM R28 "22k"
61 | .ADD_COM R29 "22k"
62 | .ADD_COM R15 "15k"
63 | .ADD_COM Q1 "BC817-40"
64 | .ADD_COM Q3 "BC817-40"
65 | .ADD_COM U4 "MC78L033"
66 |
67 |
68 | .ADD_TER R19.1 "Net-(R19-Pad1)"
69 | .TER U2.1
70 | .ADD_TER U3.16 "Net-(P1-Pad5)"
71 | .TER P1.5
72 | .ADD_TER U3.29 "Net-(P1-Pad3)"
73 | .TER P1.3
74 | .ADD_TER P1.1 "Net-(P1-Pad1)"
75 | .TER U3.15
76 | .ADD_TER U3.17 "Net-(P1-Pad4)"
77 | .TER P1.4
78 | .ADD_TER U3.30 "Net-(P1-Pad9)"
79 | .TER P1.9
80 | .ADD_TER U2.7 "Net-(R17-Pad2)"
81 | .TER R17.2
82 | R18.1
83 | .ADD_TER R18.2 "Net-(R18-Pad2)"
84 | .TER R22.1
85 | R25.1
86 | U2.6
87 | .ADD_TER R27.1 "Net-(R26-Pad2)"
88 | .TER U3.23
89 | R26.2
90 | .ADD_TER U3.25 "Net-(R8-Pad2)"
91 | .TER R9.1
92 | R8.2
93 | .ADD_TER L1.1 "Net-(D5-Pad2)"
94 | .TER Q2.1
95 | D5.2
96 | .ADD_TER D1.1 "Net-(D1-Pad1)"
97 | .TER Q1.2
98 | Q2.2
99 | .ADD_TER R2.1 "Net-(D1-Pad2)"
100 | .TER Q1.1
101 | D1.2
102 | R3.1
103 | .ADD_TER U1.1 "Net-(R3-Pad2)"
104 | .TER R3.2
105 | .ADD_TER C5.1 "Net-(C5-Pad1)"
106 | .TER U3.8
107 | X1.2
108 | .ADD_TER U2.2 "Net-(R11-Pad2)"
109 | .TER R12.1
110 | R11.2
111 | .ADD_TER X1.3 "GNDPWR"
112 | .TER D5.1
113 | C8.2
114 | U1.2
115 | U1.4
116 | C9.2
117 | R12.2
118 | C10.2
119 | U3.21
120 | D3.2
121 | R16.2
122 | U3.3
123 | U3.5
124 | R24.2
125 | C5.2
126 | C4.1
127 | P1.6
128 | P1.7
129 | P1.8
130 | U4.2
131 | U2.4
132 | Q3.2
133 | R29.2
134 | R22.2
135 | U4.7
136 | U4.6
137 | U4.3
138 | D6.2
139 | C2.2
140 | R27.2
141 | R9.2
142 | C7.2
143 | R21.2
144 | C11.2
145 | D4.2
146 | C14.2
147 | C6.2
148 | C1.2
149 | C3.2
150 | C12.2
151 | R4.1
152 | D2.1
153 | C13.2
154 | .ADD_TER X1.1 "Net-(C4-Pad2)"
155 | .TER U3.7
156 | C4.2
157 | .ADD_TER R29.1 "Net-(R25-Pad2)"
158 | .TER R28.2
159 | R25.2
160 | .ADD_TER U3.24 "Net-(D3-Pad1)"
161 | .TER R17.1
162 | D3.1
163 | .ADD_TER D6.1 "Net-(D6-Pad1)"
164 | .TER R20.2
165 | U1.5
166 | R21.1
167 | R19.2
168 | .ADD_TER R14.2 "Net-(D4-Pad1)"
169 | .TER R13.2
170 | D4.1
171 | .ADD_TER U2.3 "Net-(C12-Pad1)"
172 | .TER R15.2
173 | C12.1
174 | R14.1
175 | .ADD_TER P1.10 "+3.3V"
176 | .TER C7.1
177 | R6.1
178 | U3.4
179 | U4.1
180 | U3.6
181 | .ADD_TER R10.1 "Net-(R10-Pad1)"
182 | .TER U3.13
183 | .ADD_TER C1.1 "Net-(C1-Pad1)"
184 | .TER R6.2
185 | U3.18
186 | .ADD_TER C3.1 "Net-(C3-Pad1)"
187 | .TER U3.20
188 | .ADD_TER R23.2 "Net-(R23-Pad2)"
189 | .TER U2.5
190 | R24.1
191 | .ADD_TER C13.1 "Net-(C11-Pad1)"
192 | .TER R20.1
193 | R23.1
194 | C11.1
195 | L2.1
196 | L1.2
197 | .ADD_TER C2.1 "+BATT"
198 | .TER Q4.3
199 | R5.1
200 | R26.1
201 | U4.8
202 | R28.1
203 | C14.1
204 | L2.2
205 | .ADD_TER U3.31 "Net-(P1-Pad2)"
206 | .TER P1.2
207 | .ADD_TER R7.1 "Net-(Q3-Pad1)"
208 | .TER Q3.1
209 | R4.2
210 | .ADD_TER R10.2 "Net-(C10-Pad1)"
211 | .TER R16.1
212 | R15.1
213 | C10.1
214 | .ADD_TER D2.2 "VAA"
215 | .TER Q4.1
216 | .ADD_TER R5.2 "Net-(Q3-Pad3)"
217 | .TER Q4.2
218 | Q3.3
219 | .ADD_TER R7.2 "Net-(R7-Pad2)"
220 | .TER U3.11
221 | .ADD_TER R1.2 "Net-(R1-Pad2)"
222 | .TER U1.8
223 | .ADD_TER C8.1 "Net-(C8-Pad1)"
224 | .TER U1.3
225 | .ADD_TER Q2.3 "VCC"
226 | .TER R2.2
227 | R11.1
228 | U2.8
229 | Q1.3
230 | R13.1
231 | C6.1
232 | R1.1
233 | C9.1
234 | U1.7
235 | U1.6
236 | R8.1
237 |
238 | .END
239 |
--------------------------------------------------------------------------------
/Schematic-and-Board/MP-Tracker-BOM.net:
--------------------------------------------------------------------------------
1 | (export (version D)
2 | (design
3 | (source /home/elektra/MP-Tracker/MP-Tracker.sch)
4 | (date "Sa 17 Sep 2016 12:07:25 CEST")
5 | (tool "Eeschema 4.0.2+dfsg1-stable")
6 | (sheet (number 1) (name /) (tstamps /)
7 | (title_block
8 | (title)
9 | (company)
10 | (rev)
11 | (date "1 sep 2016")
12 | (source MP-Tracker.sch)
13 | (comment (number 1) (value ""))
14 | (comment (number 2) (value ""))
15 | (comment (number 3) (value ""))
16 | (comment (number 4) (value "")))))
17 | (components
18 | (comp (ref U1)
19 | (value MC34063)
20 | (footprint Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm)
21 | (libsource (lib regul) (part MC34063))
22 | (sheetpath (names /) (tstamps /))
23 | (tstamp 57BD7F8F))
24 | (comp (ref C8)
25 | (value 1n5)
26 | (footprint Capacitors_SMD:C_0805)
27 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
28 | (sheetpath (names /) (tstamps /))
29 | (tstamp 57BDC6FB))
30 | (comp (ref C9)
31 | (value 100n)
32 | (footprint Capacitors_SMD:C_0805)
33 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
34 | (sheetpath (names /) (tstamps /))
35 | (tstamp 57BDC70A))
36 | (comp (ref R1)
37 | (value 180R)
38 | (footprint Resistors_SMD:R_0805)
39 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
40 | (sheetpath (names /) (tstamps /))
41 | (tstamp 57BDC7F3))
42 | (comp (ref Q2)
43 | (value IRFR5303)
44 | (footprint TO_SOT_Packages_SMD:TO-252-2Lead)
45 | (libsource (lib MP-Tracker-rescue) (part IRF9540N-RESCUE-MP-Tracker))
46 | (sheetpath (names /) (tstamps /))
47 | (tstamp 57BDC8CE))
48 | (comp (ref R3)
49 | (value 470R)
50 | (footprint Resistors_SMD:R_0805)
51 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
52 | (sheetpath (names /) (tstamps /))
53 | (tstamp 57BDCAEE))
54 | (comp (ref R2)
55 | (value 4K7)
56 | (footprint Resistors_SMD:R_0805)
57 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
58 | (sheetpath (names /) (tstamps /))
59 | (tstamp 57BDCDA9))
60 | (comp (ref D1)
61 | (value 1N4148)
62 | (footprint Diodes_SMD:SOD-123)
63 | (libsource (lib MP-Tracker-cache) (part DIODE))
64 | (sheetpath (names /) (tstamps /))
65 | (tstamp 57BDCE83))
66 | (comp (ref D5)
67 | (value DIODESCH)
68 | (footprint Diodes_SMD:DO-214AB)
69 | (libsource (lib MP-Tracker-cache) (part DIODESCH))
70 | (sheetpath (names /) (tstamps /))
71 | (tstamp 57BDD1D7))
72 | (comp (ref L1)
73 | (value 170u)
74 | (footprint Choke_SMD:Choke_SMD_12x12mm_h8mm)
75 | (libsource (lib device) (part INDUCTOR))
76 | (sheetpath (names /) (tstamps /))
77 | (tstamp 57BDD1E6))
78 | (comp (ref C11)
79 | (value 100n)
80 | (footprint Capacitors_SMD:C_0805)
81 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
82 | (sheetpath (names /) (tstamps /))
83 | (tstamp 57BDD315))
84 | (comp (ref R20)
85 | (value 47k)
86 | (footprint Resistors_SMD:R_0805)
87 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
88 | (sheetpath (names /) (tstamps /))
89 | (tstamp 57BDD36F))
90 | (comp (ref R21)
91 | (value 4k4)
92 | (footprint Resistors_SMD:R_0805)
93 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
94 | (sheetpath (names /) (tstamps /))
95 | (tstamp 57BDD37E))
96 | (comp (ref C13)
97 | (value 1000u)
98 | (footprint Capacitors_SMD:c_elec_10x10)
99 | (libsource (lib MP-Tracker-rescue) (part CP1-RESCUE-MP-Tracker))
100 | (sheetpath (names /) (tstamps /))
101 | (tstamp 57BDD477))
102 | (comp (ref C6)
103 | (value 330u)
104 | (footprint Capacitors_SMD:c_elec_10x10)
105 | (libsource (lib MP-Tracker-rescue) (part CP1-RESCUE-MP-Tracker))
106 | (sheetpath (names /) (tstamps /))
107 | (tstamp 57BDD4B3))
108 | (comp (ref L2)
109 | (value 1u)
110 | (footprint Choke_SMD:Choke_SMD_12x12mm_h8mm)
111 | (libsource (lib device) (part INDUCTOR))
112 | (sheetpath (names /) (tstamps /))
113 | (tstamp 57BDD73E))
114 | (comp (ref C14)
115 | (value 330u)
116 | (footprint Capacitors_SMD:c_elec_10x10)
117 | (libsource (lib MP-Tracker-rescue) (part CP1-RESCUE-MP-Tracker))
118 | (sheetpath (names /) (tstamps /))
119 | (tstamp 57BDD744))
120 | (comp (ref D4)
121 | (value 6V2-SOT23)
122 | (footprint Diodes_SMD:SOD-123)
123 | (libsource (lib device) (part ZENERsmall))
124 | (sheetpath (names /) (tstamps /))
125 | (tstamp 57BDD83A))
126 | (comp (ref R13)
127 | (value 3K9)
128 | (footprint Resistors_SMD:R_0805)
129 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
130 | (sheetpath (names /) (tstamps /))
131 | (tstamp 57BDD849))
132 | (comp (ref R11)
133 | (value 22k)
134 | (footprint Resistors_SMD:R_0805)
135 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
136 | (sheetpath (names /) (tstamps /))
137 | (tstamp 57BDDA09))
138 | (comp (ref R12)
139 | (value 3k9)
140 | (footprint Resistors_SMD:R_0805)
141 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
142 | (sheetpath (names /) (tstamps /))
143 | (tstamp 57BDDA18))
144 | (comp (ref R19)
145 | (value 3k9)
146 | (footprint Resistors_SMD:R_0805)
147 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
148 | (sheetpath (names /) (tstamps /))
149 | (tstamp 57BDDC01))
150 | (comp (ref R16)
151 | (value 6k8)
152 | (footprint Resistors_SMD:R_0805)
153 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
154 | (sheetpath (names /) (tstamps /))
155 | (tstamp 57C43822))
156 | (comp (ref U3)
157 | (value ATMEGA8-AI)
158 | (footprint Housings_QFP:LQFP-32_7x7mm_Pitch0.8mm)
159 | (libsource (lib atmel) (part ATMEGA8-AI))
160 | (sheetpath (names /) (tstamps /))
161 | (tstamp 57C43A6A))
162 | (comp (ref X1)
163 | (value 3.6864MHz)
164 | (footprint Crystals:Crystal_HC49-SD_SMD)
165 | (libsource (lib device) (part CRYSTAL_SMD))
166 | (sheetpath (names /) (tstamps /))
167 | (tstamp 57C46F5F))
168 | (comp (ref C5)
169 | (value 15p)
170 | (footprint Capacitors_SMD:C_0805)
171 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
172 | (sheetpath (names /) (tstamps /))
173 | (tstamp 57C473B1))
174 | (comp (ref C4)
175 | (value 15p)
176 | (footprint Capacitors_SMD:C_0805)
177 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
178 | (sheetpath (names /) (tstamps /))
179 | (tstamp 57C473B7))
180 | (comp (ref P1)
181 | (value DIL10)
182 | (footprint Pin_Headers:Pin_Header_Straight_2x05)
183 | (libsource (lib conn) (part DIL10))
184 | (sheetpath (names /) (tstamps /))
185 | (tstamp 57C544B2))
186 | (comp (ref C7)
187 | (value 100n)
188 | (footprint Capacitors_SMD:C_0805)
189 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
190 | (sheetpath (names /) (tstamps /))
191 | (tstamp 57C54BAB))
192 | (comp (ref R9)
193 | (value 3k3)
194 | (footprint Resistors_SMD:R_0805)
195 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
196 | (sheetpath (names /) (tstamps /))
197 | (tstamp 57C55010))
198 | (comp (ref R8)
199 | (value 27k)
200 | (footprint Resistors_SMD:R_0805)
201 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
202 | (sheetpath (names /) (tstamps /))
203 | (tstamp 57C55133))
204 | (comp (ref R26)
205 | (value 15k)
206 | (footprint Resistors_SMD:R_0805)
207 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
208 | (sheetpath (names /) (tstamps /))
209 | (tstamp 57C55166))
210 | (comp (ref R27)
211 | (value 3k3)
212 | (footprint Resistors_SMD:R_0805)
213 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
214 | (sheetpath (names /) (tstamps /))
215 | (tstamp 57C5516E))
216 | (comp (ref R25)
217 | (value 2k2)
218 | (footprint Resistors_SMD:R_0805)
219 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
220 | (sheetpath (names /) (tstamps /))
221 | (tstamp 57C5630A))
222 | (comp (ref R17)
223 | (value 1k)
224 | (footprint Resistors_SMD:R_0805)
225 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
226 | (sheetpath (names /) (tstamps /))
227 | (tstamp 57C56310))
228 | (comp (ref U2)
229 | (value TL082)
230 | (footprint Housings_SOIC:SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm)
231 | (libsource (lib MP-Tracker-rescue) (part TL082-RESCUE-MP-Tracker))
232 | (sheetpath (names /) (tstamps /))
233 | (tstamp 57C567BE))
234 | (comp (ref R18)
235 | (value 22k)
236 | (footprint Resistors_SMD:R_0805)
237 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
238 | (sheetpath (names /) (tstamps /))
239 | (tstamp 57C56968))
240 | (comp (ref R22)
241 | (value 1M)
242 | (footprint Resistors_SMD:R_0805)
243 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
244 | (sheetpath (names /) (tstamps /))
245 | (tstamp 57C56BC9))
246 | (comp (ref D3)
247 | (value ZD-3V3-SOT23)
248 | (footprint Diodes_SMD:SOD-123)
249 | (libsource (lib device) (part ZENERsmall))
250 | (sheetpath (names /) (tstamps /))
251 | (tstamp 57C57DA8))
252 | (comp (ref R23)
253 | (value 22k)
254 | (footprint Resistors_SMD:R_0805)
255 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
256 | (sheetpath (names /) (tstamps /))
257 | (tstamp 57C5821E))
258 | (comp (ref R24)
259 | (value 22k)
260 | (footprint Resistors_SMD:R_0805)
261 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
262 | (sheetpath (names /) (tstamps /))
263 | (tstamp 57C58224))
264 | (comp (ref C10)
265 | (value 100n)
266 | (footprint Capacitors_SMD:C_0805)
267 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
268 | (sheetpath (names /) (tstamps /))
269 | (tstamp 57C58833))
270 | (comp (ref R10)
271 | (value 1K)
272 | (footprint Resistors_SMD:R_0805)
273 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
274 | (sheetpath (names /) (tstamps /))
275 | (tstamp 57C58A87))
276 | (comp (ref C2)
277 | (value 100n)
278 | (footprint Capacitors_SMD:C_0805)
279 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
280 | (sheetpath (names /) (tstamps /))
281 | (tstamp 57C58B62))
282 | (comp (ref D6)
283 | (value ZD-3V3-SOT23)
284 | (footprint Diodes_SMD:SOD-123)
285 | (libsource (lib device) (part ZENERsmall))
286 | (sheetpath (names /) (tstamps /))
287 | (tstamp 57C593AC))
288 | (comp (ref C3)
289 | (value 100n)
290 | (footprint Capacitors_SMD:C_0805)
291 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
292 | (sheetpath (names /) (tstamps /))
293 | (tstamp 57C595B9))
294 | (comp (ref C1)
295 | (value 100n)
296 | (footprint Capacitors_SMD:C_0805)
297 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
298 | (sheetpath (names /) (tstamps /))
299 | (tstamp 57C5969B))
300 | (comp (ref R6)
301 | (value 47R)
302 | (footprint Resistors_SMD:R_0805)
303 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
304 | (sheetpath (names /) (tstamps /))
305 | (tstamp 57C59AD6))
306 | (comp (ref Q4)
307 | (value IRFR5303)
308 | (footprint TO_SOT_Packages_SMD:TO-252-2Lead)
309 | (libsource (lib MP-Tracker-rescue) (part IRF9540N-RESCUE-MP-Tracker))
310 | (sheetpath (names /) (tstamps /))
311 | (tstamp 57C5A00C))
312 | (comp (ref R5)
313 | (value 10k)
314 | (footprint Resistors_SMD:R_0805)
315 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
316 | (sheetpath (names /) (tstamps /))
317 | (tstamp 57C5A1E6))
318 | (comp (ref D2)
319 | (value 1N4001)
320 | (footprint Diodes_SMD:SOD-323)
321 | (libsource (lib MP-Tracker-cache) (part DIODE))
322 | (sheetpath (names /) (tstamps /))
323 | (tstamp 57C5A58E))
324 | (comp (ref R7)
325 | (value 1k)
326 | (footprint Resistors_SMD:R_0805)
327 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
328 | (sheetpath (names /) (tstamps /))
329 | (tstamp 57C5A8FA))
330 | (comp (ref R4)
331 | (value 1k)
332 | (footprint Resistors_SMD:R_0805)
333 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
334 | (sheetpath (names /) (tstamps /))
335 | (tstamp 57C5A900))
336 | (comp (ref R14)
337 | (value 33k)
338 | (footprint Resistors_SMD:R_0805)
339 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
340 | (sheetpath (names /) (tstamps /))
341 | (tstamp 57C84030))
342 | (comp (ref C12)
343 | (value 10n)
344 | (footprint Capacitors_SMD:C_0805)
345 | (libsource (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker))
346 | (sheetpath (names /) (tstamps /))
347 | (tstamp 57C84A07))
348 | (comp (ref R28)
349 | (value 22k)
350 | (footprint Resistors_SMD:R_0805)
351 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
352 | (sheetpath (names /) (tstamps /))
353 | (tstamp 57C85335))
354 | (comp (ref R29)
355 | (value 22k)
356 | (footprint Resistors_SMD:R_0805)
357 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
358 | (sheetpath (names /) (tstamps /))
359 | (tstamp 57C8533B))
360 | (comp (ref R15)
361 | (value 15k)
362 | (footprint Resistors_SMD:R_0805)
363 | (libsource (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker))
364 | (sheetpath (names /) (tstamps /))
365 | (tstamp 57C8242E))
366 | (comp (ref Q1)
367 | (value BC817-40)
368 | (footprint TO_SOT_Packages_SMD:SOT-23)
369 | (libsource (lib transistors) (part BC817-40))
370 | (sheetpath (names /) (tstamps /))
371 | (tstamp 57D10F64))
372 | (comp (ref Q3)
373 | (value BC817-40)
374 | (footprint TO_SOT_Packages_SMD:SOT-23)
375 | (libsource (lib transistors) (part BC817-40))
376 | (sheetpath (names /) (tstamps /))
377 | (tstamp 57D11CE9))
378 | (comp (ref U4)
379 | (value MC78L033)
380 | (footprint Power_Integrations:SO-8)
381 | (libsource (lib regul) (part MC78L05ACD))
382 | (sheetpath (names /) (tstamps /))
383 | (tstamp 57D4A861)))
384 | (libparts
385 | (libpart (lib atmel) (part ATMEGA8-AI)
386 | (aliases
387 | (alias ATMEGA8A-A))
388 | (description "TQFP32, 8k Flash, 1k SRAM, 512B EEPROM")
389 | (docs http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf)
390 | (footprints
391 | (fp TQFP32))
392 | (fields
393 | (field (name Reference) IC)
394 | (field (name Value) ATMEGA8-AI)
395 | (field (name Footprint) TQFP32))
396 | (pins
397 | (pin (num 1) (name "(INT1)PD3") (type BiDi))
398 | (pin (num 2) (name "(XCK/T0)PD4") (type BiDi))
399 | (pin (num 3) (name GND) (type power_in))
400 | (pin (num 4) (name VCC) (type power_in))
401 | (pin (num 5) (name GND) (type power_in))
402 | (pin (num 6) (name VCC) (type power_in))
403 | (pin (num 7) (name "PB6(XTAL1/TOSC1)") (type BiDi))
404 | (pin (num 8) (name "PB7(XTAL2/TOSC2)") (type BiDi))
405 | (pin (num 9) (name "(T1)PD5") (type BiDi))
406 | (pin (num 10) (name "(AIN0)PD6") (type BiDi))
407 | (pin (num 11) (name "(AIN1)PD7") (type BiDi))
408 | (pin (num 12) (name "(ICP)PB0") (type BiDi))
409 | (pin (num 13) (name "(OC1A)PB1") (type BiDi))
410 | (pin (num 14) (name "(~SS~/OC1B)PB2") (type BiDi))
411 | (pin (num 15) (name "(MOSI/OC2)PB3") (type BiDi))
412 | (pin (num 16) (name "(MISO)PB4") (type BiDi))
413 | (pin (num 17) (name "(SCK)PB5") (type BiDi))
414 | (pin (num 18) (name AVCC) (type power_in))
415 | (pin (num 19) (name ADC6) (type BiDi))
416 | (pin (num 20) (name AREF) (type BiDi))
417 | (pin (num 21) (name AGND) (type power_in))
418 | (pin (num 22) (name ADC7) (type BiDi))
419 | (pin (num 23) (name "(ADC0)PC0") (type BiDi))
420 | (pin (num 24) (name "(ADC1)PC1") (type BiDi))
421 | (pin (num 25) (name "(ADC2)PC2") (type BiDi))
422 | (pin (num 26) (name "(ADC3)PC3") (type BiDi))
423 | (pin (num 27) (name "(ADC4/SDA)PC4") (type BiDi))
424 | (pin (num 28) (name "(ADC5/SCL)PC5") (type BiDi))
425 | (pin (num 29) (name "PC6(~RESET~)") (type BiDi))
426 | (pin (num 30) (name "(RXD)PD0") (type BiDi))
427 | (pin (num 31) (name "(TXD)PD1") (type BiDi))
428 | (pin (num 32) (name "(INT0)PD2") (type BiDi))))
429 | (libpart (lib transistors) (part BC817-40)
430 | (aliases
431 | (alias BC818-40))
432 | (description "45V Vce, 0.8A Ic, NPN, SOT-23")
433 | (docs http://www.fairchildsemi.com/ds/BC/BC817.pdf)
434 | (footprints
435 | (fp SOT-23*))
436 | (fields
437 | (field (name Reference) Q)
438 | (field (name Value) BC817-40)
439 | (field (name Footprint) SOT-23))
440 | (pins
441 | (pin (num 1) (name B) (type input))
442 | (pin (num 2) (name E) (type passive))
443 | (pin (num 3) (name C) (type passive))))
444 | (libpart (lib MP-Tracker-rescue) (part C-RESCUE-MP-Tracker)
445 | (footprints
446 | (fp SM*)
447 | (fp C?)
448 | (fp C1-1))
449 | (fields
450 | (field (name Reference) C)
451 | (field (name Value) C-RESCUE-MP-Tracker))
452 | (pins
453 | (pin (num 1) (name ~) (type passive))
454 | (pin (num 2) (name ~) (type passive))))
455 | (libpart (lib MP-Tracker-rescue) (part CP1-RESCUE-MP-Tracker)
456 | (footprints
457 | (fp CP*)
458 | (fp SM*))
459 | (fields
460 | (field (name Reference) C)
461 | (field (name Value) CP1-RESCUE-MP-Tracker))
462 | (pins
463 | (pin (num 1) (name ~) (type passive))
464 | (pin (num 2) (name ~) (type passive))))
465 | (libpart (lib device) (part CRYSTAL_SMD)
466 | (fields
467 | (field (name Reference) X)
468 | (field (name Value) CRYSTAL_SMD))
469 | (pins
470 | (pin (num 1) (name 1) (type passive))
471 | (pin (num 2) (name 2) (type passive))
472 | (pin (num 3) (name case) (type passive))))
473 | (libpart (lib conn) (part DIL10)
474 | (fields
475 | (field (name Reference) P)
476 | (field (name Value) DIL10))
477 | (pins
478 | (pin (num 1) (name P1) (type passive))
479 | (pin (num 2) (name P2) (type passive))
480 | (pin (num 3) (name P3) (type passive))
481 | (pin (num 4) (name P4) (type passive))
482 | (pin (num 5) (name P5) (type passive))
483 | (pin (num 6) (name P6) (type passive))
484 | (pin (num 7) (name P7) (type passive))
485 | (pin (num 8) (name P8) (type passive))
486 | (pin (num 9) (name P9) (type passive))
487 | (pin (num 10) (name P10) (type passive))))
488 | (libpart (lib MP-Tracker-cache) (part DIODE)
489 | (footprints
490 | (fp D?)
491 | (fp S*))
492 | (fields
493 | (field (name Reference) D)
494 | (field (name Value) DIODE))
495 | (pins
496 | (pin (num 1) (name A) (type passive))
497 | (pin (num 2) (name K) (type passive))))
498 | (libpart (lib MP-Tracker-cache) (part DIODESCH)
499 | (footprints
500 | (fp D?)
501 | (fp S*))
502 | (fields
503 | (field (name Reference) D)
504 | (field (name Value) DIODESCH))
505 | (pins
506 | (pin (num 1) (name A) (type passive))
507 | (pin (num 2) (name K) (type passive))))
508 | (libpart (lib device) (part INDUCTOR)
509 | (fields
510 | (field (name Reference) L)
511 | (field (name Value) INDUCTOR))
512 | (pins
513 | (pin (num 1) (name 1) (type passive))
514 | (pin (num 2) (name 2) (type passive))))
515 | (libpart (lib MP-Tracker-rescue) (part IRF9540N-RESCUE-MP-Tracker)
516 | (footprints
517 | (fp TO220*))
518 | (fields
519 | (field (name Reference) Q)
520 | (field (name Value) IRF9540N-RESCUE-MP-Tracker)
521 | (field (name Footprint) TO220))
522 | (pins
523 | (pin (num 1) (name D) (type passive))
524 | (pin (num 2) (name G) (type input))
525 | (pin (num 3) (name S) (type passive))))
526 | (libpart (lib regul) (part MC34063)
527 | (description "1.5A step up/down/inverting switching regulator")
528 | (docs regulator/mc34063.pdf)
529 | (fields
530 | (field (name Reference) U)
531 | (field (name Value) MC34063))
532 | (pins
533 | (pin (num 1) (name Sw_Coll) (type input))
534 | (pin (num 2) (name Sw_Emit) (type input))
535 | (pin (num 3) (name Tim_Cap) (type input))
536 | (pin (num 4) (name GND) (type power_in))
537 | (pin (num 5) (name V_Sense) (type input))
538 | (pin (num 6) (name VCC) (type power_in))
539 | (pin (num 7) (name I_Sense) (type input))
540 | (pin (num 8) (name Drv_Coll) (type input))))
541 | (libpart (lib regul) (part MC78L05ACD)
542 | (aliases
543 | (alias MC78L08ACD)
544 | (alias MC78L12ACD))
545 | (description "Positive 100mA 30V Linear Regulator, Fixed Output 5V, SO-8")
546 | (docs http://www.fairchildsemi.com/ds/LM/LM78L05A.pdf)
547 | (footprints
548 | (fp SO*))
549 | (fields
550 | (field (name Reference) U)
551 | (field (name Value) MC78L05ACD)
552 | (field (name Footprint) SO-8))
553 | (pins
554 | (pin (num 1) (name OUT) (type power_out))
555 | (pin (num 2) (name GND) (type power_out))
556 | (pin (num 3) (name GND) (type power_out))
557 | (pin (num 6) (name GND) (type power_out))
558 | (pin (num 7) (name GND) (type power_out))
559 | (pin (num 8) (name IN) (type input))))
560 | (libpart (lib MP-Tracker-rescue) (part R-RESCUE-MP-Tracker)
561 | (footprints
562 | (fp R?)
563 | (fp SM0603)
564 | (fp SM0805)
565 | (fp R?-*)
566 | (fp SM1206))
567 | (fields
568 | (field (name Reference) R)
569 | (field (name Value) R-RESCUE-MP-Tracker))
570 | (pins
571 | (pin (num 1) (name ~) (type passive))
572 | (pin (num 2) (name ~) (type passive))))
573 | (libpart (lib MP-Tracker-rescue) (part TL082-RESCUE-MP-Tracker)
574 | (fields
575 | (field (name Reference) U)
576 | (field (name Value) TL082-RESCUE-MP-Tracker))
577 | (pins
578 | (pin (num 1) (name ~) (type output))
579 | (pin (num 2) (name -) (type input))
580 | (pin (num 3) (name +) (type input))
581 | (pin (num 4) (name V-) (type power_in))
582 | (pin (num 5) (name +) (type input))
583 | (pin (num 6) (name -) (type input))
584 | (pin (num 7) (name ~) (type output))
585 | (pin (num 8) (name V+) (type power_in))))
586 | (libpart (lib device) (part ZENERsmall)
587 | (footprints
588 | (fp D?)
589 | (fp SO*)
590 | (fp SM*))
591 | (fields
592 | (field (name Reference) D)
593 | (field (name Value) ZENERsmall))
594 | (pins
595 | (pin (num 1) (name K) (type passive))
596 | (pin (num 2) (name A) (type passive)))))
597 | (libraries
598 | (library (logical MP-Tracker-rescue)
599 | (uri /home/elektra/MP-Tracker/MP-Tracker-rescue.lib))
600 | (library (logical device)
601 | (uri /usr/share/kicad/library/device.lib))
602 | (library (logical transistors)
603 | (uri /usr/share/kicad/library/transistors.lib))
604 | (library (logical conn)
605 | (uri /usr/share/kicad/library/conn.lib))
606 | (library (logical regul)
607 | (uri /usr/share/kicad/library/regul.lib))
608 | (library (logical atmel)
609 | (uri /usr/share/kicad/library/atmel.lib))
610 | (library (logical MP-Tracker-cache)
611 | (uri /home/elektra/MP-Tracker/MP-Tracker-cache.lib)))
612 | (nets
613 | (net (code 1) (name "Net-(R19-Pad1)")
614 | (node (ref R19) (pin 1))
615 | (node (ref U2) (pin 1)))
616 | (net (code 2) (name "Net-(P1-Pad5)")
617 | (node (ref U3) (pin 16))
618 | (node (ref P1) (pin 5)))
619 | (net (code 3) (name "Net-(P1-Pad3)")
620 | (node (ref U3) (pin 29))
621 | (node (ref P1) (pin 3)))
622 | (net (code 4) (name "Net-(P1-Pad1)")
623 | (node (ref P1) (pin 1))
624 | (node (ref U3) (pin 15)))
625 | (net (code 5) (name "Net-(P1-Pad4)")
626 | (node (ref U3) (pin 17))
627 | (node (ref P1) (pin 4)))
628 | (net (code 6) (name "Net-(P1-Pad9)")
629 | (node (ref U3) (pin 30))
630 | (node (ref P1) (pin 9)))
631 | (net (code 7) (name "Net-(R17-Pad2)")
632 | (node (ref U2) (pin 7))
633 | (node (ref R17) (pin 2))
634 | (node (ref R18) (pin 1)))
635 | (net (code 8) (name "Net-(R18-Pad2)")
636 | (node (ref R18) (pin 2))
637 | (node (ref R22) (pin 1))
638 | (node (ref R25) (pin 1))
639 | (node (ref U2) (pin 6)))
640 | (net (code 9) (name "Net-(R26-Pad2)")
641 | (node (ref R27) (pin 1))
642 | (node (ref U3) (pin 23))
643 | (node (ref R26) (pin 2)))
644 | (net (code 10) (name "Net-(R8-Pad2)")
645 | (node (ref U3) (pin 25))
646 | (node (ref R9) (pin 1))
647 | (node (ref R8) (pin 2)))
648 | (net (code 11) (name "Net-(D5-Pad2)")
649 | (node (ref L1) (pin 1))
650 | (node (ref Q2) (pin 1))
651 | (node (ref D5) (pin 2)))
652 | (net (code 12) (name "Net-(D1-Pad1)")
653 | (node (ref D1) (pin 1))
654 | (node (ref Q1) (pin 2))
655 | (node (ref Q2) (pin 2)))
656 | (net (code 13) (name "Net-(D1-Pad2)")
657 | (node (ref R2) (pin 1))
658 | (node (ref Q1) (pin 1))
659 | (node (ref D1) (pin 2))
660 | (node (ref R3) (pin 1)))
661 | (net (code 14) (name "Net-(R3-Pad2)")
662 | (node (ref U1) (pin 1))
663 | (node (ref R3) (pin 2)))
664 | (net (code 15) (name "Net-(C5-Pad1)")
665 | (node (ref C5) (pin 1))
666 | (node (ref U3) (pin 8))
667 | (node (ref X1) (pin 2)))
668 | (net (code 16) (name "Net-(R11-Pad2)")
669 | (node (ref U2) (pin 2))
670 | (node (ref R12) (pin 1))
671 | (node (ref R11) (pin 2)))
672 | (net (code 17) (name GNDPWR)
673 | (node (ref X1) (pin 3))
674 | (node (ref D5) (pin 1))
675 | (node (ref C8) (pin 2))
676 | (node (ref U1) (pin 2))
677 | (node (ref U1) (pin 4))
678 | (node (ref C9) (pin 2))
679 | (node (ref R12) (pin 2))
680 | (node (ref C10) (pin 2))
681 | (node (ref U3) (pin 21))
682 | (node (ref D3) (pin 2))
683 | (node (ref R16) (pin 2))
684 | (node (ref U3) (pin 3))
685 | (node (ref U3) (pin 5))
686 | (node (ref R24) (pin 2))
687 | (node (ref C5) (pin 2))
688 | (node (ref C4) (pin 1))
689 | (node (ref P1) (pin 6))
690 | (node (ref P1) (pin 7))
691 | (node (ref P1) (pin 8))
692 | (node (ref U4) (pin 2))
693 | (node (ref U2) (pin 4))
694 | (node (ref Q3) (pin 2))
695 | (node (ref R29) (pin 2))
696 | (node (ref R22) (pin 2))
697 | (node (ref U4) (pin 7))
698 | (node (ref U4) (pin 6))
699 | (node (ref U4) (pin 3))
700 | (node (ref D6) (pin 2))
701 | (node (ref C2) (pin 2))
702 | (node (ref R27) (pin 2))
703 | (node (ref R9) (pin 2))
704 | (node (ref C7) (pin 2))
705 | (node (ref R21) (pin 2))
706 | (node (ref C11) (pin 2))
707 | (node (ref D4) (pin 2))
708 | (node (ref C14) (pin 2))
709 | (node (ref C6) (pin 2))
710 | (node (ref C1) (pin 2))
711 | (node (ref C3) (pin 2))
712 | (node (ref C12) (pin 2))
713 | (node (ref R4) (pin 1))
714 | (node (ref D2) (pin 1))
715 | (node (ref C13) (pin 2)))
716 | (net (code 18) (name "Net-(C4-Pad2)")
717 | (node (ref X1) (pin 1))
718 | (node (ref U3) (pin 7))
719 | (node (ref C4) (pin 2)))
720 | (net (code 19) (name "Net-(R25-Pad2)")
721 | (node (ref R29) (pin 1))
722 | (node (ref R28) (pin 2))
723 | (node (ref R25) (pin 2)))
724 | (net (code 20) (name "Net-(D3-Pad1)")
725 | (node (ref U3) (pin 24))
726 | (node (ref R17) (pin 1))
727 | (node (ref D3) (pin 1)))
728 | (net (code 21) (name "Net-(D6-Pad1)")
729 | (node (ref D6) (pin 1))
730 | (node (ref R20) (pin 2))
731 | (node (ref U1) (pin 5))
732 | (node (ref R21) (pin 1))
733 | (node (ref R19) (pin 2)))
734 | (net (code 22) (name "Net-(D4-Pad1)")
735 | (node (ref R14) (pin 2))
736 | (node (ref R13) (pin 2))
737 | (node (ref D4) (pin 1)))
738 | (net (code 23) (name "Net-(C12-Pad1)")
739 | (node (ref U2) (pin 3))
740 | (node (ref R15) (pin 2))
741 | (node (ref C12) (pin 1))
742 | (node (ref R14) (pin 1)))
743 | (net (code 24) (name +3.3V)
744 | (node (ref P1) (pin 10))
745 | (node (ref C7) (pin 1))
746 | (node (ref R6) (pin 1))
747 | (node (ref U3) (pin 4))
748 | (node (ref U4) (pin 1))
749 | (node (ref U3) (pin 6)))
750 | (net (code 25) (name "Net-(R10-Pad1)")
751 | (node (ref R10) (pin 1))
752 | (node (ref U3) (pin 13)))
753 | (net (code 26) (name "Net-(C1-Pad1)")
754 | (node (ref C1) (pin 1))
755 | (node (ref R6) (pin 2))
756 | (node (ref U3) (pin 18)))
757 | (net (code 27) (name "Net-(C3-Pad1)")
758 | (node (ref C3) (pin 1))
759 | (node (ref U3) (pin 20)))
760 | (net (code 28) (name "Net-(R23-Pad2)")
761 | (node (ref R23) (pin 2))
762 | (node (ref U2) (pin 5))
763 | (node (ref R24) (pin 1)))
764 | (net (code 29) (name "Net-(C11-Pad1)")
765 | (node (ref C13) (pin 1))
766 | (node (ref R20) (pin 1))
767 | (node (ref R23) (pin 1))
768 | (node (ref C11) (pin 1))
769 | (node (ref L2) (pin 1))
770 | (node (ref L1) (pin 2)))
771 | (net (code 30) (name +BATT)
772 | (node (ref C2) (pin 1))
773 | (node (ref Q4) (pin 3))
774 | (node (ref R5) (pin 1))
775 | (node (ref R26) (pin 1))
776 | (node (ref U4) (pin 8))
777 | (node (ref R28) (pin 1))
778 | (node (ref C14) (pin 1))
779 | (node (ref L2) (pin 2)))
780 | (net (code 31) (name "Net-(P1-Pad2)")
781 | (node (ref U3) (pin 31))
782 | (node (ref P1) (pin 2)))
783 | (net (code 32) (name "Net-(Q3-Pad1)")
784 | (node (ref R7) (pin 1))
785 | (node (ref Q3) (pin 1))
786 | (node (ref R4) (pin 2)))
787 | (net (code 33) (name "Net-(C10-Pad1)")
788 | (node (ref R10) (pin 2))
789 | (node (ref R16) (pin 1))
790 | (node (ref R15) (pin 1))
791 | (node (ref C10) (pin 1)))
792 | (net (code 34) (name VAA)
793 | (node (ref D2) (pin 2))
794 | (node (ref Q4) (pin 1)))
795 | (net (code 35) (name "Net-(Q3-Pad3)")
796 | (node (ref R5) (pin 2))
797 | (node (ref Q4) (pin 2))
798 | (node (ref Q3) (pin 3)))
799 | (net (code 36) (name "Net-(R7-Pad2)")
800 | (node (ref R7) (pin 2))
801 | (node (ref U3) (pin 11)))
802 | (net (code 37) (name "Net-(U3-Pad9)")
803 | (node (ref U3) (pin 9)))
804 | (net (code 38) (name "Net-(U3-Pad10)")
805 | (node (ref U3) (pin 10)))
806 | (net (code 39) (name "Net-(U3-Pad12)")
807 | (node (ref U3) (pin 12)))
808 | (net (code 40) (name "Net-(U3-Pad22)")
809 | (node (ref U3) (pin 22)))
810 | (net (code 41) (name "Net-(U3-Pad32)")
811 | (node (ref U3) (pin 32)))
812 | (net (code 42) (name "Net-(U3-Pad14)")
813 | (node (ref U3) (pin 14)))
814 | (net (code 43) (name "Net-(U3-Pad1)")
815 | (node (ref U3) (pin 1)))
816 | (net (code 44) (name "Net-(U3-Pad2)")
817 | (node (ref U3) (pin 2)))
818 | (net (code 45) (name "Net-(U3-Pad26)")
819 | (node (ref U3) (pin 26)))
820 | (net (code 46) (name "Net-(U3-Pad27)")
821 | (node (ref U3) (pin 27)))
822 | (net (code 47) (name "Net-(U3-Pad28)")
823 | (node (ref U3) (pin 28)))
824 | (net (code 48) (name "Net-(U3-Pad19)")
825 | (node (ref U3) (pin 19)))
826 | (net (code 49) (name "Net-(R1-Pad2)")
827 | (node (ref R1) (pin 2))
828 | (node (ref U1) (pin 8)))
829 | (net (code 50) (name "Net-(C8-Pad1)")
830 | (node (ref C8) (pin 1))
831 | (node (ref U1) (pin 3)))
832 | (net (code 51) (name VCC)
833 | (node (ref Q2) (pin 3))
834 | (node (ref R2) (pin 2))
835 | (node (ref R11) (pin 1))
836 | (node (ref U2) (pin 8))
837 | (node (ref Q1) (pin 3))
838 | (node (ref R13) (pin 1))
839 | (node (ref C6) (pin 1))
840 | (node (ref R1) (pin 1))
841 | (node (ref C9) (pin 1))
842 | (node (ref U1) (pin 7))
843 | (node (ref U1) (pin 6))
844 | (node (ref R8) (pin 1)))))
--------------------------------------------------------------------------------
/Schematic-and-Board/MP-Tracker-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.3
2 | #encoding utf-8
3 | #
4 | # +3.3V-RESCUE-MP-Tracker
5 | #
6 | DEF +3.3V-RESCUE-MP-Tracker #PWR 0 0 Y Y 1 F P
7 | F0 "#PWR" 0 -40 30 H I C CNN
8 | F1 "+3.3V-RESCUE-MP-Tracker" 0 110 30 H V C CNN
9 | F2 "" 0 0 60 H V C CNN
10 | F3 "" 0 0 60 H V C CNN
11 | DRAW
12 | X +3.3V 1 0 0 0 U 30 30 0 0 W N
13 | C 0 60 20 0 1 0 N
14 | P 3 0 1 0 0 0 0 40 0 40 N
15 | ENDDRAW
16 | ENDDEF
17 | #
18 | # +BATT
19 | #
20 | DEF +BATT #PWR 0 0 Y Y 1 F P
21 | F0 "#PWR" 0 -150 50 H I C CNN
22 | F1 "+BATT" 0 140 50 H V C CNN
23 | F2 "" 0 0 50 H I C CNN
24 | F3 "" 0 0 50 H I C CNN
25 | DRAW
26 | P 2 0 1 0 -30 50 0 100 N
27 | P 2 0 1 0 0 0 0 100 N
28 | P 2 0 1 0 0 100 30 50 N
29 | X +BATT 1 0 0 0 U 50 50 1 1 W N
30 | ENDDRAW
31 | ENDDEF
32 | #
33 | # ATMEGA8-AI
34 | #
35 | DEF ATMEGA8-AI IC 0 40 Y Y 1 F N
36 | F0 "IC" -750 1200 50 H V L BNN
37 | F1 "ATMEGA8-AI" 500 -1550 50 H V L BNN
38 | F2 "TQFP32" 0 0 50 H V C CIN
39 | F3 "" 0 0 50 H V C CNN
40 | ALIAS ATMEGA8A-A
41 | $FPLIST
42 | TQFP32
43 | $ENDFPLIST
44 | DRAW
45 | S -750 1150 850 -1450 0 1 10 f
46 | X (INT1)PD3 1 1000 -900 150 L 40 40 1 1 B
47 | X (XCK/T0)PD4 2 1000 -1000 150 L 40 40 1 1 B
48 | X GND 3 -50 -1600 150 U 40 40 1 1 W
49 | X VCC 4 -50 1300 150 D 40 40 1 1 W
50 | X GND 5 50 -1600 150 U 40 40 1 1 W
51 | X VCC 6 50 1300 150 D 40 40 1 1 W
52 | X PB6(XTAL1/TOSC1) 7 -900 300 150 R 40 40 1 1 B
53 | X PB7(XTAL2/TOSC2) 8 -900 100 150 R 40 40 1 1 B
54 | X (T1)PD5 9 1000 -1100 150 L 40 40 1 1 B
55 | X (AIN0)PD6 10 1000 -1200 150 L 40 40 1 1 B
56 | X AREF 20 -900 700 150 R 40 40 1 1 B
57 | X (RXD)PD0 30 1000 -600 150 L 40 40 1 1 B
58 | X (AIN1)PD7 11 1000 -1300 150 L 40 40 1 1 B
59 | X AGND 21 -900 600 150 R 40 40 1 1 W
60 | X (TXD)PD1 31 1000 -700 150 L 40 40 1 1 B
61 | X (ICP)PB0 12 1000 1000 150 L 40 40 1 1 B
62 | X ADC7 22 1000 -400 150 L 40 40 1 1 B
63 | X (INT0)PD2 32 1000 -800 150 L 40 40 1 1 B
64 | X (OC1A)PB1 13 1000 900 150 L 40 40 1 1 B
65 | X (ADC0)PC0 23 1000 300 150 L 40 40 1 1 B
66 | X (~SS~/OC1B)PB2 14 1000 800 150 L 40 40 1 1 B
67 | X (ADC1)PC1 24 1000 200 150 L 40 40 1 1 B
68 | X (MOSI/OC2)PB3 15 1000 700 150 L 40 40 1 1 B
69 | X (ADC2)PC2 25 1000 100 150 L 40 40 1 1 B
70 | X (MISO)PB4 16 1000 600 150 L 40 40 1 1 B
71 | X (ADC3)PC3 26 1000 0 150 L 40 40 1 1 B
72 | X (SCK)PB5 17 1000 500 150 L 40 40 1 1 B
73 | X (ADC4/SDA)PC4 27 1000 -100 150 L 40 40 1 1 B
74 | X AVCC 18 -900 800 150 R 40 40 1 1 W
75 | X (ADC5/SCL)PC5 28 1000 -200 150 L 40 40 1 1 B
76 | X ADC6 19 1000 -300 150 L 40 40 1 1 B
77 | X PC6(~RESET~) 29 -900 1000 150 R 40 40 1 1 B
78 | ENDDRAW
79 | ENDDEF
80 | #
81 | # BC817-40
82 | #
83 | DEF BC817-40 Q 0 0 Y Y 1 F N
84 | F0 "Q" 200 75 50 H V L CNN
85 | F1 "BC817-40" 200 0 50 H V L CNN
86 | F2 "TO_SOT_Packages_SMD:SOT-23" 200 -75 50 H I L CIN
87 | F3 "" 0 0 50 H I L CNN
88 | ALIAS BC818-40
89 | $FPLIST
90 | SOT-23*
91 | $ENDFPLIST
92 | DRAW
93 | C 50 0 111 0 1 10 N
94 | P 2 0 1 0 0 0 25 0 N
95 | P 2 0 1 0 100 100 25 25 N
96 | P 3 0 1 0 25 -25 100 -100 100 -100 N
97 | P 3 0 1 20 25 75 25 -75 25 -75 N
98 | P 5 0 1 0 50 -70 70 -50 90 -90 50 -70 50 -70 F
99 | X B 1 -200 0 200 R 50 50 1 1 I
100 | X E 2 100 -200 100 U 50 50 1 1 P
101 | X C 3 100 200 100 D 50 50 1 1 P
102 | ENDDRAW
103 | ENDDEF
104 | #
105 | # C-RESCUE-MP-Tracker
106 | #
107 | DEF C-RESCUE-MP-Tracker C 0 10 N Y 1 F N
108 | F0 "C" 0 100 40 H V L CNN
109 | F1 "C-RESCUE-MP-Tracker" 6 -85 40 H V L CNN
110 | F2 "" 38 -150 30 H V C CNN
111 | F3 "" 0 0 60 H V C CNN
112 | $FPLIST
113 | SM*
114 | C?
115 | C1-1
116 | $ENDFPLIST
117 | DRAW
118 | P 2 0 1 20 -80 -30 80 -30 N
119 | P 2 0 1 20 -80 30 80 30 N
120 | X ~ 1 0 200 170 D 40 40 1 1 P
121 | X ~ 2 0 -200 170 U 40 40 1 1 P
122 | ENDDRAW
123 | ENDDEF
124 | #
125 | # CONN_01X02
126 | #
127 | DEF CONN_01X02 J 0 40 Y N 1 F N
128 | F0 "J" 0 150 50 H V C CNN
129 | F1 "CONN_01X02" 100 0 50 V V C CNN
130 | F2 "" 0 0 50 H I C CNN
131 | F3 "" 0 0 50 H I C CNN
132 | $FPLIST
133 | Pin_Header_Straight_1X*
134 | Pin_Header_Angled_1X*
135 | Socket_Strip_Straight_1X*
136 | Socket_Strip_Angled_1X*
137 | $ENDFPLIST
138 | DRAW
139 | S -50 -45 10 -55 0 1 0 N
140 | S -50 55 10 45 0 1 0 N
141 | S -50 100 50 -100 0 1 0 N
142 | X P1 1 -200 50 150 R 50 50 1 1 P
143 | X P2 2 -200 -50 150 R 50 50 1 1 P
144 | ENDDRAW
145 | ENDDEF
146 | #
147 | # CONN_02X05
148 | #
149 | DEF CONN_02X05 J 0 1 Y N 1 F N
150 | F0 "J" 0 300 50 H V C CNN
151 | F1 "CONN_02X05" 0 -300 50 H V C CNN
152 | F2 "" 0 -1200 50 H I C CNN
153 | F3 "" 0 -1200 50 H I C CNN
154 | $FPLIST
155 | Pin_Header_Straight_2X*
156 | Pin_Header_Angled_2X*
157 | Socket_Strip_Straight_2X*
158 | Socket_Strip_Angled_2X*
159 | IDC_Header_Straight_*
160 | $ENDFPLIST
161 | DRAW
162 | S -100 -195 -50 -205 0 1 0 N
163 | S -100 -95 -50 -105 0 1 0 N
164 | S -100 5 -50 -5 0 1 0 N
165 | S -100 105 -50 95 0 1 0 N
166 | S -100 205 -50 195 0 1 0 N
167 | S -100 250 100 -250 0 1 0 N
168 | S 50 -195 100 -205 0 1 0 N
169 | S 50 -95 100 -105 0 1 0 N
170 | S 50 5 100 -5 0 1 0 N
171 | S 50 105 100 95 0 1 0 N
172 | S 50 205 100 195 0 1 0 N
173 | X P1 1 -250 200 150 R 50 50 1 1 P
174 | X P2 2 250 200 150 L 50 50 1 1 P
175 | X P3 3 -250 100 150 R 50 50 1 1 P
176 | X P4 4 250 100 150 L 50 50 1 1 P
177 | X P5 5 -250 0 150 R 50 50 1 1 P
178 | X P6 6 250 0 150 L 50 50 1 1 P
179 | X P7 7 -250 -100 150 R 50 50 1 1 P
180 | X P8 8 250 -100 150 L 50 50 1 1 P
181 | X P9 9 -250 -200 150 R 50 50 1 1 P
182 | X P10 10 250 -200 150 L 50 50 1 1 P
183 | ENDDRAW
184 | ENDDEF
185 | #
186 | # CP1-RESCUE-MP-Tracker
187 | #
188 | DEF CP1-RESCUE-MP-Tracker C 0 10 N N 1 F N
189 | F0 "C" 50 100 50 H V L CNN
190 | F1 "CP1-RESCUE-MP-Tracker" 50 -100 50 H V L CNN
191 | F2 "" 0 0 60 H V C CNN
192 | F3 "" 0 0 60 H V C CNN
193 | $FPLIST
194 | CP*
195 | SM*
196 | $ENDFPLIST
197 | DRAW
198 | T 0 -50 100 80 0 0 0 + Normal 0 C C
199 | A 0 -200 180 563 1236 0 1 15 N 100 -50 -100 -50
200 | P 4 0 1 15 -100 50 100 50 50 50 50 50 N
201 | X ~ 1 0 200 150 D 40 40 1 1 P
202 | X ~ 2 0 -200 180 U 40 40 1 1 P
203 | ENDDRAW
204 | ENDDEF
205 | #
206 | # CRYSTAL_SMD-RESCUE-MP-Tracker
207 | #
208 | DEF CRYSTAL_SMD-RESCUE-MP-Tracker X 0 40 Y N 1 F N
209 | F0 "X" 0 90 50 H V C CNN
210 | F1 "CRYSTAL_SMD-RESCUE-MP-Tracker" 30 -110 50 H V L CNN
211 | F2 "" 0 0 50 H V C CNN
212 | F3 "" 0 0 50 H V C CNN
213 | DRAW
214 | P 2 0 1 0 -70 -70 70 -70 N
215 | P 2 0 1 16 -70 50 -70 -50 N
216 | P 2 0 1 16 70 50 70 -50 N
217 | P 5 0 1 12 -40 40 40 40 40 -40 -40 -40 -40 40 f
218 | X 1 1 -200 0 130 R 25 20 1 1 P
219 | X 2 2 200 0 130 L 25 20 1 1 P
220 | X case 3 0 -100 30 U 25 20 1 1 P
221 | ENDDRAW
222 | ENDDEF
223 | #
224 | # DIODE
225 | #
226 | DEF DIODE D 0 40 N N 1 F N
227 | F0 "D" 0 100 40 H V C CNN
228 | F1 "DIODE" 0 -100 40 H V C CNN
229 | F2 "" 0 0 60 H V C CNN
230 | F3 "" 0 0 60 H V C CNN
231 | $FPLIST
232 | D?
233 | S*
234 | $ENDFPLIST
235 | DRAW
236 | P 2 0 1 6 50 50 50 -50 N
237 | P 3 0 1 0 -50 50 50 0 -50 -50 F
238 | X A 1 -200 0 150 R 40 40 1 1 P
239 | X K 2 200 0 150 L 40 40 1 1 P
240 | ENDDRAW
241 | ENDDEF
242 | #
243 | # DIODESCH
244 | #
245 | DEF DIODESCH D 0 40 N N 1 F N
246 | F0 "D" 0 100 40 H V C CNN
247 | F1 "DIODESCH" 0 -100 40 H V C CNN
248 | F2 "" 0 0 60 H V C CNN
249 | F3 "" 0 0 60 H V C CNN
250 | $FPLIST
251 | D?
252 | S*
253 | $ENDFPLIST
254 | DRAW
255 | P 3 0 1 0 -50 50 50 0 -50 -50 F
256 | P 6 0 1 8 75 25 75 50 50 50 50 -50 25 -50 25 -25 N
257 | X A 1 -200 0 150 R 40 40 1 1 P
258 | X K 2 200 0 150 L 40 40 1 1 P
259 | ENDDRAW
260 | ENDDEF
261 | #
262 | # GNDPWR
263 | #
264 | DEF GNDPWR #PWR 0 0 Y Y 1 F P
265 | F0 "#PWR" 0 -200 50 H I C CNN
266 | F1 "GNDPWR" 0 -130 50 H V C CNN
267 | F2 "" 0 -50 50 H I C CNN
268 | F3 "" 0 -50 50 H I C CNN
269 | DRAW
270 | P 2 0 1 0 0 -50 0 0 N
271 | P 3 0 1 8 -40 -50 -50 -80 -50 -80 N
272 | P 3 0 1 8 -20 -50 -30 -80 -30 -80 N
273 | P 3 0 1 8 0 -50 -10 -80 -10 -80 N
274 | P 3 0 1 8 20 -50 10 -80 10 -80 N
275 | P 3 0 1 8 40 -50 -40 -50 -40 -50 N
276 | P 4 0 1 8 40 -50 30 -80 30 -80 30 -80 N
277 | X GNDPWR 1 0 0 0 U 50 50 1 1 W N
278 | ENDDRAW
279 | ENDDEF
280 | #
281 | # INDUCTOR
282 | #
283 | DEF INDUCTOR L 0 40 N N 1 F N
284 | F0 "L" -50 0 50 V V C CNN
285 | F1 "INDUCTOR" 100 0 50 V V C CNN
286 | F2 "" 0 0 50 H V C CNN
287 | F3 "" 0 0 50 H V C CNN
288 | DRAW
289 | A 0 -150 50 -889 889 0 1 0 N 1 -199 1 -100
290 | A 0 -49 51 -889 889 0 1 0 N 1 -99 1 2
291 | A 0 51 51 -889 889 0 1 0 N 1 1 1 102
292 | A 0 148 48 -889 889 0 1 0 N 1 101 1 196
293 | X 1 1 0 300 100 D 50 50 1 1 P
294 | X 2 2 0 -300 100 U 50 50 1 1 P
295 | ENDDRAW
296 | ENDDEF
297 | #
298 | # IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker
299 | #
300 | DEF IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker Q 0 0 Y Y 1 F N
301 | F0 "Q" 0 -148 40 H V R CNN
302 | F1 "IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker" 0 149 40 H V R CNN
303 | F2 "TO220" -219 101 29 H V C CNN
304 | F3 "" 0 0 60 H V C CNN
305 | $FPLIST
306 | TO220*
307 | $ENDFPLIST
308 | DRAW
309 | C 50 0 111 0 1 14 N
310 | C 50 0 125 0 1 0 N
311 | C 100 -50 5 0 1 0 N
312 | C 100 50 5 0 1 0 N
313 | P 2 0 1 20 25 -40 25 -65 N
314 | P 2 0 1 20 25 15 25 -15 N
315 | P 2 0 1 20 25 65 25 40 N
316 | P 2 0 1 0 120 -10 115 -15 N
317 | P 2 0 1 10 125 105 140 125 N
318 | P 2 0 1 10 130 -100 145 -120 N
319 | P 2 0 1 0 140 -10 120 -10 N
320 | P 2 0 1 0 140 -10 145 -5 N
321 | P 2 0 1 10 165 -60 185 -70 N
322 | P 2 0 1 10 165 60 185 75 N
323 | P 2 0 1 10 180 0 205 0 N
324 | P 3 0 1 10 0 60 0 -60 0 -60 N
325 | P 4 0 1 0 30 -50 100 -50 100 -100 100 -100 N
326 | P 4 0 1 0 30 0 100 0 100 -50 100 -50 N
327 | P 4 0 1 0 30 50 100 50 100 100 100 100 N
328 | P 4 0 1 0 55 15 55 -15 95 0 55 15 F
329 | P 4 0 1 0 100 50 130 50 130 -50 100 -50 N
330 | P 4 0 1 0 130 -10 140 15 120 15 130 -10 F
331 | X G 1 -200 -50 200 R 40 40 1 1 I
332 | X D 2 100 200 100 D 40 40 1 1 P
333 | X S 3 100 -200 100 U 40 40 1 1 P
334 | ENDDRAW
335 | ENDDEF
336 | #
337 | # MC34063
338 | #
339 | DEF MC34063 U 0 40 Y Y 1 F N
340 | F0 "U" 150 350 50 H V L CNN
341 | F1 "MC34063" 100 -350 50 H V L CNN
342 | F2 "" 0 0 50 H V C CNN
343 | F3 "" 0 0 50 H V C CNN
344 | DRAW
345 | S 550 300 -550 -300 0 1 0 N
346 | X Sw_Coll 1 850 100 300 L 50 50 1 1 I
347 | X Sw_Emit 2 850 -50 300 L 50 50 1 1 I
348 | X Tim_Cap 3 -850 -150 300 R 50 50 1 1 I
349 | X GND 4 0 -500 200 U 50 50 1 1 W
350 | X V_Sense 5 850 -200 300 L 50 50 1 1 I
351 | X VCC 6 0 500 200 D 50 50 1 1 W
352 | X I_Sense 7 -850 150 300 R 50 50 1 1 I
353 | X Drv_Coll 8 850 200 300 L 50 50 1 1 I
354 | ENDDRAW
355 | ENDDEF
356 | #
357 | # MC78L05ACD
358 | #
359 | DEF MC78L05ACD U 0 40 Y Y 1 F N
360 | F0 "U" -200 200 50 H V C CNN
361 | F1 "MC78L05ACD" 0 200 50 H V L CNN
362 | F2 "Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm" 0 100 50 H I C CIN
363 | F3 "" 0 0 50 H I C CNN
364 | ALIAS MC78L08ACD MC78L12ACD
365 | $FPLIST
366 | SO*
367 | $ENDFPLIST
368 | DRAW
369 | S -250 150 250 -200 0 1 10 f
370 | X OUT 1 400 50 150 L 50 50 1 1 w
371 | X GND 2 -150 -300 100 U 50 50 1 1 w
372 | X GND 3 -50 -300 100 U 50 50 1 1 w
373 | X GND 6 50 -300 100 U 50 50 1 1 w
374 | X GND 7 150 -300 100 U 50 50 1 1 w
375 | X IN 8 -400 50 150 R 50 50 1 1 I
376 | ENDDRAW
377 | ENDDEF
378 | #
379 | # R-RESCUE-MP-Tracker
380 | #
381 | DEF R-RESCUE-MP-Tracker R 0 0 N Y 1 F N
382 | F0 "R" 80 0 40 V V C CNN
383 | F1 "R-RESCUE-MP-Tracker" 7 1 40 V V C CNN
384 | F2 "" -70 0 30 V V C CNN
385 | F3 "" 0 0 30 H V C CNN
386 | $FPLIST
387 | R?
388 | SM0603
389 | SM0805
390 | R?-*
391 | SM1206
392 | $ENDFPLIST
393 | DRAW
394 | S -40 150 40 -150 0 1 12 N
395 | X ~ 1 0 250 100 D 60 60 1 1 P
396 | X ~ 2 0 -250 100 U 60 60 1 1 P
397 | ENDDRAW
398 | ENDDEF
399 | #
400 | # TL081-RESCUE-MP-Tracker
401 | #
402 | DEF TL081-RESCUE-MP-Tracker U 0 20 Y Y 1 F N
403 | F0 "U" 0 200 50 H V L CNN
404 | F1 "TL081-RESCUE-MP-Tracker" 0 -200 50 H V L CNN
405 | F2 "" 50 200 50 H V C CNN
406 | F3 "" 0 250 50 H V C CNN
407 | $FPLIST
408 | DIP*
409 | SOIC*
410 | TSSOP*
411 | $ENDFPLIST
412 | DRAW
413 | P 4 0 1 10 -200 200 200 0 -200 -200 -200 200 f
414 | X - 2 -300 -100 100 R 50 50 1 1 I
415 | X + 3 -300 100 100 R 50 50 1 1 I
416 | X V- 4 -100 -300 150 U 50 50 1 1 P
417 | X ~ 6 300 0 100 L 50 50 1 1 O
418 | X V+ 7 -100 300 150 D 50 50 1 1 P
419 | ENDDRAW
420 | ENDDEF
421 | #
422 | # VAA
423 | #
424 | DEF VAA #PWR 0 0 Y Y 1 F P
425 | F0 "#PWR" 0 -150 50 H I C CNN
426 | F1 "VAA" 0 150 50 H V C CNN
427 | F2 "" 0 0 50 H I C CNN
428 | F3 "" 0 0 50 H I C CNN
429 | DRAW
430 | C 0 75 25 0 1 0 N
431 | P 2 0 1 0 0 0 0 50 N
432 | X VAA 1 0 0 0 U 50 50 1 1 W N
433 | ENDDRAW
434 | ENDDEF
435 | #
436 | # VCC
437 | #
438 | DEF VCC #PWR 0 0 Y Y 1 F P
439 | F0 "#PWR" 0 -150 50 H I C CNN
440 | F1 "VCC" 0 150 50 H V C CNN
441 | F2 "" 0 0 50 H I C CNN
442 | F3 "" 0 0 50 H I C CNN
443 | DRAW
444 | C 0 75 25 0 1 0 N
445 | P 2 0 1 0 0 0 0 50 N
446 | X VCC 1 0 0 0 U 50 50 1 1 W N
447 | ENDDRAW
448 | ENDDEF
449 | #
450 | # ZENERsmall-RESCUE-MP-Tracker
451 | #
452 | DEF ZENERsmall-RESCUE-MP-Tracker D 0 40 N N 1 F N
453 | F0 "D" 0 100 40 H V C CNN
454 | F1 "ZENERsmall-RESCUE-MP-Tracker" 0 -100 30 H V C CNN
455 | F2 "" 0 0 60 H V C CNN
456 | F3 "" 0 0 60 H V C CNN
457 | $FPLIST
458 | D?
459 | SO*
460 | SM*
461 | $ENDFPLIST
462 | DRAW
463 | P 4 0 1 0 -40 40 40 0 -40 -40 -40 40 F
464 | P 4 0 1 8 60 40 40 20 40 -20 20 -40 N
465 | X A 1 -100 0 60 R 40 40 1 1 P
466 | X K 2 100 0 60 L 40 40 1 1 P
467 | ENDDRAW
468 | ENDDEF
469 | #
470 | #End Library
471 |
--------------------------------------------------------------------------------
/Schematic-and-Board/MP-Tracker.net:
--------------------------------------------------------------------------------
1 | (export (version D)
2 | (design
3 | (source /home/elektra/disk/freifunk-simplified-open-mppt-24-April-2017/Schematic-and-Board/MP-Tracker.sch)
4 | (date "Di 25 Apr 2017 13:44:04 CEST")
5 | (tool "Eeschema 4.0.5+dfsg1-4~bpo8+1")
6 | (sheet (number 1) (name /) (tstamps /)
7 | (title_block
8 | (title)
9 | (company)
10 | (rev 2)
11 | (date "4 April 2017")
12 | (source MP-Tracker.sch)
13 | (comment (number 1) (value ""))
14 | (comment (number 2) (value ""))
15 | (comment (number 3) (value ""))
16 | (comment (number 4) (value "")))))
17 | (components
18 | (comp (ref U1)
19 | (value MC34063)
20 | (footprint Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm)
21 | (libsource (lib MP-Tracker-cache) (part MC34063))
22 | (sheetpath (names /) (tstamps /))
23 | (tstamp 57BD7F8F))
24 | (comp (ref C8)
25 | (value 68p)
26 | (footprint Capacitors_SMD:C_0805_HandSoldering)
27 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
28 | (sheetpath (names /) (tstamps /))
29 | (tstamp 57BDC6FB))
30 | (comp (ref C9)
31 | (value 100n)
32 | (footprint Capacitors_SMD:C_0805_HandSoldering)
33 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
34 | (sheetpath (names /) (tstamps /))
35 | (tstamp 57BDC70A))
36 | (comp (ref R1)
37 | (value 180R)
38 | (footprint Resistors_SMD:R_0805)
39 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
40 | (sheetpath (names /) (tstamps /))
41 | (tstamp 57BDC7F3))
42 | (comp (ref Q2)
43 | (value IRFR5303)
44 | (footprint TO_SOT_Packages_SMD:TO-252-2Lead)
45 | (libsource (lib MP-Tracker-cache) (part IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker))
46 | (sheetpath (names /) (tstamps /))
47 | (tstamp 57BDC8CE))
48 | (comp (ref R3)
49 | (value 470R)
50 | (footprint Resistors_SMD:R_0805)
51 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
52 | (sheetpath (names /) (tstamps /))
53 | (tstamp 57BDCAEE))
54 | (comp (ref R2)
55 | (value 4K7)
56 | (footprint Resistors_SMD:R_0805)
57 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
58 | (sheetpath (names /) (tstamps /))
59 | (tstamp 57BDCDA9))
60 | (comp (ref D1)
61 | (value 1N4148)
62 | (footprint Diodes_SMD:SOD-123)
63 | (libsource (lib MP-Tracker-cache) (part DIODE))
64 | (sheetpath (names /) (tstamps /))
65 | (tstamp 57BDCE83))
66 | (comp (ref D5)
67 | (value DIODESCH)
68 | (footprint Diodes_SMD:DO-214AB)
69 | (libsource (lib MP-Tracker-cache) (part DIODESCH))
70 | (sheetpath (names /) (tstamps /))
71 | (tstamp 57BDD1D7))
72 | (comp (ref L1)
73 | (value 100u)
74 | (footprint Choke_SMD:Choke_SMD_12x12mm_h8mm)
75 | (libsource (lib MP-Tracker-cache) (part INDUCTOR))
76 | (sheetpath (names /) (tstamps /))
77 | (tstamp 57BDD1E6))
78 | (comp (ref C11)
79 | (value 100n)
80 | (footprint Capacitors_SMD:C_0805_HandSoldering)
81 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
82 | (sheetpath (names /) (tstamps /))
83 | (tstamp 57BDD315))
84 | (comp (ref R20)
85 | (value 27k)
86 | (footprint Resistors_SMD:R_0805)
87 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
88 | (sheetpath (names /) (tstamps /))
89 | (tstamp 57BDD36F))
90 | (comp (ref R21)
91 | (value 2k2)
92 | (footprint Resistors_SMD:R_0805)
93 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
94 | (sheetpath (names /) (tstamps /))
95 | (tstamp 57BDD37E))
96 | (comp (ref C13)
97 | (value 1000u)
98 | (footprint Capacitors_SMD:c_elec_10x10.5)
99 | (libsource (lib MP-Tracker-cache) (part CP1-RESCUE-MP-Tracker))
100 | (sheetpath (names /) (tstamps /))
101 | (tstamp 57BDD477))
102 | (comp (ref C6)
103 | (value 330u)
104 | (footprint Capacitors_SMD:c_elec_10x10.5)
105 | (libsource (lib MP-Tracker-cache) (part CP1-RESCUE-MP-Tracker))
106 | (sheetpath (names /) (tstamps /))
107 | (tstamp 57BDD4B3))
108 | (comp (ref L2)
109 | (value 10u)
110 | (footprint Choke_SMD:Choke_SMD_12x12mm_h8mm)
111 | (libsource (lib MP-Tracker-cache) (part INDUCTOR))
112 | (sheetpath (names /) (tstamps /))
113 | (tstamp 57BDD73E))
114 | (comp (ref C14)
115 | (value 330u)
116 | (footprint Capacitors_SMD:c_elec_10x10.5)
117 | (libsource (lib MP-Tracker-cache) (part CP1-RESCUE-MP-Tracker))
118 | (sheetpath (names /) (tstamps /))
119 | (tstamp 57BDD744))
120 | (comp (ref D4)
121 | (value 6V2-SOT23)
122 | (footprint Diodes_SMD:SOD-123)
123 | (libsource (lib MP-Tracker-cache) (part ZENERsmall-RESCUE-MP-Tracker))
124 | (sheetpath (names /) (tstamps /))
125 | (tstamp 57BDD83A))
126 | (comp (ref R13)
127 | (value 10k)
128 | (footprint Resistors_SMD:R_0805)
129 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
130 | (sheetpath (names /) (tstamps /))
131 | (tstamp 57BDD849))
132 | (comp (ref R11)
133 | (value 22k)
134 | (footprint Resistors_SMD:R_0805)
135 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
136 | (sheetpath (names /) (tstamps /))
137 | (tstamp 57BDDA09))
138 | (comp (ref R12)
139 | (value 3k3)
140 | (footprint Resistors_SMD:R_0805)
141 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
142 | (sheetpath (names /) (tstamps /))
143 | (tstamp 57BDDA18))
144 | (comp (ref R16)
145 | (value 6k8)
146 | (footprint Resistors_SMD:R_0805)
147 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
148 | (sheetpath (names /) (tstamps /))
149 | (tstamp 57C43822))
150 | (comp (ref U3)
151 | (value ATMEGA8-AI)
152 | (footprint Housings_QFP:LQFP-32_7x7mm_Pitch0.8mm)
153 | (libsource (lib atmel) (part ATMEGA8-AI))
154 | (sheetpath (names /) (tstamps /))
155 | (tstamp 57C43A6A))
156 | (comp (ref X1)
157 | (value 3.6864MHz)
158 | (footprint Crystals:Crystal_HC49-SD_SMD)
159 | (libsource (lib MP-Tracker-cache) (part CRYSTAL_SMD-RESCUE-MP-Tracker))
160 | (sheetpath (names /) (tstamps /))
161 | (tstamp 57C46F5F))
162 | (comp (ref C5)
163 | (value 15p)
164 | (footprint Capacitors_SMD:C_1206_HandSoldering)
165 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
166 | (sheetpath (names /) (tstamps /))
167 | (tstamp 57C473B1))
168 | (comp (ref C4)
169 | (value 15p)
170 | (footprint Capacitors_SMD:C_1206_HandSoldering)
171 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
172 | (sheetpath (names /) (tstamps /))
173 | (tstamp 57C473B7))
174 | (comp (ref C7)
175 | (value 100n)
176 | (footprint Capacitors_SMD:C_0805_HandSoldering)
177 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
178 | (sheetpath (names /) (tstamps /))
179 | (tstamp 57C54BAB))
180 | (comp (ref R9)
181 | (value 3k3)
182 | (footprint Resistors_SMD:R_0805)
183 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
184 | (sheetpath (names /) (tstamps /))
185 | (tstamp 57C55010))
186 | (comp (ref R8)
187 | (value 27k)
188 | (footprint Resistors_SMD:R_0805)
189 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
190 | (sheetpath (names /) (tstamps /))
191 | (tstamp 57C55133))
192 | (comp (ref R26)
193 | (value 15k)
194 | (footprint Resistors_SMD:R_0805)
195 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
196 | (sheetpath (names /) (tstamps /))
197 | (tstamp 57C55166))
198 | (comp (ref R27)
199 | (value 3k3)
200 | (footprint Resistors_SMD:R_0805)
201 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
202 | (sheetpath (names /) (tstamps /))
203 | (tstamp 57C5516E))
204 | (comp (ref C10)
205 | (value 470n)
206 | (footprint Capacitors_SMD:C_1206_HandSoldering)
207 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
208 | (sheetpath (names /) (tstamps /))
209 | (tstamp 57C58833))
210 | (comp (ref R10)
211 | (value 1K)
212 | (footprint Resistors_SMD:R_0805)
213 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
214 | (sheetpath (names /) (tstamps /))
215 | (tstamp 57C58A87))
216 | (comp (ref C2)
217 | (value 100n)
218 | (footprint Capacitors_SMD:C_1206_HandSoldering)
219 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
220 | (sheetpath (names /) (tstamps /))
221 | (tstamp 57C58B62))
222 | (comp (ref C3)
223 | (value 100n)
224 | (footprint Capacitors_SMD:C_1206_HandSoldering)
225 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
226 | (sheetpath (names /) (tstamps /))
227 | (tstamp 57C595B9))
228 | (comp (ref C1)
229 | (value 100n)
230 | (footprint Capacitors_SMD:C_1206_HandSoldering)
231 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
232 | (sheetpath (names /) (tstamps /))
233 | (tstamp 57C5969B))
234 | (comp (ref R6)
235 | (value 47R)
236 | (footprint Resistors_SMD:R_0805)
237 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
238 | (sheetpath (names /) (tstamps /))
239 | (tstamp 57C59AD6))
240 | (comp (ref Q4)
241 | (value IRFR5303)
242 | (footprint TO_SOT_Packages_SMD:TO-252-2Lead)
243 | (libsource (lib MP-Tracker-cache) (part IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker))
244 | (sheetpath (names /) (tstamps /))
245 | (tstamp 57C5A00C))
246 | (comp (ref R5)
247 | (value 10k)
248 | (footprint Resistors_SMD:R_0805)
249 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
250 | (sheetpath (names /) (tstamps /))
251 | (tstamp 57C5A1E6))
252 | (comp (ref D2)
253 | (value 1N4001)
254 | (footprint Diodes_SMD:SOD-323)
255 | (libsource (lib MP-Tracker-cache) (part DIODE))
256 | (sheetpath (names /) (tstamps /))
257 | (tstamp 57C5A58E))
258 | (comp (ref R7)
259 | (value 1k)
260 | (footprint Resistors_SMD:R_0805)
261 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
262 | (sheetpath (names /) (tstamps /))
263 | (tstamp 57C5A8FA))
264 | (comp (ref R4)
265 | (value 1k)
266 | (footprint Resistors_SMD:R_0805)
267 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
268 | (sheetpath (names /) (tstamps /))
269 | (tstamp 57C5A900))
270 | (comp (ref R14)
271 | (value 33k)
272 | (footprint Resistors_SMD:R_0805)
273 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
274 | (sheetpath (names /) (tstamps /))
275 | (tstamp 57C84030))
276 | (comp (ref C12)
277 | (value 470n)
278 | (footprint Capacitors_SMD:C_1206_HandSoldering)
279 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
280 | (sheetpath (names /) (tstamps /))
281 | (tstamp 57C84A07))
282 | (comp (ref R15)
283 | (value 15k)
284 | (footprint Resistors_SMD:R_0805)
285 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
286 | (sheetpath (names /) (tstamps /))
287 | (tstamp 57C8242E))
288 | (comp (ref Q1)
289 | (value BC817-40)
290 | (footprint TO_SOT_Packages_SMD:SOT-23)
291 | (libsource (lib transistors) (part BC817-40))
292 | (sheetpath (names /) (tstamps /))
293 | (tstamp 57D10F64))
294 | (comp (ref Q3)
295 | (value BC817-40)
296 | (footprint TO_SOT_Packages_SMD:SOT-23)
297 | (libsource (lib transistors) (part BC817-40))
298 | (sheetpath (names /) (tstamps /))
299 | (tstamp 57D11CE9))
300 | (comp (ref U4)
301 | (value MC78L033)
302 | (footprint Housings_SOIC:SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm)
303 | (libsource (lib regul) (part MC78L05ACD))
304 | (sheetpath (names /) (tstamps /))
305 | (tstamp 57D4A861))
306 | (comp (ref R22)
307 | (value 69R)
308 | (footprint Resistors_SMD:R_0805)
309 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
310 | (sheetpath (names /) (tstamps /))
311 | (tstamp 589E487C))
312 | (comp (ref C16)
313 | (value 470n)
314 | (footprint Capacitors_SMD:C_1206_HandSoldering)
315 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
316 | (sheetpath (names /) (tstamps /))
317 | (tstamp 589E52AE))
318 | (comp (ref R25)
319 | (value 1K)
320 | (footprint Resistors_SMD:R_0805)
321 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
322 | (sheetpath (names /) (tstamps /))
323 | (tstamp 589F3BBB))
324 | (comp (ref P2)
325 | (value CONN_01X02)
326 | (footprint Pin_Headers:Pin_Header_Straight_1x02)
327 | (libsource (lib conn) (part CONN_01X02))
328 | (sheetpath (names /) (tstamps /))
329 | (tstamp 589F5C02))
330 | (comp (ref D9)
331 | (value 1N4001)
332 | (footprint Diodes_SMD:SOD-323)
333 | (libsource (lib MP-Tracker-cache) (part DIODE))
334 | (sheetpath (names /) (tstamps /))
335 | (tstamp 58D2C14F))
336 | (comp (ref D7)
337 | (value 1N4001)
338 | (footprint Diodes_SMD:SOD-323)
339 | (libsource (lib MP-Tracker-cache) (part DIODE))
340 | (sheetpath (names /) (tstamps /))
341 | (tstamp 58D862AA))
342 | (comp (ref R31)
343 | (value 1K)
344 | (footprint Resistors_SMD:R_0805)
345 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
346 | (sheetpath (names /) (tstamps /))
347 | (tstamp 58E245E0))
348 | (comp (ref R32)
349 | (value 1K)
350 | (footprint Resistors_SMD:R_0805)
351 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
352 | (sheetpath (names /) (tstamps /))
353 | (tstamp 58E24956))
354 | (comp (ref C17)
355 | (value 470n)
356 | (footprint Capacitors_SMD:C_1206_HandSoldering)
357 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
358 | (sheetpath (names /) (tstamps /))
359 | (tstamp 58E2B29A))
360 | (comp (ref C18)
361 | (value 470n)
362 | (footprint Capacitors_SMD:C_1206_HandSoldering)
363 | (libsource (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker))
364 | (sheetpath (names /) (tstamps /))
365 | (tstamp 58E2BB98))
366 | (comp (ref R19)
367 | (value 10k)
368 | (footprint Resistors_SMD:R_0805)
369 | (libsource (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker))
370 | (sheetpath (names /) (tstamps /))
371 | (tstamp 57BDDC01))
372 | (comp (ref U2)
373 | (value TL081)
374 | (footprint Housings_SOIC:SOIC-8_3.9x4.9mm_Pitch1.27mm)
375 | (libsource (lib linear) (part TL081))
376 | (sheetpath (names /) (tstamps /))
377 | (tstamp 58FE435D))
378 | (comp (ref P1)
379 | (value CONN_02X05)
380 | (footprint Pin_Headers:Pin_Header_Straight_2x05)
381 | (libsource (lib conn) (part CONN_02X05))
382 | (sheetpath (names /) (tstamps /))
383 | (tstamp 58FF4B13)))
384 | (libparts
385 | (libpart (lib atmel) (part ATMEGA8-AI)
386 | (aliases
387 | (alias ATMEGA8A-A))
388 | (description "TQFP32, 8k Flash, 1k SRAM, 512B EEPROM")
389 | (docs http://www.atmel.com/images/atmel-2486-8-bit-avr-microcontroller-atmega8_l_datasheet.pdf)
390 | (footprints
391 | (fp TQFP32))
392 | (fields
393 | (field (name Reference) IC)
394 | (field (name Value) ATMEGA8-AI)
395 | (field (name Footprint) TQFP32))
396 | (pins
397 | (pin (num 1) (name "(INT1)PD3") (type BiDi))
398 | (pin (num 2) (name "(XCK/T0)PD4") (type BiDi))
399 | (pin (num 3) (name GND) (type power_in))
400 | (pin (num 4) (name VCC) (type power_in))
401 | (pin (num 5) (name GND) (type power_in))
402 | (pin (num 6) (name VCC) (type power_in))
403 | (pin (num 7) (name "PB6(XTAL1/TOSC1)") (type BiDi))
404 | (pin (num 8) (name "PB7(XTAL2/TOSC2)") (type BiDi))
405 | (pin (num 9) (name "(T1)PD5") (type BiDi))
406 | (pin (num 10) (name "(AIN0)PD6") (type BiDi))
407 | (pin (num 11) (name "(AIN1)PD7") (type BiDi))
408 | (pin (num 12) (name "(ICP)PB0") (type BiDi))
409 | (pin (num 13) (name "(OC1A)PB1") (type BiDi))
410 | (pin (num 14) (name "(~SS~/OC1B)PB2") (type BiDi))
411 | (pin (num 15) (name "(MOSI/OC2)PB3") (type BiDi))
412 | (pin (num 16) (name "(MISO)PB4") (type BiDi))
413 | (pin (num 17) (name "(SCK)PB5") (type BiDi))
414 | (pin (num 18) (name AVCC) (type power_in))
415 | (pin (num 19) (name ADC6) (type BiDi))
416 | (pin (num 20) (name AREF) (type BiDi))
417 | (pin (num 21) (name AGND) (type power_in))
418 | (pin (num 22) (name ADC7) (type BiDi))
419 | (pin (num 23) (name "(ADC0)PC0") (type BiDi))
420 | (pin (num 24) (name "(ADC1)PC1") (type BiDi))
421 | (pin (num 25) (name "(ADC2)PC2") (type BiDi))
422 | (pin (num 26) (name "(ADC3)PC3") (type BiDi))
423 | (pin (num 27) (name "(ADC4/SDA)PC4") (type BiDi))
424 | (pin (num 28) (name "(ADC5/SCL)PC5") (type BiDi))
425 | (pin (num 29) (name "PC6(~RESET~)") (type BiDi))
426 | (pin (num 30) (name "(RXD)PD0") (type BiDi))
427 | (pin (num 31) (name "(TXD)PD1") (type BiDi))
428 | (pin (num 32) (name "(INT0)PD2") (type BiDi))))
429 | (libpart (lib transistors) (part BC817-40)
430 | (aliases
431 | (alias BC818-40))
432 | (description "45V Vce, 0.8A Ic, NPN, SOT-23")
433 | (docs http://www.fairchildsemi.com/ds/BC/BC817.pdf)
434 | (footprints
435 | (fp SOT-23*))
436 | (fields
437 | (field (name Reference) Q)
438 | (field (name Value) BC817-40)
439 | (field (name Footprint) SOT-23))
440 | (pins
441 | (pin (num 1) (name B) (type input))
442 | (pin (num 2) (name E) (type passive))
443 | (pin (num 3) (name C) (type passive))))
444 | (libpart (lib MP-Tracker-cache) (part C-RESCUE-MP-Tracker)
445 | (footprints
446 | (fp SM*)
447 | (fp C?)
448 | (fp C1-1))
449 | (fields
450 | (field (name Reference) C)
451 | (field (name Value) C-RESCUE-MP-Tracker))
452 | (pins
453 | (pin (num 1) (name ~) (type passive))
454 | (pin (num 2) (name ~) (type passive))))
455 | (libpart (lib conn) (part CONN_01X02)
456 | (description "Connector, single row, 01x02")
457 | (footprints
458 | (fp Pin_Header_Straight_1X02)
459 | (fp Pin_Header_Angled_1X02)
460 | (fp Socket_Strip_Straight_1X02)
461 | (fp Socket_Strip_Angled_1X02))
462 | (fields
463 | (field (name Reference) P)
464 | (field (name Value) CONN_01X02))
465 | (pins
466 | (pin (num 1) (name P1) (type passive))
467 | (pin (num 2) (name P2) (type passive))))
468 | (libpart (lib conn) (part CONN_02X05)
469 | (description "Connector, double row, 02x05")
470 | (footprints
471 | (fp Pin_Header_Straight_2X05)
472 | (fp Pin_Header_Angled_2X05)
473 | (fp Socket_Strip_Straight_2X05)
474 | (fp Socket_Strip_Angled_2X05))
475 | (fields
476 | (field (name Reference) P)
477 | (field (name Value) CONN_02X05))
478 | (pins
479 | (pin (num 1) (name P1) (type passive))
480 | (pin (num 2) (name P2) (type passive))
481 | (pin (num 3) (name P3) (type passive))
482 | (pin (num 4) (name P4) (type passive))
483 | (pin (num 5) (name P5) (type passive))
484 | (pin (num 6) (name P6) (type passive))
485 | (pin (num 7) (name P7) (type passive))
486 | (pin (num 8) (name P8) (type passive))
487 | (pin (num 9) (name P9) (type passive))
488 | (pin (num 10) (name P10) (type passive))))
489 | (libpart (lib MP-Tracker-cache) (part CP1-RESCUE-MP-Tracker)
490 | (footprints
491 | (fp CP*)
492 | (fp SM*))
493 | (fields
494 | (field (name Reference) C)
495 | (field (name Value) CP1-RESCUE-MP-Tracker))
496 | (pins
497 | (pin (num 1) (name ~) (type passive))
498 | (pin (num 2) (name ~) (type passive))))
499 | (libpart (lib MP-Tracker-cache) (part CRYSTAL_SMD-RESCUE-MP-Tracker)
500 | (fields
501 | (field (name Reference) X)
502 | (field (name Value) CRYSTAL_SMD-RESCUE-MP-Tracker))
503 | (pins
504 | (pin (num 1) (name 1) (type passive))
505 | (pin (num 2) (name 2) (type passive))
506 | (pin (num 3) (name case) (type passive))))
507 | (libpart (lib MP-Tracker-cache) (part DIODE)
508 | (footprints
509 | (fp D?)
510 | (fp S*))
511 | (fields
512 | (field (name Reference) D)
513 | (field (name Value) DIODE))
514 | (pins
515 | (pin (num 1) (name A) (type passive))
516 | (pin (num 2) (name K) (type passive))))
517 | (libpart (lib MP-Tracker-cache) (part DIODESCH)
518 | (footprints
519 | (fp D?)
520 | (fp S*))
521 | (fields
522 | (field (name Reference) D)
523 | (field (name Value) DIODESCH))
524 | (pins
525 | (pin (num 1) (name A) (type passive))
526 | (pin (num 2) (name K) (type passive))))
527 | (libpart (lib MP-Tracker-cache) (part INDUCTOR)
528 | (fields
529 | (field (name Reference) L)
530 | (field (name Value) INDUCTOR))
531 | (pins
532 | (pin (num 1) (name 1) (type passive))
533 | (pin (num 2) (name 2) (type passive))))
534 | (libpart (lib MP-Tracker-cache) (part IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker)
535 | (footprints
536 | (fp TO220*))
537 | (fields
538 | (field (name Reference) Q)
539 | (field (name Value) IRF9540N-RESCUE-MP-Tracker-RESCUE-MP-Tracker)
540 | (field (name Footprint) TO220))
541 | (pins
542 | (pin (num 1) (name G) (type input))
543 | (pin (num 2) (name D) (type passive))
544 | (pin (num 3) (name S) (type passive))))
545 | (libpart (lib MP-Tracker-cache) (part MC34063)
546 | (fields
547 | (field (name Reference) U)
548 | (field (name Value) MC34063))
549 | (pins
550 | (pin (num 1) (name Sw_Coll) (type input))
551 | (pin (num 2) (name Sw_Emit) (type input))
552 | (pin (num 3) (name Tim_Cap) (type input))
553 | (pin (num 4) (name GND) (type power_in))
554 | (pin (num 5) (name V_Sense) (type input))
555 | (pin (num 6) (name VCC) (type power_in))
556 | (pin (num 7) (name I_Sense) (type input))
557 | (pin (num 8) (name Drv_Coll) (type input))))
558 | (libpart (lib regul) (part MC78L05ACD)
559 | (aliases
560 | (alias MC78L08ACD)
561 | (alias MC78L12ACD))
562 | (description "Positive 100mA 30V Linear Regulator, Fixed Output 5V, SO-8")
563 | (docs http://www.fairchildsemi.com/ds/LM/LM78L05A.pdf)
564 | (footprints
565 | (fp SO*))
566 | (fields
567 | (field (name Reference) U)
568 | (field (name Value) MC78L05ACD)
569 | (field (name Footprint) SO-8))
570 | (pins
571 | (pin (num 1) (name OUT) (type power_out))
572 | (pin (num 2) (name GND) (type power_out))
573 | (pin (num 3) (name GND) (type power_out))
574 | (pin (num 6) (name GND) (type power_out))
575 | (pin (num 7) (name GND) (type power_out))
576 | (pin (num 8) (name IN) (type input))))
577 | (libpart (lib MP-Tracker-cache) (part R-RESCUE-MP-Tracker)
578 | (footprints
579 | (fp R?)
580 | (fp SM0603)
581 | (fp SM0805)
582 | (fp R?-*)
583 | (fp SM1206))
584 | (fields
585 | (field (name Reference) R)
586 | (field (name Value) R-RESCUE-MP-Tracker))
587 | (pins
588 | (pin (num 1) (name ~) (type passive))
589 | (pin (num 2) (name ~) (type passive))))
590 | (libpart (lib linear) (part TL071)
591 | (aliases
592 | (alias TL081))
593 | (description "Op amp.")
594 | (docs op_amps/tl071.pdf)
595 | (footprints
596 | (fp DIP*)
597 | (fp SOIC*)
598 | (fp TSSOP*))
599 | (fields
600 | (field (name Reference) U)
601 | (field (name Value) TL071))
602 | (pins
603 | (pin (num 2) (name -) (type input))
604 | (pin (num 3) (name +) (type input))
605 | (pin (num 4) (name V-) (type passive))
606 | (pin (num 6) (name ~) (type output))
607 | (pin (num 7) (name V+) (type passive))))
608 | (libpart (lib MP-Tracker-cache) (part ZENERsmall-RESCUE-MP-Tracker)
609 | (footprints
610 | (fp D?)
611 | (fp SO*)
612 | (fp SM*))
613 | (fields
614 | (field (name Reference) D)
615 | (field (name Value) ZENERsmall-RESCUE-MP-Tracker))
616 | (pins
617 | (pin (num 1) (name A) (type passive))
618 | (pin (num 2) (name K) (type passive)))))
619 | (libraries
620 | (library (logical MP-Tracker-cache)
621 | (uri /home/elektra/disk/freifunk-simplified-open-mppt-24-April-2017/Schematic-and-Board/MP-Tracker-cache.lib))
622 | (library (logical atmel)
623 | (uri /usr/share/kicad/library/atmel.lib))
624 | (library (logical linear)
625 | (uri /usr/share/kicad/library/linear.lib))
626 | (library (logical conn)
627 | (uri /usr/share/kicad/library/conn.lib))
628 | (library (logical regul)
629 | (uri /usr/share/kicad/library/regul.lib))
630 | (library (logical transistors)
631 | (uri /usr/share/kicad/library/transistors.lib)))
632 | (nets
633 | (net (code 1) (name "Net-(C11-Pad1)")
634 | (node (ref R20) (pin 1))
635 | (node (ref C11) (pin 1))
636 | (node (ref C13) (pin 1))
637 | (node (ref L1) (pin 2))
638 | (node (ref L2) (pin 1)))
639 | (net (code 2) (name "Net-(R19-Pad1)")
640 | (node (ref U2) (pin 6))
641 | (node (ref R19) (pin 1)))
642 | (net (code 3) (name "Net-(C1-Pad1)")
643 | (node (ref U3) (pin 18))
644 | (node (ref R6) (pin 2))
645 | (node (ref C1) (pin 1)))
646 | (net (code 4) (name "Net-(R26-Pad2)")
647 | (node (ref R26) (pin 2))
648 | (node (ref R27) (pin 1))
649 | (node (ref U3) (pin 23)))
650 | (net (code 5) (name "Net-(R8-Pad2)")
651 | (node (ref R8) (pin 2))
652 | (node (ref U3) (pin 25))
653 | (node (ref R9) (pin 1)))
654 | (net (code 6) (name VAA)
655 | (node (ref Q4) (pin 2))
656 | (node (ref D2) (pin 2)))
657 | (net (code 7) (name "Net-(R7-Pad2)")
658 | (node (ref R7) (pin 2))
659 | (node (ref U3) (pin 11)))
660 | (net (code 8) (name "Net-(Q3-Pad1)")
661 | (node (ref Q3) (pin 1))
662 | (node (ref R4) (pin 2))
663 | (node (ref R7) (pin 1)))
664 | (net (code 9) (name "Net-(Q3-Pad3)")
665 | (node (ref R5) (pin 2))
666 | (node (ref Q3) (pin 3))
667 | (node (ref Q4) (pin 1)))
668 | (net (code 10) (name "Net-(R31-Pad1)")
669 | (node (ref U3) (pin 13))
670 | (node (ref R31) (pin 1)))
671 | (net (code 11) (name "Net-(C3-Pad1)")
672 | (node (ref U3) (pin 20))
673 | (node (ref C3) (pin 1)))
674 | (net (code 12) (name "Net-(C5-Pad1)")
675 | (node (ref U3) (pin 8))
676 | (node (ref X1) (pin 2))
677 | (node (ref C5) (pin 1)))
678 | (net (code 13) (name "Net-(D5-Pad2)")
679 | (node (ref Q2) (pin 2))
680 | (node (ref L1) (pin 1))
681 | (node (ref D5) (pin 2)))
682 | (net (code 14) (name "Net-(R3-Pad2)")
683 | (node (ref R3) (pin 2))
684 | (node (ref U1) (pin 1)))
685 | (net (code 15) (name "Net-(P1-Pad9)")
686 | (node (ref U3) (pin 29))
687 | (node (ref P1) (pin 9)))
688 | (net (code 16) (name "Net-(C4-Pad2)")
689 | (node (ref U3) (pin 7))
690 | (node (ref C4) (pin 2))
691 | (node (ref X1) (pin 1)))
692 | (net (code 17) (name "Net-(C18-Pad1)")
693 | (node (ref R10) (pin 1))
694 | (node (ref R32) (pin 2))
695 | (node (ref C18) (pin 1)))
696 | (net (code 18) (name "Net-(R11-Pad2)")
697 | (node (ref U2) (pin 2))
698 | (node (ref R11) (pin 2))
699 | (node (ref R12) (pin 1)))
700 | (net (code 19) (name "Net-(C17-Pad1)")
701 | (node (ref R31) (pin 2))
702 | (node (ref C17) (pin 1))
703 | (node (ref R32) (pin 1)))
704 | (net (code 20) (name "Net-(C10-Pad1)")
705 | (node (ref R15) (pin 1))
706 | (node (ref C10) (pin 1))
707 | (node (ref R10) (pin 2))
708 | (node (ref R16) (pin 1)))
709 | (net (code 21) (name GNDPWR)
710 | (node (ref U1) (pin 2))
711 | (node (ref C14) (pin 2))
712 | (node (ref C9) (pin 2))
713 | (node (ref C8) (pin 2))
714 | (node (ref U1) (pin 4))
715 | (node (ref U3) (pin 21))
716 | (node (ref U3) (pin 5))
717 | (node (ref R12) (pin 2))
718 | (node (ref R16) (pin 2))
719 | (node (ref U3) (pin 3))
720 | (node (ref D5) (pin 1))
721 | (node (ref C5) (pin 2))
722 | (node (ref C4) (pin 1))
723 | (node (ref C7) (pin 2))
724 | (node (ref X1) (pin 3))
725 | (node (ref C2) (pin 2))
726 | (node (ref C1) (pin 2))
727 | (node (ref C3) (pin 2))
728 | (node (ref C17) (pin 2))
729 | (node (ref C18) (pin 2))
730 | (node (ref D2) (pin 1))
731 | (node (ref C12) (pin 2))
732 | (node (ref R4) (pin 1))
733 | (node (ref R27) (pin 2))
734 | (node (ref C10) (pin 2))
735 | (node (ref R9) (pin 2))
736 | (node (ref C11) (pin 2))
737 | (node (ref R21) (pin 2))
738 | (node (ref C13) (pin 2))
739 | (node (ref D4) (pin 1))
740 | (node (ref C6) (pin 2))
741 | (node (ref D7) (pin 1))
742 | (node (ref Q3) (pin 2))
743 | (node (ref U4) (pin 2))
744 | (node (ref U4) (pin 3))
745 | (node (ref U4) (pin 6))
746 | (node (ref U4) (pin 7))
747 | (node (ref C16) (pin 2))
748 | (node (ref D9) (pin 1))
749 | (node (ref P2) (pin 2))
750 | (node (ref P1) (pin 6))
751 | (node (ref P1) (pin 8))
752 | (node (ref U2) (pin 4))
753 | (node (ref P1) (pin 10)))
754 | (net (code 22) (name "Net-(P1-Pad3)")
755 | (node (ref U3) (pin 17))
756 | (node (ref P1) (pin 3)))
757 | (net (code 23) (name "Net-(P1-Pad5)")
758 | (node (ref U3) (pin 31))
759 | (node (ref P1) (pin 5)))
760 | (net (code 24) (name "Net-(P1-Pad1)")
761 | (node (ref P1) (pin 1))
762 | (node (ref U3) (pin 15)))
763 | (net (code 25) (name "Net-(P1-Pad2)")
764 | (node (ref U3) (pin 16))
765 | (node (ref P1) (pin 2)))
766 | (net (code 26) (name "Net-(P1-Pad7)")
767 | (node (ref U3) (pin 30))
768 | (node (ref P1) (pin 7)))
769 | (net (code 27) (name +3.3V)
770 | (node (ref U3) (pin 6))
771 | (node (ref U3) (pin 4))
772 | (node (ref R6) (pin 1))
773 | (node (ref C7) (pin 1))
774 | (node (ref P1) (pin 4))
775 | (node (ref U4) (pin 1)))
776 | (net (code 28) (name "Net-(C12-Pad1)")
777 | (node (ref R15) (pin 2))
778 | (node (ref C12) (pin 1))
779 | (node (ref U2) (pin 3))
780 | (node (ref R14) (pin 1)))
781 | (net (code 29) (name "Net-(R19-Pad2)")
782 | (node (ref R19) (pin 2))
783 | (node (ref R20) (pin 2))
784 | (node (ref R21) (pin 1))
785 | (node (ref U1) (pin 5)))
786 | (net (code 30) (name "Net-(D4-Pad2)")
787 | (node (ref R13) (pin 2))
788 | (node (ref D4) (pin 2))
789 | (node (ref R14) (pin 2)))
790 | (net (code 31) (name +BATT)
791 | (node (ref R26) (pin 1))
792 | (node (ref C2) (pin 1))
793 | (node (ref Q4) (pin 3))
794 | (node (ref R5) (pin 1))
795 | (node (ref U4) (pin 8))
796 | (node (ref D9) (pin 2))
797 | (node (ref L2) (pin 2))
798 | (node (ref C14) (pin 1)))
799 | (net (code 32) (name "Net-(P2-Pad1)")
800 | (node (ref R25) (pin 2))
801 | (node (ref P2) (pin 1)))
802 | (net (code 33) (name "Net-(R25-Pad1)")
803 | (node (ref U3) (pin 26))
804 | (node (ref R25) (pin 1)))
805 | (net (code 34) (name "Net-(C16-Pad1)")
806 | (node (ref U2) (pin 7))
807 | (node (ref R22) (pin 2))
808 | (node (ref C16) (pin 1)))
809 | (net (code 35) (name "Net-(U3-Pad9)")
810 | (node (ref U3) (pin 9)))
811 | (net (code 36) (name "Net-(U3-Pad10)")
812 | (node (ref U3) (pin 10)))
813 | (net (code 37) (name "Net-(U3-Pad12)")
814 | (node (ref U3) (pin 12)))
815 | (net (code 38) (name "Net-(U3-Pad22)")
816 | (node (ref U3) (pin 22)))
817 | (net (code 39) (name "Net-(U3-Pad32)")
818 | (node (ref U3) (pin 32)))
819 | (net (code 40) (name "Net-(U3-Pad14)")
820 | (node (ref U3) (pin 14)))
821 | (net (code 41) (name "Net-(U3-Pad24)")
822 | (node (ref U3) (pin 24)))
823 | (net (code 42) (name "Net-(U3-Pad1)")
824 | (node (ref U3) (pin 1)))
825 | (net (code 43) (name "Net-(U3-Pad2)")
826 | (node (ref U3) (pin 2)))
827 | (net (code 44) (name "Net-(U3-Pad19)")
828 | (node (ref U3) (pin 19)))
829 | (net (code 45) (name "Net-(U3-Pad28)")
830 | (node (ref U3) (pin 28)))
831 | (net (code 46) (name "Net-(U3-Pad27)")
832 | (node (ref U3) (pin 27)))
833 | (net (code 47) (name "Net-(R1-Pad2)")
834 | (node (ref U1) (pin 8))
835 | (node (ref R1) (pin 2)))
836 | (net (code 48) (name "Net-(D1-Pad2)")
837 | (node (ref D1) (pin 2))
838 | (node (ref Q1) (pin 1))
839 | (node (ref R2) (pin 1))
840 | (node (ref R3) (pin 1)))
841 | (net (code 49) (name "Net-(C8-Pad1)")
842 | (node (ref U1) (pin 3))
843 | (node (ref C8) (pin 1)))
844 | (net (code 50) (name "Net-(D1-Pad1)")
845 | (node (ref Q2) (pin 1))
846 | (node (ref Q1) (pin 2))
847 | (node (ref D1) (pin 1)))
848 | (net (code 51) (name VCC)
849 | (node (ref R11) (pin 1))
850 | (node (ref R22) (pin 1))
851 | (node (ref R2) (pin 2))
852 | (node (ref R1) (pin 1))
853 | (node (ref Q2) (pin 3))
854 | (node (ref R13) (pin 1))
855 | (node (ref U1) (pin 7))
856 | (node (ref C9) (pin 1))
857 | (node (ref D7) (pin 2))
858 | (node (ref R8) (pin 1))
859 | (node (ref Q1) (pin 3))
860 | (node (ref U1) (pin 6))
861 | (node (ref C6) (pin 1)))))
--------------------------------------------------------------------------------
/Schematic-and-Board/MP-Tracker.pro:
--------------------------------------------------------------------------------
1 | update=Do 03 Aug 2017 14:13:04 CEST
2 | last_client=kicad
3 | [general]
4 | version=1
5 | [schematic_editor]
6 | version=1
7 | PageLayoutDescrFile=
8 | PlotDirectoryName=
9 | SubpartIdSeparator=0
10 | SubpartFirstId=65
11 | NetFmtName=
12 | SpiceForceRefPrefix=0
13 | SpiceUseNetNumbers=0
14 | LabSize=60
15 | [eeschema]
16 | version=1
17 | LibDir=
18 | [eeschema/libraries]
19 | LibName1=MP-Tracker-rescue
20 | LibName2=power
21 | LibName3=device
22 | LibName4=transistors
23 | LibName5=conn
24 | LibName6=linear
25 | LibName7=regul
26 | LibName8=74xx
27 | LibName9=cmos4000
28 | LibName10=adc-dac
29 | LibName11=memory
30 | LibName12=xilinx
31 | LibName13=special
32 | LibName14=microcontrollers
33 | LibName15=dsp
34 | LibName16=microchip
35 | LibName17=analog_switches
36 | LibName18=motorola
37 | LibName19=texas
38 | LibName20=intel
39 | LibName21=audio
40 | LibName22=interface
41 | LibName23=digital-audio
42 | LibName24=philips
43 | LibName25=display
44 | LibName26=cypress
45 | LibName27=siliconi
46 | LibName28=opto
47 | LibName29=atmel
48 | LibName30=contrib
49 | LibName31=valves
50 |
--------------------------------------------------------------------------------
/Schematic-and-Board/Notes-about-etching-the-pcb-yourself.txt:
--------------------------------------------------------------------------------
1 | Etching the board yourself
2 | ++++++++++++++++++++++++++
3 |
4 | This is cheap and fun and you don't have to wait for the pcb manufacturer to make your board.
5 |
6 | The back side of the pcb is ground. I haven't filled the backside with copper yet. You can make a DIY 2-layer copy of the pcb board by etching only the top side. If you do that, you have to manually remove the copper around the pin holes of the pin headers that aren't connected to the ground on the back side of the pcb. You can do that manually with a relatively large drill by hand. Drill the small holes (0,8mm diameter), then use the large drill to cut away the copper by hand.
7 |
8 | The GND pins of the pin headers need to be soldered on the top and the bottom. The other pins need to be soldered at the top.
9 |
10 | On the two protoype boards that I'm currently testing and experimenting with, I made the vias by drilling holes and soldering wire bridges to both sides.
11 |
12 |
--------------------------------------------------------------------------------
/Schematic-and-Board/OP-Amp-Without-cooling-pad.pretty/SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Housings_SOIC:SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm (layer F.Cu) (tedit 58FF4591)
2 | (descr "8-Lead Thermally Enhanced Plastic Small Outline (SE) - Narrow, 3.90 mm Body [SOIC] (see Microchip Packaging Specification 00000049BS.pdf)")
3 | (tags "SOIC 1.27")
4 | (attr smd)
5 | (fp_text reference U2 (at 0 -3.5) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value TL081 (at 0.1524 3.6322) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -3.75 -2.75) (end -3.75 2.75) (layer F.CrtYd) (width 0.05))
12 | (fp_line (start 3.75 -2.75) (end 3.75 2.75) (layer F.CrtYd) (width 0.05))
13 | (fp_line (start -3.75 -2.75) (end 3.75 -2.75) (layer F.CrtYd) (width 0.05))
14 | (fp_line (start -3.75 2.75) (end 3.75 2.75) (layer F.CrtYd) (width 0.05))
15 | (fp_line (start -2.075 -2.575) (end -2.075 -2.43) (layer F.SilkS) (width 0.15))
16 | (fp_line (start 2.075 -2.575) (end 2.075 -2.43) (layer F.SilkS) (width 0.15))
17 | (fp_line (start 2.075 2.575) (end 2.075 2.43) (layer F.SilkS) (width 0.15))
18 | (fp_line (start -2.075 2.575) (end -2.075 2.43) (layer F.SilkS) (width 0.15))
19 | (fp_line (start -2.075 -2.575) (end 2.075 -2.575) (layer F.SilkS) (width 0.15))
20 | (fp_line (start -2.075 2.575) (end 2.075 2.575) (layer F.SilkS) (width 0.15))
21 | (fp_line (start -2.075 -2.43) (end -3.475 -2.43) (layer F.SilkS) (width 0.15))
22 | (pad 1 smd rect (at -2.7 -1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
23 | (pad 2 smd rect (at -2.7 -0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
24 | (pad 3 smd rect (at -2.7 0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
25 | (pad 4 smd rect (at -2.7 1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
26 | (pad 5 smd rect (at 2.7 1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
27 | (pad 6 smd rect (at 2.7 0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
28 | (pad 7 smd rect (at 2.7 -0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
29 | (pad 8 smd rect (at 2.7 -1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
30 | (model Housings_SOIC.3dshapes/SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm.wrl
31 | (at (xyz 0 0 0))
32 | (scale (xyz 1 1 1))
33 | (rotate (xyz 0 0 0))
34 | )
35 | )
36 |
--------------------------------------------------------------------------------
/Schematic-and-Board/TL081.pretty/SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm.kicad_mod:
--------------------------------------------------------------------------------
1 | (module Housings_SOIC:SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm (layer F.Cu) (tedit 58FF4591)
2 | (descr "8-Lead Thermally Enhanced Plastic Small Outline (SE) - Narrow, 3.90 mm Body [SOIC] (see Microchip Packaging Specification 00000049BS.pdf)")
3 | (tags "SOIC 1.27")
4 | (attr smd)
5 | (fp_text reference U2 (at 0 -3.5) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value TL081 (at 0.1524 3.6322) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start -3.75 -2.75) (end -3.75 2.75) (layer F.CrtYd) (width 0.05))
12 | (fp_line (start 3.75 -2.75) (end 3.75 2.75) (layer F.CrtYd) (width 0.05))
13 | (fp_line (start -3.75 -2.75) (end 3.75 -2.75) (layer F.CrtYd) (width 0.05))
14 | (fp_line (start -3.75 2.75) (end 3.75 2.75) (layer F.CrtYd) (width 0.05))
15 | (fp_line (start -2.075 -2.575) (end -2.075 -2.43) (layer F.SilkS) (width 0.15))
16 | (fp_line (start 2.075 -2.575) (end 2.075 -2.43) (layer F.SilkS) (width 0.15))
17 | (fp_line (start 2.075 2.575) (end 2.075 2.43) (layer F.SilkS) (width 0.15))
18 | (fp_line (start -2.075 2.575) (end -2.075 2.43) (layer F.SilkS) (width 0.15))
19 | (fp_line (start -2.075 -2.575) (end 2.075 -2.575) (layer F.SilkS) (width 0.15))
20 | (fp_line (start -2.075 2.575) (end 2.075 2.575) (layer F.SilkS) (width 0.15))
21 | (fp_line (start -2.075 -2.43) (end -3.475 -2.43) (layer F.SilkS) (width 0.15))
22 | (pad 1 smd rect (at -2.7 -1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
23 | (pad 2 smd rect (at -2.7 -0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
24 | (pad 3 smd rect (at -2.7 0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
25 | (pad 4 smd rect (at -2.7 1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
26 | (pad 5 smd rect (at 2.7 1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
27 | (pad 6 smd rect (at 2.7 0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
28 | (pad 7 smd rect (at 2.7 -0.635) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
29 | (pad 8 smd rect (at 2.7 -1.905) (size 1.55 0.6) (layers F.Cu F.Paste F.Mask))
30 | (model Housings_SOIC.3dshapes/SOIC-8-1EP_3.9x4.9mm_Pitch1.27mm.wrl
31 | (at (xyz 0 0 0))
32 | (scale (xyz 1 1 1))
33 | (rotate (xyz 0 0 0))
34 | )
35 | )
36 |
--------------------------------------------------------------------------------
/Schematic-and-Board/TODO:
--------------------------------------------------------------------------------
1 | TODO:
2 |
3 | The status of the project is working prototype software and hardware.
4 |
5 | Schematic and PCB layout are currently not in sync, as I'm currently in the process of making some changes in the schematic.
6 |
7 | I have etched two prototypes with the previous version of the schematic. They have been working straight away, but I'm currently testing/making some minor changes before I'm going into production.
8 |
9 | The back side of the pcb is massive copper, minus a few mils of insulation around the non-GND pins of the pin headers. I haven't filled the back side with copper yet.
10 |
11 |
--------------------------------------------------------------------------------
/TODO:
--------------------------------------------------------------------------------
1 |
2 | Hardware:
3 |
4 | * Some component values are subject to change to adjust MPP range and output
5 | voltage
6 |
7 | * Handle bias voltage of OP-AMP.
8 |
9 | * Schematic has undergone some changes that didn't go in the PCB yet.
10 |
11 | * Current design is for VRLA 12 V battery
12 |
13 | Software:
14 |
15 | * Make communication via serial port bidirectional
16 |
17 | * Make certain settings configurable via serial
18 |
19 | * Send data from MPPT to the router only on demand
20 |
21 | * Add sleep states
22 |
23 |
--------------------------------------------------------------------------------
/kavr-bootloader/INSTALL:
--------------------------------------------------------------------------------
1 | This directory contains a compiled and ready-to-use kavr bootloader image
2 | that can be flashed into the Atmega8 microcontroller of the
3 | Freifunk-Open-MPP-Tracker. The kavr sources are available at
4 | https://github.com/mrpace2/kavr
5 |
6 |
7 | #####################################################
8 | How to install the bootloader on a blank Atmega8 chip
9 | #####################################################
10 |
11 | Step one:
12 | *********
13 |
14 | You need to configure the AVR ATmega8 fuses first. Switch over to the Fuses
15 | directory to set the fuses with AVR-Burn-O-Mat with an ISP-programmer, or use the
16 | shell script in this folder.
17 |
18 | Step two:
19 | *********
20 |
21 | After the fuses are set, the bootloader can be flashed. There is a simple
22 | shell script that works with my programmer at hand (AVR
23 | Dragon).
24 |
25 | Simply executing
26 |
27 | ./program.sh
28 |
29 | will flash the bootloader.
30 |
31 | There is now a multitude of AVR ISP-programmers. If you use a different
32 | programmer, modify the script accordingly.
33 |
34 |
--------------------------------------------------------------------------------
/kavr-bootloader/Makefile:
--------------------------------------------------------------------------------
1 | ##############################################################################
2 | #
3 | # kavr
4 | #
5 | # AVR Hexfile Boot Loader (pronounced "caviar")
6 | #
7 | # Copyright (C) 2009-2011 Frank Edelhaeuser
8 | #
9 | # This program is free software: you can redistribute it and/or modify
10 | # it under the terms of the GNU General Public License as published by
11 | # the Free Software Foundation, either version 3 of the License, or
12 | # (at your option) any later version.
13 | #
14 | # This program is distributed in the hope that it will be useful,
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | # GNU General Public License for more details.
18 | #
19 | # You should have received a copy of the GNU General Public License
20 | # along with this program. If not, see .
21 | #
22 | ##############################################################################
23 |
24 | #
25 | # Boot loader customization
26 | # =========================
27 | #
28 | # MCU
29 | #
30 | # AVR variant (atmega8, attiny85...). For a list of known MCU names,
31 | # see the output of "avr-gcc --target-help".
32 | #
33 | # F_CPU
34 | #
35 | # CPU clock, in Hertz (depends on hardware clock source)
36 | #
37 | # BOOTADDR
38 | #
39 | # Specifies the start address of the boot loader in flash, in bytes.
40 | # See AVR datasheet for a list of valid addresses. Please note that
41 | # the datasheet usually specifies word addresses (e.g. word address
42 | # 0xF00 is byte address 0x1E00).
43 | #
44 | # Make sure the compiled boot loader fits into the flash address
45 | # space above $(BOOTADDR). Inspect the boot loader hex file for the
46 | # largest used flash address.
47 | #
48 | # FUSE_L
49 | # FUSE_H
50 | #
51 | # Fuse low and high bytes. See AVR datasheet. Fuse settings shall
52 | # match with the other settings. In particular:
53 | #
54 | # - CLKSEL and SUT should match the hardware clock
55 | # circuit and should result in the CPU clock specified
56 | # with $(F_CPU.)
57 | #
58 | # - BOOTSZ should match the boot loader start address
59 | # specified with $(BOOTADDR).
60 | #
61 | # - BOOTRST should be set to 0.
62 | #
63 | # BAUD
64 | #
65 | # Specifies the baud rate to use for serial communication. Make
66 | # sure your clock configuration supports this baud rate without\
67 | # significant error.
68 | #
69 | # TIMEOUT
70 | #
71 | # Specifies how long in milliseconds the boot loader is supposed
72 | # to wait for valid data records until launching the application
73 | #
74 | # DUDEPORT
75 | #
76 | # Specifies avrdude command line parameters for configuring your
77 | # programmer. At least your programmer type (-c ),
78 | # and any port or timing parameters it may require should be
79 | # provided. The makefile automatically appends the CPU model
80 | # from $(MCU).
81 | #
82 | # TESTPORT, TESTAPP
83 | #
84 | # Specifies the serial port and application file to be used with
85 | # the built-in test targets. Downloading an application using
86 | # KAVR can be tested using "make test_program". This simple test
87 | # will use DOS command line tools mode and print. Calling
88 | # "make test_verify" will compare the application in flash with
89 | # the hexfile.
90 | #
91 | MCU = atmega8
92 | F_CPU = 3686400
93 | BAUD = 9600
94 | TIMEOUT = 5000
95 |
96 | # 512-byte bootloader (see comments above)
97 | BOOTADDR = 0x1c00
98 | FUSE_L = 0xef
99 | FUSE_H = 0xdc
100 |
101 | # Your programmer, your serial port, your main app...
102 | DUDEPORT =
103 | TESTPORT =
104 | TESTAPP =
105 |
106 |
107 | #
108 | # Anything below should NOT require modification
109 | # ==============================================
110 | #
111 | PROJECT = kavr
112 | LFLAGS = -Wl,-Ttext,$(BOOTADDR),--relax -mmcu=$(MCU) -nodefaultlibs -nostartfiles
113 | CFLAGS = -g -Os -fno-inline-small-functions -Wall -mmcu=$(MCU) -I. -DF_CPU=$(F_CPU) -DTIMEOUT=$(TIMEOUT) -DBAUD=$(BAUD) -DBOOTADDR=$(BOOTADDR)
114 | AVRDUDE = avrdude $(DUDEPORT) -p $(MCU) -y -u
115 | OBJS = kavr.o
116 |
117 |
118 | all: kavr.hex
119 |
120 | clean:
121 | rm -f *.hex *.lst *.map *.elf *.o
122 |
123 | fuse:
124 | $(AVRDUDE) -U hfuse:w:$(FUSE_H):m -U lfuse:w:$(FUSE_L):m
125 |
126 | flash: kavr.hex
127 | $(AVRDUDE) -U flash:w:$^:i
128 |
129 | .c.o:
130 | avr-gcc -c $(CFLAGS) $< -o $@
131 |
132 | %.elf: $(OBJS)
133 | avr-gcc $(LFLAGS) -Wl,-Map,$@.map -o $@ $^
134 | avr-objdump --source -d $@ > $@.lst
135 | avr-size --common -d $@
136 |
137 | %.hex : %.elf
138 | avr-objcopy -j .text -O ihex $^ $@
139 |
140 | # Simple test facility
141 | test_dude:
142 | $(AVRDUDE) -t
143 |
144 | test_verify:
145 | $(AVRDUDE) -U flash:v:$(TESTAPP):i
146 |
--------------------------------------------------------------------------------
/kavr-bootloader/README:
--------------------------------------------------------------------------------
1 | About this project
2 | ==================
3 |
4 | kavr is an open source AVR boot loader written entirely in C.
5 | kavr supports updating firmware by sending hexfiles to the AVR processor
6 | via its serial port. A three wire (RxD, TxD, GND) serial port connection
7 | is sufficient.
8 |
9 | No special software is required on the host PC. Any serial port terminal
10 | such as HyperTerminal, Minicom etc. supporting XON/XOFF work fine with
11 | kavr. Even DOS commands (MODE, COPY) can be used.
12 |
13 |
14 |
15 | License
16 | =======
17 |
18 | This program is free software: you can redistribute it and/or modify
19 | it under the terms of the GNU General Public License as published by
20 | the Free Software Foundation, either version 3 of the License, or
21 | (at your option) any later version.
22 |
23 | This program is distributed in the hope that it will be useful,
24 | but WITHOUT ANY WARRANTY; without even the implied warranty of
25 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26 | GNU General Public License for more details.
27 |
28 | You should have received a copy of the GNU General Public License
29 | along with this program. If not, see .
30 |
31 |
32 |
33 | How kavr works
34 | ==============
35 |
36 | kavr is an AVR boot loader. At reset, the AVR processor executes the code at
37 | the reset vector. Depending on fuse settings, the reset vector points at
38 | address zero (if no boot loader is used) or the reset vector points at an
39 | address in upper flash memory. This is where kavr resides.
40 |
41 | kavr itself needs to be programmed into the AVR processor using a hardware
42 | programmer such as any programmer supported by avrdude. Once installed, kavr
43 | interrupts the boot process for a short time checking for hexfile records
44 | received on the serial port. If so, kavr programs any received hexfile data
45 | into flash memory and then boots the new firmware application. If there are
46 | no hexfile records detected on the serial port, kavr boots the old firmware
47 | application as usual.
48 |
49 |
50 |
51 | How to update firmware with kavr
52 | ================================
53 |
54 | In order to load new firmware into your board running the kavr boot loader
55 | you need to first generate a firmware hexfile. If not already part of your
56 | firmware makefile, add a command like this:
57 |
58 | avr-objcopy -j .text -j .data -O ihex firmware.elf firmware.hex
59 |
60 | Then, connect your board with a PC using a serial port cable. Run the
61 | terminal program of your choice on the PC. Configure the serial port for
62 | the baud rate hardcoded in your kavr boot loader and configure 8N1 protocol
63 | and xon/xoff (aka software) handshake. Example (DOS command prompt):
64 |
65 | C:\>mode com1 baud=9600 DATA=8 PARITY=n STOP=1 XON=on
66 |
67 | Next, reboot your board. Before the timeout hardcoded into your kavr boot
68 | loader, send your firmware hexfile to the serial port. kavr will flash the
69 | new firmware and then run it. Example (DOS command prompt):
70 |
71 | C:\>copy firmware.hex com1:
72 |
73 |
74 |
75 | Roll your own kavr
76 | ==================
77 |
78 | Are you ready to put kavr on your board? I am assuming you've got a recent
79 | WinAVR installed on your development machine and that you know how to use
80 | it. You will also need a hardware programmer supported by avrdude.
81 |
82 | First, tell kavr a few things about your board (clock params, MCU type...).
83 | Update the first parameters in the kavr Makefile with your parameters. Here
84 | you will also need to define settings for serial port baud rate and boot
85 | loader timeout. Which one you choose depends on the capbilities of your board
86 | and its typical firmware application. I typically use 9600 baud and 1 second
87 | timeout. Higher baud rates might or might not work, depending on your board's
88 | clock configuration.
89 |
90 | Then, build kavr for your board. Type "make". If there are any errors in the
91 | make process, go fix them. The makefile displays the amount of flash used for
92 | kavr (avr-size, the number under "text" matters). This number should be
93 | compatible with your boot loader start address (BOOTADDR) setting in the
94 | makefile and with your fuse settings. More specifically, BOOTADDR+size must
95 | not exceed your flash address space. Currently the code fits into 512 bytes
96 | (256 words) but this number may vary with your settings and with the compiler
97 | version you are using. Always double check that kavr fits into your flash.
98 |
99 | Next, hook up your hardware programmer with your board. Run "make flash".
100 | This installs kavr into the boot loader area of your board. Now, tell AVR
101 | to boot kavr instead of the firmware by programming its fuses for kavr mode.
102 | Run "make fuse".
103 |
104 | Done! kavr should now be a happy boot loader on your system. Please note
105 | that when you flash kavr, avrdude also erases your firmware image so you
106 | will need to re-install your firmware.
107 |
108 |
109 |
110 | Bugs/Enhancements?
111 | ==================
112 |
113 | kavr is open source software. It's licensed under GPL. The latest source
114 | code is available on Sourceforge (http://kavr.sourceforge.net).
115 | Please report any problems or feedback any proposals for enhancement using
116 | the Sourceforge tracker system.
117 |
118 |
119 |
120 | Donate
121 | ======
122 |
123 | If you like kavr and if you use kavr for a project that you (or your
124 | employer) make money with, then you (or your employer) may want to consider
125 | donating a few bucks in return.
126 |
127 | Your donation will help offsetting development costs, hardware purchases,
128 | and other expenses (like travel to conferences) in support of ongoing
129 | development of the software.
130 |
--------------------------------------------------------------------------------
/kavr-bootloader/kavr.c:
--------------------------------------------------------------------------------
1 | /*
2 | kavr
3 |
4 | AVR Hexfile Boot Loader (pronounced "caviar")
5 |
6 | Copyright (C) 2009-2011 Frank Edelhaeuser
7 |
8 | This program is free software: you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation, either version 3 of the License, or
11 | (at your option) any later version.
12 |
13 | This program is distributed in the hope that it will be useful,
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | GNU General Public License for more details.
17 |
18 | You should have received a copy of the GNU General Public License
19 | along with this program. If not, see .
20 | */
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 |
28 |
29 | // macros
30 | #define PACKED __attribute__((__packed__))
31 | #define NOINLINE __attribute__((noinline))
32 | #define NAKED __attribute__((naked))
33 | #define SECTION(a) __attribute__((section(a)))
34 |
35 |
36 | // definitions
37 | #define XON 0x11
38 | #define XOFF 0x13
39 | #define TIMEOUT_LOOPS (((F_CPU/1000)*TIMEOUT)/33)
40 |
41 | #define FIFOSIZE 64
42 | #define XOFFLIMIT 32
43 |
44 |
45 | // Use UART0 on architectures having two UARTs
46 | #ifndef UDR
47 | #define UDR UDR0
48 | #define UCSRA UCSR0A
49 | #define UCSRB UCSR0B
50 | #define UCSRC UCSR0C
51 | #define URSEL 0
52 | #ifndef RXC
53 | #define UCSZ0 UCSZ00
54 | #define UCSZ1 UCSZ01
55 | #define RXEN RXEN0
56 | #define TXEN TXEN0
57 | #define RXC RXC0
58 | #define UDRE UDRE0
59 | #endif
60 | #define UBRRH UBRR0H
61 | #define UBRRL UBRR0L
62 | #ifndef U2X
63 | #define U2X U2X0
64 | #endif
65 | #endif
66 |
67 |
68 | // data
69 | struct HEX_RECORD
70 | {
71 | uint8_t length;
72 | uint16_t address;
73 | uint8_t type;
74 | uint8_t data[255 + 1];
75 | } PACKED record;
76 |
77 | uint8_t page[SPM_PAGESIZE];
78 | uint8_t fifo[FIFOSIZE];
79 | uint8_t fifo_fill;
80 |
81 |
82 | // defined in linker script
83 | extern void* __bss_end;
84 |
85 |
86 | // prototypes
87 | static void flash_wait_poll_uart(void);
88 | static void flash_write(uint16_t page);
89 | static void out_char(uint8_t c);
90 |
91 |
92 | // implementation
93 | void kavr(void) NAKED SECTION(".vectors");
94 | void kavr(void)
95 | {
96 | uint32_t timeout;
97 | uint16_t new_page;
98 | uint16_t cur_page;
99 | uint16_t addr;
100 | uint8_t* rx_ptr;
101 | uint8_t rx_dat;
102 | uint8_t rx_crc;
103 | uint8_t rx_len;
104 | uint8_t rx_val;
105 | uint8_t i;
106 | uint8_t* dst;
107 |
108 |
109 | // Instead of linking __init:
110 | // (how to avoid this assembly code? Anyone?)
111 | asm volatile ("clr r1");
112 | asm volatile ("ldi r28, lo8(%0)" :: "i" (&__bss_end));
113 | asm volatile ("ldi r29, hi8(%0)" :: "i" (&__bss_end));
114 |
115 | SREG = 0;
116 | SP = RAMEND;
117 | #if defined(RAMPD)
118 | RAMPD = 0;
119 | #endif
120 | #if defined(RAMPX)
121 | RAMPX = 0;
122 | #endif
123 | #if defined(RAMPY)
124 | RAMPY = 0;
125 | #endif
126 | #if defined(RAMPZ)
127 | RAMPZ = 0;
128 | #endif
129 |
130 | // Configure UART for $(BAUD),8N1
131 | UBRRH = UBRRH_VALUE;
132 | UBRRL = UBRRL_VALUE;
133 |
134 | #if USE_2X
135 | UCSRA = _BV(U2X);
136 | #else
137 | UCSRA = 0;
138 | #endif
139 |
140 | // Enable receiver and transmitter
141 | UCSRB = _BV(RXEN) | _BV(TXEN);
142 |
143 | // 8N1
144 | UCSRC = _BV(URSEL) | _BV(UCSZ1) | _BV(UCSZ0);
145 |
146 | // Hello world!
147 | out_char('K');
148 | out_char('A');
149 | out_char('V');
150 | out_char('R');
151 |
152 | // XON
153 | out_char(XON);
154 |
155 | // Initialize overall state
156 | cur_page = BOOTADDR;
157 | fifo_fill = 0;
158 | timeout = 0;
159 |
160 | // (Re-)Initialize line state
161 | restart_line:
162 | rx_val = 0;
163 | rx_len = 0;
164 | rx_crc = 0;
165 | rx_ptr = (uint8_t*) &record;
166 |
167 | // Download data records until timeout
168 | while (timeout < TIMEOUT_LOOPS)
169 | {
170 | // Poll UART for receive characters
171 | flash_wait_poll_uart();
172 | if (fifo_fill)
173 | {
174 | // Extract oldest character from receive FIFO
175 | rx_dat = fifo[0];
176 | fifo_fill --;
177 | i = 0;
178 | do fifo[i] = fifo[i + 1]; while (++ i < fifo_fill);
179 |
180 | // Convert to binary nibble
181 | rx_dat -= '0';
182 | if (rx_dat > 9)
183 | {
184 | rx_dat -= 7;
185 | if ((rx_dat < 10) || (rx_dat > 15))
186 | goto restart_line;
187 | }
188 |
189 | // Valid hex character. Restart timeout.
190 | timeout = 0;
191 |
192 | // Two nibbles = 1 byte
193 | rx_val = (rx_val << 4) + rx_dat;
194 | if ((++ rx_len & 1) == 0)
195 | {
196 | rx_crc += rx_val;
197 | *rx_ptr ++ = rx_val;
198 |
199 | if (rx_ptr == (uint8_t*) &record.data[record.length + 1])
200 | {
201 | if (rx_crc)
202 | {
203 | // Checksum error. Abort
204 | out_char('?');
205 | break;
206 | }
207 | else if (record.type == 0)
208 | {
209 | // Data record
210 | addr = (record.address << 8) | (record.address >> 8);
211 | for (i = 0; i < record.length; i ++)
212 | {
213 | // Determine page base for current address
214 | new_page = addr & ~(SPM_PAGESIZE - 1);
215 | if (new_page != cur_page)
216 | {
217 | // Write updated RAM page buffer into flash
218 | flash_write(cur_page);
219 |
220 | // Load page at new address into RAM page buffer
221 | cur_page = new_page;
222 |
223 | // memcpy_P(page, (PGM_P) new_page, SPM_PAGESIZE);
224 | dst = page;
225 | while (dst < &page[SPM_PAGESIZE])
226 | *dst ++ = pgm_read_byte((PGM_P) new_page ++);
227 | }
228 |
229 | // Update RAM page buffer from data record
230 | page[addr & (SPM_PAGESIZE - 1)] = record.data[i];
231 | addr ++;
232 | }
233 |
234 | goto restart_line;
235 | }
236 | else if (record.type == 1)
237 | {
238 | // End of file record. Finish
239 | flash_write(cur_page);
240 | out_char('S');
241 | break;
242 | }
243 | }
244 | }
245 | }
246 |
247 | timeout ++;
248 | }
249 |
250 | out_char(XOFF);
251 |
252 | typedef void APP(void);
253 | ((APP*)0)();
254 | }
255 |
256 |
257 | static void out_char(uint8_t c)
258 | {
259 | while (!(UCSRA & _BV(UDRE)));
260 | UDR = c;
261 | }
262 |
263 |
264 | static void flash_write(uint16_t addr)
265 | {
266 | uint16_t dst;
267 | uint16_t* src;
268 | uint8_t i;
269 |
270 | if (addr < BOOTADDR)
271 | {
272 | out_char(XOFF);
273 |
274 | // Copy RAM addr buffer into SPM addr buffer
275 | dst = addr;
276 | src = (uint16_t*) page;
277 | i = 0;
278 | do
279 | {
280 | boot_page_fill(dst, *src ++);
281 | dst += 2;
282 | }
283 | while (++ i < SPM_PAGESIZE / 2);
284 |
285 | // Erase and program
286 | boot_page_erase(addr);
287 | flash_wait_poll_uart();
288 |
289 | boot_page_write(addr);
290 | flash_wait_poll_uart();
291 |
292 | boot_rww_enable();
293 |
294 | out_char(XON);
295 | }
296 | }
297 |
298 |
299 | static void flash_wait_poll_uart(void)
300 | {
301 | do
302 | {
303 | if ((fifo_fill < FIFOSIZE) && (UCSRA & _BV(RXC)))
304 | fifo[fifo_fill ++] = UDR;
305 | wdt_reset();
306 | }
307 | while (boot_spm_busy());
308 | }
309 |
--------------------------------------------------------------------------------
/kavr-bootloader/kavr.hex:
--------------------------------------------------------------------------------
1 | :101C00001124C5EED1E01FBE8FE594E09EBF8DBFCD
2 | :101C100010BC87E189B91BB888E18AB986E880BD24
3 | :101C20008BE4BAD081E4B8D086E5B6D082E5B4D0F2
4 | :101C300081E1B2D01092E40180E09CE1C12CD12C72
5 | :101C4000760101E610E0B12C912CA12C20EE622E41
6 | :101C500020E0722E89839A83A3D02091E4018981A8
7 | :101C60009A81222309F476C030916000215020939C
8 | :101C7000E401A0E6B0E0E1E6F0E041914D934E2FA3
9 | :101C8000401B4217D0F320ED230F2A3028F029EC17
10 | :101C9000230F31543630B8F630E1B39E200D1124B5
11 | :101CA000B22E939490FC58C0A20E93012F5F3F4F29
12 | :101CB000F301B0824091E00050E04B515F4F241798
13 | :101CC000350709F04EC0AA2019F08FE365D05FC038
14 | :101CD0004091E300411138C0C090E100D090E20093
15 | :101CE000DC24CD24DC24760125C04701F0EC8F22D2
16 | :101CF0008816990681F068D0A0EAB0E0C401805A45
17 | :101D00009040FC01EA0FFB1FE491ED9320E0A03E20
18 | :101D1000B207B8F3C401F701EF73FF27E056FF4F96
19 | :101D2000AB2DB0E0A052BF4F14962C9120833FEF13
20 | :101D3000E31AF30ABE2CBC182091E000B216A8F2F8
21 | :101D4000C12CD12C76017FCF413079F43DD083E591
22 | :101D500023D01DC093010CC09301C12CD12C76015E
23 | :101D600007C0C12CD12C760103C0C12CD12C760127
24 | :101D70004FEFC41AD40AE40AF40AE4E9CE16E5E8FF
25 | :101D8000DE06E8E0EE06F10410F4390163CF83E1EA
26 | :101D900003D0E0E0F0E009955D9BFECF8CB908959B
27 | :101DA000E091E401E03458F45F9B09C081E08E0FBC
28 | :101DB0008093E4018CB1F0E0E05AFF4F8083A89556
29 | :101DC00007B600FCEDCF0895CF93DF93EC01C1156A
30 | :101DD0008CE1D80748F583E1DFDFA0EAB0E09E019F
31 | :101DE000205A304041E0F901EA0FFB1F8D919D918F
32 | :101DF0000C0140935700E8951124E0E0A03EBE0797
33 | :101E000091F783E0FE0180935700E895C9DF85E0F4
34 | :101E1000FE0180935700E895C3DF81E1809357006E
35 | :0E1E2000E895DF91CF91B8CFDF91CF91089573
36 | :0400000300001C00DD
37 | :00000001FF
38 |
--------------------------------------------------------------------------------
/kavr-bootloader/program.sh:
--------------------------------------------------------------------------------
1 | # Progam bootloader with dragon_isp
2 |
3 | avrdude -p atmega8 -P usb -c dragon_isp -U flash:w:kavr.hex
4 |
--------------------------------------------------------------------------------
/kavr-bootloader/set-fuses.sh:
--------------------------------------------------------------------------------
1 | /usr/bin/avrdude -C /etc/avrdude.conf -p m8 -P usb -c dragon_isp -B 100 -u -U hfuse:w:0xDA:m -U lfuse:w:0x9F:m
2 |
--------------------------------------------------------------------------------
/uC-Sourcecode/GPLv2_License:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 |
294 | Copyright (C)
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | , 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
--------------------------------------------------------------------------------
/uC-Sourcecode/Makefile:
--------------------------------------------------------------------------------
1 | # make all = Make software.
2 | # make clean = Clean out built project files.
3 | # make coff = Convert ELF to AVR COFF.
4 | # make extcoff = Convert ELF to AVR Extended COFF.
5 | #
6 | # make program = Download the hex file to the device, using avrdude.
7 | # Please customize the avrdude settings below first!
8 | #
9 | # make debug = Start either simulavr or avarice as specified for debugging,
10 | # with avr-gdb or avr-insight as the front end for debugging.
11 | #
12 | # make filename.s = Just compile filename.c into the assembler code only.
13 | #
14 | # make filename.i = Create a preprocessed source file for use in submitting
15 | # bug reports to the GCC project.
16 | #
17 | # To rebuild project do "make clean" then "make all".
18 |
19 |
20 | # MCU name
21 | MCU = atmega8
22 |
23 | # Processor frequency 3.6864 MHz
24 | F_CPU = 3686400
25 |
26 | # Output format. (can be srec, ihex, binary)
27 | FORMAT = ihex
28 |
29 | # Target file name (without extension).
30 | TARGET = main
31 |
32 | # Object files directory
33 | OBJDIR = obj
34 |
35 |
36 | # List C source files here. (C dependencies are automatically generated.)
37 | SRC = $(TARGET).c
38 |
39 | # Optimization level, can be [0, 1, 2, 3, s].
40 | # 0 = turn off optimization. s = optimize for size.
41 | # (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
42 | OPT = s
43 |
44 |
45 | # Debugging format.
46 | # Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
47 | # AVR Studio 4.10 requires dwarf-2.
48 | # AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
49 | DEBUG = dwarf-2
50 |
51 |
52 | # List any extra directories to look for include files here.
53 | # Each directory must be seperated by a space.
54 | # Use forward slashes for directory separators.
55 | # For a directory that has spaces, enclose it in quotes.
56 | EXTRAINCDIRS =
57 |
58 |
59 | # Compiler flag to set the C Standard level.
60 | # c89 = "ANSI" C
61 | # gnu89 = c89 plus GCC extensions
62 | # c99 = ISO C99 standard (not yet fully implemented)
63 | # gnu99 = c99 plus GCC extensions
64 | CSTANDARD = -std=gnu99
65 |
66 |
67 | # Place -D or -U options here for C sources
68 | CDEFS = -DF_CPU=$(F_CPU)UL
69 |
70 |
71 | # Place -D or -U options here for C++ sources
72 | CPPDEFS = -DF_CPU=$(F_CPU)UL
73 | #CPPDEFS += -D__STDC_LIMIT_MACROS
74 | #CPPDEFS += -D__STDC_CONSTANT_MACROS
75 |
76 |
77 |
78 | #---------------- Compiler Options C ----------------
79 | # -g*: generate debugging information
80 | # -O*: optimization level
81 | # -f...: tuning, see GCC manual and avr-libc documentation
82 | # -Wall...: warning level
83 | # -Wa,...: tell GCC to pass this to the assembler.
84 | # -adhlns...: create assembler listing
85 | CFLAGS = -g$(DEBUG)
86 | CFLAGS += $(CDEFS)
87 | CFLAGS += -O$(OPT)
88 | #CFLAGS += -mint8
89 | #CFLAGS += -mshort-calls
90 | CFLAGS += -funsigned-char
91 | CFLAGS += -funsigned-bitfields
92 | CFLAGS += -fpack-struct
93 | CFLAGS += -fshort-enums
94 | #CFLAGS += -fno-unit-at-a-time
95 | CFLAGS += -Wall
96 | CFLAGS += -Wstrict-prototypes
97 | CFLAGS += -Wundef
98 | #CFLAGS += -Wunreachable-code
99 | #CFLAGS += -Wsign-compare
100 | CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst)
101 | CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
102 | CFLAGS += $(CSTANDARD)
103 |
104 |
105 | #---------------- Compiler Options C++ ----------------
106 | # -g*: generate debugging information
107 | # -O*: optimization level
108 | # -f...: tuning, see GCC manual and avr-libc documentation
109 | # -Wall...: warning level
110 | # -Wa,...: tell GCC to pass this to the assembler.
111 | # -adhlns...: create assembler listing
112 | CPPFLAGS = -g$(DEBUG)
113 | CPPFLAGS += $(CPPDEFS)
114 | CPPFLAGS += -O$(OPT)
115 | #CPPFLAGS += -mint8
116 | #CPPFLAGS += -mshort-calls
117 | CPPFLAGS += -funsigned-char
118 | CPPFLAGS += -funsigned-bitfields
119 | CPPFLAGS += -fpack-struct
120 | CPPFLAGS += -fshort-enums
121 | CPPFLAGS += -fno-exceptions
122 | #CPPFLAGS += -fno-unit-at-a-time
123 | CPPFLAGS += -Wall
124 | #CPPFLAGS += -Wstrict-prototypes
125 | CFLAGS += -Wundef
126 | #CPPFLAGS += -Wunreachable-code
127 | #CPPFLAGS += -Wsign-compare
128 | CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst)
129 | CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
130 | #CPPFLAGS += $(CSTANDARD)
131 |
132 |
133 | #---------------- Assembler Options ----------------
134 | # -Wa,...: tell GCC to pass this to the assembler.
135 | # -ahlms: create listing
136 | # -gstabs: have the assembler create line number information; note that
137 | # for use in COFF files, additional information about filenames
138 | # and function names needs to be present in the assembler source
139 | # files -- see avr-libc docs [FIXME: not yet described there]
140 | ASFLAGS = -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs
141 |
142 |
143 | #---------------- Library Options ----------------
144 | # Minimalistic printf version
145 | PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
146 |
147 | # Floating point printf version (requires MATH_LIB = -lm below)
148 | PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
149 |
150 | # If this is left blank, then it will use the Standard printf version.
151 | PRINTF_LIB =
152 | #PRINTF_LIB = $(PRINTF_LIB_MIN)
153 | #PRINTF_LIB = $(PRINTF_LIB_FLOAT)
154 |
155 |
156 | # Minimalistic scanf version
157 | SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
158 |
159 | # Floating point + %[ scanf version (requires MATH_LIB = -lm below)
160 | SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
161 |
162 | # If this is left blank, then it will use the Standard scanf version.
163 | SCANF_LIB =
164 | #SCANF_LIB = $(SCANF_LIB_MIN)
165 | #SCANF_LIB = $(SCANF_LIB_FLOAT)
166 |
167 |
168 | MATH_LIB = -lm
169 |
170 |
171 |
172 | #---------------- External Memory Options ----------------
173 |
174 | # 64 KB of external RAM, starting after internal RAM (ATmega128!),
175 | # used for variables (.data/.bss) and heap (malloc()).
176 | #EXTMEMOPTS = -Wl,-Tdata=0x801100,--defsym=__heap_end=0x80ffff
177 |
178 | # 64 KB of external RAM, starting after internal RAM (ATmega128!),
179 | # only used for heap (malloc()).
180 | #EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff
181 |
182 | EXTMEMOPTS =
183 |
184 |
185 |
186 | #---------------- Linker Options ----------------
187 | # -Wl,...: tell GCC to pass this to linker.
188 | # -Map: create map file
189 | # --cref: add cross reference to map file
190 | LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
191 | LDFLAGS += $(EXTMEMOPTS)
192 | LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)
193 | #LDFLAGS += -T linker_script.x
194 |
195 |
196 |
197 | #---------------- Programming Options (avrdude) ----------------
198 |
199 | # Programming hardware: alf avr910 avrisp bascom bsd
200 | # dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
201 | #
202 | # Type: avrdude -c ?
203 | # to get a full listing.
204 | #
205 | AVRDUDE_PROGRAMMER = dragon_isp
206 |
207 | # com1 = serial port. Use lpt1 to connect to parallel port.
208 | AVRDUDE_PORT = usb
209 |
210 | AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
211 | #AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
212 |
213 |
214 | # Uncomment the following if you want avrdude's erase cycle counter.
215 | # Note that this counter needs to be initialized first using -Yn,
216 | # see avrdude manual.
217 | #AVRDUDE_ERASE_COUNTER = -y
218 |
219 | # Uncomment the following if you do /not/ wish a verification to be
220 | # performed after programming the device.
221 | #AVRDUDE_NO_VERIFY = -V
222 |
223 | # Increase verbosity level. Please use this when submitting bug
224 | # reports about avrdude. See
225 | # to submit bug reports.
226 | #AVRDUDE_VERBOSE = -v -v
227 |
228 | AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
229 | AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY)
230 | AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE)
231 | AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER)
232 |
233 |
234 |
235 | #---------------- Debugging Options ----------------
236 |
237 | # For simulavr only - target MCU frequency.
238 | DEBUG_MFREQ = $(F_CPU)
239 |
240 | # Set the DEBUG_UI to either gdb or insight.
241 | DEBUG_UI = gdb
242 | # DEBUG_UI = insight
243 |
244 | # Set the debugging back-end to either avarice, simulavr.
245 | #DEBUG_BACKEND = avarice
246 | DEBUG_BACKEND = simulavr
247 |
248 | # GDB Init Filename.
249 | GDBINIT_FILE = __avr_gdbinit
250 |
251 | # When using avarice settings for the JTAG
252 | JTAG_DEV = /dev/com1
253 |
254 | # Debugging port used to communicate between GDB / avarice / simulavr.
255 | DEBUG_PORT = 4242
256 |
257 | # Debugging host used to communicate between GDB / avarice / simulavr, normally
258 | # just set to localhost unless doing some sort of crazy debugging when
259 | # avarice is running on a different computer.
260 | DEBUG_HOST = localhost
261 |
262 |
263 |
264 | #============================================================================
265 |
266 |
267 | # Define programs and commands.
268 | SHELL = sh
269 | CC = avr-gcc
270 | OBJCOPY = avr-objcopy
271 | OBJDUMP = avr-objdump
272 | SIZE = avr-size
273 | NM = avr-nm
274 | AVRDUDE = avrdude
275 | REMOVE = rm -f
276 | REMOVEDIR = rm -rf
277 | COPY = cp
278 | WINSHELL = cmd
279 |
280 |
281 | # Define Messages
282 | # English
283 | MSG_ERRORS_NONE = Errors: none
284 | MSG_BEGIN = -------- begin --------
285 | MSG_END = -------- end --------
286 | MSG_SIZE_BEFORE = Size before:
287 | MSG_SIZE_AFTER = Size after:
288 | MSG_COFF = Converting to AVR COFF:
289 | MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
290 | MSG_FLASH = Creating load file for Flash:
291 | MSG_EEPROM = Creating load file for EEPROM:
292 | MSG_EXTENDED_LISTING = Creating Extended Listing:
293 | MSG_SYMBOL_TABLE = Creating Symbol Table:
294 | MSG_LINKING = Linking:
295 | MSG_COMPILING = Compiling C:
296 | MSG_COMPILING_CPP = Compiling C++:
297 | MSG_ASSEMBLING = Assembling:
298 | MSG_CLEANING = Cleaning project:
299 | MSG_CREATING_LIBRARY = Creating library:
300 |
301 |
302 |
303 |
304 | # Define all object files.
305 | OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o)
306 |
307 | # Define all listing files.
308 | LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst)
309 |
310 |
311 | # Compiler flags to generate dependency files.
312 | GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
313 |
314 |
315 | # Combine all necessary flags and optional flags.
316 | # Add target processor to flags.
317 | ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
318 | ALL_CPPFLAGS = -mmcu=$(MCU) -I. -x c++ $(CPPFLAGS) $(GENDEPFLAGS)
319 | ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
320 |
321 |
322 |
323 |
324 |
325 | # Default target.
326 | all: begin gccversion sizebefore build sizeafter end
327 |
328 | # Change the build target to build a HEX file or a library.
329 | build: elf hex eep lss sym
330 | #build: lib
331 |
332 |
333 | elf: $(TARGET).elf
334 | hex: $(TARGET).hex
335 | eep: $(TARGET).eep
336 | lss: $(TARGET).lss
337 | sym: $(TARGET).sym
338 | LIBNAME=lib$(TARGET).a
339 | lib: $(LIBNAME)
340 |
341 |
342 |
343 | # Eye candy.
344 | # AVR Studio 3.x does not check make's exit code but relies on
345 | # the following magic strings to be generated by the compile job.
346 |
347 | begin:
348 | @echo
349 | @echo $(MSG_BEGIN)
350 |
351 | end:
352 | @echo $(MSG_END)
353 | @echo
354 |
355 |
356 | # Display size of file.
357 | HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
358 | ELFSIZE = $(SIZE) -A $(TARGET).elf
359 | AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)
360 |
361 | sizebefore:
362 | @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); \
363 | $(AVRMEM) 2>/dev/null; echo; fi
364 |
365 | sizeafter:
366 | @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); \
367 | $(AVRMEM) 2>/dev/null; echo; fi
368 |
369 |
370 |
371 | # Display compiler version information.
372 | gccversion :
373 | @$(CC) --version
374 |
375 |
376 |
377 | # Program the device.
378 | program: $(TARGET).hex $(TARGET).eep
379 | $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)
380 | $(AVRDUDE_WRITE_EEPROM)
381 |
382 |
383 | # Generate avr-gdb config/init file which does the following:
384 | # define the reset signal, load the target file, connect to target, and set
385 | # a breakpoint at main().
386 | gdb-config:
387 | @$(REMOVE) $(GDBINIT_FILE)
388 | @echo define reset >> $(GDBINIT_FILE)
389 | @echo SIGNAL SIGHUP >> $(GDBINIT_FILE)
390 | @echo end >> $(GDBINIT_FILE)
391 | @echo file $(TARGET).elf >> $(GDBINIT_FILE)
392 | @echo target remote $(DEBUG_HOST):$(DEBUG_PORT) >> $(GDBINIT_FILE)
393 | ifeq ($(DEBUG_BACKEND),simulavr)
394 | @echo load >> $(GDBINIT_FILE)
395 | endif
396 | @echo break main >> $(GDBINIT_FILE)
397 |
398 | debug: gdb-config $(TARGET).elf
399 | ifeq ($(DEBUG_BACKEND), avarice)
400 | @echo Starting AVaRICE - Press enter when "waiting to connect" message displays.
401 | @$(WINSHELL) /c start avarice --jtag $(JTAG_DEV) --erase --program --file \
402 | $(TARGET).elf $(DEBUG_HOST):$(DEBUG_PORT)
403 | @$(WINSHELL) /c pause
404 |
405 | else
406 | @$(WINSHELL) /c start simulavr --gdbserver --device $(MCU) --clock-freq \
407 | $(DEBUG_MFREQ) --port $(DEBUG_PORT)
408 | endif
409 | @$(WINSHELL) /c start avr-$(DEBUG_UI) --command=$(GDBINIT_FILE)
410 |
411 |
412 |
413 |
414 | # Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
415 | COFFCONVERT = $(OBJCOPY) --debugging
416 | COFFCONVERT += --change-section-address .data-0x800000
417 | COFFCONVERT += --change-section-address .bss-0x800000
418 | COFFCONVERT += --change-section-address .noinit-0x800000
419 | COFFCONVERT += --change-section-address .eeprom-0x810000
420 |
421 |
422 |
423 | coff: $(TARGET).elf
424 | @echo
425 | @echo $(MSG_COFF) $(TARGET).cof
426 | $(COFFCONVERT) -O coff-avr $< $(TARGET).cof
427 |
428 |
429 | extcoff: $(TARGET).elf
430 | @echo
431 | @echo $(MSG_EXTENDED_COFF) $(TARGET).cof
432 | $(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
433 |
434 |
435 |
436 | # Create final output files (.hex, .eep) from ELF output file.
437 | %.hex: %.elf
438 | @echo
439 | @echo $(MSG_FLASH) $@
440 | $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
441 |
442 | %.eep: %.elf
443 | @echo
444 | @echo $(MSG_EEPROM) $@
445 | -$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
446 | --change-section-lma .eeprom=0 -O $(FORMAT) $< $@
447 |
448 | # Create extended listing file from ELF output file.
449 | %.lss: %.elf
450 | @echo
451 | @echo $(MSG_EXTENDED_LISTING) $@
452 | $(OBJDUMP) -h -S $< > $@
453 |
454 | # Create a symbol table from ELF output file.
455 | %.sym: %.elf
456 | @echo
457 | @echo $(MSG_SYMBOL_TABLE) $@
458 | $(NM) -n $< > $@
459 |
460 |
461 |
462 | # Create library from object files.
463 | .SECONDARY : $(TARGET).a
464 | .PRECIOUS : $(OBJ)
465 | %.a: $(OBJ)
466 | @echo
467 | @echo $(MSG_CREATING_LIBRARY) $@
468 | $(AR) $@ $(OBJ)
469 |
470 |
471 | # Link: create ELF output file from object files.
472 | .SECONDARY : $(TARGET).elf
473 | .PRECIOUS : $(OBJ)
474 | %.elf: $(OBJ)
475 | @echo
476 | @echo $(MSG_LINKING) $@
477 | $(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
478 |
479 |
480 | # Compile: create object files from C source files.
481 | $(OBJDIR)/%.o : %.c
482 | @echo
483 | @echo $(MSG_COMPILING) $<
484 | $(CC) -c $(ALL_CFLAGS) $< -o $@
485 |
486 |
487 | # Compile: create object files from C++ source files.
488 | $(OBJDIR)/%.o : %.cpp
489 | @echo
490 | @echo $(MSG_COMPILING_CPP) $<
491 | $(CC) -c $(ALL_CPPFLAGS) $< -o $@
492 |
493 |
494 | # Compile: create assembler files from C source files.
495 | %.s : %.c
496 | $(CC) -S $(ALL_CFLAGS) $< -o $@
497 |
498 |
499 | # Compile: create assembler files from C++ source files.
500 | %.s : %.cpp
501 | $(CC) -S $(ALL_CPPFLAGS) $< -o $@
502 |
503 |
504 | # Assemble: create object files from assembler source files.
505 | $(OBJDIR)/%.o : %.S
506 | @echo
507 | @echo $(MSG_ASSEMBLING) $<
508 | $(CC) -c $(ALL_ASFLAGS) $< -o $@
509 |
510 |
511 | # Create preprocessed source for use in sending a bug report.
512 | %.i : %.c
513 | $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@
514 |
515 |
516 | # Target: clean project.
517 | clean: begin clean_list end
518 |
519 | clean_list :
520 | @echo
521 | @echo $(MSG_CLEANING)
522 | $(REMOVE) $(TARGET).hex
523 | $(REMOVE) $(TARGET).eep
524 | $(REMOVE) $(TARGET).cof
525 | $(REMOVE) $(TARGET).elf
526 | $(REMOVE) $(TARGET).map
527 | $(REMOVE) $(TARGET).sym
528 | $(REMOVE) $(TARGET).lss
529 | $(REMOVEDIR) $(OBJDIR)
530 | $(REMOVE) $(SRC:.c=.s)
531 | $(REMOVE) $(SRC:.c=.d)
532 | $(REMOVEDIR) .dep
533 |
534 |
535 | # Create object files directory
536 | $(shell mkdir $(OBJDIR) 2>/dev/null)
537 |
538 |
539 | # Include the dependency files.
540 | -include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
541 |
542 |
543 | # Listing of phony targets.
544 | .PHONY : all begin finish end sizebefore sizeafter gccversion \
545 | build elf hex eep lss sym coff extcoff \
546 | clean clean_list program debug gdb-config
--------------------------------------------------------------------------------
/uC-Sourcecode/README:
--------------------------------------------------------------------------------
1 | These files are for AVR-GCC.
2 |
3 | USE:
4 |
5 | * Run
6 | $ make
7 | to compile
8 |
9 | * Run
10 | $ make program
11 | to write into the uC.
12 |
13 | Programmer is set to avr-dragon by default. You can change this in the
14 | Makefile.
15 |
16 | NOTE: You have to program the ATMega 8 fuses first.
17 |
--------------------------------------------------------------------------------
/uC-Sourcecode/main.c:
--------------------------------------------------------------------------------
1 | /* **********************************************************************
2 | * AVR-GCC source code for Freifunk-Open-MPP-Solar-Tracker
3 | * Copyright (C) 2017 by Corinna 'Elektra' Aichele
4 | *
5 | * This file is part of the Open-Hardware and Open-Software project
6 | * Freifunk-Open-MPP-Solar-Tracker.
7 | *
8 | * This file is free software: you can redistribute it and/or modify
9 | * it under the terms of the GNU General Public License as published by
10 | * the Free Software Foundation, either version 2 of the License, or
11 | * (at your option) any later version.
12 | *
13 | * This source code is distributed in the hope that it will be useful,
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | * GNU General Public License for more details.
17 | * You should have received a copy of the GNU General Public License
18 | * along with this source file. If not, see http://www.gnu.org/licenses/.
19 | *************************************************************************/
20 |
21 |
22 | #include
23 | #include
24 | #include
25 | #include
26 | #include
27 |
28 | /* UART init */
29 |
30 | #ifndef F_CPU
31 | #warning "F_CPU not defined in Makefile. Using 3.686400 MHz"
32 | #define F_CPU 3686400UL
33 | #endif
34 |
35 | /* Define baud rate for serial port */
36 | #define BAUD 9600UL
37 |
38 | /* Calculate UART BAUD register setting */
39 | #define UBRR_SETTING ((F_CPU+BAUD*8)/(BAUD*16)-1)
40 |
41 |
42 |
43 | uint16_t v_out_adcval;
44 | uint16_t solar_in_adcval;
45 | uint16_t v_in_value;
46 | uint16_t v_out_value;
47 | char vo[] = "";
48 |
49 | /* All Voltages are in mV */
50 |
51 | // v_out_max = Charge end voltage in mV at 25 degrees Celsius for sealed VRLA 12 V battery (Kung-Long, Panasonic and the like)
52 | // Manufacturers recommend 14.7 V to 14.9 V charge end voltage for cyclic use, 13.6 V to 13.8 V for standby use
53 | // As a solar system is a mix between cyclic and standby use, 14.15 V - 14.3 V charge end voltage is probably a good compromise.
54 |
55 | uint16_t v_out_max = 14200;
56 |
57 | // v_load_off = Low voltage disconnect voltage in mV. Battery wear depends on depth-of-discharge. 11.7 Volt is moderate, discharging will stop at approximately 15% charge. For extended battery life, v_load_off can be increased to 12.1 V (~50% charge). Lead acid batteries have no memory effect.
58 |
59 | uint16_t v_load_off = 11700;
60 |
61 | // v_load_on = Low voltage disconnect enable voltage in mV. v_load_off and v_load_on are building a hysteresis so the system doesn't turn the load on and off repeatedly.
62 |
63 | uint16_t v_load_on = 12300;
64 |
65 |
66 | uint16_t v_mpp_estimate = 0;
67 | uint8_t step = 0x1;
68 | volatile uint16_t ticks = 0;
69 | double ptc_resistance;
70 | double resistor_voltage;
71 | double temperature;
72 | double temp_deviation;
73 | uint16_t v_out_max_temp;
74 | uint16_t old_mpp_pwm_val =0;
75 | uint16_t count;
76 |
77 |
78 | /* ADC init */
79 | void ADC_Init(void)
80 | {
81 | // Reference: Use Vcc as AVcc
82 | ADMUX = (1<> 8;
136 | UBRRL = UBRR_SETTING & 0xFF;
137 |
138 | // enable UART TX
139 | UCSRB |= (1< v_load_on)
184 | {
185 | PORTD = (1< 3200) {
258 | uart_puts ("No temperature sensor available. \r\n");
259 | return;
260 | }
261 |
262 | uart_puts("PTC sensor voltage: ");
263 | itoa(resistor_voltage, vo, 10 );
264 | uart_puts(vo);
265 | uart_puts (" mV\r\n");
266 | ptc_resistance = 1300 / ((3300 / resistor_voltage) - 1);
267 |
268 | uart_puts("PTC sensor resistance: ");
269 | itoa(ptc_resistance, vo, 10 );
270 | uart_puts(vo);
271 | uart_puts (" Ohm\r\n");
272 |
273 | // KTY 81-210 is not very accurate.
274 | // Best accuracy at 40 degrees Celsius
275 |
276 | temperature = -30 + ((ptc_resistance - 1247) / 14.15);
277 |
278 | uart_puts("Temperature ");
279 | dtostrf (temperature, 1, 1, vo);
280 | uart_puts(vo);
281 | uart_puts (" degrees Celsius\r\n");
282 |
283 | /* Calculate and adjust charge end voltage depending on
284 | battery temperature for voltage regulated lead acid battery chemistry
285 | Correction factor 5 mV per cell for one degree Celsius
286 | 12 V lead acid type has 6 cells */
287 |
288 | if (temperature > 25.00) {
289 | v_out_max_temp = v_out_max - ((temperature - 25.00) * 30);
290 | }
291 |
292 | if (temperature < 25.00) {
293 | v_out_max_temp = v_out_max + ((25.00 - temperature) * 30);
294 | }
295 |
296 | uart_puts("Temperature adjusted charge end voltage: ");
297 | itoa(v_out_max_temp, vo, 10 );
298 | uart_puts(vo);
299 | uart_puts (" mV\r\n");
300 |
301 |
302 |
303 | }
304 |
305 |
306 |
307 | void serialdatareport (void)
308 | {
309 | // Prevent serial data from getting garbled.
310 | _delay_ms(20);
311 | // Prepare UART for sending data
312 | uart_tx_enable();
313 | measure_v_in();
314 | // convert to ascii using 10 for radix 10 -> decimalsystem
315 | uart_puts("V_in ");
316 | itoa( v_in_value, vo, 10 );
317 | uart_puts( vo );
318 | uart_puts(" mV""\r\n");
319 |
320 | measure_v_out();
321 | uart_puts("V_out ");
322 | itoa( v_out_value, vo, 10 );
323 | uart_puts( vo );
324 | uart_puts(" mV""\r\n");
325 |
326 | uart_puts ("New PWM value: 0x");
327 | itoa(OCR1A, vo, 16 );
328 | uart_puts (vo);
329 | uart_puts ("\r\n");
330 |
331 | uart_tx_disable();
332 |
333 | read_temp_sens();
334 |
335 | }
336 |
337 |
338 | void charge_end_limit (void)
339 | {
340 | /* Reduce charging current at V_out_max_temp */
341 |
342 | measure_v_out();
343 |
344 | if (v_out_value > (v_out_max_temp + 20)) {
345 |
346 | OCR1A = old_mpp_pwm_val;
347 | count = 0;
348 | uart_puts ("In charge end loop \r\n");
349 |
350 | while(count < 65535) {
351 | measure_v_out();
352 | if (v_out_value > v_out_max_temp && OCR1A < 0x3FF ){
353 | //uart_puts ("PWM UP by 1\r\n");
354 | OCR1A += 0x1;}
355 |
356 | if(v_out_value < v_out_max_temp && OCR1A > 0x1) {
357 | //uart_puts ("PWM DOWN by 1\r\n");
358 | OCR1A -= 0x1;}
359 |
360 | count++;
361 | _delay_ms(1);
362 | }
363 |
364 | uart_puts("V_out ");
365 | itoa( v_out_value, vo, 10 );
366 | uart_puts( vo );
367 | uart_puts(" mV""\r\n");
368 |
369 | uart_puts("V_out at charge end voltage ");
370 | itoa(v_out_max_temp, vo, 10 );
371 | uart_puts(vo);
372 | uart_puts ("mV\r\n");
373 | _delay_ms(1000);
374 |
375 | old_mpp_pwm_val = OCR1A;
376 | uart_puts("old_mpp_pwm_val ");
377 | itoa(OCR1A, vo, 16 );
378 | uart_puts (vo);
379 | uart_puts ("\r\n");
380 |
381 | }
382 | }
383 |
384 |
385 |
386 | int main(void)
387 | {
388 |
389 | // Set up GPIOs PD7 and PB1 as output ports
390 | DDRD = (1< v_in_value)
485 | {
486 | ticks = 0;
487 | uart_puts("Going to sleep, input voltage too low");
488 | uart_puts ("\r\n");
489 | while (ticks != 200) {
490 | interrupt_based_sleep();
491 | ticks ++;
492 | }
493 |
494 | }
495 | charge_end_limit();
496 |
497 | serialdatareport();
498 | _delay_ms(500);
499 | }
500 |
501 | return 0; // never reached
502 | }
503 |
--------------------------------------------------------------------------------
/uC-Sourcecode/main.hex:
--------------------------------------------------------------------------------
1 | :100000008FC0A9C0A8C0A7C035C1A5C0A4C0A3C047
2 | :10001000A2C0A1C0A0C09FC09EC09DC09CC09BC0EC
3 | :100020009AC099C098C000407A10F35A00A0724E4E
4 | :1000300018090010A5D4E80000E87648170000E48D
5 | :100040000B54020000CA9A3B000000E1F5050000D5
6 | :1000500080969800000040420F000000A08601003A
7 | :100060000000102700000000E8030000000064000A
8 | :10007000000000000A000000000001000000000075
9 | :100080002C76D888DC674F0823DFC1DFAE59E1B199
10 | :10009000B796E5E3E453C63AE651997696E8E6C2A8
11 | :1000A0008426EB898C9B62ED407C6FFCEFBC9C9FAF
12 | :1000B00040F2BAA56FA5F490055A2AF75C936B6CD1
13 | :1000C000F9676DC11BFCE0E40D47FEF520E6B500C5
14 | :1000D000D0ED902E0300943577050080841E080033
15 | :1000E00000204E0A000000C80C333333330F986EE3
16 | :1000F00012831141EF8D2114893BE65516CFFEE6A0
17 | :10010000DB18D1844B381BF77C1D901DA4BBE42465
18 | :10011000203284725E228100C9F124ECA1E53D27E2
19 | :1001200011241FBECFE5D4E0DEBFCDBF12E0A0E6B4
20 | :10013000B0E0E0E1F3E102C005900D92AC31B1070F
21 | :10014000D9F722E0ACE1B2E001C01D92AF33B207B3
22 | :10015000E1F7BFD2DBC854CF80E487B983E086B92A
23 | :10016000379A369A3699FECF089597B18F71907E5F
24 | :10017000892B87B9369A3699FECF84B195B1089507
25 | :10018000CF92DF92EF92FF920F931F93CF93DF9363
26 | :100190001F92CDB7DEB7082F10E0C12CD12C76010D
27 | :1001A000161751F0802F6983E0DFC80ED91EE11CBD
28 | :1001B000F11C1F5F6981F4CF212F30E040E050E057
29 | :1001C000C701B601CAD5C9010F90DF91CF911F9128
30 | :1001D0000F91FF90EF90DF90CF90089510BC87E1D2
31 | :1001E00089B9539A86E880BD08958AB18AB908957D
32 | :1001F0005D9BFECF8CB980E090E00895CF93DF93B4
33 | :10020000EC018991882311F0F3DFFBCFDF91CF91CF
34 | :10021000089520916100309162002817390710F489
35 | :1002200020E822BB2091630030916400821793077D
36 | :1002300008F412BA82B3803819F487E690E002C05D
37 | :1002400086E790E0DBCF88B7806488BF89B7806499
38 | :1002500089BF14BC789485B78F7885BF85B78068CF
39 | :1002600085BF85B7806885BF889585B78F7785BF3F
40 | :10027000F89408951F920F920FB60F9211240F90C9
41 | :100280000FBE0F901F90189560E280E079DF909389
42 | :100290002E0280932D02BC0180E090E045D42CE535
43 | :1002A0003FE84CE851E4F6D413D4709334026093E1
44 | :1002B0003302CB01089560E282E062DF9093240272
45 | :1002C00080932302BC0180E090E02ED42DE33AE03D
46 | :1002D00049EE51E4DFD4FCD37093380260933702C7
47 | :1002E000CB0108958F929F92AF92BF92CF92DF92EF
48 | :1002F000EF92FF920F931F9368E083E041DFBC0110
49 | :1003000080E090E011D426EE3FE34EE450E4C2D406
50 | :1003100060933B0270933C0280933D0290933E02B7
51 | :1003200020E030E048E455E4B1D418161CF486E827
52 | :1003300090E0EDC08AEA90E061DF60913B0270914D
53 | :100340003C0280913D0290913E02BDD3DC01CB0185
54 | :100350004AE062E272E042D582E292E04FDF8FEB48
55 | :1003600090E04CDF20913B0230913C0240913D02F5
56 | :1003700050913E0260E070E48EE495E43CD320E0CE
57 | :1003800030E040E85FE3CED29B01AC0160E070E872
58 | :1003900082EA94E430D3609325027093260280931E
59 | :1003A00027029093280285EC90E028DF60912502D7
60 | :1003B00070912602809127029091280284D3DC015B
61 | :1003C000CB014AE062E272E009D582E292E016DFF8
62 | :1003D0008DED90E013DF20E030EE4BE954E46091C6
63 | :1003E00025027091260280912702909128029AD2CC
64 | :1003F00026E636E642E651E4FED220E030E040EF69
65 | :1004000051E490D26093290270932A0280932B02C8
66 | :1004100090932C0284EE90E0F1DE609129027091BD
67 | :100420002A0280912B0290912C0202E212E021E03C
68 | :1004300041E0B5D4C801E2DE81EF90E0DFDEC0909C
69 | :100440002902D0902A02E0902B02F0902C0220E0AA
70 | :1004500030E048EC51E4C701B60118D41816FCF49A
71 | :10046000609165007091660080E090E05DD34B0183
72 | :100470005C0120E030E048EC51E4C701B60152D203
73 | :1004800020E030E040EF51E405D49B01AC01C50110
74 | :10049000B40148D21DD3709336026093350220E038
75 | :1004A00030E048EC51E4C701B601A1D287FF1FC07C
76 | :1004B000609165007091660080E090E035D34B015B
77 | :1004C0005C01A701960160E070E088EC91E42AD21B
78 | :1004D00020E030E040EF51E4DDD39B01AC01C501E9
79 | :1004E000B40121D2F5D2709336026093350284E0D4
80 | :1004F00091E084DE4AE062E272E080913502909100
81 | :1005000036026CD482E292E079DE8FEB90E01F91AC
82 | :100510000F91FF90EF90DF90CF90BF90AF909F90A2
83 | :100520008F906CCE8FEF97E40197F1F700C0000039
84 | :1005300055DEC1DE8EE291E061DE4AE062E272E009
85 | :10054000809137029091380249D482E292E056DEDF
86 | :100550008FEB90E053DE98DE84E391E04FDE4AE0DB
87 | :1005600062E272E0809133029091340237D482E2E9
88 | :1005700092E044DE8FEB90E041DE8BE391E03EDEE3
89 | :100580008AB59BB540E162E272E028D482E292E053
90 | :1005900035DE87EA90E032DE28DEA4CE75DE80917B
91 | :1005A0003502909136024496209133023091340204
92 | :1005B0008217930708F08CC080911C0290911D0255
93 | :1005C0009BBD8ABD10923A02109239028DE491E0EF
94 | :1005D00015DE8091390290913A020196C9F154DEFC
95 | :1005E000209133023091340280913502909136028D
96 | :1005F0008217930750F48AB59BB58F3F934028F438
97 | :100600008AB59BB501969BBD8ABD2091330230917E
98 | :10061000340280913502909136022817390748F448
99 | :100620008AB59BB5029728F08AB59BB501979BBD0B
100 | :100630008ABD8091390290913A02019690933A02D4
101 | :100640008093390289E993E00197F1F700C0C1CFA7
102 | :1006500084E391E0D3DD4AE062E272E0809133020C
103 | :1006600090913402BBD382E292E0C8DD8FEB90E040
104 | :10067000C5DD83E691E0C2DD4AE062E272E080918E
105 | :10068000350290913602AAD382E292E0B7DD80EC87
106 | :1006900090E0B4DD8FEF9FE32BE08150904020404D
107 | :1006A000E1F700C000008AB59BB590931D028093CE
108 | :1006B0001C0281E891E0A2DD8AB59BB540E162E2CF
109 | :1006C00072E08CD382E292E099DD87EA90E096CDE9
110 | :1006D000089580E881BB82E087BB3EDD8FB58B68E3
111 | :1006E0008FBD8EB581608EBD8FEF93E097BD86BDC7
112 | :1006F00080EF90E09BBD8ABD85B5876085BD2FEFFB
113 | :100700008FE392E0215080409040E1F700C000006C
114 | :100710008091650090916600909336028093350237
115 | :10072000CFEFD3E0B1DD809133029091340271DDDF
116 | :1007300082E991E063DD87EA90E060DD2FDFBBDDD9
117 | :100740002091330230913402809137029091380227
118 | :1007500028173907B8F02091330230913402809184
119 | :100760003702909138028217930708F0CFC0109299
120 | :100770001F0210921E0286EF91E040DD87EA90E0B2
121 | :100780003DDDB2C080913502909136024497281722
122 | :10079000390708F7DBBDCABD2FEF8FE794E0215082
123 | :1007A00080409040E1F700C0000085DD88EB91E0DB
124 | :1007B00025DD4AE062E272E08091370290913802D2
125 | :1007C0000DD382E292E01ADD8FEB90E017DD6091AD
126 | :1007D00037027091380280E090E0A6D122E538EB34
127 | :1007E0004EE95FE308D174D1709321026093200237
128 | :1007F0001BBC1ABCD3DE2FEF8FE392E02150804068
129 | :100800009040E1F700C0000056DD83EC91E0F6DC9B
130 | :100810004AE062E272E08091370290913802DED2C3
131 | :1008200082E292E0EBDC8FEB90E0E8DC82ED91E09D
132 | :10083000E5DC4AE062E272E08091200290912102C0
133 | :10084000CDD282E292E0DADC8FEB90E0D7DC33DDD0
134 | :100850001BDD209137023091380280912002909167
135 | :10086000210228173907E0F4809135029091360271
136 | :1008700086599109209133023091340228173907A3
137 | :1008800078F48AB59BB520916000820F911D9BBDC5
138 | :100890008ABD8FEF93E20197F1F700C00000D7CF38
139 | :1008A00010921F0210921E0284EE91E0A7DC87EAEC
140 | :1008B00090E0A4DC80911E0290911F028436910585
141 | :1008C00009F449CFC0DC8FEF97E40197F1F700C03E
142 | :1008D000000064DE80911E0290911F0201969093A9
143 | :1008E0001F0280931E02E6CF80911E0290911F028C
144 | :1008F000883C910559F0A7DC80911E0290911F025F
145 | :10090000019690931F0280931E02EECF47DE0ADE0F
146 | :100910009FEF2FE985E0915020408040E1F700C033
147 | :10092000000000CF5058BB27AA270ED075C166D152
148 | :1009300030F06BD120F031F49F3F11F41EF45BC115
149 | :100940000EF4E095E7FB51C1E92F77D180F3BA1798
150 | :10095000620773078407950718F071F49EF58FC13D
151 | :100960000EF4E0950B2EBA2FA02D0B01B9019001CA
152 | :100970000C01CA01A0011124FF27591B99F0593F0E
153 | :1009800050F4503E68F11A16F040A22F232F342F56
154 | :100990004427585FF3CF469537952795A795F040A4
155 | :1009A0005395C9F77EF41F16BA0B620B730B840BB9
156 | :1009B000BAF09150A1F0FF0FBB1F661F771F881F71
157 | :1009C000C2F70EC0BA0F621F731F841F48F48795C9
158 | :1009D00077956795B795F7959E3F08F0B3CF9395B8
159 | :1009E000880F08F09927EE0F979587950895D9D02D
160 | :1009F00008F481E008950CD00FC107D140F0FED07B
161 | :100A000030F021F45F3F19F0F0C0511139C1F3C04B
162 | :100A100014D198F39923C9F35523B1F3951B550BC2
163 | :100A2000BB27AA2762177307840738F09F5F5F4FC1
164 | :100A3000220F331F441FAA1FA9F333D00E2E3AF002
165 | :100A4000E0E830D091505040E695001CCAF729D01C
166 | :100A5000FE2F27D0660F771F881FBB1F261737076B
167 | :100A60004807AB07B0E809F0BB0B802DBF01FF279B
168 | :100A700093585F4F2AF09E3F510568F0B6C000C101
169 | :100A80005F3FECF3983EDCF3869577956795B795D5
170 | :100A9000F7959F5FC9F7880F911D9695879597F9F0
171 | :100AA0000895E1E0660F771F881FBB1F6217730769
172 | :100AB0008407BA0720F0621B730B840BBA0BEE1F7E
173 | :100AC00088F7E095089504D06894B111D9C00895CD
174 | :100AD000BCD088F09F5790F0B92F9927B751A0F05C
175 | :100AE000D1F0660F771F881F991F1AF0BA95C9F7C2
176 | :100AF00012C0B13081F0C3D0B1E00895C0C0672FFB
177 | :100B0000782F8827B85F39F0B93FCCF38695779571
178 | :100B10006795B395D9F73EF490958095709561955A
179 | :100B20007F4F8F4F9F4F0895E89409C097FB3EF485
180 | :100B300090958095709561957F4F8F4F9F4F99232A
181 | :100B4000A9F0F92F96E9BB279395F69587957795A8
182 | :100B50006795B795F111F8CFFAF4BB0F11F460FF68
183 | :100B60001BC06F5F7F4F8F4F9F4F16C0882311F0C0
184 | :100B700096E911C0772321F09EE8872F762F05C0D4
185 | :100B8000662371F096E8862F70E060E02AF09A956F
186 | :100B9000660F771F881FDAF7880F9695879597F964
187 | :100BA0000895990F0008550FAA0BE0E8FEEF1616FE
188 | :100BB0001706E807F907C0F012161306E407F50751
189 | :100BC00098F0621B730B840B950B39F40A2661F0C5
190 | :100BD000232B242B252B21F408950A2609F4A14068
191 | :100BE000A6958FEF811D811D089597F99F6780E875
192 | :100BF00070E060E008959FEF80EC089500240A946F
193 | :100C00001616170618060906089500240A941216E7
194 | :100C10001306140605060895092E0394000C11F41A
195 | :100C2000882352F0BB0F40F4BF2B11F460FF04C0C7
196 | :100C30006F5F7F4F8F4F9F4F089557FD9058440F20
197 | :100C4000551F59F05F3F71F04795880F97FB991F2B
198 | :100C500061F09F3F79F087950895121613061406E8
199 | :100C6000551FF2CF4695F1DF08C016161706180675
200 | :100C7000991FF1CF86957105610508940895E89450
201 | :100C8000BB2766277727CB0197F908958ADF08F4F9
202 | :100C90008FEF08950BD0C0CFB1DF28F0B6DF18F08A
203 | :100CA000952309F0A2CFA7CF1124EACFC6DFA0F386
204 | :100CB000959FD1F3950F50E0551F629FF001729FF1
205 | :100CC000BB27F00DB11D639FAA27F00DB11DAA1F10
206 | :100CD000649F6627B00DA11D661F829F2227B00D5D
207 | :100CE000A11D621F739FB00DA11D621F839FA00DE8
208 | :100CF000611D221F749F3327A00D611D231F849F38
209 | :100D0000600D211D822F762F6A2F11249F5750408E
210 | :100D10008AF0E1F088234AF0EE0FFF1FBB1F661F29
211 | :100D2000771F881F91505040A9F79E3F510570F0E2
212 | :100D30005CCFA6CF5F3FECF3983EDCF386957795CA
213 | :100D40006795B795F795E7959F5FC1F7FE2B880FDD
214 | :100D5000911D9695879597F90895A1E21A2EAA1BE1
215 | :100D6000BB1BFD010DC0AA1FBB1FEE1FFF1FA2175B
216 | :100D7000B307E407F50720F0A21BB30BE40BF50B58
217 | :100D8000661F771F881F991F1A9469F760957095E1
218 | :100D9000809590959B01AC01BD01CF010895EF9224
219 | :100DA0000F931F93CF93DF93E80147FD02C034E018
220 | :100DB00001C034E1E42F440FFF0BF7FF03C0F195AE
221 | :100DC000E195F109E32E022F2E2FAE012AD0CE019C
222 | :100DD000DF91CF911F910F91EF900895BB274A307B
223 | :100DE00031F4992322F4BDE2909581959F4F01C083
224 | :100DF000BB27FB015527AA27880F991FAA1FA417F5
225 | :100E000010F0A41B83955051B9F7A05DAA3308F0E8
226 | :100E1000A95DA193009779F7B111B1931192CB011C
227 | :100E200065C24F925F926F927F929F92AF92BF92F4
228 | :100E3000CF92DF92EF92FF920F931F93CF93DF93A6
229 | :100E4000CDB7DEB729970FB6F894DEBF0FBECDBF82
230 | :100E50006A01122FB02E2BE3201720F0FF24F39409
231 | :100E6000F00E02C0BCE3FB2E0F2D27E0AE014F5F5A
232 | :100E70005F4F64D1AC018981982F9970913031F026
233 | :100E8000E1FC06C0E0FE06C090E205C09DE203C0A2
234 | :100E90009BE201C090E0EE2DE07183FF3CC0911118
235 | :100EA00002C083E001C084E0811718F4212F281BC1
236 | :100EB00001C020E0E1110BC0F601822F30E288234F
237 | :100EC00019F031938150FBCFC20ED11C20E0992341
238 | :100ED00029F0D6019C93F60131966F01C601039665
239 | :100EE000E2FE0AC03EE4D6013C9341E411964C93E5
240 | :100EF000119712963C9306C03EE6F601308341E618
241 | :100F000041833283FC01322F40E2332309F442C093
242 | :100F100041933150FACF82FF44C0911102C083E067
243 | :100F200001C084E0811718F4212F281B01C020E0A4
244 | :100F3000E1110BC0F601822F30E2882319F03193C2
245 | :100F40008150FBCFC20ED11C20E0992329F0D6019D
246 | :100F50009C93F60131966F01C6010396E2FE0BC029
247 | :100F600039E4D6013C933EE411963C93119736E464
248 | :100F700012963C9307C039E6F60130833EE6318392
249 | :100F800036E63283FC01322F40E2332319F04193DD
250 | :100F90003150FBCFFC01E20FF11D10828EEF9FEF6D
251 | :100FA000B7C0F1E0911101C0F0E06F2F70E01416AE
252 | :100FB000150624F49A012F5F3F4F02C021E030E074
253 | :100FC000260F371FBB2029F06B2D70E06F5F7F4F1E
254 | :100FD00002C060E070E0260F371F612F70E0261717
255 | :100FE00037071CF4121B212F01C020E03E2D387161
256 | :100FF00059F4D601322F60E2332319F06D9331504A
257 | :10100000FBCFC20ED11C20E0FF2331F0D6019C9310
258 | :10101000B6016F5F7F4F6B01E1110BC0F601922F9C
259 | :1010200030E3992319F031939150FBCFC20ED11CBC
260 | :1010300020E09F2D940F3A81782F7071A72E84FFA6
261 | :1010400003C0313309F49150191624F4993018F083
262 | :1010500098E001C091E0E42F852F57FF02C0E0E047
263 | :1010600080E06E2F782FE0E0F0E0AEE29A2E3A01B9
264 | :10107000691A71082A01461A570A0B2D10E01195BA
265 | :10108000019511096F3F8FEF780729F4D6019C92E3
266 | :10109000C60101966C014617570784F0661677065D
267 | :1010A0006CF47F01E40CF51CA1E0B0E0AC0FBD1FB7
268 | :1010B000EA0EFB1ED7011196BC9002C090E3B92E38
269 | :1010C000615071093196C60101967C016017710764
270 | :1010D00024F0D601BC926C01D5CF6417750741F49A
271 | :1010E000363320F4353321F4A11002C081E3B82E49
272 | :1010F000F601B082F701822F90E2882319F09193D4
273 | :101100008150FBCFF701E20FF11D108280E090E0EB
274 | :1011100029960FB6F894DEBF0FBECDBFDF91CF91F9
275 | :101120001F910F91FF90EF90DF90CF90BF90AF9005
276 | :101130009F907F906F905F904F900895283008F0B7
277 | :1011400027E03327DA01990F311D87FD9160009662
278 | :101150006105710539F432602E5F3D9330E32A95C5
279 | :10116000E1F708959F3F30F080387105610509F07F
280 | :101170003C5F3C5F3D93913008F08068911DDF93A8
281 | :10118000CF931F930F93FF92EF92192F987F96950D
282 | :10119000E92F96959695E90FFF27E058FF4F99277D
283 | :1011A0003327EE24FF24A701E70105900894079454
284 | :1011B00028F4360FE71EF81E491F511D660F771FD2
285 | :1011C000881F991F0694A1F70590079428F4E70E4D
286 | :1011D000F81E491F561FC11D770F881F991F661FD4
287 | :1011E0000694A1F70590079428F4F80E491F561F9E
288 | :1011F000C71FD11D880F991F661F771F0694A1F77F
289 | :101200000590079420F4490F561FC71FD81F990F48
290 | :10121000661F771F881F0694A9F784911095177091
291 | :1012200041F0D695C79557954795F794E7941A9549
292 | :10123000C1F7E6E2F0E0689415901591359165915B
293 | :10124000959105907FE27395E118F10A430B560BD7
294 | :10125000C90BD009C0F7E10CF11E431F561FC91F6F
295 | :10126000D01D7EF4703311F48A95E6CFE8940150D6
296 | :1012700030F0080F0AF40027021708F4202F2395F6
297 | :10128000022F7A3328F079E37D932A95E9F710C08D
298 | :101290007D932A9589F606949795679537951795C6
299 | :1012A0001794E118F10A430B560BC90BD00998F0BB
300 | :1012B00023957E9173957A3308F070E37C93201325
301 | :1012C000B8F77E9170617D9330F0839571E37D93E3
302 | :1012D00070E32A95E1F71124EF90FF900F911F9191
303 | :1012E000CF91DF91992787FD90950895DC01FC014E
304 | :1012F000672F71917723E1F7329704C07C916D934A
305 | :1013000070836291AE17BF07C8F30895F894FFCFBA
306 | :10131000010C30B42D78374C6F616420656E6162CA
307 | :101320006C65640D0A004C6F6164206469736162CE
308 | :101330006C65640D0A004E6F2074656D7065726196
309 | :10134000747572652073656E736F72206176616962
310 | :101350006C61626C652E200D0A0050544320736549
311 | :101360006E736F7220766F6C746167653A2000202F
312 | :101370006D560D0A005054432073656E736F7220D2
313 | :10138000726573697374616E63653A2000204F68FB
314 | :101390006D0D0A0054656D7065726174757265201B
315 | :1013A0000020646567726565732043656C736975B9
316 | :1013B000730D0A0054656D706572617475726520F5
317 | :1013C00061646A757374656420636861726765201F
318 | :1013D000656E6420766F6C746167653A2000565FB5
319 | :1013E000696E2000565F6F757420004E657720503F
320 | :1013F000574D2076616C75653A20307800496E2033
321 | :1014000063686172676520656E64206C6F6F702021
322 | :101410000D0A00565F6F75742061742063686172F5
323 | :10142000676520656E6420766F6C74616765202047
324 | :10143000006F6C645F6D70705F70776D5F76616C6C
325 | :101440002000506172736564206C6F7720766F6C3A
326 | :101450007461676520646973636F6E6E6563742081
327 | :10146000726F7574696E6500565F696E5F69646C52
328 | :101470006520004D696E696D756D20565F6D7070E9
329 | :10148000200043616C63756C6174656420565F6D08
330 | :10149000707020004D50502073686F756C6420622E
331 | :1014A000652073657400476F696E6720746F2073E1
332 | :1014B0006C6565702C20696E70757420766F6C7425
333 | :0C14C00061676520746F6F206C6F77000F
334 | :00000001FF
335 |
--------------------------------------------------------------------------------
/uC-Sourcecode/serial-parameters-setserial.txt:
--------------------------------------------------------------------------------
1 | /dev/ttyUSB0 uart 16654 port 0x0000 irq 0 baud_base 460800 spd_normal
--------------------------------------------------------------------------------