├── 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 --------------------------------------------------------------------------------