├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── enclosure.dxf ├── pcb ├── avr-sensors ├── avr-sensors-cache.lib ├── avr-sensors.bak ├── avr-sensors.cmp ├── avr-sensors.kicad_pcb ├── avr-sensors.kicad_pcb-bak ├── avr-sensors.net ├── avr-sensors.pdf ├── avr-sensors.pro ├── avr-sensors.sch ├── avr-sensors.xml └── libs │ ├── J0026D21BNL.lib │ ├── J0026D21BNL.mod │ ├── bh1721.lib │ ├── dp_devices.lib │ ├── dp_devices.mod │ ├── lmt87.lib │ ├── ms5637.bak │ ├── ms5637.dcm │ ├── ms5637.lib │ ├── ms5637.mod │ ├── oshec-burr-brown-3.lib │ ├── oshec-burr-brown-3.mod │ ├── oshec-microchip-enc28j60.lib │ └── oshec-microchip-enc28j60.mod ├── src ├── Makefile ├── bitmaps.h ├── clock-arch.c ├── clock-arch.h ├── common.h ├── config.h ├── dht.c ├── dht.h ├── ds18b20.c ├── ds18b20.h ├── gpio.h ├── main.c ├── nethandler.c ├── nethandler.h ├── oled.c ├── oled.h └── uip-conf.h └── utils ├── graphic ├── 12x24-0.png ├── 12x24-1.png ├── 12x24-2.png ├── 12x24-3.png ├── 12x24-4.png ├── 12x24-5.png ├── 12x24-6.png ├── 12x24-7.png ├── 12x24-8.png ├── 12x24-9.png ├── 7x16--.png ├── 7x16-0.png ├── 7x16-1.png ├── 7x16-2.png ├── 7x16-3.png ├── 7x16-4.png ├── 7x16-5.png ├── 7x16-6.png ├── 7x16-7.png ├── 7x16-8.png ├── 7x16-9.png ├── 7x16-percent.png ├── 9x16-percent.png ├── weather-20x16-cloudy.png ├── weather-20x16-lightning.png ├── weather-20x16-mist.png ├── weather-20x16-rain.png ├── weather-20x16-snow.png ├── weather-20x16-sun.png └── weather-20x16-suncl.png └── tooled.groovy /.gitignore: -------------------------------------------------------------------------------- 1 | # Object files 2 | *.o 3 | *.ko 4 | *.obj 5 | *.elf 6 | 7 | # Libraries 8 | *.lib 9 | *.a 10 | 11 | # Shared objects (inc. Windows DLLs) 12 | *.dll 13 | *.so 14 | *.so.* 15 | *.dylib 16 | 17 | # Executables 18 | *.exe 19 | *.out 20 | *.app 21 | *.i*86 22 | *.x86_64 23 | *.hex 24 | .map 25 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "thirdparty/avr-uip-2"] 2 | path = thirdparty/avr-uip-2 3 | url = https://github.com/atalax/avr-uip-2 4 | [submodule "thirdparty/umqtt"] 5 | path = thirdparty/umqtt 6 | url = https://github.com/atalax/umqtt 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | avr-mqtt-board 2 | ============== 3 | 4 | Board with AVR and Ethernet supporting MQTT 5 | -------------------------------------------------------------------------------- /pcb/avr-sensors: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/pcb/avr-sensors -------------------------------------------------------------------------------- /pcb/avr-sensors-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | # 4 | # +3.3V 5 | # 6 | DEF +3.3V #PWR 0 0 Y Y 1 F P 7 | F0 "#PWR" 0 -40 30 H I C CNN 8 | F1 "+3.3V" 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 | ALIAS +3,3V 12 | DRAW 13 | X +3.3V 1 0 0 0 U 30 30 0 0 W N 14 | C 0 60 20 0 1 0 N 15 | P 3 0 1 0 0 0 0 40 0 40 N 16 | ENDDRAW 17 | ENDDEF 18 | # 19 | # +5V 20 | # 21 | DEF +5V #PWR 0 40 Y Y 1 F P 22 | F0 "#PWR" 0 90 20 H I C CNN 23 | F1 "+5V" 0 90 30 H V C CNN 24 | F2 "" 0 0 60 H V C CNN 25 | F3 "" 0 0 60 H V C CNN 26 | DRAW 27 | X +5V 1 0 0 0 U 20 20 0 0 W N 28 | C 0 50 20 0 1 0 N 29 | P 4 0 1 0 0 0 0 30 0 30 0 30 N 30 | ENDDRAW 31 | ENDDEF 32 | # 33 | # ATMEGA168A-A 34 | # 35 | DEF ATMEGA168A-A IC 0 40 Y Y 1 F N 36 | F0 "IC" -750 1250 40 H V L BNN 37 | F1 "ATMEGA168A-A" 400 -1400 40 H V L BNN 38 | F2 "TQFP32" 0 0 30 H V C CIN 39 | F3 "" 0 0 60 H V C CNN 40 | ALIAS ATMEGA48A-A ATMEGA48PA-A ATMEGA88A-A ATMEGA88PA-A ATMEGA168PA-A ATMEGA328-A ATMEGA328P-A 41 | DRAW 42 | S -750 1200 850 -1300 0 1 10 f 43 | X (PCINT19/OC2B/INT1)PD3 1 1000 -800 150 L 40 40 1 1 B 44 | X (PCINT20/XCK/T0)PD4 2 1000 -900 150 L 40 40 1 1 B 45 | X GND 3 -900 -1200 150 R 40 40 1 1 W 46 | X VCC 4 -900 1100 150 R 40 40 1 1 W 47 | X GND 5 -900 -1100 150 R 40 40 1 1 W 48 | X VCC 6 -900 1000 150 R 40 40 1 1 W 49 | X (PCINT6/XTAL1/TOSC1)PB6 7 1000 500 150 L 40 40 1 1 B 50 | X (PCINT7/XTAL2/TOSC2)PB7 8 1000 400 150 L 40 40 1 1 B 51 | X (PCINT21/OC0B/T1)PD5 9 1000 -1000 150 L 40 40 1 1 B 52 | X (PCINT22/OC0A/AIN0)PD6 10 1000 -1100 150 L 40 40 1 1 B 53 | X AREF 20 -900 500 150 R 40 40 1 1 B 54 | X (PCINT16/RXD)PD0 30 1000 -500 150 L 40 40 1 1 B 55 | X (PCINT23/AIN1)PD7 11 1000 -1200 150 L 40 40 1 1 B 56 | X GND 21 -900 -1000 150 R 40 40 1 1 W 57 | X (PCINT17/TXD)PD1 31 1000 -600 150 L 40 40 1 1 B 58 | X (PCINT0/CLKO/ICP1)PB0 12 1000 1100 150 L 40 40 1 1 B 59 | X ADC7 22 -900 -350 150 R 40 40 1 1 I 60 | X (PCINT18/INT0)PD2 32 1000 -700 150 L 40 40 1 1 B 61 | X (PCINT1/OC1A)PB1 13 1000 1000 150 L 40 40 1 1 B 62 | X (PCINT8/ADC0)PC0 23 1000 250 150 L 40 40 1 1 B 63 | X (PCINT2/OC1B/~SS~)PB2 14 1000 900 150 L 40 40 1 1 B 64 | X (PCINT9/ADC1)PC1 24 1000 150 150 L 40 40 1 1 B 65 | X (PCINT3/OC2A/MOSI)PB3 15 1000 800 150 L 40 40 1 1 B 66 | X (PCINT10/ADC2)PC2 25 1000 50 150 L 40 40 1 1 B 67 | X (PCINT4/MISO)PB4 16 1000 700 150 L 40 40 1 1 B 68 | X (PCINT11/ADC3)PC3 26 1000 -50 150 L 40 40 1 1 B 69 | X (PCINT5/SCK)PB5 17 1000 600 150 L 40 40 1 1 B 70 | X (PCINT12/SDA/ADC4)PC4 27 1000 -150 150 L 40 40 1 1 B 71 | X AVCC 18 -900 800 150 R 40 40 1 1 W 72 | X (PCINT14/SCL/ADC5)PC5 28 1000 -250 150 L 40 40 1 1 B 73 | X ADC6 19 -900 -250 150 R 40 40 1 1 I 74 | X (PCINT14/~RESET~)PC6 29 1000 -350 150 L 40 40 1 1 B 75 | ENDDRAW 76 | ENDDEF 77 | # 78 | # BARREL_JACK 79 | # 80 | DEF BARREL_JACK CON 0 40 Y Y 1 F N 81 | F0 "CON" 0 250 60 H V C CNN 82 | F1 "BARREL_JACK" 0 -200 60 H V C CNN 83 | F2 "" 0 0 60 H V C CNN 84 | F3 "" 0 0 60 H V C CNN 85 | DRAW 86 | A -300 99 49 -900 1788 0 1 0 N -300 50 -350 100 87 | A -300 101 49 900 -1788 0 1 0 N -300 150 -350 100 88 | S 100 150 0 50 0 1 0 N 89 | P 2 0 1 0 -300 50 0 50 N 90 | P 2 0 1 0 0 150 -300 150 N 91 | P 3 0 1 0 100 0 -50 0 -50 -100 N 92 | P 5 0 1 0 100 -100 -150 -100 -200 -50 -250 -100 -350 -100 N 93 | X ~ 1 300 100 200 L 50 50 1 1 P 94 | X ~ 2 300 -100 200 L 50 50 1 1 P 95 | X ~ 3 300 0 200 L 50 50 1 1 P 96 | ENDDRAW 97 | ENDDEF 98 | # 99 | # C 100 | # 101 | DEF C C 0 10 N Y 1 F N 102 | F0 "C" 0 100 40 H V L CNN 103 | F1 "C" 6 -85 40 H V L CNN 104 | F2 "" 38 -150 30 H V C CNN 105 | F3 "" 0 0 60 H V C CNN 106 | $FPLIST 107 | SM* 108 | C? 109 | C1-1 110 | $ENDFPLIST 111 | DRAW 112 | P 2 0 1 20 -80 -30 80 -30 N 113 | P 2 0 1 20 -80 30 80 30 N 114 | X ~ 1 0 200 170 D 40 40 1 1 P 115 | X ~ 2 0 -200 170 U 40 40 1 1 P 116 | ENDDRAW 117 | ENDDEF 118 | # 119 | # CON_HEADER_1X04 120 | # 121 | DEF CON_HEADER_1X04 J 0 40 N N 1 L N 122 | F0 "J" -50 250 50 H V L BNN 123 | F1 "CON_HEADER_1X04" 0 0 50 H V L BNN 124 | F2 "dp_devices-M1X4" 0 150 50 H I C CNN 125 | F3 "" 0 0 31 H V C CNN 126 | DRAW 127 | P 2 1 0 0 -50 -300 -50 200 N 128 | P 2 1 0 0 -50 200 150 200 N 129 | P 2 1 0 0 150 -300 -50 -300 N 130 | P 2 1 0 0 150 200 150 -300 N 131 | X 1 1 0 100 100 R 40 40 1 1 B I 132 | X 2 2 0 0 100 R 40 40 1 1 B I 133 | X 3 3 0 -100 100 R 40 40 1 1 B I 134 | X 4 4 0 -200 100 R 40 40 1 1 B I 135 | ENDDRAW 136 | ENDDEF 137 | # 138 | # CON_HEADER_2X04-PTH 139 | # 140 | DEF CON_HEADER_2X04-PTH J 0 40 N N 1 L N 141 | F0 "J" -50 225 50 H V L BNN 142 | F1 "CON_HEADER_2X04-PTH" 0 0 50 H V L BNN 143 | F2 "dp_devices-M2X4" 0 150 50 H I C CNN 144 | F3 "" 0 0 31 H V C CNN 145 | DRAW 146 | P 2 1 0 0 -50 -300 350 -300 N 147 | P 2 1 0 0 -50 200 -50 -300 N 148 | P 2 1 0 0 350 -300 350 200 N 149 | P 2 1 0 0 350 200 -50 200 N 150 | X P$1 1 0 100 100 R 40 40 1 1 P I 151 | X P$2 2 300 100 100 L 40 40 1 1 P I 152 | X P$3 3 0 0 100 R 40 40 1 1 P I 153 | X P$4 4 300 0 100 L 40 40 1 1 P I 154 | X P$5 5 0 -100 100 R 40 40 1 1 P I 155 | X P$6 6 300 -100 100 L 40 40 1 1 P I 156 | X P$7 7 0 -200 100 R 40 40 1 1 P I 157 | X P$8 8 300 -200 100 L 40 40 1 1 P I 158 | ENDDRAW 159 | ENDDEF 160 | # 161 | # CON_HEADER_2X05-PTH 162 | # 163 | DEF CON_HEADER_2X05-PTH J 0 40 N N 1 L N 164 | F0 "J" -50 325 50 H V L BNN 165 | F1 "CON_HEADER_2X05-PTH" 0 0 50 H V L BNN 166 | F2 "dp_devices-M2X5" 0 150 50 H I C CNN 167 | F3 "" 0 0 31 H V C CNN 168 | DRAW 169 | P 2 1 0 0 -50 -300 -50 300 N 170 | P 2 1 0 0 -50 300 350 300 N 171 | P 2 1 0 0 350 -300 -50 -300 N 172 | P 2 1 0 0 350 300 350 -300 N 173 | X 1 1 0 200 100 R 40 40 1 1 P I 174 | X 2 2 300 200 100 L 40 40 1 1 P I 175 | X 3 3 0 100 100 R 40 40 1 1 P I 176 | X 4 4 300 100 100 L 40 40 1 1 P I 177 | X 5 5 0 0 100 R 40 40 1 1 P I 178 | X 6 6 300 0 100 L 40 40 1 1 P I 179 | X 7 7 0 -100 100 R 40 40 1 1 P I 180 | X 8 8 300 -100 100 L 40 40 1 1 P I 181 | X 9 9 0 -200 100 R 40 40 1 1 P I 182 | X 10 10 300 -200 100 L 40 40 1 1 P I 183 | ENDDRAW 184 | ENDDEF 185 | # 186 | # CON_TERMINAL_BLOCK_02-5MM 187 | # 188 | DEF CON_TERMINAL_BLOCK_02-5MM J 0 40 N N 1 L N 189 | F0 "J" -50 150 50 H V L BNN 190 | F1 "CON_TERMINAL_BLOCK_02-5MM" 0 0 50 H V L BNN 191 | F2 "dp_devices-TERMINAL_BLOCK_2P_5" 0 150 50 H I C CNN 192 | F3 "" 0 0 31 H V C CNN 193 | DRAW 194 | P 2 1 0 0 -50 -200 -50 100 N 195 | P 2 1 0 0 -50 100 150 100 N 196 | P 2 1 0 0 150 -200 -50 -200 N 197 | P 2 1 0 0 150 100 150 -200 N 198 | X 1 1 0 0 100 R 40 40 1 1 P I 199 | X 2 2 0 -100 100 R 40 40 1 1 P I 200 | ENDDRAW 201 | ENDDEF 202 | # 203 | # CRYSTAL 204 | # 205 | DEF CRYSTAL X 0 40 N N 1 F N 206 | F0 "X" 0 150 60 H V C CNN 207 | F1 "CRYSTAL" 0 -150 60 H V C CNN 208 | F2 "" 0 0 60 H V C CNN 209 | F3 "" 0 0 60 H V C CNN 210 | DRAW 211 | P 2 0 1 16 -100 100 -100 -100 N 212 | P 2 0 1 16 100 100 100 -100 N 213 | P 5 0 1 12 -50 50 50 50 50 -50 -50 -50 -50 50 f 214 | X 1 1 -300 0 200 R 40 40 1 1 P 215 | X 2 2 300 0 200 L 40 40 1 1 P 216 | ENDDRAW 217 | ENDDEF 218 | # 219 | # ENC28J60-SSOP 220 | # 221 | DEF ENC28J60-SSOP U 0 40 Y Y 1 L N 222 | F0 "U" -800 900 50 H V L BNN 223 | F1 "ENC28J60-SSOP" 200 -600 50 H V L BNN 224 | F2 "microchip-enc28j60-SSOP28" 0 150 50 H I C CNN 225 | F3 "" 0 0 31 H V C CNN 226 | DRAW 227 | P 2 1 0 0 -800 -500 600 -500 N 228 | P 2 1 0 0 -800 800 -800 -500 N 229 | P 2 1 0 0 600 -500 600 800 N 230 | P 2 1 0 0 600 800 -800 800 N 231 | X VCAP 1 -1000 -300 200 R 40 40 1 1 W 232 | X VSS 2 100 -700 200 U 40 40 1 1 W 233 | X CLKOUT 3 -1000 -200 200 R 40 40 1 1 O 234 | X INT 4 -1000 700 200 R 40 40 1 1 O I 235 | X WOL 5 -1000 600 200 R 40 40 1 1 O I 236 | X SO 6 -1000 300 200 R 40 40 1 1 O 237 | X SI 7 -1000 200 200 R 40 40 1 1 I 238 | X SCK 8 -1000 100 200 R 40 40 1 1 I C 239 | X CS 9 -1000 0 200 R 40 40 1 1 I I 240 | X RESET 10 -1000 500 200 R 40 40 1 1 I I 241 | X VDDPLL 20 -200 1000 200 D 40 40 1 1 W 242 | X VSSRX 11 -300 -700 200 U 40 40 1 1 W 243 | X VSSPLL 21 -200 -700 200 U 40 40 1 1 W 244 | X TPIN- 12 800 300 200 L 40 40 1 1 I 245 | X VSSOSC 22 0 -700 200 U 40 40 1 1 W 246 | X TPIN+ 13 800 400 200 L 40 40 1 1 I 247 | X OSC1 23 800 -300 200 L 40 40 1 1 I C 248 | X RBIAS 14 -1000 -400 200 R 40 40 1 1 P 249 | X OSC2 24 800 -400 200 L 40 40 1 1 O C 250 | X VDDTX 15 -100 1000 200 D 40 40 1 1 W 251 | X VDDOSC 25 0 1000 200 D 40 40 1 1 W 252 | X TPOUT- 16 800 600 200 L 40 40 1 1 O 253 | X LEDB 26 800 0 200 L 40 40 1 1 O 254 | X TPOUT+ 17 800 700 200 L 40 40 1 1 O 255 | X LEDA 27 800 100 200 L 40 40 1 1 O 256 | X VSSTX 18 -100 -700 200 U 40 40 1 1 W 257 | X VDD 28 100 1000 200 D 40 40 1 1 W 258 | X VDDRX 19 -300 1000 200 D 40 40 1 1 W 259 | ENDDRAW 260 | ENDDEF 261 | # 262 | # GND 263 | # 264 | DEF ~GND #PWR 0 0 Y Y 1 F P 265 | F0 "#PWR" 0 0 30 H I C CNN 266 | F1 "GND" 0 -70 30 H I C CNN 267 | F2 "" 0 0 60 H V C CNN 268 | F3 "" 0 0 60 H V C CNN 269 | DRAW 270 | P 4 0 1 0 -50 0 0 -50 50 0 -50 0 N 271 | X GND 1 0 0 0 U 30 30 1 1 W N 272 | ENDDRAW 273 | ENDDEF 274 | # 275 | # J0026D21BNL 276 | # 277 | DEF J0026D21BNL H 0 40 Y Y 1 F N 278 | F0 "H" 0 -750 60 H V C CNN 279 | F1 "J0026D21BNL" 0 -900 60 H V C CNN 280 | F2 "" 0 0 60 H V C CNN 281 | F3 "" 0 0 60 H V C CNN 282 | DRAW 283 | S 200 700 -200 -800 0 1 0 N 284 | X TD+ 1 -350 650 146 R 50 50 1 1 I 285 | X TD- 2 -350 450 146 R 50 50 1 1 I 286 | X TCT 3 -350 550 146 R 50 50 1 1 I 287 | X CHS 4 -350 -50 146 R 50 50 1 1 I 288 | X CHS 5 -350 -150 146 R 50 50 1 1 I 289 | X RCT 6 -350 200 146 R 50 50 1 1 I 290 | X RD+ 7 -350 300 146 R 50 50 1 1 I 291 | X RD- 8 -350 100 146 R 50 50 1 1 I 292 | X LED_G_+ 9 -350 -300 146 R 50 50 1 1 I 293 | X LED_G_- 10 -350 -400 146 R 50 50 1 1 I 294 | X LED_Y_- 11 -350 -650 146 R 50 50 1 1 I 295 | X LED_Y_+ 12 -350 -550 146 R 50 50 1 1 I 296 | ENDDRAW 297 | ENDDEF 298 | # 299 | # LED 300 | # 301 | DEF LED D 0 40 Y N 1 F N 302 | F0 "D" 0 100 50 H V C CNN 303 | F1 "LED" 0 -100 50 H V C CNN 304 | F2 "" 0 0 60 H V C CNN 305 | F3 "" 0 0 60 H V C CNN 306 | $FPLIST 307 | LED-3MM 308 | LED-5MM 309 | LED-10MM 310 | LED-0603 311 | LED-0805 312 | LED-1206 313 | LEDV 314 | $ENDFPLIST 315 | DRAW 316 | P 2 0 1 0 50 50 50 -50 N 317 | P 3 0 1 0 -50 50 50 0 -50 -50 F 318 | P 3 0 1 0 65 -40 110 -80 105 -55 N 319 | P 3 0 1 0 80 -25 125 -65 120 -40 N 320 | X A 1 -200 0 150 R 40 40 1 1 P 321 | X K 2 200 0 150 L 40 40 1 1 P 322 | ENDDRAW 323 | ENDDEF 324 | # 325 | # LMT87 326 | # 327 | DEF LMT87 U 0 40 Y Y 1 F N 328 | F0 "U" 300 100 60 H V C CNN 329 | F1 "LMT87" 100 -300 60 H V C CNN 330 | F2 "" 150 -150 60 H V C CNN 331 | F3 "" 150 -150 60 H V C CNN 332 | DRAW 333 | S -200 200 200 -200 0 1 0 f 334 | X Vdd 1 100 350 150 D 47 47 1 1 I 335 | X GND 2 -100 -350 150 U 47 47 1 1 I 336 | X OUT 3 350 -100 150 L 47 47 1 1 I 337 | X Vdd 4 0 350 150 D 47 47 1 1 I 338 | X Vdd 5 -100 350 150 D 47 47 1 1 I 339 | ENDDRAW 340 | ENDDEF 341 | # 342 | # MS5637 343 | # 344 | DEF MS5637 U 0 40 Y Y 1 F N 345 | F0 "U" -100 250 60 H V C CNN 346 | F1 "MS5637" -150 -300 60 H V C CNN 347 | F2 "" 0 0 60 H V C CNN 348 | F3 "" 0 0 60 H V C CNN 349 | DRAW 350 | S 150 200 -150 -200 0 1 0 f 351 | X Vdd 1 100 300 94 D 50 50 1 1 I 352 | X SDA 2 -250 50 94 R 50 50 1 1 I 353 | X SCL 3 -250 -50 94 R 50 50 1 1 I 354 | X GND 4 100 -300 94 U 50 50 1 1 I 355 | ENDDRAW 356 | ENDDEF 357 | # 358 | # R 359 | # 360 | DEF R R 0 0 N Y 1 F N 361 | F0 "R" 80 0 40 V V C CNN 362 | F1 "R" 7 1 40 V V C CNN 363 | F2 "" -70 0 30 V V C CNN 364 | F3 "" 0 0 30 H V C CNN 365 | $FPLIST 366 | R? 367 | SM0603 368 | SM0805 369 | R?-* 370 | SM1206 371 | $ENDFPLIST 372 | DRAW 373 | S -40 150 40 -150 0 1 12 N 374 | X ~ 1 0 250 100 D 60 60 1 1 P 375 | X ~ 2 0 -250 100 U 60 60 1 1 P 376 | ENDDRAW 377 | ENDDEF 378 | # 379 | # REG1117 380 | # 381 | DEF REG1117 IC 0 40 Y Y 1 L N 382 | F0 "IC" -300 225 50 H V L BNN 383 | F1 "REG1117" -200 100 50 H V L BNN 384 | F2 "burr-brown-3-SOT223" 0 150 50 H I C CNN 385 | F3 "" 0 0 31 H V C CNN 386 | DRAW 387 | P 2 1 0 0 -300 -300 300 -300 N 388 | P 2 1 0 0 -300 200 -300 -300 N 389 | P 2 1 0 0 300 -300 300 200 N 390 | P 2 1 0 0 300 200 -300 200 N 391 | X GND 1 0 -500 200 U 40 40 1 1 W 392 | X VOUT 2 500 0 200 L 40 40 1 1 O 393 | X VIN 3 -500 0 200 R 40 40 1 1 I 394 | ENDDRAW 395 | ENDDEF 396 | # 397 | #End Library 398 | -------------------------------------------------------------------------------- /pcb/avr-sensors.bak: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 2 2 | LIBS:power 3 | LIBS:device 4 | LIBS:transistors 5 | LIBS:conn 6 | LIBS:linear 7 | LIBS:regul 8 | LIBS:74xx 9 | LIBS:cmos4000 10 | LIBS:adc-dac 11 | LIBS:memory 12 | LIBS:xilinx 13 | LIBS:special 14 | LIBS:microcontrollers 15 | LIBS:dsp 16 | LIBS:microchip 17 | LIBS:analog_switches 18 | LIBS:motorola 19 | LIBS:texas 20 | LIBS:intel 21 | LIBS:audio 22 | LIBS:interface 23 | LIBS:digital-audio 24 | LIBS:philips 25 | LIBS:display 26 | LIBS:cypress 27 | LIBS:siliconi 28 | LIBS:opto 29 | LIBS:atmel 30 | LIBS:contrib 31 | LIBS:valves 32 | LIBS:oshec-burr-brown-3 33 | LIBS:lmt87 34 | LIBS:dp_devices 35 | LIBS:ms5637 36 | LIBS:oshec-microchip-enc28j60 37 | LIBS:bh1721 38 | LIBS:J0026D21BNL 39 | LIBS:avr-sensors-cache 40 | EELAYER 24 0 41 | EELAYER END 42 | $Descr A4 11693 8268 43 | encoding utf-8 44 | Sheet 1 1 45 | Title "" 46 | Date "19 jun 2014" 47 | Rev "" 48 | Comp "" 49 | Comment1 "" 50 | Comment2 "" 51 | Comment3 "" 52 | Comment4 "" 53 | $EndDescr 54 | $Comp 55 | L ATMEGA328P-A IC2 56 | U 1 1 539EAD8F 57 | P 3100 4650 58 | F 0 "IC2" H 2350 5900 40 0000 L BNN 59 | F 1 "ATMEGA328P-A" H 3500 3250 40 0000 L BNN 60 | F 2 "TQFP32" H 3100 4650 30 0000 C CIN 61 | F 3 "" H 3100 4650 60 0000 C CNN 62 | 1 3100 4650 63 | 1 0 0 -1 64 | $EndComp 65 | $Comp 66 | L REG1117 IC1 67 | U 1 1 539EAE90 68 | P 1600 1350 69 | F 0 "IC1" H 1300 1575 50 0000 L BNN 70 | F 1 "REG1117" H 1400 1450 50 0000 L BNN 71 | F 2 "burr-brown-3-SOT223" H 1600 1500 50 0001 C CNN 72 | F 3 "" H 1600 1350 60 0000 C CNN 73 | 1 1600 1350 74 | 1 0 0 -1 75 | $EndComp 76 | $Comp 77 | L GND #PWR01 78 | U 1 1 539EAE9F 79 | P 1600 1900 80 | F 0 "#PWR01" H 1600 1900 30 0001 C CNN 81 | F 1 "GND" H 1600 1830 30 0001 C CNN 82 | F 2 "" H 1600 1900 60 0000 C CNN 83 | F 3 "" H 1600 1900 60 0000 C CNN 84 | 1 1600 1900 85 | 1 0 0 -1 86 | $EndComp 87 | $Comp 88 | L +5V #PWR02 89 | U 1 1 539EAEAE 90 | P 1100 1300 91 | F 0 "#PWR02" H 1100 1390 20 0001 C CNN 92 | F 1 "+5V" H 1100 1390 30 0000 C CNN 93 | F 2 "" H 1100 1300 60 0000 C CNN 94 | F 3 "" H 1100 1300 60 0000 C CNN 95 | 1 1100 1300 96 | 1 0 0 -1 97 | $EndComp 98 | $Comp 99 | L +3.3V #PWR03 100 | U 1 1 539EAEBD 101 | P 2100 1300 102 | F 0 "#PWR03" H 2100 1260 30 0001 C CNN 103 | F 1 "+3.3V" H 2100 1410 30 0000 C CNN 104 | F 2 "" H 2100 1300 60 0000 C CNN 105 | F 3 "" H 2100 1300 60 0000 C CNN 106 | 1 2100 1300 107 | 1 0 0 -1 108 | $EndComp 109 | $Comp 110 | L C C1 111 | U 1 1 539EAED2 112 | P 1100 1600 113 | F 0 "C1" H 1100 1700 40 0000 L CNN 114 | F 1 "1uF" H 1106 1515 40 0000 L CNN 115 | F 2 "~" H 1138 1450 30 0000 C CNN 116 | F 3 "~" H 1100 1600 60 0000 C CNN 117 | 1 1100 1600 118 | 1 0 0 -1 119 | $EndComp 120 | $Comp 121 | L C C5 122 | U 1 1 539EAEE1 123 | P 2100 1600 124 | F 0 "C5" H 2100 1700 40 0000 L CNN 125 | F 1 "10uF" H 2106 1515 40 0000 L CNN 126 | F 2 "~" H 2138 1450 30 0000 C CNN 127 | F 3 "~" H 2100 1600 60 0000 C CNN 128 | 1 2100 1600 129 | 1 0 0 -1 130 | $EndComp 131 | $Comp 132 | L GND #PWR04 133 | U 1 1 539EB009 134 | P 2200 5900 135 | F 0 "#PWR04" H 2200 5900 30 0001 C CNN 136 | F 1 "GND" H 2200 5830 30 0001 C CNN 137 | F 2 "" H 2200 5900 60 0000 C CNN 138 | F 3 "" H 2200 5900 60 0000 C CNN 139 | 1 2200 5900 140 | 1 0 0 -1 141 | $EndComp 142 | $Comp 143 | L +3.3V #PWR05 144 | U 1 1 539EB0AF 145 | P 2200 3500 146 | F 0 "#PWR05" H 2200 3460 30 0001 C CNN 147 | F 1 "+3.3V" H 2200 3610 30 0000 C CNN 148 | F 2 "" H 2200 3500 60 0000 C CNN 149 | F 3 "" H 2200 3500 60 0000 C CNN 150 | 1 2200 3500 151 | 1 0 0 -1 152 | $EndComp 153 | $Comp 154 | L C C2 155 | U 1 1 539EB0E8 156 | P 1950 3550 157 | F 0 "C2" H 1950 3650 40 0000 L CNN 158 | F 1 "1uF" H 1956 3465 40 0000 L CNN 159 | F 2 "~" H 1988 3400 30 0000 C CNN 160 | F 3 "~" H 1950 3550 60 0000 C CNN 161 | 1 1950 3550 162 | 0 -1 -1 0 163 | $EndComp 164 | $Comp 165 | L C C3 166 | U 1 1 539EB0F7 167 | P 1950 3850 168 | F 0 "C3" H 1950 3950 40 0000 L CNN 169 | F 1 "0.1uF" H 1956 3765 40 0000 L CNN 170 | F 2 "~" H 1988 3700 30 0000 C CNN 171 | F 3 "~" H 1950 3850 60 0000 C CNN 172 | 1 1950 3850 173 | 0 -1 -1 0 174 | $EndComp 175 | $Comp 176 | L C C4 177 | U 1 1 539EB268 178 | P 1950 4150 179 | F 0 "C4" H 1950 4250 40 0000 L CNN 180 | F 1 "0.1uF" H 1956 4065 40 0000 L CNN 181 | F 2 "~" H 1988 4000 30 0000 C CNN 182 | F 3 "~" H 1950 4150 60 0000 C CNN 183 | 1 1950 4150 184 | 0 -1 -1 0 185 | $EndComp 186 | $Comp 187 | L GND #PWR06 188 | U 1 1 539EB292 189 | P 1750 3450 190 | F 0 "#PWR06" H 1750 3450 30 0001 C CNN 191 | F 1 "GND" H 1750 3380 30 0001 C CNN 192 | F 2 "" H 1750 3450 60 0000 C CNN 193 | F 3 "" H 1750 3450 60 0000 C CNN 194 | 1 1750 3450 195 | -1 0 0 1 196 | $EndComp 197 | $Comp 198 | L LMT87 U1 199 | U 1 1 539EB6EA 200 | P 3100 1500 201 | F 0 "U1" H 3400 1600 60 0000 C CNN 202 | F 1 "LMT87" H 3200 1200 60 0000 C CNN 203 | F 2 "~" H 3250 1350 60 0000 C CNN 204 | F 3 "~" H 3250 1350 60 0000 C CNN 205 | 1 3100 1500 206 | 1 0 0 -1 207 | $EndComp 208 | $Comp 209 | L +3.3V #PWR07 210 | U 1 1 539EB6F9 211 | P 3000 1100 212 | F 0 "#PWR07" H 3000 1060 30 0001 C CNN 213 | F 1 "+3.3V" H 3000 1210 30 0000 C CNN 214 | F 2 "" H 3000 1100 60 0000 C CNN 215 | F 3 "" H 3000 1100 60 0000 C CNN 216 | 1 3000 1100 217 | 1 0 0 -1 218 | $EndComp 219 | $Comp 220 | L GND #PWR08 221 | U 1 1 539EB757 222 | P 3000 1900 223 | F 0 "#PWR08" H 3000 1900 30 0001 C CNN 224 | F 1 "GND" H 3000 1830 30 0001 C CNN 225 | F 2 "" H 3000 1900 60 0000 C CNN 226 | F 3 "" H 3000 1900 60 0000 C CNN 227 | 1 3000 1900 228 | 1 0 0 -1 229 | $EndComp 230 | Text GLabel 3500 1600 2 31 Input ~ 0 231 | T_OUT 232 | Text GLabel 5950 1400 0 31 Input ~ 0 233 | 1WIRE 234 | Text GLabel 4150 3650 2 31 Input ~ 0 235 | 1WIRE 236 | Text GLabel 5950 1500 0 31 Input ~ 0 237 | DHT-BUS 238 | Text GLabel 4150 3550 2 31 Input ~ 0 239 | DHT-BUS 240 | $Comp 241 | L MS5637 U2 242 | U 1 1 53A01E09 243 | P 4300 1500 244 | F 0 "U2" H 4200 1750 60 0000 C CNN 245 | F 1 "MS5637" H 4150 1200 60 0000 C CNN 246 | F 2 "~" H 4300 1500 60 0000 C CNN 247 | F 3 "~" H 4300 1500 60 0000 C CNN 248 | 1 4300 1500 249 | 1 0 0 -1 250 | $EndComp 251 | $Comp 252 | L +3.3V #PWR09 253 | U 1 1 53A01E18 254 | P 4400 1150 255 | F 0 "#PWR09" H 4400 1110 30 0001 C CNN 256 | F 1 "+3.3V" H 4400 1260 30 0000 C CNN 257 | F 2 "" H 4400 1150 60 0000 C CNN 258 | F 3 "" H 4400 1150 60 0000 C CNN 259 | 1 4400 1150 260 | 1 0 0 -1 261 | $EndComp 262 | $Comp 263 | L GND #PWR010 264 | U 1 1 53A01E27 265 | P 4400 1850 266 | F 0 "#PWR010" H 4400 1850 30 0001 C CNN 267 | F 1 "GND" H 4400 1780 30 0001 C CNN 268 | F 2 "" H 4400 1850 60 0000 C CNN 269 | F 3 "" H 4400 1850 60 0000 C CNN 270 | 1 4400 1850 271 | 1 0 0 -1 272 | $EndComp 273 | Text GLabel 4150 4800 2 31 Input ~ 0 274 | SDA 275 | Text GLabel 4150 4900 2 31 Input ~ 0 276 | SCL 277 | Text GLabel 4000 1450 0 31 Input ~ 0 278 | SDA 279 | Text GLabel 4000 1550 0 31 Input ~ 0 280 | SCL 281 | $Comp 282 | L ENC28J60-SSOP U4 283 | U 1 1 53A02114 284 | P 6850 5650 285 | F 0 "U4" H 6050 6550 50 0000 L BNN 286 | F 1 "ENC28J60-SSOP" H 6450 5750 50 0000 L BNN 287 | F 2 "microchip-enc28j60-SSOP28" H 6850 5800 50 0001 C CNN 288 | F 3 "" H 6850 5650 60 0000 C CNN 289 | 1 6850 5650 290 | 1 0 0 -1 291 | $EndComp 292 | $Comp 293 | L CRYSTAL X1 294 | U 1 1 53A02B23 295 | P 7950 6300 296 | F 0 "X1" H 7950 6450 60 0000 C CNN 297 | F 1 "25MHz" H 7950 6150 60 0000 C CNN 298 | F 2 "~" H 7950 6300 60 0000 C CNN 299 | F 3 "~" H 7950 6300 60 0000 C CNN 300 | 1 7950 6300 301 | 1 0 0 -1 302 | $EndComp 303 | $Comp 304 | L C C8 305 | U 1 1 53A02BF2 306 | P 7650 6550 307 | F 0 "C8" H 7650 6650 40 0000 L CNN 308 | F 1 "C" H 7656 6465 40 0000 L CNN 309 | F 2 "~" H 7688 6400 30 0000 C CNN 310 | F 3 "~" H 7650 6550 60 0000 C CNN 311 | 1 7650 6550 312 | 1 0 0 -1 313 | $EndComp 314 | $Comp 315 | L C C9 316 | U 1 1 53A02C01 317 | P 8250 6550 318 | F 0 "C9" H 8250 6650 40 0000 L CNN 319 | F 1 "C" H 8256 6465 40 0000 L CNN 320 | F 2 "~" H 8288 6400 30 0000 C CNN 321 | F 3 "~" H 8250 6550 60 0000 C CNN 322 | 1 8250 6550 323 | 1 0 0 -1 324 | $EndComp 325 | $Comp 326 | L GND #PWR011 327 | U 1 1 53A02C98 328 | P 7650 6800 329 | F 0 "#PWR011" H 7650 6800 30 0001 C CNN 330 | F 1 "GND" H 7650 6730 30 0001 C CNN 331 | F 2 "" H 7650 6800 60 0000 C CNN 332 | F 3 "" H 7650 6800 60 0000 C CNN 333 | 1 7650 6800 334 | 1 0 0 -1 335 | $EndComp 336 | $Comp 337 | L GND #PWR012 338 | U 1 1 53A02CA7 339 | P 8250 6800 340 | F 0 "#PWR012" H 8250 6800 30 0001 C CNN 341 | F 1 "GND" H 8250 6730 30 0001 C CNN 342 | F 2 "" H 8250 6800 60 0000 C CNN 343 | F 3 "" H 8250 6800 60 0000 C CNN 344 | 1 8250 6800 345 | 1 0 0 -1 346 | $EndComp 347 | Text GLabel 5800 5850 0 31 Input ~ 0 348 | AVR-CLK 349 | Text GLabel 4150 4150 2 31 Input ~ 0 350 | AVR-CLK 351 | $Comp 352 | L C C7 353 | U 1 1 53A03035 354 | P 5650 6350 355 | F 0 "C7" H 5650 6450 40 0000 L CNN 356 | F 1 "10uF" H 5656 6265 40 0000 L CNN 357 | F 2 "~" H 5688 6200 30 0000 C CNN 358 | F 3 "~" H 5650 6350 60 0000 C CNN 359 | 1 5650 6350 360 | 1 0 0 -1 361 | $EndComp 362 | $Comp 363 | L R R4 364 | U 1 1 53A03044 365 | P 5850 6350 366 | F 0 "R4" V 5930 6350 40 0000 C CNN 367 | F 1 "2k32 1%" V 5857 6351 40 0000 C CNN 368 | F 2 "~" V 5780 6350 30 0000 C CNN 369 | F 3 "~" H 5850 6350 30 0000 C CNN 370 | 1 5850 6350 371 | 1 0 0 -1 372 | $EndComp 373 | $Comp 374 | L GND #PWR013 375 | U 1 1 53A03104 376 | P 5650 6650 377 | F 0 "#PWR013" H 5650 6650 30 0001 C CNN 378 | F 1 "GND" H 5650 6580 30 0001 C CNN 379 | F 2 "" H 5650 6650 60 0000 C CNN 380 | F 3 "" H 5650 6650 60 0000 C CNN 381 | 1 5650 6650 382 | 1 0 0 -1 383 | $EndComp 384 | $Comp 385 | L GND #PWR014 386 | U 1 1 53A03113 387 | P 5850 6650 388 | F 0 "#PWR014" H 5850 6650 30 0001 C CNN 389 | F 1 "GND" H 5850 6580 30 0001 C CNN 390 | F 2 "" H 5850 6650 60 0000 C CNN 391 | F 3 "" H 5850 6650 60 0000 C CNN 392 | 1 5850 6650 393 | 1 0 0 -1 394 | $EndComp 395 | Text GLabel 5800 5350 0 31 Input ~ 0 396 | MISO 397 | Text GLabel 5800 5450 0 31 Input ~ 0 398 | MOSI 399 | Text GLabel 5800 5550 0 31 Input ~ 0 400 | SCK 401 | Text GLabel 5800 5650 0 31 Input ~ 0 402 | E-CS 403 | Text GLabel 5800 4950 0 31 Input ~ 0 404 | E-INT 405 | Text GLabel 5800 5050 0 31 Input ~ 0 406 | E-WOL 407 | Text GLabel 4150 3950 2 31 Input ~ 0 408 | MISO 409 | Text GLabel 4150 3850 2 31 Input ~ 0 410 | MOSI 411 | Text GLabel 4150 4050 2 31 Input ~ 0 412 | SCK 413 | Text GLabel 4150 3750 2 31 Input ~ 0 414 | E-CS 415 | Text GLabel 4500 5400 3 31 Input ~ 0 416 | E-INT 417 | Text GLabel 4600 5400 3 31 Input ~ 0 418 | E-WOL 419 | Text GLabel 5800 5150 0 31 Input ~ 0 420 | E-RST 421 | Text GLabel 4150 4250 2 31 Input ~ 0 422 | E-RST 423 | $Comp 424 | L GND #PWR015 425 | U 1 1 53A03C5E 426 | P 6750 6400 427 | F 0 "#PWR015" H 6750 6400 30 0001 C CNN 428 | F 1 "GND" H 6750 6330 30 0001 C CNN 429 | F 2 "" H 6750 6400 60 0000 C CNN 430 | F 3 "" H 6750 6400 60 0000 C CNN 431 | 1 6750 6400 432 | 1 0 0 -1 433 | $EndComp 434 | $Comp 435 | L +3.3V #PWR016 436 | U 1 1 53A03EBC 437 | P 6750 4600 438 | F 0 "#PWR016" H 6750 4560 30 0001 C CNN 439 | F 1 "+3.3V" H 6750 4710 30 0000 C CNN 440 | F 2 "" H 6750 4600 60 0000 C CNN 441 | F 3 "" H 6750 4600 60 0000 C CNN 442 | 1 6750 4600 443 | 1 0 0 -1 444 | $EndComp 445 | Text GLabel 4150 4400 2 31 Input ~ 0 446 | GPIO-2 447 | Text GLabel 4150 5450 2 31 Input ~ 0 448 | GPIO-3 449 | Text GLabel 4150 5550 2 31 Input ~ 0 450 | GPIO-4 451 | Text GLabel 4150 5650 2 31 Input ~ 0 452 | GPIO-5 453 | Text GLabel 4150 5750 2 31 Input ~ 0 454 | GPIO-6 455 | Text GLabel 4150 5850 2 31 Input ~ 0 456 | GPIO-7 457 | Text GLabel 9450 1350 0 31 Input ~ 0 458 | GPIO-0 459 | Text GLabel 9950 1350 2 31 Input ~ 0 460 | GPIO-1 461 | Text GLabel 9450 1450 0 31 Input ~ 0 462 | GPIO-2 463 | Text GLabel 9450 1550 0 31 Input ~ 0 464 | GPIO-4 465 | Text GLabel 9950 1450 2 31 Input ~ 0 466 | GPIO-3 467 | Text GLabel 9950 1550 2 31 Input ~ 0 468 | GPIO-5 469 | Text GLabel 9950 1650 2 31 Input ~ 0 470 | GPIO-7 471 | Text GLabel 9450 1650 0 31 Input ~ 0 472 | GPIO-6 473 | Wire Wire Line 474 | 1600 1850 1600 1900 475 | Wire Wire Line 476 | 2100 1300 2100 1400 477 | Wire Wire Line 478 | 1100 1300 1100 1400 479 | Wire Wire Line 480 | 1100 1800 1100 1850 481 | Wire Wire Line 482 | 1100 1850 2100 1850 483 | Wire Wire Line 484 | 2100 1850 2100 1800 485 | Connection ~ 1600 1850 486 | Connection ~ 1100 1350 487 | Connection ~ 2100 1350 488 | Wire Wire Line 489 | 2200 5650 2200 5900 490 | Connection ~ 2200 5850 491 | Connection ~ 2200 5750 492 | Wire Wire Line 493 | 2200 3500 2200 3850 494 | Connection ~ 2200 3550 495 | Connection ~ 2200 3650 496 | Wire Wire Line 497 | 2200 3850 2150 3850 498 | Wire Wire Line 499 | 2200 3550 2150 3550 500 | Wire Wire Line 501 | 1750 3450 1750 4150 502 | Connection ~ 1750 3550 503 | Connection ~ 1750 3850 504 | Wire Wire Line 505 | 2200 4150 2150 4150 506 | Wire Wire Line 507 | 3000 1100 3000 1150 508 | Wire Wire Line 509 | 2700 1150 3200 1150 510 | Connection ~ 3100 1150 511 | Wire Wire Line 512 | 3000 1900 3000 1850 513 | Wire Wire Line 514 | 3500 1600 3450 1600 515 | Wire Wire Line 516 | 4150 3550 4100 3550 517 | Wire Wire Line 518 | 4150 3650 4100 3650 519 | Wire Wire Line 520 | 4400 1850 4400 1800 521 | Wire Wire Line 522 | 4400 1200 4400 1150 523 | Wire Wire Line 524 | 4150 4900 4100 4900 525 | Wire Wire Line 526 | 4150 4800 4100 4800 527 | Wire Wire Line 528 | 4000 1550 4050 1550 529 | Wire Wire Line 530 | 4050 1450 4000 1450 531 | Wire Wire Line 532 | 7650 6050 7650 6350 533 | Wire Wire Line 534 | 7650 5950 8250 5950 535 | Wire Wire Line 536 | 8250 5950 8250 6350 537 | Connection ~ 8250 6300 538 | Connection ~ 7650 6300 539 | Wire Wire Line 540 | 8250 6750 8250 6800 541 | Wire Wire Line 542 | 7650 6750 7650 6800 543 | Wire Wire Line 544 | 4150 4150 4100 4150 545 | Wire Wire Line 546 | 5850 5850 5800 5850 547 | Wire Wire Line 548 | 5850 5950 5650 5950 549 | Wire Wire Line 550 | 5850 6100 5850 6050 551 | Wire Wire Line 552 | 5650 5950 5650 6150 553 | Wire Wire Line 554 | 5850 6650 5850 6600 555 | Wire Wire Line 556 | 5650 6550 5650 6650 557 | Wire Wire Line 558 | 5850 5350 5800 5350 559 | Wire Wire Line 560 | 5800 5450 5850 5450 561 | Wire Wire Line 562 | 5850 5550 5800 5550 563 | Wire Wire Line 564 | 5800 5650 5850 5650 565 | Wire Wire Line 566 | 5850 4950 5800 4950 567 | Wire Wire Line 568 | 5800 5050 5850 5050 569 | Wire Wire Line 570 | 4150 3750 4100 3750 571 | Wire Wire Line 572 | 4100 3850 4150 3850 573 | Wire Wire Line 574 | 4100 3950 4150 3950 575 | Wire Wire Line 576 | 4100 4050 4150 4050 577 | Wire Wire Line 578 | 5800 5150 5850 5150 579 | Wire Wire Line 580 | 4150 4250 4100 4250 581 | Wire Wire Line 582 | 6750 6350 6750 6400 583 | Wire Wire Line 584 | 6550 6350 6950 6350 585 | Connection ~ 6850 6350 586 | Connection ~ 6750 6350 587 | Connection ~ 6650 6350 588 | Wire Wire Line 589 | 6750 4600 6750 4650 590 | Connection ~ 6850 4650 591 | Connection ~ 6750 4650 592 | Connection ~ 6650 4650 593 | Wire Wire Line 594 | 4100 5350 4600 5350 595 | Wire Wire Line 596 | 4500 5350 4500 5400 597 | Wire Wire Line 598 | 4600 5350 4600 5400 599 | Connection ~ 4500 5350 600 | Wire Wire Line 601 | 4150 4400 4100 4400 602 | Wire Wire Line 603 | 4100 4500 4150 4500 604 | Wire Wire Line 605 | 4150 4600 4100 4600 606 | Wire Wire Line 607 | 4100 4700 4150 4700 608 | Wire Wire Line 609 | 4150 5000 4100 5000 610 | Wire Wire Line 611 | 4100 5450 4150 5450 612 | Wire Wire Line 613 | 4150 5550 4100 5550 614 | Wire Wire Line 615 | 4100 5650 4150 5650 616 | Wire Wire Line 617 | 4100 5750 4150 5750 618 | Wire Wire Line 619 | 4150 5850 4100 5850 620 | Wire Wire Line 621 | 9550 1350 9450 1350 622 | Wire Wire Line 623 | 9450 1450 9550 1450 624 | Wire Wire Line 625 | 9550 1550 9450 1550 626 | Wire Wire Line 627 | 9450 1650 9550 1650 628 | Wire Wire Line 629 | 9850 1650 9950 1650 630 | Wire Wire Line 631 | 9950 1550 9850 1550 632 | Wire Wire Line 633 | 9850 1450 9950 1450 634 | Wire Wire Line 635 | 9950 1350 9850 1350 636 | Text GLabel 4150 5150 2 31 Input ~ 0 637 | RX 638 | Text GLabel 4150 5250 2 31 Input ~ 0 639 | TX 640 | Wire Wire Line 641 | 4150 5250 4100 5250 642 | Wire Wire Line 643 | 4100 5150 4150 5150 644 | Text GLabel 10600 1650 0 31 Input ~ 0 645 | SDA 646 | Text GLabel 10600 1550 0 31 Input ~ 0 647 | SCL 648 | Text GLabel 10600 1450 0 31 Input ~ 0 649 | RX 650 | Text GLabel 10600 1350 0 31 Input ~ 0 651 | TX 652 | Wire Wire Line 653 | 10600 1350 10700 1350 654 | Wire Wire Line 655 | 10700 1450 10600 1450 656 | Wire Wire Line 657 | 10600 1550 10700 1550 658 | Wire Wire Line 659 | 10700 1650 10600 1650 660 | $Comp 661 | L +3.3V #PWR017 662 | U 1 1 53A07B37 663 | P 8000 1400 664 | F 0 "#PWR017" H 8000 1360 30 0001 C CNN 665 | F 1 "+3.3V" H 8000 1510 30 0000 C CNN 666 | F 2 "" H 8000 1400 60 0000 C CNN 667 | F 3 "" H 8000 1400 60 0000 C CNN 668 | 1 8000 1400 669 | 0 -1 -1 0 670 | $EndComp 671 | $Comp 672 | L GND #PWR018 673 | U 1 1 53A07B46 674 | P 8000 1500 675 | F 0 "#PWR018" H 8000 1500 30 0001 C CNN 676 | F 1 "GND" H 8000 1430 30 0001 C CNN 677 | F 2 "" H 8000 1500 60 0000 C CNN 678 | F 3 "" H 8000 1500 60 0000 C CNN 679 | 1 8000 1500 680 | 0 1 1 0 681 | $EndComp 682 | Wire Wire Line 683 | 8000 1400 8100 1400 684 | Wire Wire Line 685 | 8100 1500 8000 1500 686 | $Comp 687 | L CON_HEADER_1X04 J7 688 | U 1 1 53A017A4 689 | P 8100 1500 690 | F 0 "J7" H 8050 1750 50 0000 L BNN 691 | F 1 "OLED" H 8100 1100 50 0000 L BNN 692 | F 2 "dp_devices-M1X4" H 8100 1650 50 0001 C CNN 693 | F 3 "" H 8100 1500 60 0000 C CNN 694 | 1 8100 1500 695 | 1 0 0 -1 696 | $EndComp 697 | Text GLabel 8000 1600 0 31 Input ~ 0 698 | SCL 699 | Text GLabel 8000 1700 0 31 Input ~ 0 700 | SDA 701 | Wire Wire Line 702 | 8000 1700 8100 1700 703 | Wire Wire Line 704 | 8100 1600 8000 1600 705 | $Comp 706 | L R R5 707 | U 1 1 53A090D2 708 | P 8600 3050 709 | F 0 "R5" V 8680 3050 40 0000 C CNN 710 | F 1 "49.9 1%" V 8607 3051 40 0000 C CNN 711 | F 2 "~" V 8530 3050 30 0000 C CNN 712 | F 3 "~" H 8600 3050 30 0000 C CNN 713 | 1 8600 3050 714 | 1 0 0 -1 715 | $EndComp 716 | $Comp 717 | L R R6 718 | U 1 1 53A090E1 719 | P 8600 3650 720 | F 0 "R6" V 8680 3650 40 0000 C CNN 721 | F 1 "49.9 1%" V 8607 3651 40 0000 C CNN 722 | F 2 "~" V 8530 3650 30 0000 C CNN 723 | F 3 "~" H 8600 3650 30 0000 C CNN 724 | 1 8600 3650 725 | 1 0 0 -1 726 | $EndComp 727 | $Comp 728 | L R R7 729 | U 1 1 53A094E6 730 | P 8600 4400 731 | F 0 "R7" V 8680 4400 40 0000 C CNN 732 | F 1 "49.9 1%" V 8607 4401 40 0000 C CNN 733 | F 2 "~" V 8530 4400 30 0000 C CNN 734 | F 3 "~" H 8600 4400 30 0000 C CNN 735 | 1 8600 4400 736 | 1 0 0 -1 737 | $EndComp 738 | $Comp 739 | L R R8 740 | U 1 1 53A094F5 741 | P 8600 5000 742 | F 0 "R8" V 8680 5000 40 0000 C CNN 743 | F 1 "49.9 1%" V 8607 5001 40 0000 C CNN 744 | F 2 "~" V 8530 5000 30 0000 C CNN 745 | F 3 "~" H 8600 5000 30 0000 C CNN 746 | 1 8600 5000 747 | 1 0 0 -1 748 | $EndComp 749 | Wire Wire Line 750 | 8300 2750 9600 2750 751 | $Comp 752 | L C C10 753 | U 1 1 53A09B06 754 | P 9000 3550 755 | F 0 "C10" H 9000 3650 40 0000 L CNN 756 | F 1 "0.1uF" H 9006 3465 40 0000 L CNN 757 | F 2 "~" H 9038 3400 30 0000 C CNN 758 | F 3 "~" H 9000 3550 60 0000 C CNN 759 | 1 9000 3550 760 | 1 0 0 -1 761 | $EndComp 762 | $Comp 763 | L GND #PWR019 764 | U 1 1 53A09B1F 765 | P 9000 3800 766 | F 0 "#PWR019" H 9000 3800 30 0001 C CNN 767 | F 1 "GND" H 9000 3730 30 0001 C CNN 768 | F 2 "" H 9000 3800 60 0000 C CNN 769 | F 3 "" H 9000 3800 60 0000 C CNN 770 | 1 9000 3800 771 | 1 0 0 -1 772 | $EndComp 773 | Wire Wire Line 774 | 9000 3800 9000 3750 775 | Wire Wire Line 776 | 8600 3350 9450 3350 777 | Wire Wire Line 778 | 8600 3300 8600 3400 779 | Connection ~ 8600 3350 780 | $Comp 781 | L C C11 782 | U 1 1 53A09D59 783 | P 9000 4900 784 | F 0 "C11" H 9000 5000 40 0000 L CNN 785 | F 1 "0.1uF" H 9006 4815 40 0000 L CNN 786 | F 2 "~" H 9038 4750 30 0000 C CNN 787 | F 3 "~" H 9000 4900 60 0000 C CNN 788 | 1 9000 4900 789 | 1 0 0 -1 790 | $EndComp 791 | Wire Wire Line 792 | 8600 4650 8600 4750 793 | Wire Wire Line 794 | 8600 4700 9450 4700 795 | Connection ~ 8600 4700 796 | $Comp 797 | L GND #PWR020 798 | U 1 1 53A09FD9 799 | P 9000 5150 800 | F 0 "#PWR020" H 9000 5150 30 0001 C CNN 801 | F 1 "GND" H 9000 5080 30 0001 C CNN 802 | F 2 "" H 9000 5150 60 0000 C CNN 803 | F 3 "" H 9000 5150 60 0000 C CNN 804 | 1 9000 5150 805 | 1 0 0 -1 806 | $EndComp 807 | Wire Wire Line 808 | 9000 5150 9000 5100 809 | Wire Wire Line 810 | 7650 5250 8500 5250 811 | Wire Wire Line 812 | 9600 5350 7650 5350 813 | Wire Wire Line 814 | 8500 4100 10200 4100 815 | Wire Wire Line 816 | 8500 5250 8500 4100 817 | Wire Wire Line 818 | 7650 4950 8300 4950 819 | Wire Wire Line 820 | 8300 4950 8300 2750 821 | Connection ~ 8600 2750 822 | Wire Wire Line 823 | 7650 5050 8350 5050 824 | Wire Wire Line 825 | 8350 3950 10200 3950 826 | Wire Wire Line 827 | 9600 4300 10200 4300 828 | Wire Wire Line 829 | 9600 4300 9600 5350 830 | Wire Wire Line 831 | 10200 4200 9450 4200 832 | Connection ~ 9000 4700 833 | Connection ~ 9000 3350 834 | Wire Wire Line 835 | 10200 3750 9600 3750 836 | Wire Wire Line 837 | 9600 3750 9600 2750 838 | Wire Wire Line 839 | 9450 3850 10200 3850 840 | Wire Wire Line 841 | 8350 5050 8350 3950 842 | Connection ~ 8600 3950 843 | Wire Wire Line 844 | 8600 3900 8600 3950 845 | Wire Wire Line 846 | 8600 2800 8600 2750 847 | Wire Wire Line 848 | 9450 3350 9450 3850 849 | Wire Wire Line 850 | 8600 4150 8600 4100 851 | Connection ~ 8600 4100 852 | Wire Wire Line 853 | 8600 5350 8600 5250 854 | Connection ~ 8600 5350 855 | Wire Wire Line 856 | 9450 4200 9450 4700 857 | $Comp 858 | L +3.3V #PWR021 859 | U 1 1 53A0C3AE 860 | P 10150 4700 861 | F 0 "#PWR021" H 10150 4660 30 0001 C CNN 862 | F 1 "+3.3V" H 10150 4810 30 0000 C CNN 863 | F 2 "" H 10150 4700 60 0000 C CNN 864 | F 3 "" H 10150 4700 60 0000 C CNN 865 | 1 10150 4700 866 | 0 -1 -1 0 867 | $EndComp 868 | $Comp 869 | L +3.3V #PWR022 870 | U 1 1 53A0C3BD 871 | P 10150 4950 872 | F 0 "#PWR022" H 10150 4910 30 0001 C CNN 873 | F 1 "+3.3V" H 10150 5060 30 0000 C CNN 874 | F 2 "" H 10150 4950 60 0000 C CNN 875 | F 3 "" H 10150 4950 60 0000 C CNN 876 | 1 10150 4950 877 | 0 -1 -1 0 878 | $EndComp 879 | $Comp 880 | L GND #PWR023 881 | U 1 1 53A0C523 882 | P 10150 4450 883 | F 0 "#PWR023" H 10150 4450 30 0001 C CNN 884 | F 1 "GND" H 10150 4380 30 0001 C CNN 885 | F 2 "" H 10150 4450 60 0000 C CNN 886 | F 3 "" H 10150 4450 60 0000 C CNN 887 | 1 10150 4450 888 | 0 1 1 0 889 | $EndComp 890 | Wire Wire Line 891 | 10150 4450 10200 4450 892 | $Comp 893 | L R R10 894 | U 1 1 53A0C72B 895 | P 9950 5400 896 | F 0 "R10" V 10030 5400 40 0000 C CNN 897 | F 1 "R" V 9957 5401 40 0000 C CNN 898 | F 2 "~" V 9880 5400 30 0000 C CNN 899 | F 3 "~" H 9950 5400 30 0000 C CNN 900 | 1 9950 5400 901 | 1 0 0 -1 902 | $EndComp 903 | $Comp 904 | L R R9 905 | U 1 1 53A0C73A 906 | P 9750 5300 907 | F 0 "R9" V 9830 5300 40 0000 C CNN 908 | F 1 "R" V 9757 5301 40 0000 C CNN 909 | F 2 "~" V 9680 5300 30 0000 C CNN 910 | F 3 "~" H 9750 5300 30 0000 C CNN 911 | 1 9750 5300 912 | 1 0 0 -1 913 | $EndComp 914 | Wire Wire Line 915 | 7650 5550 9750 5550 916 | Wire Wire Line 917 | 7650 5650 9950 5650 918 | $Comp 919 | L C C6 920 | U 1 1 53A0CD3C 921 | P 2700 1500 922 | F 0 "C6" H 2700 1600 40 0000 L CNN 923 | F 1 "0.1uF" H 2706 1415 40 0000 L CNN 924 | F 2 "~" H 2738 1350 30 0000 C CNN 925 | F 3 "~" H 2700 1500 60 0000 C CNN 926 | 1 2700 1500 927 | 1 0 0 -1 928 | $EndComp 929 | Wire Wire Line 930 | 2700 1150 2700 1300 931 | Connection ~ 3000 1150 932 | Wire Wire Line 933 | 2700 1700 2700 1850 934 | Wire Wire Line 935 | 2700 1850 3000 1850 936 | $Comp 937 | L R R1 938 | U 1 1 53A0D14F 939 | P 1150 2550 940 | F 0 "R1" V 1230 2550 40 0000 C CNN 941 | F 1 "1k8" V 1157 2551 40 0000 C CNN 942 | F 2 "~" V 1080 2550 30 0000 C CNN 943 | F 3 "~" H 1150 2550 30 0000 C CNN 944 | 1 1150 2550 945 | 1 0 0 -1 946 | $EndComp 947 | $Comp 948 | L R R2 949 | U 1 1 53A0D15E 950 | P 1350 2550 951 | F 0 "R2" V 1430 2550 40 0000 C CNN 952 | F 1 "1k8" V 1357 2551 40 0000 C CNN 953 | F 2 "~" V 1280 2550 30 0000 C CNN 954 | F 3 "~" H 1350 2550 30 0000 C CNN 955 | 1 1350 2550 956 | 1 0 0 -1 957 | $EndComp 958 | $Comp 959 | L +3.3V #PWR024 960 | U 1 1 53A0D2D9 961 | P 1150 2250 962 | F 0 "#PWR024" H 1150 2210 30 0001 C CNN 963 | F 1 "+3.3V" H 1150 2360 30 0000 C CNN 964 | F 2 "" H 1150 2250 60 0000 C CNN 965 | F 3 "" H 1150 2250 60 0000 C CNN 966 | 1 1150 2250 967 | 1 0 0 -1 968 | $EndComp 969 | $Comp 970 | L +3.3V #PWR025 971 | U 1 1 53A0D2E8 972 | P 1350 2250 973 | F 0 "#PWR025" H 1350 2210 30 0001 C CNN 974 | F 1 "+3.3V" H 1350 2360 30 0000 C CNN 975 | F 2 "" H 1350 2250 60 0000 C CNN 976 | F 3 "" H 1350 2250 60 0000 C CNN 977 | 1 1350 2250 978 | 1 0 0 -1 979 | $EndComp 980 | Text GLabel 1150 2850 3 31 Input ~ 0 981 | SDA 982 | Text GLabel 1350 2850 3 31 Input ~ 0 983 | SCL 984 | Wire Wire Line 985 | 1350 2850 1350 2800 986 | Wire Wire Line 987 | 1150 2850 1150 2800 988 | Wire Wire Line 989 | 1150 2300 1150 2250 990 | Wire Wire Line 991 | 1350 2300 1350 2250 992 | Text GLabel 4150 4600 2 31 Input ~ 0 993 | GPIO-1 994 | Text GLabel 4150 4700 2 31 Input ~ 0 995 | GPIO-0 996 | $Comp 997 | L BARREL_JACK CON1 998 | U 1 1 53A1472F 999 | P 2250 2500 1000 | F 0 "CON1" H 2250 2750 60 0000 C CNN 1001 | F 1 "BARREL_JACK" H 2250 2300 60 0000 C CNN 1002 | F 2 "" H 2250 2500 60 0000 C CNN 1003 | F 3 "" H 2250 2500 60 0000 C CNN 1004 | 1 2250 2500 1005 | 1 0 0 -1 1006 | $EndComp 1007 | $Comp 1008 | L GND #PWR026 1009 | U 1 1 53A1473E 1010 | P 2650 2600 1011 | F 0 "#PWR026" H 2650 2600 30 0001 C CNN 1012 | F 1 "GND" H 2650 2530 30 0001 C CNN 1013 | F 2 "" H 2650 2600 60 0000 C CNN 1014 | F 3 "" H 2650 2600 60 0000 C CNN 1015 | 1 2650 2600 1016 | 0 -1 -1 0 1017 | $EndComp 1018 | Wire Wire Line 1019 | 2650 2600 2550 2600 1020 | Wire Wire Line 1021 | 2550 2600 2550 2500 1022 | $Comp 1023 | L +5V #PWR027 1024 | U 1 1 53A14A53 1025 | P 2650 2400 1026 | F 0 "#PWR027" H 2650 2490 20 0001 C CNN 1027 | F 1 "+5V" H 2650 2490 30 0000 C CNN 1028 | F 2 "" H 2650 2400 60 0000 C CNN 1029 | F 3 "" H 2650 2400 60 0000 C CNN 1030 | 1 2650 2400 1031 | 0 1 1 0 1032 | $EndComp 1033 | Wire Wire Line 1034 | 2650 2400 2550 2400 1035 | $Comp 1036 | L CON_HEADER_2X05-PTH J3 1037 | U 1 1 53A14CA5 1038 | P 6600 2300 1039 | F 0 "J3" H 6550 2625 50 0000 L BNN 1040 | F 1 "ICSP" H 6650 1900 50 0000 L BNN 1041 | F 2 "dp_devices-M2X5" H 6600 2450 50 0001 C CNN 1042 | F 3 "" H 6600 2300 60 0000 C CNN 1043 | 1 6600 2300 1044 | 1 0 0 -1 1045 | $EndComp 1046 | Text GLabel 4150 5000 2 31 Input ~ 0 1047 | AVR-RST 1048 | $Comp 1049 | L +3.3V #PWR028 1050 | U 1 1 53A14FF7 1051 | P 7000 2100 1052 | F 0 "#PWR028" H 7000 2060 30 0001 C CNN 1053 | F 1 "+3.3V" H 7000 2210 30 0000 C CNN 1054 | F 2 "" H 7000 2100 60 0000 C CNN 1055 | F 3 "" H 7000 2100 60 0000 C CNN 1056 | 1 7000 2100 1057 | 0 1 1 0 1058 | $EndComp 1059 | $Comp 1060 | L GND #PWR029 1061 | U 1 1 53A15006 1062 | P 7000 2500 1063 | F 0 "#PWR029" H 7000 2500 30 0001 C CNN 1064 | F 1 "GND" H 7000 2430 30 0001 C CNN 1065 | F 2 "" H 7000 2500 60 0000 C CNN 1066 | F 3 "" H 7000 2500 60 0000 C CNN 1067 | 1 7000 2500 1068 | 0 -1 -1 0 1069 | $EndComp 1070 | Wire Wire Line 1071 | 6900 2500 7000 2500 1072 | Connection ~ 6900 2400 1073 | Connection ~ 6900 2300 1074 | Wire Wire Line 1075 | 6900 2100 7000 2100 1076 | Text GLabel 6500 2500 0 31 Input ~ 0 1077 | MISO 1078 | Text GLabel 6500 2400 0 31 Input ~ 0 1079 | SCK 1080 | Text GLabel 6500 2300 0 31 Input ~ 0 1081 | AVR-RST 1082 | Text GLabel 6500 2100 0 31 Input ~ 0 1083 | MOSI 1084 | Wire Wire Line 1085 | 6500 2100 6600 2100 1086 | Wire Wire Line 1087 | 6500 2300 6600 2300 1088 | Wire Wire Line 1089 | 6600 2400 6500 2400 1090 | Wire Wire Line 1091 | 6500 2500 6600 2500 1092 | NoConn ~ 6600 2200 1093 | $Comp 1094 | L LED D1 1095 | U 1 1 53A15EB6 1096 | P 4900 2200 1097 | F 0 "D1" H 4900 2300 50 0000 C CNN 1098 | F 1 "LED-PWR" H 4900 2100 50 0000 C CNN 1099 | F 2 "~" H 4900 2200 60 0000 C CNN 1100 | F 3 "~" H 4900 2200 60 0000 C CNN 1101 | 1 4900 2200 1102 | 0 1 1 0 1103 | $EndComp 1104 | $Comp 1105 | L LED D2 1106 | U 1 1 53A15EC5 1107 | P 5250 2200 1108 | F 0 "D2" H 5250 2300 50 0000 C CNN 1109 | F 1 "LED-SYS" H 5250 2100 50 0000 C CNN 1110 | F 2 "~" H 5250 2200 60 0000 C CNN 1111 | F 3 "~" H 5250 2200 60 0000 C CNN 1112 | 1 5250 2200 1113 | 0 1 1 0 1114 | $EndComp 1115 | $Comp 1116 | L R R3 1117 | U 1 1 53A15EDE 1118 | P 4900 1700 1119 | F 0 "R3" V 4980 1700 40 0000 C CNN 1120 | F 1 "R" V 4907 1701 40 0000 C CNN 1121 | F 2 "~" V 4830 1700 30 0000 C CNN 1122 | F 3 "~" H 4900 1700 30 0000 C CNN 1123 | 1 4900 1700 1124 | 1 0 0 -1 1125 | $EndComp 1126 | $Comp 1127 | L R R11 1128 | U 1 1 53A15EED 1129 | P 5250 1700 1130 | F 0 "R11" V 5330 1700 40 0000 C CNN 1131 | F 1 "R" V 5257 1701 40 0000 C CNN 1132 | F 2 "~" V 5180 1700 30 0000 C CNN 1133 | F 3 "~" H 5250 1700 30 0000 C CNN 1134 | 1 5250 1700 1135 | 1 0 0 -1 1136 | $EndComp 1137 | $Comp 1138 | L +3.3V #PWR030 1139 | U 1 1 53A15EFC 1140 | P 4900 1400 1141 | F 0 "#PWR030" H 4900 1360 30 0001 C CNN 1142 | F 1 "+3.3V" H 4900 1510 30 0000 C CNN 1143 | F 2 "" H 4900 1400 60 0000 C CNN 1144 | F 3 "" H 4900 1400 60 0000 C CNN 1145 | 1 4900 1400 1146 | 1 0 0 -1 1147 | $EndComp 1148 | Wire Wire Line 1149 | 4900 1400 4900 1450 1150 | $Comp 1151 | L GND #PWR031 1152 | U 1 1 53A15FD2 1153 | P 4900 2450 1154 | F 0 "#PWR031" H 4900 2450 30 0001 C CNN 1155 | F 1 "GND" H 4900 2380 30 0001 C CNN 1156 | F 2 "" H 4900 2450 60 0000 C CNN 1157 | F 3 "" H 4900 2450 60 0000 C CNN 1158 | 1 4900 2450 1159 | 1 0 0 -1 1160 | $EndComp 1161 | $Comp 1162 | L GND #PWR032 1163 | U 1 1 53A15FE1 1164 | P 5250 2450 1165 | F 0 "#PWR032" H 5250 2450 30 0001 C CNN 1166 | F 1 "GND" H 5250 2380 30 0001 C CNN 1167 | F 2 "" H 5250 2450 60 0000 C CNN 1168 | F 3 "" H 5250 2450 60 0000 C CNN 1169 | 1 5250 2450 1170 | 1 0 0 -1 1171 | $EndComp 1172 | Text GLabel 5250 1400 1 31 Input ~ 0 1173 | LED-SYS 1174 | Text GLabel 4150 4500 2 31 Input ~ 0 1175 | LED-SYS 1176 | Wire Wire Line 1177 | 5250 1450 5250 1400 1178 | Wire Wire Line 1179 | 5250 2400 5250 2450 1180 | Wire Wire Line 1181 | 5250 2000 5250 1950 1182 | Wire Wire Line 1183 | 4900 1950 4900 2000 1184 | Wire Wire Line 1185 | 4900 2450 4900 2400 1186 | $Comp 1187 | L CON_TERMINAL_BLOCK_02-5MM J4 1188 | U 1 1 53A17FEA 1189 | P 7050 1400 1190 | F 0 "J4" H 7000 1550 50 0000 L BNN 1191 | F 1 "PWR-1W" H 6950 1100 50 0000 L BNN 1192 | F 2 "dp_devices-TERMINAL_BLOCK_2P_5" H 7050 1550 50 0001 C CNN 1193 | F 3 "" H 7050 1400 60 0000 C CNN 1194 | 1 7050 1400 1195 | 1 0 0 -1 1196 | $EndComp 1197 | $Comp 1198 | L CON_TERMINAL_BLOCK_02-5MM J5 1199 | U 1 1 53A18003 1200 | P 7450 1400 1201 | F 0 "J5" H 7400 1550 50 0000 L BNN 1202 | F 1 "PWR-DHT" H 7350 1100 50 0000 L BNN 1203 | F 2 "dp_devices-TERMINAL_BLOCK_2P_5" H 7450 1550 50 0001 C CNN 1204 | F 3 "" H 7450 1400 60 0000 C CNN 1205 | 1 7450 1400 1206 | 1 0 0 -1 1207 | $EndComp 1208 | $Comp 1209 | L CON_TERMINAL_BLOCK_02-5MM J1 1210 | U 1 1 53A181B0 1211 | P 6050 1400 1212 | F 0 "J1" H 6000 1550 50 0000 L BNN 1213 | F 1 "BUS" H 6000 1100 50 0000 L BNN 1214 | F 2 "dp_devices-TERMINAL_BLOCK_2P_5" H 6050 1550 50 0001 C CNN 1215 | F 3 "" H 6050 1400 60 0000 C CNN 1216 | 1 6050 1400 1217 | 1 0 0 -1 1218 | $EndComp 1219 | Wire Wire Line 1220 | 5950 1500 6050 1500 1221 | Wire Wire Line 1222 | 6050 1400 5950 1400 1223 | $Comp 1224 | L +3.3V #PWR033 1225 | U 1 1 53A18365 1226 | P 6950 1400 1227 | F 0 "#PWR033" H 6950 1360 30 0001 C CNN 1228 | F 1 "+3.3V" H 6950 1510 30 0000 C CNN 1229 | F 2 "" H 6950 1400 60 0000 C CNN 1230 | F 3 "" H 6950 1400 60 0000 C CNN 1231 | 1 6950 1400 1232 | 0 -1 -1 0 1233 | $EndComp 1234 | $Comp 1235 | L +3.3V #PWR034 1236 | U 1 1 53A18374 1237 | P 7350 1500 1238 | F 0 "#PWR034" H 7350 1460 30 0001 C CNN 1239 | F 1 "+3.3V" H 7350 1610 30 0000 C CNN 1240 | F 2 "" H 7350 1500 60 0000 C CNN 1241 | F 3 "" H 7350 1500 60 0000 C CNN 1242 | 1 7350 1500 1243 | 0 -1 -1 0 1244 | $EndComp 1245 | $Comp 1246 | L GND #PWR035 1247 | U 1 1 53A18383 1248 | P 7350 1400 1249 | F 0 "#PWR035" H 7350 1400 30 0001 C CNN 1250 | F 1 "GND" H 7350 1330 30 0001 C CNN 1251 | F 2 "" H 7350 1400 60 0000 C CNN 1252 | F 3 "" H 7350 1400 60 0000 C CNN 1253 | 1 7350 1400 1254 | 0 1 1 0 1255 | $EndComp 1256 | $Comp 1257 | L GND #PWR036 1258 | U 1 1 53A18392 1259 | P 6950 1500 1260 | F 0 "#PWR036" H 6950 1500 30 0001 C CNN 1261 | F 1 "GND" H 6950 1430 30 0001 C CNN 1262 | F 2 "" H 6950 1500 60 0000 C CNN 1263 | F 3 "" H 6950 1500 60 0000 C CNN 1264 | 1 6950 1500 1265 | 0 1 1 0 1266 | $EndComp 1267 | Wire Wire Line 1268 | 6950 1500 7050 1500 1269 | Wire Wire Line 1270 | 7050 1400 6950 1400 1271 | Wire Wire Line 1272 | 7350 1400 7450 1400 1273 | Wire Wire Line 1274 | 7450 1500 7350 1500 1275 | $Comp 1276 | L J0026D21BNL H1 1277 | U 1 1 53A19959 1278 | P 10550 4400 1279 | F 0 "H1" H 10550 3650 60 0000 C CNN 1280 | F 1 "J0026D21BNL" H 10550 3500 60 0000 C CNN 1281 | F 2 "~" H 10550 4400 60 0000 C CNN 1282 | F 3 "~" H 10550 4400 60 0000 C CNN 1283 | 1 10550 4400 1284 | 1 0 0 -1 1285 | $EndComp 1286 | Wire Wire Line 1287 | 10200 4450 10200 4550 1288 | Wire Wire Line 1289 | 10150 4700 10200 4700 1290 | Wire Wire Line 1291 | 10150 4950 10200 4950 1292 | Wire Wire Line 1293 | 6900 2200 6900 2500 1294 | $Comp 1295 | L C C12 1296 | U 1 1 53A1B542 1297 | P 7000 4450 1298 | F 0 "C12" H 7000 4550 40 0000 L CNN 1299 | F 1 "0.1uF" H 7006 4365 40 0000 L CNN 1300 | F 2 "~" H 7038 4300 30 0000 C CNN 1301 | F 3 "~" H 7000 4450 60 0000 C CNN 1302 | 1 7000 4450 1303 | 1 0 0 -1 1304 | $EndComp 1305 | $Comp 1306 | L C C14 1307 | U 1 1 53A1B560 1308 | P 7250 4450 1309 | F 0 "C14" H 7250 4550 40 0000 L CNN 1310 | F 1 "0.1uF" H 7256 4365 40 0000 L CNN 1311 | F 2 "~" H 7288 4300 30 0000 C CNN 1312 | F 3 "~" H 7250 4450 60 0000 C CNN 1313 | 1 7250 4450 1314 | 1 0 0 -1 1315 | $EndComp 1316 | Connection ~ 6950 4650 1317 | Connection ~ 7000 4650 1318 | $Comp 1319 | L GND #PWR037 1320 | U 1 1 53A1B921 1321 | P 7250 4200 1322 | F 0 "#PWR037" H 7250 4200 30 0001 C CNN 1323 | F 1 "GND" H 7250 4130 30 0001 C CNN 1324 | F 2 "" H 7250 4200 60 0000 C CNN 1325 | F 3 "" H 7250 4200 60 0000 C CNN 1326 | 1 7250 4200 1327 | -1 0 0 1 1328 | $EndComp 1329 | Wire Wire Line 1330 | 6550 4650 7250 4650 1331 | Wire Wire Line 1332 | 7250 4200 7250 4250 1333 | Wire Wire Line 1334 | 7250 4250 7000 4250 1335 | $Comp 1336 | L CON_HEADER_2X04-PTH J2 1337 | U 1 1 53A1D8AB 1338 | P 9550 1450 1339 | F 0 "J2" H 9500 1675 50 0000 L BNN 1340 | F 1 "GPIO" H 9600 1050 50 0000 L BNN 1341 | F 2 "dp_devices-M2X4" H 9550 1600 50 0001 C CNN 1342 | F 3 "" H 9550 1450 60 0000 C CNN 1343 | 1 9550 1450 1344 | 1 0 0 -1 1345 | $EndComp 1346 | $Comp 1347 | L CON_HEADER_1X04 J6 1348 | U 1 1 53A1EDB4 1349 | P 10700 1450 1350 | F 0 "J6" H 10650 1700 50 0000 L BNN 1351 | F 1 "IO" H 10700 1450 50 0000 L BNN 1352 | F 2 "dp_devices-M1X4" H 10700 1600 50 0001 C CNN 1353 | F 3 "" H 10700 1450 60 0000 C CNN 1354 | 1 10700 1450 1355 | 1 0 0 -1 1356 | $EndComp 1357 | Text GLabel 2150 5000 0 31 Input ~ 0 1358 | T_OUT 1359 | Wire Wire Line 1360 | 2200 5000 2150 5000 1361 | Wire Wire Line 1362 | 10200 4800 9950 4800 1363 | Wire Wire Line 1364 | 9750 5050 10200 5050 1365 | Wire Wire Line 1366 | 9950 4800 9950 5150 1367 | $EndSCHEMATC 1368 | -------------------------------------------------------------------------------- /pcb/avr-sensors.cmp: -------------------------------------------------------------------------------- 1 | Cmp-Mod V01 Created by CvPcb (2013-may-18)-stable date = Wed 18 Jun 2014 09:46:36 PM CEST 2 | 3 | BeginCmp 4 | TimeStamp = /539EAED2; 5 | Reference = C1; 6 | ValeurCmp = 1uF; 7 | IdModule = SM0805; 8 | EndCmp 9 | 10 | BeginCmp 11 | TimeStamp = /539EB0E8; 12 | Reference = C2; 13 | ValeurCmp = 1uF; 14 | IdModule = SM0805; 15 | EndCmp 16 | 17 | BeginCmp 18 | TimeStamp = /539EB0F7; 19 | Reference = C3; 20 | ValeurCmp = 0.1uF; 21 | IdModule = SM0805; 22 | EndCmp 23 | 24 | BeginCmp 25 | TimeStamp = /539EB268; 26 | Reference = C4; 27 | ValeurCmp = 0.1uF; 28 | IdModule = SM0805; 29 | EndCmp 30 | 31 | BeginCmp 32 | TimeStamp = /539EAEE1; 33 | Reference = C5; 34 | ValeurCmp = 10uF; 35 | IdModule = SM0805; 36 | EndCmp 37 | 38 | BeginCmp 39 | TimeStamp = /53A0CD3C; 40 | Reference = C6; 41 | ValeurCmp = 0.1uF; 42 | IdModule = SM0805; 43 | EndCmp 44 | 45 | BeginCmp 46 | TimeStamp = /53A03035; 47 | Reference = C7; 48 | ValeurCmp = 10uF; 49 | IdModule = SM0805; 50 | EndCmp 51 | 52 | BeginCmp 53 | TimeStamp = /53A02BF2; 54 | Reference = C8; 55 | ValeurCmp = C; 56 | IdModule = SM0805; 57 | EndCmp 58 | 59 | BeginCmp 60 | TimeStamp = /53A02C01; 61 | Reference = C9; 62 | ValeurCmp = C; 63 | IdModule = SM0805; 64 | EndCmp 65 | 66 | BeginCmp 67 | TimeStamp = /53A09B06; 68 | Reference = C10; 69 | ValeurCmp = 0.1uF; 70 | IdModule = SM0805; 71 | EndCmp 72 | 73 | BeginCmp 74 | TimeStamp = /53A09D59; 75 | Reference = C11; 76 | ValeurCmp = 0.1uF; 77 | IdModule = SM0805; 78 | EndCmp 79 | 80 | BeginCmp 81 | TimeStamp = /53A1B542; 82 | Reference = C12; 83 | ValeurCmp = 0.1uF; 84 | IdModule = SM0805; 85 | EndCmp 86 | 87 | BeginCmp 88 | TimeStamp = /53A1B560; 89 | Reference = C14; 90 | ValeurCmp = 0.1uF; 91 | IdModule = SM0805; 92 | EndCmp 93 | 94 | BeginCmp 95 | TimeStamp = /53A1472F; 96 | Reference = CON1; 97 | ValeurCmp = BARREL_JACK; 98 | IdModule = BARREL_JACK; 99 | EndCmp 100 | 101 | BeginCmp 102 | TimeStamp = /53A15EB6; 103 | Reference = D1; 104 | ValeurCmp = LED-PWR; 105 | IdModule = LED-0805; 106 | EndCmp 107 | 108 | BeginCmp 109 | TimeStamp = /53A15EC5; 110 | Reference = D2; 111 | ValeurCmp = LED-SYS; 112 | IdModule = LED-0805; 113 | EndCmp 114 | 115 | BeginCmp 116 | TimeStamp = /53A19959; 117 | Reference = H1; 118 | ValeurCmp = J0026D21BNL; 119 | IdModule = J0026D21BNL; 120 | EndCmp 121 | 122 | BeginCmp 123 | TimeStamp = /539EAE90; 124 | Reference = IC1; 125 | ValeurCmp = REG1117; 126 | IdModule = burr-brown-3-SOT223; 127 | EndCmp 128 | 129 | BeginCmp 130 | TimeStamp = /539EAD8F; 131 | Reference = IC2; 132 | ValeurCmp = ATMEGA328P-A; 133 | IdModule = TQFP32; 134 | EndCmp 135 | 136 | BeginCmp 137 | TimeStamp = /53A181B0; 138 | Reference = J1; 139 | ValeurCmp = BUS; 140 | IdModule = dp_devices-TERMINAL_BLOCK_2P_5; 141 | EndCmp 142 | 143 | BeginCmp 144 | TimeStamp = /53A1D8AB; 145 | Reference = J2; 146 | ValeurCmp = GPIO; 147 | IdModule = dp_devices-M2X4; 148 | EndCmp 149 | 150 | BeginCmp 151 | TimeStamp = /53A14CA5; 152 | Reference = J3; 153 | ValeurCmp = ICSP; 154 | IdModule = dp_devices-M2X5; 155 | EndCmp 156 | 157 | BeginCmp 158 | TimeStamp = /53A17FEA; 159 | Reference = J4; 160 | ValeurCmp = PWR-1W; 161 | IdModule = dp_devices-TERMINAL_BLOCK_2P_5; 162 | EndCmp 163 | 164 | BeginCmp 165 | TimeStamp = /53A18003; 166 | Reference = J5; 167 | ValeurCmp = PWR-DHT; 168 | IdModule = dp_devices-TERMINAL_BLOCK_2P_5; 169 | EndCmp 170 | 171 | BeginCmp 172 | TimeStamp = /53A1EDB4; 173 | Reference = J6; 174 | ValeurCmp = IO; 175 | IdModule = dp_devices-M1X4; 176 | EndCmp 177 | 178 | BeginCmp 179 | TimeStamp = /53A017A4; 180 | Reference = J7; 181 | ValeurCmp = OLED; 182 | IdModule = dp_devices-M1X4; 183 | EndCmp 184 | 185 | BeginCmp 186 | TimeStamp = /53A0D14F; 187 | Reference = R1; 188 | ValeurCmp = 1k8; 189 | IdModule = SM0805; 190 | EndCmp 191 | 192 | BeginCmp 193 | TimeStamp = /53A0D15E; 194 | Reference = R2; 195 | ValeurCmp = 1k8; 196 | IdModule = SM0805; 197 | EndCmp 198 | 199 | BeginCmp 200 | TimeStamp = /53A15EDE; 201 | Reference = R3; 202 | ValeurCmp = R; 203 | IdModule = SM0805; 204 | EndCmp 205 | 206 | BeginCmp 207 | TimeStamp = /53A03044; 208 | Reference = R4; 209 | ValeurCmp = 2k32 1%; 210 | IdModule = SM0805; 211 | EndCmp 212 | 213 | BeginCmp 214 | TimeStamp = /53A090D2; 215 | Reference = R5; 216 | ValeurCmp = 49k9 1%; 217 | IdModule = SM0805; 218 | EndCmp 219 | 220 | BeginCmp 221 | TimeStamp = /53A090E1; 222 | Reference = R6; 223 | ValeurCmp = 49k9 1%; 224 | IdModule = SM0805; 225 | EndCmp 226 | 227 | BeginCmp 228 | TimeStamp = /53A094E6; 229 | Reference = R7; 230 | ValeurCmp = 49k9 1%; 231 | IdModule = SM0805; 232 | EndCmp 233 | 234 | BeginCmp 235 | TimeStamp = /53A094F5; 236 | Reference = R8; 237 | ValeurCmp = 49k9 1%; 238 | IdModule = SM0805; 239 | EndCmp 240 | 241 | BeginCmp 242 | TimeStamp = /53A0C73A; 243 | Reference = R9; 244 | ValeurCmp = R; 245 | IdModule = SM0805; 246 | EndCmp 247 | 248 | BeginCmp 249 | TimeStamp = /53A0C72B; 250 | Reference = R10; 251 | ValeurCmp = R; 252 | IdModule = SM0805; 253 | EndCmp 254 | 255 | BeginCmp 256 | TimeStamp = /53A15EED; 257 | Reference = R11; 258 | ValeurCmp = R; 259 | IdModule = SM0805; 260 | EndCmp 261 | 262 | BeginCmp 263 | TimeStamp = /539EB6EA; 264 | Reference = U1; 265 | ValeurCmp = LMT87; 266 | IdModule = sc70-5; 267 | EndCmp 268 | 269 | BeginCmp 270 | TimeStamp = /53A01E09; 271 | Reference = U2; 272 | ValeurCmp = MS5637; 273 | IdModule = ms5637; 274 | EndCmp 275 | 276 | BeginCmp 277 | TimeStamp = /53A02114; 278 | Reference = U4; 279 | ValeurCmp = ENC28J60-SSOP; 280 | IdModule = microchip-enc28j60-SSOP28; 281 | EndCmp 282 | 283 | BeginCmp 284 | TimeStamp = /53A02B23; 285 | Reference = X1; 286 | ValeurCmp = 25MHz; 287 | IdModule = HC-49V; 288 | EndCmp 289 | 290 | EndListe 291 | -------------------------------------------------------------------------------- /pcb/avr-sensors.net: -------------------------------------------------------------------------------- 1 | (export (version D) 2 | (design 3 | (source /home/atx/git/avr-mqtt-board/pcb/avr-sensors.sch) 4 | (date "Fri 08 Aug 2014 02:26:16 PM CEST") 5 | (tool "Eeschema (2014-jul-16 BZR unknown)-product")) 6 | (components 7 | (comp (ref IC2) 8 | (value ATMEGA328P-A) 9 | (footprint TQFP32) 10 | (libsource (lib atmel) (part ATMEGA328P-A)) 11 | (sheetpath (names /) (tstamps /)) 12 | (tstamp 539EAD8F)) 13 | (comp (ref IC1) 14 | (value REG1117) 15 | (footprint burr-brown-3-SOT223) 16 | (libsource (lib oshec-burr-brown-3) (part REG1117)) 17 | (sheetpath (names /) (tstamps /)) 18 | (tstamp 539EAE90)) 19 | (comp (ref C1) 20 | (value 1uF) 21 | (libsource (lib device) (part C)) 22 | (sheetpath (names /) (tstamps /)) 23 | (tstamp 539EAED2)) 24 | (comp (ref C5) 25 | (value 10uF) 26 | (libsource (lib device) (part C)) 27 | (sheetpath (names /) (tstamps /)) 28 | (tstamp 539EAEE1)) 29 | (comp (ref C2) 30 | (value 1uF) 31 | (libsource (lib device) (part C)) 32 | (sheetpath (names /) (tstamps /)) 33 | (tstamp 539EB0E8)) 34 | (comp (ref C3) 35 | (value 0.1uF) 36 | (libsource (lib device) (part C)) 37 | (sheetpath (names /) (tstamps /)) 38 | (tstamp 539EB0F7)) 39 | (comp (ref C4) 40 | (value 0.1uF) 41 | (libsource (lib device) (part C)) 42 | (sheetpath (names /) (tstamps /)) 43 | (tstamp 539EB268)) 44 | (comp (ref U1) 45 | (value LMT87) 46 | (libsource (lib lmt87) (part LMT87)) 47 | (sheetpath (names /) (tstamps /)) 48 | (tstamp 539EB6EA)) 49 | (comp (ref U2) 50 | (value MS5637) 51 | (libsource (lib ms5637) (part MS5637)) 52 | (sheetpath (names /) (tstamps /)) 53 | (tstamp 53A01E09)) 54 | (comp (ref U4) 55 | (value ENC28J60-SSOP) 56 | (footprint microchip-enc28j60-SSOP28) 57 | (libsource (lib oshec-microchip-enc28j60) (part ENC28J60-SSOP)) 58 | (sheetpath (names /) (tstamps /)) 59 | (tstamp 53A02114)) 60 | (comp (ref X1) 61 | (value 25MHz) 62 | (libsource (lib device) (part CRYSTAL)) 63 | (sheetpath (names /) (tstamps /)) 64 | (tstamp 53A02B23)) 65 | (comp (ref C8) 66 | (value 22pF) 67 | (libsource (lib device) (part C)) 68 | (sheetpath (names /) (tstamps /)) 69 | (tstamp 53A02BF2)) 70 | (comp (ref C9) 71 | (value 22pF) 72 | (libsource (lib device) (part C)) 73 | (sheetpath (names /) (tstamps /)) 74 | (tstamp 53A02C01)) 75 | (comp (ref C7) 76 | (value 10uF) 77 | (libsource (lib device) (part C)) 78 | (sheetpath (names /) (tstamps /)) 79 | (tstamp 53A03035)) 80 | (comp (ref R4) 81 | (value "2k32 1%") 82 | (libsource (lib device) (part R)) 83 | (sheetpath (names /) (tstamps /)) 84 | (tstamp 53A03044)) 85 | (comp (ref J7) 86 | (value OLED) 87 | (footprint dp_devices-M1X4) 88 | (libsource (lib dp_devices) (part CON_HEADER_1X04)) 89 | (sheetpath (names /) (tstamps /)) 90 | (tstamp 53A017A4)) 91 | (comp (ref R5) 92 | (value "49.9 1%") 93 | (libsource (lib device) (part R)) 94 | (sheetpath (names /) (tstamps /)) 95 | (tstamp 53A090D2)) 96 | (comp (ref R6) 97 | (value "49.9 1%") 98 | (libsource (lib device) (part R)) 99 | (sheetpath (names /) (tstamps /)) 100 | (tstamp 53A090E1)) 101 | (comp (ref R7) 102 | (value "49.9 1%") 103 | (libsource (lib device) (part R)) 104 | (sheetpath (names /) (tstamps /)) 105 | (tstamp 53A094E6)) 106 | (comp (ref R8) 107 | (value "49.9 1%") 108 | (libsource (lib device) (part R)) 109 | (sheetpath (names /) (tstamps /)) 110 | (tstamp 53A094F5)) 111 | (comp (ref C10) 112 | (value 0.1uF) 113 | (libsource (lib device) (part C)) 114 | (sheetpath (names /) (tstamps /)) 115 | (tstamp 53A09B06)) 116 | (comp (ref C11) 117 | (value 0.1uF) 118 | (libsource (lib device) (part C)) 119 | (sheetpath (names /) (tstamps /)) 120 | (tstamp 53A09D59)) 121 | (comp (ref R10) 122 | (value R) 123 | (libsource (lib device) (part R)) 124 | (sheetpath (names /) (tstamps /)) 125 | (tstamp 53A0C72B)) 126 | (comp (ref R9) 127 | (value R) 128 | (libsource (lib device) (part R)) 129 | (sheetpath (names /) (tstamps /)) 130 | (tstamp 53A0C73A)) 131 | (comp (ref C6) 132 | (value 0.1uF) 133 | (libsource (lib device) (part C)) 134 | (sheetpath (names /) (tstamps /)) 135 | (tstamp 53A0CD3C)) 136 | (comp (ref R1) 137 | (value 1k8) 138 | (libsource (lib device) (part R)) 139 | (sheetpath (names /) (tstamps /)) 140 | (tstamp 53A0D14F)) 141 | (comp (ref R2) 142 | (value 1k8) 143 | (libsource (lib device) (part R)) 144 | (sheetpath (names /) (tstamps /)) 145 | (tstamp 53A0D15E)) 146 | (comp (ref CON1) 147 | (value BARREL_JACK) 148 | (libsource (lib conn) (part BARREL_JACK)) 149 | (sheetpath (names /) (tstamps /)) 150 | (tstamp 53A1472F)) 151 | (comp (ref J3) 152 | (value ICSP) 153 | (footprint dp_devices-M2X5) 154 | (libsource (lib dp_devices) (part CON_HEADER_2X05-PTH)) 155 | (sheetpath (names /) (tstamps /)) 156 | (tstamp 53A14CA5)) 157 | (comp (ref D1) 158 | (value LED-PWR) 159 | (libsource (lib device) (part LED)) 160 | (sheetpath (names /) (tstamps /)) 161 | (tstamp 53A15EB6)) 162 | (comp (ref D2) 163 | (value LED-SYS) 164 | (libsource (lib device) (part LED)) 165 | (sheetpath (names /) (tstamps /)) 166 | (tstamp 53A15EC5)) 167 | (comp (ref R3) 168 | (value R) 169 | (libsource (lib device) (part R)) 170 | (sheetpath (names /) (tstamps /)) 171 | (tstamp 53A15EDE)) 172 | (comp (ref R11) 173 | (value R) 174 | (libsource (lib device) (part R)) 175 | (sheetpath (names /) (tstamps /)) 176 | (tstamp 53A15EED)) 177 | (comp (ref J4) 178 | (value PWR-1W) 179 | (footprint dp_devices-TERMINAL_BLOCK_2P_5) 180 | (libsource (lib dp_devices) (part CON_TERMINAL_BLOCK_02-5MM)) 181 | (sheetpath (names /) (tstamps /)) 182 | (tstamp 53A17FEA)) 183 | (comp (ref J5) 184 | (value PWR-DHT) 185 | (footprint dp_devices-TERMINAL_BLOCK_2P_5) 186 | (libsource (lib dp_devices) (part CON_TERMINAL_BLOCK_02-5MM)) 187 | (sheetpath (names /) (tstamps /)) 188 | (tstamp 53A18003)) 189 | (comp (ref J1) 190 | (value BUS) 191 | (footprint dp_devices-TERMINAL_BLOCK_2P_5) 192 | (libsource (lib dp_devices) (part CON_TERMINAL_BLOCK_02-5MM)) 193 | (sheetpath (names /) (tstamps /)) 194 | (tstamp 53A181B0)) 195 | (comp (ref H1) 196 | (value J0026D21BNL) 197 | (libsource (lib J0026D21BNL) (part J0026D21BNL)) 198 | (sheetpath (names /) (tstamps /)) 199 | (tstamp 53A19959)) 200 | (comp (ref C12) 201 | (value 0.1uF) 202 | (libsource (lib device) (part C)) 203 | (sheetpath (names /) (tstamps /)) 204 | (tstamp 53A1B542)) 205 | (comp (ref C14) 206 | (value 0.1uF) 207 | (libsource (lib device) (part C)) 208 | (sheetpath (names /) (tstamps /)) 209 | (tstamp 53A1B560)) 210 | (comp (ref J2) 211 | (value GPIO) 212 | (footprint dp_devices-M2X4) 213 | (libsource (lib dp_devices) (part CON_HEADER_2X04-PTH)) 214 | (sheetpath (names /) (tstamps /)) 215 | (tstamp 53A1D8AB)) 216 | (comp (ref J6) 217 | (value IO) 218 | (footprint dp_devices-M1X4) 219 | (libsource (lib dp_devices) (part CON_HEADER_1X04)) 220 | (sheetpath (names /) (tstamps /)) 221 | (tstamp 53A1EDB4))) 222 | (libparts 223 | (libpart (lib device) (part C) 224 | (description "Condensateur non polarise") 225 | (footprints 226 | (fp SM*) 227 | (fp C?) 228 | (fp C1-1)) 229 | (fields 230 | (field (name Reference) C) 231 | (field (name Value) C)) 232 | (pins 233 | (pin (num 1) (name ~) (type passive)) 234 | (pin (num 2) (name ~) (type passive)))) 235 | (libpart (lib device) (part CRYSTAL) 236 | (fields 237 | (field (name Reference) X) 238 | (field (name Value) CRYSTAL)) 239 | (pins 240 | (pin (num 1) (name 1) (type passive)) 241 | (pin (num 2) (name 2) (type passive)))) 242 | (libpart (lib device) (part LED) 243 | (footprints 244 | (fp LED-3MM) 245 | (fp LED-5MM) 246 | (fp LED-10MM) 247 | (fp LED-0603) 248 | (fp LED-0805) 249 | (fp LED-1206) 250 | (fp LEDV)) 251 | (fields 252 | (field (name Reference) D) 253 | (field (name Value) LED)) 254 | (pins 255 | (pin (num 1) (name A) (type passive)) 256 | (pin (num 2) (name K) (type passive)))) 257 | (libpart (lib device) (part R) 258 | (description Resistance) 259 | (footprints 260 | (fp R?) 261 | (fp SM0603) 262 | (fp SM0805) 263 | (fp R?-*) 264 | (fp SM1206)) 265 | (fields 266 | (field (name Reference) R) 267 | (field (name Value) R)) 268 | (pins 269 | (pin (num 1) (name ~) (type passive)) 270 | (pin (num 2) (name ~) (type passive)))) 271 | (libpart (lib conn) (part BARREL_JACK) 272 | (description "DC Barrel Jack") 273 | (fields 274 | (field (name Reference) CON) 275 | (field (name Value) BARREL_JACK)) 276 | (pins 277 | (pin (num 1) (name ~) (type passive)) 278 | (pin (num 2) (name ~) (type passive)) 279 | (pin (num 3) (name ~) (type passive)))) 280 | (libpart (lib atmel) (part ATMEGA168A-A) 281 | (aliases 282 | (alias ATMEGA48A-A) 283 | (alias ATMEGA48PA-A) 284 | (alias ATMEGA88A-A) 285 | (alias ATMEGA88PA-A) 286 | (alias ATMEGA168PA-A) 287 | (alias ATMEGA328-A) 288 | (alias ATMEGA328P-A)) 289 | (description "ATMEGA168A, TQFP32, 16k Flash, 1kB SRAM, 512B EEPROM") 290 | (docs http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet.pdf) 291 | (fields 292 | (field (name Reference) IC) 293 | (field (name Value) ATMEGA168A-A) 294 | (field (name Footprint) TQFP32)) 295 | (pins 296 | (pin (num 1) (name "(PCINT19/OC2B/INT1)PD3") (type BiDi)) 297 | (pin (num 2) (name "(PCINT20/XCK/T0)PD4") (type BiDi)) 298 | (pin (num 3) (name GND) (type power_in)) 299 | (pin (num 4) (name VCC) (type power_in)) 300 | (pin (num 5) (name GND) (type power_in)) 301 | (pin (num 6) (name VCC) (type power_in)) 302 | (pin (num 7) (name "(PCINT6/XTAL1/TOSC1)PB6") (type BiDi)) 303 | (pin (num 8) (name "(PCINT7/XTAL2/TOSC2)PB7") (type BiDi)) 304 | (pin (num 9) (name "(PCINT21/OC0B/T1)PD5") (type BiDi)) 305 | (pin (num 10) (name "(PCINT22/OC0A/AIN0)PD6") (type BiDi)) 306 | (pin (num 11) (name "(PCINT23/AIN1)PD7") (type BiDi)) 307 | (pin (num 12) (name "(PCINT0/CLKO/ICP1)PB0") (type BiDi)) 308 | (pin (num 13) (name "(PCINT1/OC1A)PB1") (type BiDi)) 309 | (pin (num 14) (name "(PCINT2/OC1B/~SS~)PB2") (type BiDi)) 310 | (pin (num 15) (name "(PCINT3/OC2A/MOSI)PB3") (type BiDi)) 311 | (pin (num 16) (name "(PCINT4/MISO)PB4") (type BiDi)) 312 | (pin (num 17) (name "(PCINT5/SCK)PB5") (type BiDi)) 313 | (pin (num 18) (name AVCC) (type power_in)) 314 | (pin (num 19) (name ADC6) (type input)) 315 | (pin (num 20) (name AREF) (type BiDi)) 316 | (pin (num 21) (name GND) (type power_in)) 317 | (pin (num 22) (name ADC7) (type input)) 318 | (pin (num 23) (name "(PCINT8/ADC0)PC0") (type BiDi)) 319 | (pin (num 24) (name "(PCINT9/ADC1)PC1") (type BiDi)) 320 | (pin (num 25) (name "(PCINT10/ADC2)PC2") (type BiDi)) 321 | (pin (num 26) (name "(PCINT11/ADC3)PC3") (type BiDi)) 322 | (pin (num 27) (name "(PCINT12/SDA/ADC4)PC4") (type BiDi)) 323 | (pin (num 28) (name "(PCINT14/SCL/ADC5)PC5") (type BiDi)) 324 | (pin (num 29) (name "(PCINT14/~RESET~)PC6") (type BiDi)) 325 | (pin (num 30) (name "(PCINT16/RXD)PD0") (type BiDi)) 326 | (pin (num 31) (name "(PCINT17/TXD)PD1") (type BiDi)) 327 | (pin (num 32) (name "(PCINT18/INT0)PD2") (type BiDi)))) 328 | (libpart (lib lmt87) (part LMT87) 329 | (fields 330 | (field (name Reference) U) 331 | (field (name Value) LMT87)) 332 | (pins 333 | (pin (num 1) (name Vdd) (type input)) 334 | (pin (num 2) (name GND) (type input)) 335 | (pin (num 3) (name OUT) (type input)) 336 | (pin (num 4) (name Vdd) (type input)) 337 | (pin (num 5) (name Vdd) (type input)))) 338 | (libpart (lib oshec-burr-brown-3) (part REG1117) 339 | (fields 340 | (field (name Reference) IC) 341 | (field (name Value) REG1117) 342 | (field (name Footprint) burr-brown-3-SOT223)) 343 | (pins 344 | (pin (num 1) (name GND) (type power_in)) 345 | (pin (num 2) (name VOUT) (type output)) 346 | (pin (num 3) (name VIN) (type input)))) 347 | (libpart (lib ms5637) (part MS5637) 348 | (fields 349 | (field (name Reference) U) 350 | (field (name Value) MS5637)) 351 | (pins 352 | (pin (num 1) (name Vdd) (type input)) 353 | (pin (num 2) (name SDA) (type input)) 354 | (pin (num 3) (name SCL) (type input)) 355 | (pin (num 4) (name GND) (type input)))) 356 | (libpart (lib dp_devices) (part CON_HEADER_1X04) 357 | (fields 358 | (field (name Reference) J) 359 | (field (name Value) CON_HEADER_1X04) 360 | (field (name Footprint) dp_devices-M1X4)) 361 | (pins 362 | (pin (num 1) (name 1) (type BiDi)) 363 | (pin (num 2) (name 2) (type BiDi)) 364 | (pin (num 3) (name 3) (type BiDi)) 365 | (pin (num 4) (name 4) (type BiDi)))) 366 | (libpart (lib dp_devices) (part CON_HEADER_2X04-PTH) 367 | (fields 368 | (field (name Reference) J) 369 | (field (name Value) CON_HEADER_2X04-PTH) 370 | (field (name Footprint) dp_devices-M2X4)) 371 | (pins 372 | (pin (num 1) (name P$1) (type passive)) 373 | (pin (num 2) (name P$2) (type passive)) 374 | (pin (num 3) (name P$3) (type passive)) 375 | (pin (num 4) (name P$4) (type passive)) 376 | (pin (num 5) (name P$5) (type passive)) 377 | (pin (num 6) (name P$6) (type passive)) 378 | (pin (num 7) (name P$7) (type passive)) 379 | (pin (num 8) (name P$8) (type passive)))) 380 | (libpart (lib dp_devices) (part CON_HEADER_2X05-PTH) 381 | (fields 382 | (field (name Reference) J) 383 | (field (name Value) CON_HEADER_2X05-PTH) 384 | (field (name Footprint) dp_devices-M2X5)) 385 | (pins 386 | (pin (num 1) (name 1) (type passive)) 387 | (pin (num 2) (name 2) (type passive)) 388 | (pin (num 3) (name 3) (type passive)) 389 | (pin (num 4) (name 4) (type passive)) 390 | (pin (num 5) (name 5) (type passive)) 391 | (pin (num 6) (name 6) (type passive)) 392 | (pin (num 7) (name 7) (type passive)) 393 | (pin (num 8) (name 8) (type passive)) 394 | (pin (num 9) (name 9) (type passive)) 395 | (pin (num 10) (name 10) (type passive)))) 396 | (libpart (lib dp_devices) (part CON_TERMINAL_BLOCK_02-5MM) 397 | (fields 398 | (field (name Reference) J) 399 | (field (name Value) CON_TERMINAL_BLOCK_02-5MM) 400 | (field (name Footprint) dp_devices-TERMINAL_BLOCK_2P_5)) 401 | (pins 402 | (pin (num 1) (name 1) (type passive)) 403 | (pin (num 2) (name 2) (type passive)))) 404 | (libpart (lib J0026D21BNL) (part J0026D21BNL) 405 | (fields 406 | (field (name Reference) H) 407 | (field (name Value) J0026D21BNL)) 408 | (pins 409 | (pin (num 1) (name TD+) (type input)) 410 | (pin (num 2) (name TD-) (type input)) 411 | (pin (num 3) (name TCT) (type input)) 412 | (pin (num 4) (name CHS) (type input)) 413 | (pin (num 5) (name CHS) (type input)) 414 | (pin (num 6) (name RCT) (type input)) 415 | (pin (num 7) (name RD+) (type input)) 416 | (pin (num 8) (name RD-) (type input)) 417 | (pin (num 9) (name LED_G_+) (type input)) 418 | (pin (num 10) (name LED_G_-) (type input)) 419 | (pin (num 11) (name LED_Y_-) (type input)) 420 | (pin (num 12) (name LED_Y_+) (type input)))) 421 | (libpart (lib oshec-microchip-enc28j60) (part ENC28J60-SSOP) 422 | (fields 423 | (field (name Reference) U) 424 | (field (name Value) ENC28J60-SSOP) 425 | (field (name Footprint) microchip-enc28j60-SSOP28)) 426 | (pins 427 | (pin (num 1) (name VCAP) (type power_in)) 428 | (pin (num 2) (name VSS) (type power_in)) 429 | (pin (num 3) (name CLKOUT) (type output)) 430 | (pin (num 4) (name INT) (type output)) 431 | (pin (num 5) (name WOL) (type output)) 432 | (pin (num 6) (name SO) (type output)) 433 | (pin (num 7) (name SI) (type input)) 434 | (pin (num 8) (name SCK) (type input)) 435 | (pin (num 9) (name CS) (type input)) 436 | (pin (num 10) (name RESET) (type input)) 437 | (pin (num 11) (name VSSRX) (type power_in)) 438 | (pin (num 12) (name TPIN-) (type input)) 439 | (pin (num 13) (name TPIN+) (type input)) 440 | (pin (num 14) (name RBIAS) (type passive)) 441 | (pin (num 15) (name VDDTX) (type power_in)) 442 | (pin (num 16) (name TPOUT-) (type output)) 443 | (pin (num 17) (name TPOUT+) (type output)) 444 | (pin (num 18) (name VSSTX) (type power_in)) 445 | (pin (num 19) (name VDDRX) (type power_in)) 446 | (pin (num 20) (name VDDPLL) (type power_in)) 447 | (pin (num 21) (name VSSPLL) (type power_in)) 448 | (pin (num 22) (name VSSOSC) (type power_in)) 449 | (pin (num 23) (name OSC1) (type input)) 450 | (pin (num 24) (name OSC2) (type output)) 451 | (pin (num 25) (name VDDOSC) (type power_in)) 452 | (pin (num 26) (name LEDB) (type output)) 453 | (pin (num 27) (name LEDA) (type output)) 454 | (pin (num 28) (name VDD) (type power_in))))) 455 | (libraries 456 | (library (logical device) 457 | (uri /usr/share/kicad/library/device.lib)) 458 | (library (logical conn) 459 | (uri /usr/share/kicad/library/conn.lib)) 460 | (library (logical atmel) 461 | (uri /usr/share/kicad/library/atmel.lib)) 462 | (library (logical dp_devices) 463 | (uri libs/dp_devices.lib)) 464 | (library (logical lmt87) 465 | (uri libs/lmt87.lib)) 466 | (library (logical oshec-burr-brown-3) 467 | (uri libs/oshec-burr-brown-3.lib)) 468 | (library (logical ms5637) 469 | (uri libs/ms5637.lib)) 470 | (library (logical oshec-microchip-enc28j60) 471 | (uri libs/oshec-microchip-enc28j60.lib)) 472 | (library (logical J0026D21BNL) 473 | (uri libs/J0026D21BNL.lib))) 474 | (nets 475 | (net (code 1) (name GND) 476 | (node (ref C11) (pin 2)) 477 | (node (ref CON1) (pin 2)) 478 | (node (ref C10) (pin 2)) 479 | (node (ref U4) (pin 22)) 480 | (node (ref J3) (pin 6)) 481 | (node (ref U4) (pin 18)) 482 | (node (ref J4) (pin 2)) 483 | (node (ref CON1) (pin 3)) 484 | (node (ref J3) (pin 4)) 485 | (node (ref U4) (pin 21)) 486 | (node (ref J3) (pin 8)) 487 | (node (ref J3) (pin 10)) 488 | (node (ref C7) (pin 2)) 489 | (node (ref R4) (pin 2)) 490 | (node (ref J5) (pin 1)) 491 | (node (ref IC1) (pin 1)) 492 | (node (ref IC2) (pin 21)) 493 | (node (ref U4) (pin 11)) 494 | (node (ref C12) (pin 1)) 495 | (node (ref C14) (pin 1)) 496 | (node (ref IC2) (pin 3)) 497 | (node (ref IC2) (pin 5)) 498 | (node (ref H1) (pin 5)) 499 | (node (ref H1) (pin 4)) 500 | (node (ref C2) (pin 1)) 501 | (node (ref D2) (pin 2)) 502 | (node (ref D1) (pin 2)) 503 | (node (ref C5) (pin 2)) 504 | (node (ref U1) (pin 2)) 505 | (node (ref U4) (pin 2)) 506 | (node (ref C1) (pin 2)) 507 | (node (ref U2) (pin 4)) 508 | (node (ref C3) (pin 1)) 509 | (node (ref J7) (pin 2)) 510 | (node (ref C9) (pin 2)) 511 | (node (ref C4) (pin 1)) 512 | (node (ref C8) (pin 2)) 513 | (node (ref C6) (pin 2))) 514 | (net (code 2) (name "Net-(H1-Pad2)") 515 | (node (ref U4) (pin 16)) 516 | (node (ref H1) (pin 2)) 517 | (node (ref R6) (pin 2))) 518 | (net (code 3) (name "Net-(H1-Pad8)") 519 | (node (ref R8) (pin 2)) 520 | (node (ref U4) (pin 12)) 521 | (node (ref H1) (pin 8))) 522 | (net (code 4) (name "Net-(H1-Pad1)") 523 | (node (ref R5) (pin 1)) 524 | (node (ref U4) (pin 17)) 525 | (node (ref H1) (pin 1))) 526 | (net (code 5) (name "Net-(H1-Pad7)") 527 | (node (ref U4) (pin 13)) 528 | (node (ref R7) (pin 1)) 529 | (node (ref H1) (pin 7))) 530 | (net (code 6) (name SDA) 531 | (node (ref U2) (pin 2)) 532 | (node (ref IC2) (pin 27)) 533 | (node (ref J6) (pin 4)) 534 | (node (ref J7) (pin 4)) 535 | (node (ref R1) (pin 2))) 536 | (net (code 7) (name +5V) 537 | (node (ref CON1) (pin 1)) 538 | (node (ref IC1) (pin 3)) 539 | (node (ref C1) (pin 1))) 540 | (net (code 8) (name SCL) 541 | (node (ref J7) (pin 3)) 542 | (node (ref R2) (pin 2)) 543 | (node (ref J6) (pin 3)) 544 | (node (ref U2) (pin 3)) 545 | (node (ref IC2) (pin 28))) 546 | (net (code 9) (name "Net-(R10-Pad2)") 547 | (node (ref R10) (pin 2)) 548 | (node (ref U4) (pin 26))) 549 | (net (code 10) (name "Net-(R9-Pad2)") 550 | (node (ref R9) (pin 2)) 551 | (node (ref U4) (pin 27))) 552 | (net (code 11) (name "Net-(H1-Pad10)") 553 | (node (ref H1) (pin 10)) 554 | (node (ref R10) (pin 1))) 555 | (net (code 12) (name RX) 556 | (node (ref J6) (pin 2)) 557 | (node (ref IC2) (pin 30))) 558 | (net (code 13) (name TX) 559 | (node (ref J6) (pin 1)) 560 | (node (ref IC2) (pin 31))) 561 | (net (code 14) (name "Net-(C11-Pad1)") 562 | (node (ref R8) (pin 1)) 563 | (node (ref R7) (pin 2)) 564 | (node (ref H1) (pin 6)) 565 | (node (ref C11) (pin 1))) 566 | (net (code 15) (name "Net-(C10-Pad1)") 567 | (node (ref R6) (pin 1)) 568 | (node (ref H1) (pin 3)) 569 | (node (ref R5) (pin 2)) 570 | (node (ref C10) (pin 1))) 571 | (net (code 16) (name +3.3V) 572 | (node (ref U1) (pin 1)) 573 | (node (ref C5) (pin 1)) 574 | (node (ref U4) (pin 19)) 575 | (node (ref IC2) (pin 6)) 576 | (node (ref U4) (pin 28)) 577 | (node (ref IC1) (pin 2)) 578 | (node (ref C12) (pin 2)) 579 | (node (ref U1) (pin 4)) 580 | (node (ref U4) (pin 15)) 581 | (node (ref U1) (pin 5)) 582 | (node (ref U4) (pin 25)) 583 | (node (ref IC2) (pin 4)) 584 | (node (ref IC2) (pin 18)) 585 | (node (ref U4) (pin 20)) 586 | (node (ref C2) (pin 2)) 587 | (node (ref C3) (pin 2)) 588 | (node (ref H1) (pin 12)) 589 | (node (ref H1) (pin 9)) 590 | (node (ref J5) (pin 2)) 591 | (node (ref U2) (pin 1)) 592 | (node (ref C14) (pin 2)) 593 | (node (ref R2) (pin 1)) 594 | (node (ref R1) (pin 1)) 595 | (node (ref C6) (pin 1)) 596 | (node (ref J7) (pin 1)) 597 | (node (ref J4) (pin 1)) 598 | (node (ref R3) (pin 1)) 599 | (node (ref J3) (pin 2))) 600 | (net (code 17) (name "Net-(H1-Pad11)") 601 | (node (ref R9) (pin 1)) 602 | (node (ref H1) (pin 11))) 603 | (net (code 18) (name T_OUT) 604 | (node (ref IC2) (pin 22)) 605 | (node (ref U1) (pin 3))) 606 | (net (code 19) (name SCK) 607 | (node (ref U4) (pin 8)) 608 | (node (ref IC2) (pin 17)) 609 | (node (ref J3) (pin 7))) 610 | (net (code 20) (name MISO) 611 | (node (ref U4) (pin 6)) 612 | (node (ref IC2) (pin 16)) 613 | (node (ref J3) (pin 9))) 614 | (net (code 21) (name AVR-RST) 615 | (node (ref IC2) (pin 29)) 616 | (node (ref J3) (pin 5))) 617 | (net (code 22) (name "Net-(J3-Pad3)") 618 | (node (ref J3) (pin 3))) 619 | (net (code 23) (name MOSI) 620 | (node (ref J3) (pin 1)) 621 | (node (ref IC2) (pin 15)) 622 | (node (ref U4) (pin 7))) 623 | (net (code 24) (name "Net-(D1-Pad1)") 624 | (node (ref D1) (pin 1)) 625 | (node (ref R3) (pin 2))) 626 | (net (code 25) (name "Net-(D2-Pad1)") 627 | (node (ref D2) (pin 1)) 628 | (node (ref R11) (pin 2))) 629 | (net (code 26) (name GPIO-7) 630 | (node (ref IC2) (pin 11)) 631 | (node (ref J2) (pin 8))) 632 | (net (code 27) (name "Net-(C9-Pad1)") 633 | (node (ref X1) (pin 2)) 634 | (node (ref U4) (pin 23)) 635 | (node (ref C9) (pin 1))) 636 | (net (code 28) (name "Net-(C8-Pad1)") 637 | (node (ref C8) (pin 1)) 638 | (node (ref X1) (pin 1)) 639 | (node (ref U4) (pin 24))) 640 | (net (code 29) (name "Net-(R4-Pad1)") 641 | (node (ref R4) (pin 1)) 642 | (node (ref U4) (pin 14))) 643 | (net (code 30) (name DHT-BUS) 644 | (node (ref J1) (pin 2)) 645 | (node (ref IC2) (pin 12))) 646 | (net (code 31) (name "Net-(IC2-Pad19)") 647 | (node (ref IC2) (pin 19))) 648 | (net (code 32) (name GPIO-0) 649 | (node (ref IC2) (pin 26)) 650 | (node (ref J2) (pin 1))) 651 | (net (code 33) (name GPIO-1) 652 | (node (ref IC2) (pin 25)) 653 | (node (ref J2) (pin 2))) 654 | (net (code 34) (name LED-SYS) 655 | (node (ref R11) (pin 1)) 656 | (node (ref IC2) (pin 24))) 657 | (net (code 35) (name E-CS) 658 | (node (ref U4) (pin 9)) 659 | (node (ref IC2) (pin 14))) 660 | (net (code 36) (name GPIO-2) 661 | (node (ref IC2) (pin 23)) 662 | (node (ref J2) (pin 3))) 663 | (net (code 37) (name 1WIRE) 664 | (node (ref J1) (pin 1)) 665 | (node (ref IC2) (pin 13))) 666 | (net (code 38) (name GPIO-6) 667 | (node (ref IC2) (pin 10)) 668 | (node (ref J2) (pin 7))) 669 | (net (code 39) (name GPIO-5) 670 | (node (ref IC2) (pin 9)) 671 | (node (ref J2) (pin 6))) 672 | (net (code 40) (name E-RST) 673 | (node (ref U4) (pin 10)) 674 | (node (ref IC2) (pin 8))) 675 | (net (code 41) (name AVR-CLK) 676 | (node (ref U4) (pin 3)) 677 | (node (ref IC2) (pin 7))) 678 | (net (code 42) (name GPIO-4) 679 | (node (ref J2) (pin 5)) 680 | (node (ref IC2) (pin 2))) 681 | (net (code 43) (name "Net-(C4-Pad2)") 682 | (node (ref IC2) (pin 20)) 683 | (node (ref C4) (pin 2))) 684 | (net (code 44) (name "Net-(C7-Pad1)") 685 | (node (ref C7) (pin 1)) 686 | (node (ref U4) (pin 1))) 687 | (net (code 45) (name GPIO-3) 688 | (node (ref J2) (pin 4)) 689 | (node (ref IC2) (pin 1))) 690 | (net (code 46) (name E-INT) 691 | (node (ref U4) (pin 5)) 692 | (node (ref U4) (pin 4)) 693 | (node (ref IC2) (pin 32))))) -------------------------------------------------------------------------------- /pcb/avr-sensors.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/pcb/avr-sensors.pdf -------------------------------------------------------------------------------- /pcb/avr-sensors.pro: -------------------------------------------------------------------------------- 1 | update=Wed 18 Jun 2014 10:38:20 AM CEST 2 | version=1 3 | last_client=eeschema 4 | [general] 5 | version=1 6 | [pcbnew] 7 | version=1 8 | LastNetListRead=avr-sensors.net 9 | UseCmpFile=1 10 | PadDrill=" 1.100000" 11 | PadDrillOvalY=" 1.100000" 12 | PadSizeH=" 1.600000" 13 | PadSizeV=" 1.600000" 14 | PcbTextSizeV=" 1.500000" 15 | PcbTextSizeH=" 1.500000" 16 | PcbTextThickness=" 0.300000" 17 | ModuleTextSizeV=" 1.000000" 18 | ModuleTextSizeH=" 1.000000" 19 | ModuleTextSizeThickness=" 0.150000" 20 | SolderMaskClearance=" 0.000000" 21 | SolderMaskMinWidth=" 0.000000" 22 | DrawSegmentWidth=" 0.200000" 23 | BoardOutlineThickness=" 0.100000" 24 | ModuleOutlineThickness=" 0.150000" 25 | [pcbnew/libraries] 26 | LibName1=sockets 27 | LibName2=connect 28 | LibName3=discret 29 | LibName4=pin_array 30 | LibName5=divers 31 | LibName6=smd_capacitors 32 | LibName7=smd_resistors 33 | LibName8=smd_crystal&oscillator 34 | LibName9=smd_dil 35 | LibName10=smd_transistors 36 | LibName11=libcms 37 | LibName12=display 38 | LibName13=led 39 | LibName14=dip_sockets 40 | LibName15=pga_sockets 41 | LibName16=valves 42 | LibName17=libs/dp_devices 43 | LibName18=libs/oshec-burr-brown-3 44 | LibName19=libs/oshec-microchip-enc28j60 45 | LibName20=libs/ms5637 46 | LibName21=libs/J0026D21BNL 47 | LibDir= 48 | [cvpcb] 49 | version=1 50 | NetIExt=net 51 | [cvpcb/libraries] 52 | EquName1=devcms 53 | [eeschema] 54 | version=1 55 | LibDir= 56 | NetFmtName=PcbnewAdvanced 57 | RptD_X=0 58 | RptD_Y=100 59 | RptLab=1 60 | LabSize=31 61 | [eeschema/libraries] 62 | LibName1=power 63 | LibName2=device 64 | LibName3=transistors 65 | LibName4=conn 66 | LibName5=linear 67 | LibName6=regul 68 | LibName7=74xx 69 | LibName8=cmos4000 70 | LibName9=adc-dac 71 | LibName10=memory 72 | LibName11=xilinx 73 | LibName12=special 74 | LibName13=microcontrollers 75 | LibName14=dsp 76 | LibName15=microchip 77 | LibName16=analog_switches 78 | LibName17=motorola 79 | LibName18=texas 80 | LibName19=intel 81 | LibName20=audio 82 | LibName21=interface 83 | LibName22=digital-audio 84 | LibName23=philips 85 | LibName24=display 86 | LibName25=cypress 87 | LibName26=siliconi 88 | LibName27=opto 89 | LibName28=atmel 90 | LibName29=contrib 91 | LibName30=valves 92 | LibName31=libs/oshec-burr-brown-3 93 | LibName32=libs/lmt87 94 | LibName33=libs/dp_devices 95 | LibName34=libs/ms5637 96 | LibName35=libs/oshec-microchip-enc28j60 97 | LibName36=libs/bh1721 98 | LibName37=libs/J0026D21BNL 99 | -------------------------------------------------------------------------------- /pcb/avr-sensors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /home/atx/kicad/avr-sensors/avr-sensors.sch 5 | Sun Jul 27 19:05:44 2014 6 | Eeschema (2014-07-17 BZR 5006)-product 7 | 8 | 9 | 10 | ATMEGA328P-A 11 | TQFP32 12 | 13 | 14 | 539EAD8F 15 | 16 | 17 | REG1117 18 | burr-brown-3-SOT223 19 | 20 | 21 | 539EAE90 22 | 23 | 24 | 1uF 25 | 26 | 27 | 539EAED2 28 | 29 | 30 | 10uF 31 | 32 | 33 | 539EAEE1 34 | 35 | 36 | 1uF 37 | 38 | 39 | 539EB0E8 40 | 41 | 42 | 0.1uF 43 | 44 | 45 | 539EB0F7 46 | 47 | 48 | 0.1uF 49 | 50 | 51 | 539EB268 52 | 53 | 54 | LMT87 55 | 56 | 57 | 539EB6EA 58 | 59 | 60 | MS5637 61 | 62 | 63 | 53A01E09 64 | 65 | 66 | ENC28J60-SSOP 67 | microchip-enc28j60-SSOP28 68 | 69 | 70 | 53A02114 71 | 72 | 73 | 25MHz 74 | 75 | 76 | 53A02B23 77 | 78 | 79 | C 80 | 81 | 82 | 53A02BF2 83 | 84 | 85 | C 86 | 87 | 88 | 53A02C01 89 | 90 | 91 | 10uF 92 | 93 | 94 | 53A03035 95 | 96 | 97 | 2k32 1% 98 | 99 | 100 | 53A03044 101 | 102 | 103 | OLED 104 | dp_devices-M1X4 105 | 106 | 107 | 53A017A4 108 | 109 | 110 | 49k9 1% 111 | 112 | 113 | 53A090D2 114 | 115 | 116 | 49k9 1% 117 | 118 | 119 | 53A090E1 120 | 121 | 122 | 49k9 1% 123 | 124 | 125 | 53A094E6 126 | 127 | 128 | 49k9 1% 129 | 130 | 131 | 53A094F5 132 | 133 | 134 | 0.1uF 135 | 136 | 137 | 53A09B06 138 | 139 | 140 | 0.1uF 141 | 142 | 143 | 53A09D59 144 | 145 | 146 | R 147 | 148 | 149 | 53A0C72B 150 | 151 | 152 | R 153 | 154 | 155 | 53A0C73A 156 | 157 | 158 | 0.1uF 159 | 160 | 161 | 53A0CD3C 162 | 163 | 164 | 1k8 165 | 166 | 167 | 53A0D14F 168 | 169 | 170 | 1k8 171 | 172 | 173 | 53A0D15E 174 | 175 | 176 | BARREL_JACK 177 | 178 | 179 | 53A1472F 180 | 181 | 182 | ICSP 183 | dp_devices-M2X5 184 | 185 | 186 | 53A14CA5 187 | 188 | 189 | LED-PWR 190 | 191 | 192 | 53A15EB6 193 | 194 | 195 | LED-SYS 196 | 197 | 198 | 53A15EC5 199 | 200 | 201 | R 202 | 203 | 204 | 53A15EDE 205 | 206 | 207 | R 208 | 209 | 210 | 53A15EED 211 | 212 | 213 | PWR-1W 214 | dp_devices-TERMINAL_BLOCK_2P_5 215 | 216 | 217 | 53A17FEA 218 | 219 | 220 | PWR-DHT 221 | dp_devices-TERMINAL_BLOCK_2P_5 222 | 223 | 224 | 53A18003 225 | 226 | 227 | BUS 228 | dp_devices-TERMINAL_BLOCK_2P_5 229 | 230 | 231 | 53A181B0 232 | 233 | 234 | J0026D21BNL 235 | 236 | 237 | 53A19959 238 | 239 | 240 | 0.1uF 241 | 242 | 243 | 53A1B542 244 | 245 | 246 | 0.1uF 247 | 248 | 249 | 53A1B560 250 | 251 | 252 | GPIO 253 | dp_devices-M2X4 254 | 255 | 256 | 53A1D8AB 257 | 258 | 259 | IO 260 | dp_devices-M1X4 261 | 262 | 263 | 53A1EDB4 264 | 265 | 266 | 267 | 268 | 269 | U 270 | LMT87 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | ATMEGA48A-A 283 | ATMEGA48PA-A 284 | ATMEGA88A-A 285 | ATMEGA88PA-A 286 | ATMEGA168PA-A 287 | ATMEGA328-A 288 | ATMEGA328P-A 289 | 290 | 291 | IC 292 | ATMEGA168A-A 293 | TQFP32 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | IC 333 | REG1117 334 | burr-brown-3-SOT223 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | U 345 | MS5637 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | J 357 | CON_HEADER_1X04 358 | dp_devices-M1X4 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | J 370 | CON_HEADER_2X04-PTH 371 | dp_devices-M2X4 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | J 387 | CON_HEADER_2X05-PTH 388 | dp_devices-M2X5 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | J 406 | CON_TERMINAL_BLOCK_02-5MM 407 | dp_devices-TERMINAL_BLOCK_2P_5 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | U 417 | ENC28J60-SSOP 418 | microchip-enc28j60-SSOP28 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | H 454 | J0026D21BNL 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | SM* 474 | C? 475 | C1-1 476 | 477 | 478 | C 479 | C 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | CON 489 | BARREL_JACK 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | X 500 | CRYSTAL 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | LED-3MM 510 | LED-5MM 511 | LED-10MM 512 | LED-0603 513 | LED-0805 514 | LED-1206 515 | LEDV 516 | 517 | 518 | D 519 | LED 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | R? 529 | SM0603 530 | SM0805 531 | R?-* 532 | SM1206 533 | 534 | 535 | R 536 | R 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | libs/oshec-burr-brown-3.lib 547 | 548 | 549 | libs/J0026D21BNL.lib 550 | 551 | 552 | libs/lmt87.lib 553 | 554 | 555 | libs/dp_devices.lib 556 | 557 | 558 | libs/ms5637.lib 559 | 560 | 561 | libs/oshec-microchip-enc28j60.lib 562 | 563 | 564 | /home/atx/kicad/avr-sensors/avr-sensors-cache.lib 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | -------------------------------------------------------------------------------- /pcb/libs/J0026D21BNL.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 Date: Wed 18 Jun 2014 10:37:34 AM CEST 2 | #encoding utf-8 3 | # 4 | # J0026D21BNL 5 | # 6 | DEF J0026D21BNL H 0 40 Y Y 1 F N 7 | F0 "H" 0 -750 60 H V C CNN 8 | F1 "J0026D21BNL" 0 -900 60 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 | S 200 700 -200 -800 0 1 0 N 13 | X TD+ 1 -350 650 146 R 50 50 1 1 I 14 | X TD- 2 -350 450 146 R 50 50 1 1 I 15 | X TCT 3 -350 550 146 R 50 50 1 1 I 16 | X CHS 4 -350 -50 146 R 50 50 1 1 I 17 | X CHS 5 -350 -150 146 R 50 50 1 1 I 18 | X RCT 6 -350 200 146 R 50 50 1 1 I 19 | X RD+ 7 -350 300 146 R 50 50 1 1 I 20 | X RD- 8 -350 100 146 R 50 50 1 1 I 21 | X LED_G_+ 9 -350 -300 146 R 50 50 1 1 I 22 | X LED_G_- 10 -350 -400 146 R 50 50 1 1 I 23 | X LED_Y_- 11 -350 -650 146 R 50 50 1 1 I 24 | X LED_Y_+ 12 -350 -550 146 R 50 50 1 1 I 25 | ENDDRAW 26 | ENDDEF 27 | # 28 | #End Library 29 | -------------------------------------------------------------------------------- /pcb/libs/J0026D21BNL.mod: -------------------------------------------------------------------------------- 1 | PCBNEW-LibModule-V1 Wed 18 Jun 2014 10:40:29 AM CEST 2 | # encoding utf-8 3 | Units mm 4 | $INDEX 5 | J0026D21BNL 6 | $EndINDEX 7 | $MODULE J0026D21BNL 8 | Po 0 0 0 15 53A1507B 00000000 ~~ 9 | Li J0026D21BNL 10 | Sc 0 11 | AR 12 | Op 0 0 0 13 | T0 13 -28.5 1 1 0 0.15 N V 21 N "J0026D21BNL" 14 | T1 16.5 -26 1 1 0 0.15 N V 21 N "VAL**" 15 | DS 0 0 0.5 0 0.15 21 16 | DS 0.5 21.5 0 21.5 0.15 21 17 | DS 0 21.5 0 0 0.15 21 18 | DS 16 21.5 0.5 21.5 0.15 21 19 | DS 16 0 16 21.5 0.15 21 20 | DS 16 0 16 21.5 0.15 21 21 | DS 0.25 0 16 0 0.15 21 22 | DS 16 0 16 21.5 0.15 21 23 | DS 16 0 16 21.5 0.15 21 24 | DS 0.25 0 16 0 0.15 21 25 | $PAD 26 | Sh "4" C 4.3 4.3 0 0 0 27 | Dr 3.3 0 0 28 | At STD N 00E0FFFF 29 | Ne 0 "" 30 | Po 13.75 10.75 31 | $EndPAD 32 | $PAD 33 | Sh "4" C 4.3 4.3 0 0 0 34 | Dr 3.3 0 0 35 | At STD N 00E0FFFF 36 | Ne 0 "" 37 | Po 2.25 10.75 38 | $EndPAD 39 | $PAD 40 | Sh "1" C 1.3 1.3 0 0 0 41 | Dr 0.95 0 0 42 | At STD N 00E0FFFF 43 | Ne 0 "" 44 | Po 13.5 17.25 45 | $EndPAD 46 | $PAD 47 | Sh "2" C 1.3 1.3 0 0 0 48 | Dr 0.95 0 0 49 | At STD N 00E0FFFF 50 | Ne 0 "" 51 | Po 12.25 19.75 52 | $EndPAD 53 | $PAD 54 | Sh "3" C 1.3 1.3 0 0 0 55 | Dr 0.95 0 0 56 | At STD N 00E0FFFF 57 | Ne 0 "" 58 | Po 10.5 17.25 59 | $EndPAD 60 | $PAD 61 | Sh "4" C 1.3 1.3 0 0 0 62 | Dr 0.95 0 0 63 | At STD N 00E0FFFF 64 | Ne 0 "" 65 | Po 9.25 19.75 66 | $EndPAD 67 | $PAD 68 | Sh "5" C 1.3 1.3 0 0 0 69 | Dr 0.95 0 0 70 | At STD N 00E0FFFF 71 | Ne 0 "" 72 | Po 7.5 17.25 73 | $EndPAD 74 | $PAD 75 | Sh "6" C 1.3 1.3 0 0 0 76 | Dr 0.95 0 0 77 | At STD N 00E0FFFF 78 | Ne 0 "" 79 | Po 6.25 19.75 80 | $EndPAD 81 | $PAD 82 | Sh "7" C 1.3 1.3 0 0 0 83 | Dr 0.95 0 0 84 | At STD N 00E0FFFF 85 | Ne 0 "" 86 | Po 4.5 17.25 87 | $EndPAD 88 | $PAD 89 | Sh "8" C 1.3 1.3 0 0 0 90 | Dr 0.95 0 0 91 | At STD N 00E0FFFF 92 | Ne 0 "" 93 | Po 3.25 19.75 94 | $EndPAD 95 | $PAD 96 | Sh "10" C 1.6 1.6 0 0 0 97 | Dr 1.1 0 0 98 | At STD N 00E0FFFF 99 | Ne 0 "" 100 | Po 11.75 7.25 101 | $EndPAD 102 | $PAD 103 | Sh "9" C 1.6 1.6 0 0 0 104 | Dr 1.1 0 0 105 | At STD N 00E0FFFF 106 | Ne 0 "" 107 | Po 14.25 5.75 108 | $EndPAD 109 | $PAD 110 | Sh "12" C 1.6 1.6 0 0 0 111 | Dr 1.1 0 0 112 | At STD N 00E0FFFF 113 | Ne 0 "" 114 | Po 1.75 7.25 115 | $EndPAD 116 | $PAD 117 | Sh "11" C 1.6 1.6 0 0 0 118 | Dr 1.1 0 0 119 | At STD N 00E0FFFF 120 | Ne 0 "" 121 | Po 4.25 5.75 122 | $EndPAD 123 | $PAD 124 | Sh "4" C 2.1 2.1 0 0 0 125 | Dr 1.65 0 0 126 | At STD N 00E0FFFF 127 | Ne 0 "" 128 | Po 16 13.75 129 | $EndPAD 130 | $PAD 131 | Sh "4" C 2.1 2.1 0 0 0 132 | Dr 1.6 0 0 133 | At STD N 00E0FFFF 134 | Ne 0 "" 135 | Po 0 13.75 136 | $EndPAD 137 | $EndMODULE J0026D21BNL 138 | $EndLIBRARY 139 | -------------------------------------------------------------------------------- /pcb/libs/bh1721.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 Date: Tue 17 Jun 2014 08:37:10 PM CEST 2 | #encoding utf-8 3 | # 4 | # BH1721 5 | # 6 | DEF BH1721 U 0 40 Y Y 1 F N 7 | F0 "U" -50 300 60 H V C CNN 8 | F1 "BH1721" -50 -400 60 H V C CNN 9 | F2 "~" 0 -50 60 H V C CNN 10 | F3 "~" 0 -50 60 H V C CNN 11 | DRAW 12 | S 350 250 -50 -300 0 1 0 f 13 | X Vcc 1 250 350 98 D 50 50 1 1 I 14 | X DVI 2 -150 150 98 R 50 50 1 1 I 15 | X SCL 3 -150 -50 98 R 50 50 1 1 I 16 | X SDA 4 -150 -150 98 R 50 50 1 1 I 17 | X GND 5 250 -400 98 U 50 50 1 1 I 18 | ENDDRAW 19 | ENDDEF 20 | # 21 | #End Library 22 | -------------------------------------------------------------------------------- /pcb/libs/lmt87.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 Date: Mon 16 Jun 2014 11:17:32 AM CEST 2 | #encoding utf-8 3 | # 4 | # LMT87 5 | # 6 | DEF LMT87 U 0 40 Y Y 1 F N 7 | F0 "U" 300 100 60 H V C CNN 8 | F1 "LMT87" 100 -300 60 H V C CNN 9 | F2 "~" 150 -150 60 H V C CNN 10 | F3 "~" 150 -150 60 H V C CNN 11 | DRAW 12 | S -200 200 200 -200 0 1 0 f 13 | X Vdd 1 100 350 150 D 47 47 1 1 I 14 | X GND 2 -100 -350 150 U 47 47 1 1 I 15 | X OUT 3 350 -100 150 L 47 47 1 1 I 16 | X Vdd 4 0 350 150 D 47 47 1 1 I 17 | X Vdd 5 -100 350 150 D 47 47 1 1 I 18 | ENDDRAW 19 | ENDDEF 20 | # 21 | #End Library 22 | -------------------------------------------------------------------------------- /pcb/libs/ms5637.bak: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 Date: Tue 17 Jun 2014 12:49:28 PM CEST 2 | #encoding utf-8 3 | # 4 | # MS5637 5 | # 6 | DEF MS5637 U 0 40 Y Y 1 F N 7 | F0 "U" -100 250 60 H V C CNN 8 | F1 "MS5637" -150 -300 60 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 | S 150 200 -150 -200 0 1 0 f 13 | X Vdd 1 100 300 94 D 50 50 1 1 I 14 | X SDA 2 -250 50 94 R 50 50 1 1 I 15 | X GND ~ 100 -300 94 U 50 50 1 1 I 16 | X SCL ~ -250 -50 94 R 50 50 1 1 I 17 | ENDDRAW 18 | ENDDEF 19 | # 20 | #End Library 21 | -------------------------------------------------------------------------------- /pcb/libs/ms5637.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 Date: Wed 18 Jun 2014 08:51:12 AM CEST 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /pcb/libs/ms5637.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 Date: Wed 18 Jun 2014 08:51:12 AM CEST 2 | #encoding utf-8 3 | # 4 | # MS5637 5 | # 6 | DEF MS5637 U 0 40 Y Y 1 F N 7 | F0 "U" -100 250 60 H V C CNN 8 | F1 "MS5637" -150 -300 60 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 | S 150 200 -150 -200 0 1 0 f 13 | X Vdd 1 100 300 94 D 50 50 1 1 I 14 | X SDA 2 -250 50 94 R 50 50 1 1 I 15 | X SCL 3 -250 -50 94 R 50 50 1 1 I 16 | X GND 4 100 -300 94 U 50 50 1 1 I 17 | ENDDRAW 18 | ENDDEF 19 | # 20 | #End Library 21 | -------------------------------------------------------------------------------- /pcb/libs/ms5637.mod: -------------------------------------------------------------------------------- 1 | PCBNEW-LibModule-V1 Wed 18 Jun 2014 09:21:56 AM CEST 2 | # encoding utf-8 3 | Units mm 4 | $INDEX 5 | ms5637 6 | $EndINDEX 7 | $MODULE ms5637 8 | Po 0 0 0 15 53A1365B 00000000 ~~ 9 | Li ms5637 10 | Sc 0 11 | AR 12 | Op 0 0 0 13 | T0 -0.5 -3.5 1 1 0 0.15 N V 21 N "ms5637" 14 | T1 -0.5 2.5 1 1 0 0.15 N V 21 N "VAL**" 15 | DS -2 -2 1 -2 0.15 21 16 | DS 1 -2 1 1 0.15 21 17 | DS 1 1 -2 1 0.15 21 18 | DS -2 1 -2 -2 0.15 21 19 | $PAD 20 | Sh "1" R 1.5 1.5 0 0 0 21 | Dr 0 0 0 22 | At SMD N 00888000 23 | Ne 0 "" 24 | Po 0.5 -1.5 25 | $EndPAD 26 | $PAD 27 | Sh "2" R 1.5 1.5 0 0 0 28 | Dr 0 0 0 29 | At SMD N 00888000 30 | Ne 0 "" 31 | Po 0.5 0.5 32 | $EndPAD 33 | $PAD 34 | Sh "3" R 1.5 1.5 0 0 0 35 | Dr 0 0 0 36 | At SMD N 00888000 37 | Ne 0 "" 38 | Po -1.5 0.5 39 | $EndPAD 40 | $PAD 41 | Sh "4" R 1.5 1.5 0 0 0 42 | Dr 0 0 0 43 | At SMD N 00888000 44 | Ne 0 "" 45 | Po -1.5 -1.5 46 | $EndPAD 47 | $EndMODULE ms5637 48 | $EndLIBRARY 49 | -------------------------------------------------------------------------------- /pcb/libs/oshec-microchip-enc28j60.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 29/04/2008-12:23:02 2 | # Converted with eagle2kicad.ulp Version 0.9 3 | # Device count = 3 4 | # 5 | # Dev Name: ENC28J60-DIL 6 | # Package Name: DIL28-3 7 | # Dev Tech: '' 8 | # Dev Prefix: U 9 | # Gate count = 1 10 | # 11 | DEF ENC28J60-DIL U 0 40 Y Y 1 L N 12 | # Gate Name: G$1 13 | # Symbol Name: ENC28J60 14 | F0 "U" -800 900 50 H V L B 15 | F1 "ENC28J60-DIL" 200 -600 50 H V L B 16 | F2 "microchip-enc28j60-DIL28-3" 0 150 50 H I C C 17 | DRAW 18 | P 2 1 0 0 -800 800 -800 -500 19 | P 2 1 0 0 -800 -500 600 -500 20 | P 2 1 0 0 600 -500 600 800 21 | P 2 1 0 0 600 800 -800 800 22 | X CLKOUT 3 -1000 -200 200 R 40 40 1 1 O 23 | X CS 9 -1000 0 200 R 40 40 1 1 I I 24 | X INT 4 -1000 700 200 R 40 40 1 1 O I 25 | X LEDA 27 800 100 200 L 40 40 1 1 O 26 | X LEDB 26 800 0 200 L 40 40 1 1 O 27 | X OSC1 23 800 -300 200 L 40 40 1 1 I C 28 | X OSC2 24 800 -400 200 L 40 40 1 1 O C 29 | X RBIAS 14 -1000 -400 200 R 40 40 1 1 P 30 | X RESET 10 -1000 500 200 R 40 40 1 1 I I 31 | X SCK 8 -1000 100 200 R 40 40 1 1 I C 32 | X SI 7 -1000 200 200 R 40 40 1 1 I 33 | X SO 6 -1000 300 200 R 40 40 1 1 O 34 | X TPIN+ 13 800 400 200 L 40 40 1 1 I 35 | X TPIN- 12 800 300 200 L 40 40 1 1 I 36 | X TPOUT+ 17 800 700 200 L 40 40 1 1 O 37 | X TPOUT- 16 800 600 200 L 40 40 1 1 O 38 | X VCAP 1 -1000 -300 200 R 40 40 1 1 W 39 | X VDD 28 100 1000 200 D 40 40 1 1 W 40 | X VDDOSC 25 0 1000 200 D 40 40 1 1 W 41 | X VDDPLL 20 -200 1000 200 D 40 40 1 1 W 42 | X VDDRX 19 -300 1000 200 D 40 40 1 1 W 43 | X VDDTX 15 -100 1000 200 D 40 40 1 1 W 44 | X VSS 2 100 -700 200 U 40 40 1 1 W 45 | X VSSOSC 22 0 -700 200 U 40 40 1 1 W 46 | X VSSPLL 21 -200 -700 200 U 40 40 1 1 W 47 | X VSSRX 11 -300 -700 200 U 40 40 1 1 W 48 | X VSSTX 18 -100 -700 200 U 40 40 1 1 W 49 | X WOL 5 -1000 600 200 R 40 40 1 1 O I 50 | ENDDRAW 51 | ENDDEF 52 | 53 | # 54 | # Dev Name: ENC28J60-SO 55 | # Package Name: SO28W 56 | # Dev Tech: '' 57 | # Dev Prefix: U 58 | # Gate count = 1 59 | # 60 | DEF ENC28J60-SO U 0 40 Y Y 1 L N 61 | # Gate Name: G$1 62 | # Symbol Name: ENC28J60 63 | F0 "U" -800 900 50 H V L B 64 | F1 "ENC28J60-SO" 200 -600 50 H V L B 65 | F2 "microchip-enc28j60-SO28W" 0 150 50 H I C C 66 | DRAW 67 | P 2 1 0 0 -800 800 -800 -500 68 | P 2 1 0 0 -800 -500 600 -500 69 | P 2 1 0 0 600 -500 600 800 70 | P 2 1 0 0 600 800 -800 800 71 | X CLKOUT 3 -1000 -200 200 R 40 40 1 1 O 72 | X CS 9 -1000 0 200 R 40 40 1 1 I I 73 | X INT 4 -1000 700 200 R 40 40 1 1 O I 74 | X LEDA 27 800 100 200 L 40 40 1 1 O 75 | X LEDB 26 800 0 200 L 40 40 1 1 O 76 | X OSC1 23 800 -300 200 L 40 40 1 1 I C 77 | X OSC2 24 800 -400 200 L 40 40 1 1 O C 78 | X RBIAS 14 -1000 -400 200 R 40 40 1 1 P 79 | X RESET 10 -1000 500 200 R 40 40 1 1 I I 80 | X SCK 8 -1000 100 200 R 40 40 1 1 I C 81 | X SI 7 -1000 200 200 R 40 40 1 1 I 82 | X SO 6 -1000 300 200 R 40 40 1 1 O 83 | X TPIN+ 13 800 400 200 L 40 40 1 1 I 84 | X TPIN- 12 800 300 200 L 40 40 1 1 I 85 | X TPOUT+ 17 800 700 200 L 40 40 1 1 O 86 | X TPOUT- 16 800 600 200 L 40 40 1 1 O 87 | X VCAP 1 -1000 -300 200 R 40 40 1 1 W 88 | X VDD 28 100 1000 200 D 40 40 1 1 W 89 | X VDDOSC 25 0 1000 200 D 40 40 1 1 W 90 | X VDDPLL 20 -200 1000 200 D 40 40 1 1 W 91 | X VDDRX 19 -300 1000 200 D 40 40 1 1 W 92 | X VDDTX 15 -100 1000 200 D 40 40 1 1 W 93 | X VSS 2 100 -700 200 U 40 40 1 1 W 94 | X VSSOSC 22 0 -700 200 U 40 40 1 1 W 95 | X VSSPLL 21 -200 -700 200 U 40 40 1 1 W 96 | X VSSRX 11 -300 -700 200 U 40 40 1 1 W 97 | X VSSTX 18 -100 -700 200 U 40 40 1 1 W 98 | X WOL 5 -1000 600 200 R 40 40 1 1 O I 99 | ENDDRAW 100 | ENDDEF 101 | 102 | # 103 | # Dev Name: ENC28J60-SSOP 104 | # Package Name: SSOP28 105 | # Dev Tech: '' 106 | # Dev Prefix: U 107 | # Gate count = 1 108 | # 109 | DEF ENC28J60-SSOP U 0 40 Y Y 1 L N 110 | # Gate Name: G$1 111 | # Symbol Name: ENC28J60 112 | F0 "U" -800 900 50 H V L B 113 | F1 "ENC28J60-SSOP" 200 -600 50 H V L B 114 | F2 "microchip-enc28j60-SSOP28" 0 150 50 H I C C 115 | DRAW 116 | P 2 1 0 0 -800 800 -800 -500 117 | P 2 1 0 0 -800 -500 600 -500 118 | P 2 1 0 0 600 -500 600 800 119 | P 2 1 0 0 600 800 -800 800 120 | X CLKOUT 3 -1000 -200 200 R 40 40 1 1 O 121 | X CS 9 -1000 0 200 R 40 40 1 1 I I 122 | X INT 4 -1000 700 200 R 40 40 1 1 O I 123 | X LEDA 27 800 100 200 L 40 40 1 1 O 124 | X LEDB 26 800 0 200 L 40 40 1 1 O 125 | X OSC1 23 800 -300 200 L 40 40 1 1 I C 126 | X OSC2 24 800 -400 200 L 40 40 1 1 O C 127 | X RBIAS 14 -1000 -400 200 R 40 40 1 1 P 128 | X RESET 10 -1000 500 200 R 40 40 1 1 I I 129 | X SCK 8 -1000 100 200 R 40 40 1 1 I C 130 | X SI 7 -1000 200 200 R 40 40 1 1 I 131 | X SO 6 -1000 300 200 R 40 40 1 1 O 132 | X TPIN+ 13 800 400 200 L 40 40 1 1 I 133 | X TPIN- 12 800 300 200 L 40 40 1 1 I 134 | X TPOUT+ 17 800 700 200 L 40 40 1 1 O 135 | X TPOUT- 16 800 600 200 L 40 40 1 1 O 136 | X VCAP 1 -1000 -300 200 R 40 40 1 1 W 137 | X VDD 28 100 1000 200 D 40 40 1 1 W 138 | X VDDOSC 25 0 1000 200 D 40 40 1 1 W 139 | X VDDPLL 20 -200 1000 200 D 40 40 1 1 W 140 | X VDDRX 19 -300 1000 200 D 40 40 1 1 W 141 | X VDDTX 15 -100 1000 200 D 40 40 1 1 W 142 | X VSS 2 100 -700 200 U 40 40 1 1 W 143 | X VSSOSC 22 0 -700 200 U 40 40 1 1 W 144 | X VSSPLL 21 -200 -700 200 U 40 40 1 1 W 145 | X VSSRX 11 -300 -700 200 U 40 40 1 1 W 146 | X VSSTX 18 -100 -700 200 U 40 40 1 1 W 147 | X WOL 5 -1000 600 200 R 40 40 1 1 O I 148 | ENDDRAW 149 | ENDDEF 150 | 151 | #End Library 152 | -------------------------------------------------------------------------------- /pcb/libs/oshec-microchip-enc28j60.mod: -------------------------------------------------------------------------------- 1 | PCBNEW-LibModule-V1 29/04/2008-12:23:02 2 | $INDEX 3 | microchip-enc28j60-DIL28-3 4 | microchip-enc28j60-SO28W 5 | microchip-enc28j60-SSOP28 6 | $EndINDEX 7 | $MODULE microchip-enc28j60-DIL28-3 8 | Po 0 0 0 15 00200000 00000000 ~~ 9 | Li microchip-enc28j60-DIL28-3 10 | Cd DUAL IN LINE 11 | Kw DUAL IN LINE 12 | Sc 00000000 13 | Op 0 0 0 14 | At VIRTUAL 15 | DS -7000 500 -7000 1000 60 21 16 | DS 7000 1000 7000 -1000 60 21 17 | DS -7000 -1000 -7000 -500 60 21 18 | DS -7000 -1000 7000 -1000 60 21 19 | DS -6949 1000 7000 1000 60 21 20 | DA -7000 0 -7000 -500 5400 60 21 21 | T0 -7400 -750 700 700 900 35 N V ">NAME" 22 | T1 -4100 20 700 700 0 35 N V ">VALUE" 23 | $PAD 24 | Sh "1" O 520 1040 0 0 0 25 | Dr 320 0 0 26 | At STD N 00A88001 27 | Ne 0 "" 28 | Po -6500 1500 29 | $EndPAD 30 | $PAD 31 | Sh "2" O 520 1040 0 0 0 32 | Dr 320 0 0 33 | At STD N 00A88001 34 | Ne 0 "" 35 | Po -5500 1500 36 | $EndPAD 37 | $PAD 38 | Sh "3" O 520 1040 0 0 0 39 | Dr 320 0 0 40 | At STD N 00A88001 41 | Ne 0 "" 42 | Po -4500 1500 43 | $EndPAD 44 | $PAD 45 | Sh "4" O 520 1040 0 0 0 46 | Dr 320 0 0 47 | At STD N 00A88001 48 | Ne 0 "" 49 | Po -3500 1500 50 | $EndPAD 51 | $PAD 52 | Sh "5" O 520 1040 0 0 0 53 | Dr 320 0 0 54 | At STD N 00A88001 55 | Ne 0 "" 56 | Po -2500 1500 57 | $EndPAD 58 | $PAD 59 | Sh "6" O 520 1040 0 0 0 60 | Dr 320 0 0 61 | At STD N 00A88001 62 | Ne 0 "" 63 | Po -1500 1500 64 | $EndPAD 65 | $PAD 66 | Sh "7" O 520 1040 0 0 0 67 | Dr 320 0 0 68 | At STD N 00A88001 69 | Ne 0 "" 70 | Po -500 1500 71 | $EndPAD 72 | $PAD 73 | Sh "8" O 520 1040 0 0 0 74 | Dr 320 0 0 75 | At STD N 00A88001 76 | Ne 0 "" 77 | Po 500 1500 78 | $EndPAD 79 | $PAD 80 | Sh "9" O 520 1040 0 0 0 81 | Dr 320 0 0 82 | At STD N 00A88001 83 | Ne 0 "" 84 | Po 1500 1500 85 | $EndPAD 86 | $PAD 87 | Sh "10" O 520 1040 0 0 0 88 | Dr 320 0 0 89 | At STD N 00A88001 90 | Ne 0 "" 91 | Po 2500 1500 92 | $EndPAD 93 | $PAD 94 | Sh "11" O 520 1040 0 0 0 95 | Dr 320 0 0 96 | At STD N 00A88001 97 | Ne 0 "" 98 | Po 3500 1500 99 | $EndPAD 100 | $PAD 101 | Sh "12" O 520 1040 0 0 0 102 | Dr 320 0 0 103 | At STD N 00A88001 104 | Ne 0 "" 105 | Po 4500 1500 106 | $EndPAD 107 | $PAD 108 | Sh "13" O 520 1040 0 0 0 109 | Dr 320 0 0 110 | At STD N 00A88001 111 | Ne 0 "" 112 | Po 5500 1500 113 | $EndPAD 114 | $PAD 115 | Sh "14" O 520 1040 0 0 0 116 | Dr 320 0 0 117 | At STD N 00A88001 118 | Ne 0 "" 119 | Po 6500 1500 120 | $EndPAD 121 | $PAD 122 | Sh "15" O 520 1040 0 0 0 123 | Dr 320 0 0 124 | At STD N 00A88001 125 | Ne 0 "" 126 | Po 6500 -1500 127 | $EndPAD 128 | $PAD 129 | Sh "16" O 520 1040 0 0 0 130 | Dr 320 0 0 131 | At STD N 00A88001 132 | Ne 0 "" 133 | Po 5500 -1500 134 | $EndPAD 135 | $PAD 136 | Sh "17" O 520 1040 0 0 0 137 | Dr 320 0 0 138 | At STD N 00A88001 139 | Ne 0 "" 140 | Po 4500 -1500 141 | $EndPAD 142 | $PAD 143 | Sh "18" O 520 1040 0 0 0 144 | Dr 320 0 0 145 | At STD N 00A88001 146 | Ne 0 "" 147 | Po 3500 -1500 148 | $EndPAD 149 | $PAD 150 | Sh "19" O 520 1040 0 0 0 151 | Dr 320 0 0 152 | At STD N 00A88001 153 | Ne 0 "" 154 | Po 2500 -1500 155 | $EndPAD 156 | $PAD 157 | Sh "20" O 520 1040 0 0 0 158 | Dr 320 0 0 159 | At STD N 00A88001 160 | Ne 0 "" 161 | Po 1500 -1500 162 | $EndPAD 163 | $PAD 164 | Sh "21" O 520 1040 0 0 0 165 | Dr 320 0 0 166 | At STD N 00A88001 167 | Ne 0 "" 168 | Po 500 -1500 169 | $EndPAD 170 | $PAD 171 | Sh "22" O 520 1040 0 0 0 172 | Dr 320 0 0 173 | At STD N 00A88001 174 | Ne 0 "" 175 | Po -500 -1500 176 | $EndPAD 177 | $PAD 178 | Sh "23" O 520 1040 0 0 0 179 | Dr 320 0 0 180 | At STD N 00A88001 181 | Ne 0 "" 182 | Po -1500 -1500 183 | $EndPAD 184 | $PAD 185 | Sh "24" O 520 1040 0 0 0 186 | Dr 320 0 0 187 | At STD N 00A88001 188 | Ne 0 "" 189 | Po -2500 -1500 190 | $EndPAD 191 | $PAD 192 | Sh "25" O 520 1040 0 0 0 193 | Dr 320 0 0 194 | At STD N 00A88001 195 | Ne 0 "" 196 | Po -3500 -1500 197 | $EndPAD 198 | $PAD 199 | Sh "26" O 520 1040 0 0 0 200 | Dr 320 0 0 201 | At STD N 00A88001 202 | Ne 0 "" 203 | Po -4500 -1500 204 | $EndPAD 205 | $PAD 206 | Sh "27" O 520 1040 0 0 0 207 | Dr 320 0 0 208 | At STD N 00A88001 209 | Ne 0 "" 210 | Po -5500 -1500 211 | $EndPAD 212 | $PAD 213 | Sh "28" O 520 1040 0 0 0 214 | Dr 320 0 0 215 | At STD N 00A88001 216 | Ne 0 "" 217 | Po -6500 -1500 218 | $EndPAD 219 | $EndMODULE DIL28-3 220 | $MODULE microchip-enc28j60-SO28W 221 | Po 0 0 0 15 00200000 00000000 ~~ 222 | Li microchip-enc28j60-SO28W 223 | Cd SMALL OUTLINE INTEGRATED CIRCUIT 224 | Kw SMALL OUTLINE INTEGRATED CIRCUIT 225 | Sc 00000000 226 | Op 0 0 0 227 | At SMD 228 | DS -3346 2094 -3153 2094 26 21 229 | DS -3153 2094 -3153 1496 26 21 230 | DS -3346 1496 -3153 1496 26 21 231 | DS -3346 2094 -3346 1496 26 21 232 | DS -2846 2094 -2653 2094 26 21 233 | DS -2653 2094 -2653 1496 26 21 234 | DS -2846 1496 -2653 1496 26 21 235 | DS -2846 2094 -2846 1496 26 21 236 | DS -2346 2094 -2153 2094 26 21 237 | DS -2153 2094 -2153 1496 26 21 238 | DS -2346 1496 -2153 1496 26 21 239 | DS -2346 2094 -2346 1496 26 21 240 | DS -1846 2094 -1653 2094 26 21 241 | DS -1653 2094 -1653 1496 26 21 242 | DS -1846 1496 -1653 1496 26 21 243 | DS -1846 2094 -1846 1496 26 21 244 | DS -1346 2094 -1153 2094 26 21 245 | DS -1153 2094 -1153 1496 26 21 246 | DS -1346 1496 -1153 1496 26 21 247 | DS -1346 2094 -1346 1496 26 21 248 | DS -846 2094 -653 2094 26 21 249 | DS -653 2094 -653 1496 26 21 250 | DS -846 1496 -653 1496 26 21 251 | DS -846 2094 -846 1496 26 21 252 | DS -346 2094 -153 2094 26 21 253 | DS -153 2094 -153 1496 26 21 254 | DS -346 1496 -153 1496 26 21 255 | DS -346 2094 -346 1496 26 21 256 | DS 153 2094 346 2094 26 21 257 | DS 346 2094 346 1496 26 21 258 | DS 153 1496 346 1496 26 21 259 | DS 153 2094 153 1496 26 21 260 | DS 653 2094 846 2094 26 21 261 | DS 846 2094 846 1496 26 21 262 | DS 653 1496 846 1496 26 21 263 | DS 653 2094 653 1496 26 21 264 | DS 1153 2094 1346 2094 26 21 265 | DS 1346 2094 1346 1496 26 21 266 | DS 1153 1496 1346 1496 26 21 267 | DS 1153 2094 1153 1496 26 21 268 | DS 1653 2094 1846 2094 26 21 269 | DS 1846 2094 1846 1496 26 21 270 | DS 1653 1496 1846 1496 26 21 271 | DS 1653 2094 1653 1496 26 21 272 | DS 2153 2094 2346 2094 26 21 273 | DS 2346 2094 2346 1496 26 21 274 | DS 2153 1496 2346 1496 26 21 275 | DS 2153 2094 2153 1496 26 21 276 | DS 2653 2094 2846 2094 26 21 277 | DS 2846 2094 2846 1496 26 21 278 | DS 2653 1496 2846 1496 26 21 279 | DS 2653 2094 2653 1496 26 21 280 | DS 3153 2094 3346 2094 26 21 281 | DS 3346 2094 3346 1496 26 21 282 | DS 3153 1496 3346 1496 26 21 283 | DS 3153 2094 3153 1496 26 21 284 | DS 3153 -1496 3346 -1496 26 21 285 | DS 3346 -1496 3346 -2094 26 21 286 | DS 3153 -2094 3346 -2094 26 21 287 | DS 3153 -1496 3153 -2094 26 21 288 | DS 2653 -1496 2846 -1496 26 21 289 | DS 2846 -1496 2846 -2094 26 21 290 | DS 2653 -2094 2846 -2094 26 21 291 | DS 2653 -1496 2653 -2094 26 21 292 | DS 2153 -1496 2346 -1496 26 21 293 | DS 2346 -1496 2346 -2094 26 21 294 | DS 2153 -2094 2346 -2094 26 21 295 | DS 2153 -1496 2153 -2094 26 21 296 | DS 1653 -1496 1846 -1496 26 21 297 | DS 1846 -1496 1846 -2094 26 21 298 | DS 1653 -2094 1846 -2094 26 21 299 | DS 1653 -1496 1653 -2094 26 21 300 | DS 1153 -1496 1346 -1496 26 21 301 | DS 1346 -1496 1346 -2094 26 21 302 | DS 1153 -2094 1346 -2094 26 21 303 | DS 1153 -1496 1153 -2094 26 21 304 | DS 653 -1496 846 -1496 26 21 305 | DS 846 -1496 846 -2094 26 21 306 | DS 653 -2094 846 -2094 26 21 307 | DS 653 -1496 653 -2094 26 21 308 | DS 153 -1496 346 -1496 26 21 309 | DS 346 -1496 346 -2094 26 21 310 | DS 153 -2094 346 -2094 26 21 311 | DS 153 -1496 153 -2094 26 21 312 | DS -346 -1496 -153 -1496 26 21 313 | DS -153 -1496 -153 -2094 26 21 314 | DS -346 -2094 -153 -2094 26 21 315 | DS -346 -1496 -346 -2094 26 21 316 | DS -846 -1496 -653 -1496 26 21 317 | DS -653 -1496 -653 -2094 26 21 318 | DS -846 -2094 -653 -2094 26 21 319 | DS -846 -1496 -846 -2094 26 21 320 | DS -1346 -1496 -1153 -1496 26 21 321 | DS -1153 -1496 -1153 -2094 26 21 322 | DS -1346 -2094 -1153 -2094 26 21 323 | DS -1346 -1496 -1346 -2094 26 21 324 | DS -1846 -1496 -1653 -1496 26 21 325 | DS -1653 -1496 -1653 -2094 26 21 326 | DS -1846 -2094 -1653 -2094 26 21 327 | DS -1846 -1496 -1846 -2094 26 21 328 | DS -2346 -1496 -2153 -1496 26 21 329 | DS -2153 -1496 -2153 -2094 26 21 330 | DS -2346 -2094 -2153 -2094 26 21 331 | DS -2346 -1496 -2346 -2094 26 21 332 | DS -2846 -1496 -2653 -1496 26 21 333 | DS -2653 -1496 -2653 -2094 26 21 334 | DS -2846 -2094 -2653 -2094 26 21 335 | DS -2846 -1496 -2846 -2094 26 21 336 | DS -3346 -1496 -3153 -1496 26 21 337 | DS -3153 -1496 -3153 -2094 26 21 338 | DS -3346 -2094 -3153 -2094 26 21 339 | DS -3346 -1496 -3346 -2094 26 21 340 | DS -3698 -2322 3698 -2322 78 21 341 | DS 3698 2322 -3698 2322 78 21 342 | DS -3698 2322 -3698 -2322 78 21 343 | DS 3562 1456 -3562 1456 80 21 344 | DS -3562 1456 -3562 1259 80 21 345 | DS -3562 1259 -3562 -1456 80 21 346 | DS -3562 -1456 3562 -1456 80 21 347 | DS 3562 1259 -3562 1259 80 21 348 | DS 3562 -1456 3562 1259 80 21 349 | DS 3562 1259 3562 1456 80 21 350 | DS 3698 -2322 3698 2322 78 21 351 | T0 -2000 -750 500 500 0 35 N V ">NAME" 352 | T1 -1750 750 500 500 0 35 N V ">VALUE" 353 | $PAD 354 | Sh "1" R 236 866 0 0 0 355 | Dr 0 0 0 356 | At SMD N 00888000 357 | Ne 0 "" 358 | Po -3250 1811 359 | $EndPAD 360 | $PAD 361 | Sh "2" R 236 866 0 0 0 362 | Dr 0 0 0 363 | At SMD N 00888000 364 | Ne 0 "" 365 | Po -2750 1811 366 | $EndPAD 367 | $PAD 368 | Sh "3" R 236 866 0 0 0 369 | Dr 0 0 0 370 | At SMD N 00888000 371 | Ne 0 "" 372 | Po -2250 1811 373 | $EndPAD 374 | $PAD 375 | Sh "4" R 236 866 0 0 0 376 | Dr 0 0 0 377 | At SMD N 00888000 378 | Ne 0 "" 379 | Po -1750 1811 380 | $EndPAD 381 | $PAD 382 | Sh "5" R 236 866 0 0 0 383 | Dr 0 0 0 384 | At SMD N 00888000 385 | Ne 0 "" 386 | Po -1250 1811 387 | $EndPAD 388 | $PAD 389 | Sh "6" R 236 866 0 0 0 390 | Dr 0 0 0 391 | At SMD N 00888000 392 | Ne 0 "" 393 | Po -750 1811 394 | $EndPAD 395 | $PAD 396 | Sh "7" R 236 866 0 0 0 397 | Dr 0 0 0 398 | At SMD N 00888000 399 | Ne 0 "" 400 | Po -250 1811 401 | $EndPAD 402 | $PAD 403 | Sh "8" R 236 866 0 0 0 404 | Dr 0 0 0 405 | At SMD N 00888000 406 | Ne 0 "" 407 | Po 250 1811 408 | $EndPAD 409 | $PAD 410 | Sh "9" R 236 866 0 0 0 411 | Dr 0 0 0 412 | At SMD N 00888000 413 | Ne 0 "" 414 | Po 750 1811 415 | $EndPAD 416 | $PAD 417 | Sh "10" R 236 866 0 0 0 418 | Dr 0 0 0 419 | At SMD N 00888000 420 | Ne 0 "" 421 | Po 1250 1811 422 | $EndPAD 423 | $PAD 424 | Sh "11" R 236 866 0 0 0 425 | Dr 0 0 0 426 | At SMD N 00888000 427 | Ne 0 "" 428 | Po 1750 1811 429 | $EndPAD 430 | $PAD 431 | Sh "12" R 236 866 0 0 0 432 | Dr 0 0 0 433 | At SMD N 00888000 434 | Ne 0 "" 435 | Po 2250 1811 436 | $EndPAD 437 | $PAD 438 | Sh "13" R 236 866 0 0 0 439 | Dr 0 0 0 440 | At SMD N 00888000 441 | Ne 0 "" 442 | Po 2750 1811 443 | $EndPAD 444 | $PAD 445 | Sh "14" R 236 866 0 0 0 446 | Dr 0 0 0 447 | At SMD N 00888000 448 | Ne 0 "" 449 | Po 3250 1811 450 | $EndPAD 451 | $PAD 452 | Sh "15" R 236 866 0 0 0 453 | Dr 0 0 0 454 | At SMD N 00888000 455 | Ne 0 "" 456 | Po 3250 -1811 457 | $EndPAD 458 | $PAD 459 | Sh "16" R 236 866 0 0 0 460 | Dr 0 0 0 461 | At SMD N 00888000 462 | Ne 0 "" 463 | Po 2750 -1811 464 | $EndPAD 465 | $PAD 466 | Sh "17" R 236 866 0 0 0 467 | Dr 0 0 0 468 | At SMD N 00888000 469 | Ne 0 "" 470 | Po 2250 -1811 471 | $EndPAD 472 | $PAD 473 | Sh "18" R 236 866 0 0 0 474 | Dr 0 0 0 475 | At SMD N 00888000 476 | Ne 0 "" 477 | Po 1750 -1811 478 | $EndPAD 479 | $PAD 480 | Sh "19" R 236 866 0 0 0 481 | Dr 0 0 0 482 | At SMD N 00888000 483 | Ne 0 "" 484 | Po 1250 -1811 485 | $EndPAD 486 | $PAD 487 | Sh "20" R 236 866 0 0 0 488 | Dr 0 0 0 489 | At SMD N 00888000 490 | Ne 0 "" 491 | Po 750 -1811 492 | $EndPAD 493 | $PAD 494 | Sh "21" R 236 866 0 0 0 495 | Dr 0 0 0 496 | At SMD N 00888000 497 | Ne 0 "" 498 | Po 250 -1811 499 | $EndPAD 500 | $PAD 501 | Sh "22" R 236 866 0 0 0 502 | Dr 0 0 0 503 | At SMD N 00888000 504 | Ne 0 "" 505 | Po -250 -1811 506 | $EndPAD 507 | $PAD 508 | Sh "23" R 236 866 0 0 0 509 | Dr 0 0 0 510 | At SMD N 00888000 511 | Ne 0 "" 512 | Po -750 -1811 513 | $EndPAD 514 | $PAD 515 | Sh "24" R 236 866 0 0 0 516 | Dr 0 0 0 517 | At SMD N 00888000 518 | Ne 0 "" 519 | Po -1250 -1811 520 | $EndPAD 521 | $PAD 522 | Sh "25" R 236 866 0 0 0 523 | Dr 0 0 0 524 | At SMD N 00888000 525 | Ne 0 "" 526 | Po -1750 -1811 527 | $EndPAD 528 | $PAD 529 | Sh "26" R 236 866 0 0 0 530 | Dr 0 0 0 531 | At SMD N 00888000 532 | Ne 0 "" 533 | Po -2250 -1811 534 | $EndPAD 535 | $PAD 536 | Sh "27" R 236 866 0 0 0 537 | Dr 0 0 0 538 | At SMD N 00888000 539 | Ne 0 "" 540 | Po -2750 -1811 541 | $EndPAD 542 | $PAD 543 | Sh "28" R 236 866 0 0 0 544 | Dr 0 0 0 545 | At SMD N 00888000 546 | Ne 0 "" 547 | Po -3250 -1811 548 | $EndPAD 549 | $EndMODULE SO28W 550 | $MODULE microchip-enc28j60-SSOP28 551 | Po 0 0 0 15 00200000 00000000 ~~ 552 | Li microchip-enc28j60-SSOP28 553 | Cd SHRINK SMALL OUTLINE PACKAGE 554 | Kw SHRINK SMALL OUTLINE PACKAGE 555 | Sc 00000000 556 | Op 0 0 0 557 | At SMD 558 | DS -1733 1550 -1593 1550 26 21 559 | DS -1593 1550 -1593 1040 26 21 560 | DS -1733 1040 -1593 1040 26 21 561 | DS -1733 1550 -1733 1040 26 21 562 | DS -1477 1550 -1337 1550 26 21 563 | DS -1337 1550 -1337 1040 26 21 564 | DS -1477 1040 -1337 1040 26 21 565 | DS -1477 1550 -1477 1040 26 21 566 | DS -1221 1550 -1081 1550 26 21 567 | DS -1081 1550 -1081 1040 26 21 568 | DS -1221 1040 -1081 1040 26 21 569 | DS -1221 1550 -1221 1040 26 21 570 | DS -965 1550 -825 1550 26 21 571 | DS -825 1550 -825 1040 26 21 572 | DS -965 1040 -825 1040 26 21 573 | DS -965 1550 -965 1040 26 21 574 | DS -709 1550 -569 1550 26 21 575 | DS -569 1550 -569 1040 26 21 576 | DS -709 1040 -569 1040 26 21 577 | DS -709 1550 -709 1040 26 21 578 | DS -453 1550 -313 1550 26 21 579 | DS -313 1550 -313 1040 26 21 580 | DS -453 1040 -313 1040 26 21 581 | DS -453 1550 -453 1040 26 21 582 | DS -197 1550 -57 1550 26 21 583 | DS -57 1550 -57 1040 26 21 584 | DS -197 1040 -57 1040 26 21 585 | DS -197 1550 -197 1040 26 21 586 | DS 57 1550 197 1550 26 21 587 | DS 197 1550 197 1040 26 21 588 | DS 57 1040 197 1040 26 21 589 | DS 57 1550 57 1040 26 21 590 | DS 313 1550 453 1550 26 21 591 | DS 453 1550 453 1040 26 21 592 | DS 313 1040 453 1040 26 21 593 | DS 313 1550 313 1040 26 21 594 | DS 569 1550 709 1550 26 21 595 | DS 709 1550 709 1040 26 21 596 | DS 569 1040 709 1040 26 21 597 | DS 569 1550 569 1040 26 21 598 | DS 825 1550 965 1550 26 21 599 | DS 965 1550 965 1040 26 21 600 | DS 825 1040 965 1040 26 21 601 | DS 825 1550 825 1040 26 21 602 | DS 1081 1550 1221 1550 26 21 603 | DS 1221 1550 1221 1040 26 21 604 | DS 1081 1040 1221 1040 26 21 605 | DS 1081 1550 1081 1040 26 21 606 | DS 1337 1550 1477 1550 26 21 607 | DS 1477 1550 1477 1040 26 21 608 | DS 1337 1040 1477 1040 26 21 609 | DS 1337 1550 1337 1040 26 21 610 | DS 1593 1550 1733 1550 26 21 611 | DS 1733 1550 1733 1040 26 21 612 | DS 1593 1040 1733 1040 26 21 613 | DS 1593 1550 1593 1040 26 21 614 | DS 1593 -1040 1733 -1040 26 21 615 | DS 1733 -1040 1733 -1550 26 21 616 | DS 1593 -1550 1733 -1550 26 21 617 | DS 1593 -1040 1593 -1550 26 21 618 | DS 1337 -1040 1477 -1040 26 21 619 | DS 1477 -1040 1477 -1550 26 21 620 | DS 1337 -1550 1477 -1550 26 21 621 | DS 1337 -1040 1337 -1550 26 21 622 | DS 1081 -1040 1221 -1040 26 21 623 | DS 1221 -1040 1221 -1550 26 21 624 | DS 1081 -1550 1221 -1550 26 21 625 | DS 1081 -1040 1081 -1550 26 21 626 | DS 825 -1040 965 -1040 26 21 627 | DS 965 -1040 965 -1550 26 21 628 | DS 825 -1550 965 -1550 26 21 629 | DS 825 -1040 825 -1550 26 21 630 | DS 569 -1040 709 -1040 26 21 631 | DS 709 -1040 709 -1550 26 21 632 | DS 569 -1550 709 -1550 26 21 633 | DS 569 -1040 569 -1550 26 21 634 | DS 313 -1040 453 -1040 26 21 635 | DS 453 -1040 453 -1550 26 21 636 | DS 313 -1550 453 -1550 26 21 637 | DS 313 -1040 313 -1550 26 21 638 | DS 57 -1040 197 -1040 26 21 639 | DS 197 -1040 197 -1550 26 21 640 | DS 57 -1550 197 -1550 26 21 641 | DS 57 -1040 57 -1550 26 21 642 | DS -197 -1040 -57 -1040 26 21 643 | DS -57 -1040 -57 -1550 26 21 644 | DS -197 -1550 -57 -1550 26 21 645 | DS -197 -1040 -197 -1550 26 21 646 | DS -453 -1040 -313 -1040 26 21 647 | DS -313 -1040 -313 -1550 26 21 648 | DS -453 -1550 -313 -1550 26 21 649 | DS -453 -1040 -453 -1550 26 21 650 | DS -709 -1040 -569 -1040 26 21 651 | DS -569 -1040 -569 -1550 26 21 652 | DS -709 -1550 -569 -1550 26 21 653 | DS -709 -1040 -709 -1550 26 21 654 | DS -965 -1040 -825 -1040 26 21 655 | DS -825 -1040 -825 -1550 26 21 656 | DS -965 -1550 -825 -1550 26 21 657 | DS -965 -1040 -965 -1550 26 21 658 | DS -1221 -1040 -1081 -1040 26 21 659 | DS -1081 -1040 -1081 -1550 26 21 660 | DS -1221 -1550 -1081 -1550 26 21 661 | DS -1221 -1040 -1221 -1550 26 21 662 | DS -1477 -1040 -1337 -1040 26 21 663 | DS -1337 -1040 -1337 -1550 26 21 664 | DS -1477 -1550 -1337 -1550 26 21 665 | DS -1477 -1040 -1477 -1550 26 21 666 | DS -1733 -1040 -1593 -1040 26 21 667 | DS -1593 -1040 -1593 -1550 26 21 668 | DS -1733 -1550 -1593 -1550 26 21 669 | DS -1733 -1040 -1733 -1550 26 21 670 | DS -2047 1023 -1663 1023 26 21 671 | DS -1663 1023 -1663 -1023 26 21 672 | DS -2047 -1023 -1663 -1023 26 21 673 | DS -2047 1023 -2047 -1023 26 21 674 | DS -2007 1023 2007 1023 80 21 675 | DS 2007 1023 2007 -1023 80 21 676 | DS 2007 -1023 -2007 -1023 80 21 677 | T0 -2405 -214 500 500 900 35 N V ">NAME" 678 | T1 -35 17 500 500 0 35 N V ">VALUE" 679 | $PAD 680 | Sh "1" R 157 590 0 0 0 681 | Dr 0 0 0 682 | At SMD N 00888000 683 | Ne 0 "" 684 | Po -1663 1427 685 | $EndPAD 686 | $PAD 687 | Sh "2" R 157 590 0 0 0 688 | Dr 0 0 0 689 | At SMD N 00888000 690 | Ne 0 "" 691 | Po -1407 1427 692 | $EndPAD 693 | $PAD 694 | Sh "3" R 157 590 0 0 0 695 | Dr 0 0 0 696 | At SMD N 00888000 697 | Ne 0 "" 698 | Po -1151 1427 699 | $EndPAD 700 | $PAD 701 | Sh "4" R 157 590 0 0 0 702 | Dr 0 0 0 703 | At SMD N 00888000 704 | Ne 0 "" 705 | Po -895 1427 706 | $EndPAD 707 | $PAD 708 | Sh "5" R 157 590 0 0 0 709 | Dr 0 0 0 710 | At SMD N 00888000 711 | Ne 0 "" 712 | Po -639 1427 713 | $EndPAD 714 | $PAD 715 | Sh "6" R 157 590 0 0 0 716 | Dr 0 0 0 717 | At SMD N 00888000 718 | Ne 0 "" 719 | Po -383 1427 720 | $EndPAD 721 | $PAD 722 | Sh "7" R 157 590 0 0 0 723 | Dr 0 0 0 724 | At SMD N 00888000 725 | Ne 0 "" 726 | Po -127 1427 727 | $EndPAD 728 | $PAD 729 | Sh "8" R 157 590 0 0 0 730 | Dr 0 0 0 731 | At SMD N 00888000 732 | Ne 0 "" 733 | Po 127 1427 734 | $EndPAD 735 | $PAD 736 | Sh "9" R 157 590 0 0 0 737 | Dr 0 0 0 738 | At SMD N 00888000 739 | Ne 0 "" 740 | Po 383 1427 741 | $EndPAD 742 | $PAD 743 | Sh "10" R 157 590 0 0 0 744 | Dr 0 0 0 745 | At SMD N 00888000 746 | Ne 0 "" 747 | Po 639 1427 748 | $EndPAD 749 | $PAD 750 | Sh "11" R 157 590 0 0 0 751 | Dr 0 0 0 752 | At SMD N 00888000 753 | Ne 0 "" 754 | Po 895 1427 755 | $EndPAD 756 | $PAD 757 | Sh "12" R 157 590 0 0 0 758 | Dr 0 0 0 759 | At SMD N 00888000 760 | Ne 0 "" 761 | Po 1151 1427 762 | $EndPAD 763 | $PAD 764 | Sh "13" R 157 590 0 0 0 765 | Dr 0 0 0 766 | At SMD N 00888000 767 | Ne 0 "" 768 | Po 1407 1427 769 | $EndPAD 770 | $PAD 771 | Sh "14" R 157 590 0 0 0 772 | Dr 0 0 0 773 | At SMD N 00888000 774 | Ne 0 "" 775 | Po 1663 1427 776 | $EndPAD 777 | $PAD 778 | Sh "15" R 157 590 0 0 0 779 | Dr 0 0 0 780 | At SMD N 00888000 781 | Ne 0 "" 782 | Po 1663 -1427 783 | $EndPAD 784 | $PAD 785 | Sh "16" R 157 590 0 0 0 786 | Dr 0 0 0 787 | At SMD N 00888000 788 | Ne 0 "" 789 | Po 1407 -1427 790 | $EndPAD 791 | $PAD 792 | Sh "17" R 157 590 0 0 0 793 | Dr 0 0 0 794 | At SMD N 00888000 795 | Ne 0 "" 796 | Po 1151 -1427 797 | $EndPAD 798 | $PAD 799 | Sh "18" R 157 590 0 0 0 800 | Dr 0 0 0 801 | At SMD N 00888000 802 | Ne 0 "" 803 | Po 895 -1427 804 | $EndPAD 805 | $PAD 806 | Sh "19" R 157 590 0 0 0 807 | Dr 0 0 0 808 | At SMD N 00888000 809 | Ne 0 "" 810 | Po 639 -1427 811 | $EndPAD 812 | $PAD 813 | Sh "20" R 157 590 0 0 0 814 | Dr 0 0 0 815 | At SMD N 00888000 816 | Ne 0 "" 817 | Po 383 -1427 818 | $EndPAD 819 | $PAD 820 | Sh "21" R 157 590 0 0 0 821 | Dr 0 0 0 822 | At SMD N 00888000 823 | Ne 0 "" 824 | Po 127 -1427 825 | $EndPAD 826 | $PAD 827 | Sh "22" R 157 590 0 0 0 828 | Dr 0 0 0 829 | At SMD N 00888000 830 | Ne 0 "" 831 | Po -127 -1427 832 | $EndPAD 833 | $PAD 834 | Sh "23" R 157 590 0 0 0 835 | Dr 0 0 0 836 | At SMD N 00888000 837 | Ne 0 "" 838 | Po -383 -1427 839 | $EndPAD 840 | $PAD 841 | Sh "24" R 157 590 0 0 0 842 | Dr 0 0 0 843 | At SMD N 00888000 844 | Ne 0 "" 845 | Po -639 -1427 846 | $EndPAD 847 | $PAD 848 | Sh "25" R 157 590 0 0 0 849 | Dr 0 0 0 850 | At SMD N 00888000 851 | Ne 0 "" 852 | Po -895 -1427 853 | $EndPAD 854 | $PAD 855 | Sh "26" R 157 590 0 0 0 856 | Dr 0 0 0 857 | At SMD N 00888000 858 | Ne 0 "" 859 | Po -1151 -1427 860 | $EndPAD 861 | $PAD 862 | Sh "27" R 157 590 0 0 0 863 | Dr 0 0 0 864 | At SMD N 00888000 865 | Ne 0 "" 866 | Po -1407 -1427 867 | $EndPAD 868 | $PAD 869 | Sh "28" R 157 590 0 0 0 870 | Dr 0 0 0 871 | At SMD N 00888000 872 | Ne 0 "" 873 | Po -1663 -1427 874 | $EndPAD 875 | $EndMODULE SSOP28 876 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | NAME = firmware 2 | MCU = atmega328p 3 | FORMAT = ihex 4 | TARGET = $(NAME) 5 | 6 | AVRDUDE = avrdude -p$(MCU) -cusbasp -Uflash:w:$(NAME).hex:a 7 | 8 | THIRD_PARTY_PATH = ../thirdparty 9 | UIP_PATH = $(THIRD_PARTY_PATH)/avr-uip-2 10 | UMQTT_PATH = $(THIRD_PARTY_PATH)/umqtt 11 | 12 | CSRC = main.c clock-arch.c nethandler.c oled.c ds18b20.c dht.c 13 | 14 | CSRC += $(UIP_PATH)/uip/uip.c \ 15 | $(UIP_PATH)/uip/uip_arp.c \ 16 | $(UIP_PATH)/uip/psock.c \ 17 | $(UIP_PATH)/uip/uiplib.c \ 18 | $(UIP_PATH)/drivers/enc28j60/network.c \ 19 | $(UIP_PATH)/drivers/enc28j60/enc28j60.c 20 | 21 | CSRC += $(UMQTT_PATH)/umqtt/umqtt.c 22 | 23 | CINC = -I. \ 24 | -I$(UIP_PATH)/uip \ 25 | -I$(UIP_PATH)/drivers/enc28j60 \ 26 | -I$(UIP_PATH)/drivers/interfaces \ 27 | -I$(UMQTT_PATH) 28 | 29 | CFLAGS = -include config.h 30 | CFLAGS += -include uip-conf.h 31 | CFLAGS += -O2 32 | CFLAGS += -Wall -Wextra 33 | CFLAGS += -std=gnu99 34 | CFLAGS += -fpack-struct -fshort-enums -ffunction-sections \ 35 | -fdata-sections -funsigned-char -funsigned-bitfields 36 | CFLAGS += -mmcu=$(MCU) 37 | CFLAGS += $(CINC) 38 | 39 | LDFLAGS = -Wl,-Map,$(PRG).map,--gc-sections 40 | 41 | CROSS = avr- 42 | SHELL = sh 43 | CC = $(CROSS)gcc 44 | OBJCOPY = $(CROSS)objcopy 45 | OBJDUMP = $(CROSS)objdump 46 | SIZE = $(CROSS)size 47 | NM = $(CROSS)nm 48 | RM = rm -f 49 | 50 | OBJ = $(CSRC:.c=.o) 51 | LST = $(CSRC:.c=.lst) 52 | 53 | all: $(NAME).elf hex 54 | 55 | $(NAME).elf: 56 | $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(CSRC) 57 | 58 | text: hex bin srec 59 | 60 | hex: $(NAME).hex 61 | 62 | avrdude: hex 63 | $(AVRDUDE) 64 | 65 | %.hex: %.elf 66 | $(OBJCOPY) -j .text -j .data -O ihex $< $@ 67 | 68 | clean: 69 | $(RM) *.hex 70 | 71 | .PHONY: $(NAME).elf 72 | -------------------------------------------------------------------------------- /src/bitmaps.h: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | const uint8_t PROGMEM bitmaps_7seg7x16[][14] = { 5 | { 6 | 0xf0, 0xf0, 0x30, 0x30, 0x30, 0xf0, 0xf0, 7 | 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 8 | }, 9 | { 10 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 11 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 12 | }, 13 | { 14 | 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 15 | 0xfe, 0xfe, 0xc6, 0xc6, 0xc6, 0xc7, 0xc7, 16 | }, 17 | { 18 | 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 19 | 0xc6, 0xc6, 0xc6, 0xc6, 0xc6, 0xff, 0xff, 20 | }, 21 | { 22 | 0xf0, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0xf0, 23 | 0x07, 0x07, 0x06, 0x06, 0x06, 0xff, 0xff, 24 | }, 25 | { 26 | 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 27 | 0xc7, 0xc7, 0xc6, 0xc6, 0xc6, 0xfe, 0xfe, 28 | }, 29 | { 30 | 0xf0, 0xf0, 0x30, 0x30, 0x30, 0x30, 0x30, 31 | 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xfe, 0xfe, 32 | }, 33 | { 34 | 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0xf0, 35 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 36 | }, 37 | { 38 | 0xf0, 0xf0, 0x30, 0x30, 0x30, 0xf0, 0xf0, 39 | 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xff, 40 | }, 41 | { 42 | 0xf0, 0xf0, 0x30, 0x30, 0x30, 0xf0, 0xf0, 43 | 0xc7, 0xc7, 0xc6, 0xc6, 0xc6, 0xff, 0xff, 44 | }, 45 | { 46 | 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x30, 47 | 0x80, 0xe0, 0x38, 0x0e, 0x03, 0x00, 0x00, 48 | }, 49 | }; 50 | 51 | const uint8_t PROGMEM bitmaps_percent9x16[] = { 52 | 0xe0, 0xe0, 0x60, 0x60, 0xe0, 0xe0, 0x00, 0x80, 0xc0, 0xe0, 0x60, 53 | 0xcf, 0xef, 0x7c, 0x3c, 0x1f, 0xff, 0xff, 0xc7, 0xc7, 0xfe, 0xfe, 54 | }; 55 | 56 | const uint8_t PROGMEM bitmaps_7seg12x24[][36] = { 57 | { 58 | 0xfc, 0xfc, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xfc, 0xfc, 59 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 60 | 0x3f, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x3f, 61 | }, 62 | { 63 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 64 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 65 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 66 | }, 67 | { 68 | 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xfc, 0xfc, 69 | 0xf8, 0xf8, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1f, 0x1f, 70 | 0x3f, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 71 | }, 72 | { 73 | 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xfc, 0xfc, 74 | 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0xff, 75 | 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x3f, 76 | }, 77 | { 78 | 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 79 | 0x1f, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0xff, 80 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 81 | }, 82 | { 83 | 0xfc, 0xfc, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 84 | 0x1f, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0xf8, 85 | 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x3f, 86 | }, 87 | { 88 | 0xfc, 0xfc, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 89 | 0xff, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xf8, 0xf8, 90 | 0x3f, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x3f, 91 | }, 92 | { 93 | 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xfc, 0xfc, 94 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 95 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 96 | }, 97 | { 98 | 0xfc, 0xfc, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xfc, 0xfc, 99 | 0xff, 0xff, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0xff, 100 | 0x3f, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x3f, 101 | }, 102 | { 103 | 0xfc, 0xfc, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0xfc, 0xfc, 104 | 0x1f, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xff, 0xff, 105 | 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x3f, 106 | }, 107 | }; 108 | 109 | const uint8_t PROGMEM bitmaps_cloudy[] = { 110 | 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 111 | 0x00, 0x0e, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 112 | }; 113 | const uint8_t PROGMEM bitmaps_lightning[] = { 114 | 0x00, 0x80, 0xc0, 0xe0, 0xb0, 0x98, 0x8c, 0x86, 0x80, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xb0, 0x98, 0x8c, 0x86, 0x80, 115 | 0x01, 0x61, 0x31, 0x19, 0x0d, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x01, 0x61, 0x31, 0x19, 0x0d, 0x07, 0x03, 0x01, 0x00, 116 | }; 117 | const uint8_t PROGMEM bitmaps_mist[] = { 118 | 0x44, 0x22, 0x11, 0x11, 0x11, 0x22, 0x44, 0x44, 0x44, 0x22, 0x11, 0x11, 0x11, 0x22, 0x44, 0x44, 0x44, 0x22, 0x11, 0x11, 119 | 0x44, 0x22, 0x11, 0x11, 0x11, 0x22, 0x44, 0x44, 0x44, 0x22, 0x11, 0x11, 0x11, 0x22, 0x44, 0x44, 0x44, 0x22, 0x11, 0x11, 120 | }; 121 | const uint8_t PROGMEM bitmaps_rain[] = { 122 | 0x00, 0x00, 0x00, 0x60, 0x98, 0x60, 0x00, 0x00, 0x18, 0x26, 0x18, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x18, 0x26, 0x18, 0x00, 123 | 0x00, 0x30, 0x4c, 0x30, 0x00, 0x00, 0x00, 0x18, 0x26, 0x18, 0x00, 0x00, 0x03, 0x04, 0x03, 0x60, 0x98, 0x60, 0x00, 0x00, 124 | }; 125 | const uint8_t PROGMEM bitmaps_snow[] = { 126 | 0x00, 0x0a, 0x44, 0x8a, 0x40, 0x00, 0x00, 0x14, 0x08, 0x54, 0x80, 0x40, 0x00, 0x00, 0x05, 0x02, 0x05, 0xa0, 0x40, 0xa0, 127 | 0x50, 0x20, 0x51, 0x00, 0x01, 0x00, 0x14, 0x08, 0x14, 0x01, 0x00, 0x01, 0x00, 0x00, 0x14, 0x08, 0x14, 0x00, 0x00, 0x00, 128 | }; 129 | const uint8_t PROGMEM bitmaps_suncloud[] = { 130 | 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0x60, 0x62, 0x76, 0x7c, 0x78, 0x6c, 0xcf, 0xcc, 0x98, 0xfc, 0xe6, 0x42, 0x40, 0x40, 131 | 0x00, 0x0e, 0x1f, 0x19, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x19, 0x1f, 0x0f, 0x06, 0x0c, 0x00, 0x00, 132 | }; 133 | const uint8_t PROGMEM bitmaps_sun[] = { 134 | 0x00, 0x00, 0x80, 0x80, 0x8c, 0xd8, 0xf0, 0x30, 0x18, 0x1f, 0x18, 0x30, 0xf0, 0xd8, 0x8c, 0x80, 0x80, 0x00, 0x00, 0x00, 135 | 0x00, 0x00, 0x00, 0x00, 0x18, 0x0d, 0x07, 0x06, 0x0c, 0x7c, 0x0c, 0x06, 0x07, 0x0d, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 136 | }; 137 | 138 | const uint8_t PROGMEM bitmaps_font6x8[][6] = { 139 | {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* s */ 140 | {0x00, 0x00, 0x00, 0x2f, 0x00, 0x00}, /* ! */ 141 | {0x00, 0x00, 0x07, 0x00, 0x07, 0x00}, /* " */ 142 | {0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14}, /* # */ 143 | {0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12}, /* $ */ 144 | {0x00, 0x62, 0x64, 0x08, 0x13, 0x23}, /* % */ 145 | {0x00, 0x36, 0x49, 0x55, 0x22, 0x50}, /* & */ 146 | {0x00, 0x00, 0x05, 0x03, 0x00, 0x00}, /* ' */ 147 | {0x00, 0x00, 0x1c, 0x22, 0x41, 0x00}, /* ( */ 148 | {0x00, 0x00, 0x41, 0x22, 0x1c, 0x00}, /* ) */ 149 | {0x00, 0x14, 0x08, 0x3E, 0x08, 0x14}, /* * */ 150 | {0x00, 0x08, 0x08, 0x3E, 0x08, 0x08}, /* + */ 151 | {0x00, 0x00, 0x00, 0xA0, 0x60, 0x00}, /* , */ 152 | {0x00, 0x08, 0x08, 0x08, 0x08, 0x08}, /* - */ 153 | {0x00, 0x00, 0x60, 0x60, 0x00, 0x00}, /* . */ 154 | {0x00, 0x20, 0x10, 0x08, 0x04, 0x02}, /* / */ 155 | {0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E}, /* 0 */ 156 | {0x00, 0x00, 0x42, 0x7F, 0x40, 0x00}, /* 1 */ 157 | {0x00, 0x42, 0x61, 0x51, 0x49, 0x46}, /* 2 */ 158 | {0x00, 0x21, 0x41, 0x45, 0x4B, 0x31}, /* 3 */ 159 | {0x00, 0x18, 0x14, 0x12, 0x7F, 0x10}, /* 4 */ 160 | {0x00, 0x27, 0x45, 0x45, 0x45, 0x39}, /* 5 */ 161 | {0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30}, /* 6 */ 162 | {0x00, 0x01, 0x71, 0x09, 0x05, 0x03}, /* 7 */ 163 | {0x00, 0x36, 0x49, 0x49, 0x49, 0x36}, /* 8 */ 164 | {0x00, 0x06, 0x49, 0x49, 0x29, 0x1E}, /* 9 */ 165 | {0x00, 0x00, 0x36, 0x36, 0x00, 0x00}, /* : */ 166 | {0x00, 0x00, 0x56, 0x36, 0x00, 0x00}, /* ; */ 167 | {0x00, 0x08, 0x14, 0x22, 0x41, 0x00}, /* < */ 168 | {0x00, 0x14, 0x14, 0x14, 0x14, 0x14}, /* = */ 169 | {0x00, 0x00, 0x41, 0x22, 0x14, 0x08}, /* > */ 170 | {0x00, 0x02, 0x01, 0x51, 0x09, 0x06}, /* ? */ 171 | {0x00, 0x32, 0x49, 0x59, 0x51, 0x3E}, /* @ */ 172 | {0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C}, /* A */ 173 | {0x00, 0x7F, 0x49, 0x49, 0x49, 0x36}, /* B */ 174 | {0x00, 0x3E, 0x41, 0x41, 0x41, 0x22}, /* C */ 175 | {0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C}, /* D */ 176 | {0x00, 0x7F, 0x49, 0x49, 0x49, 0x41}, /* E */ 177 | {0x00, 0x7F, 0x09, 0x09, 0x09, 0x01}, /* F */ 178 | {0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A}, /* G */ 179 | {0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F}, /* H */ 180 | {0x00, 0x00, 0x41, 0x7F, 0x41, 0x00}, /* I */ 181 | {0x00, 0x20, 0x40, 0x41, 0x3F, 0x01}, /* J */ 182 | {0x00, 0x7F, 0x08, 0x14, 0x22, 0x41}, /* K */ 183 | {0x00, 0x7F, 0x40, 0x40, 0x40, 0x40}, /* L */ 184 | {0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F}, /* M */ 185 | {0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F}, /* N */ 186 | {0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E}, /* O */ 187 | {0x00, 0x7F, 0x09, 0x09, 0x09, 0x06}, /* P */ 188 | {0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E}, /* Q */ 189 | {0x00, 0x7F, 0x09, 0x19, 0x29, 0x46}, /* R */ 190 | {0x00, 0x46, 0x49, 0x49, 0x49, 0x31}, /* S */ 191 | {0x00, 0x01, 0x01, 0x7F, 0x01, 0x01}, /* T */ 192 | {0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F}, /* U */ 193 | {0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F}, /* V */ 194 | {0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F}, /* W */ 195 | {0x00, 0x63, 0x14, 0x08, 0x14, 0x63}, /* X */ 196 | {0x00, 0x07, 0x08, 0x70, 0x08, 0x07}, /* Y */ 197 | {0x00, 0x61, 0x51, 0x49, 0x45, 0x43}, /* Z */ 198 | {0x00, 0x00, 0x7F, 0x41, 0x41, 0x00}, /* [ */ 199 | {0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55}, /* 5 */ 200 | {0x00, 0x00, 0x41, 0x41, 0x7F, 0x00}, /* ] */ 201 | {0x00, 0x04, 0x02, 0x01, 0x02, 0x04}, /* ^ */ 202 | {0x00, 0x40, 0x40, 0x40, 0x40, 0x40}, /* _ */ 203 | {0x00, 0x00, 0x01, 0x02, 0x04, 0x00}, /* ' */ 204 | {0x00, 0x20, 0x54, 0x54, 0x54, 0x78}, /* a */ 205 | {0x00, 0x7F, 0x48, 0x44, 0x44, 0x38}, /* b */ 206 | {0x00, 0x38, 0x44, 0x44, 0x44, 0x20}, /* c */ 207 | {0x00, 0x38, 0x44, 0x44, 0x48, 0x7F}, /* d */ 208 | {0x00, 0x38, 0x54, 0x54, 0x54, 0x18}, /* e */ 209 | {0x00, 0x08, 0x7E, 0x09, 0x01, 0x02}, /* f */ 210 | {0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C}, /* g */ 211 | {0x00, 0x7F, 0x08, 0x04, 0x04, 0x78}, /* h */ 212 | {0x00, 0x00, 0x44, 0x7D, 0x40, 0x00}, /* i */ 213 | {0x00, 0x40, 0x80, 0x84, 0x7D, 0x00}, /* j */ 214 | {0x00, 0x7F, 0x10, 0x28, 0x44, 0x00}, /* k */ 215 | {0x00, 0x00, 0x41, 0x7F, 0x40, 0x00}, /* l */ 216 | {0x00, 0x7C, 0x04, 0x18, 0x04, 0x78}, /* m */ 217 | {0x00, 0x7C, 0x08, 0x04, 0x04, 0x78}, /* n */ 218 | {0x00, 0x38, 0x44, 0x44, 0x44, 0x38}, /* o */ 219 | {0x00, 0xFC, 0x24, 0x24, 0x24, 0x18}, /* p */ 220 | {0x00, 0x18, 0x24, 0x24, 0x18, 0xFC}, /* q */ 221 | {0x00, 0x7C, 0x08, 0x04, 0x04, 0x08}, /* r */ 222 | {0x00, 0x48, 0x54, 0x54, 0x54, 0x20}, /* s */ 223 | {0x00, 0x04, 0x3F, 0x44, 0x40, 0x20}, /* t */ 224 | {0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C}, /* u */ 225 | {0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C}, /* v */ 226 | {0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C}, /* w */ 227 | {0x00, 0x44, 0x28, 0x10, 0x28, 0x44}, /* x */ 228 | {0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C}, /* y */ 229 | {0x00, 0x44, 0x64, 0x54, 0x4C, 0x44}, /* z */ 230 | }; 231 | -------------------------------------------------------------------------------- /src/clock-arch.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This file handles time keeping 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #include 22 | 23 | #include "clock-arch.h" 24 | #include "uip.h" 25 | #include "uip_arp.h" 26 | #include "nethandler.h" 27 | 28 | static clock_time_t time; 29 | 30 | /* Overflow interrupt */ 31 | ISR(TIMER1_COMPA_vect) 32 | { 33 | time += 1; 34 | } 35 | 36 | void clock_init() 37 | { 38 | /* Enable compare A interrupt */ 39 | TIMSK1 |= _BV(OCIE1A); 40 | /* f_cpu / 1024 and CTC mode */ 41 | TCCR1B |= _BV(CS12) | _BV(CS10) | _BV(WGM12); 42 | OCR1A = 6104; /* Magical constant - 2Hz */ 43 | } 44 | 45 | clock_time_t clock_time() 46 | { 47 | return time; 48 | } 49 | 50 | void clock_set(clock_time_t t) 51 | { 52 | time = t; 53 | } 54 | -------------------------------------------------------------------------------- /src/clock-arch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Header file for clock-arch.c 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef __CLOCK_ARCH_H__ 22 | #define __CLOCK_ARCH_H__ 23 | 24 | #include 25 | 26 | typedef uint32_t clock_time_t; /* This should serve for some time */ 27 | #define CLOCK_CONF_SECOND (clock_time_t)2 28 | 29 | #define clock_time_seconds() (clock_time() / CLOCK_CONF_SECOND) 30 | #define clock_set_seconds(x) clock_set((x) * CLOCK_CONF_SECOND) 31 | 32 | void clock_set(clock_time_t t); 33 | clock_time_t clock_time(); 34 | 35 | #include "clock.h" 36 | 37 | #endif /* __CLOCK_ARCH_H__ */ 38 | -------------------------------------------------------------------------------- /src/common.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Common utilities 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef __COMMON_H__ 22 | #define __COMMON_H__ 23 | 24 | 25 | #define ARRAY_SIZE(x) sizeof(x) / sizeof((x)[0]) 26 | 27 | #define times(m, x) \ 28 | for((x) = 0; (x) < (m); (x)++) 29 | 30 | #define iterate(a, x) \ 31 | for((x) = 0; (x) < (ARRAY_SIZE(a)); (x)++) 32 | 33 | #endif /* __COMMON_H__ */ 34 | -------------------------------------------------------------------------------- /src/config.h: -------------------------------------------------------------------------------- 1 | 2 | #ifndef __CONFIG_H__ 3 | #define __CONFIG_H__ 4 | 5 | #include "umqtt/umqtt.h" 6 | #include "nethandler.h" 7 | 8 | #define _STR(x) #x 9 | #define STR(x) _STR(x) 10 | 11 | #define BUTTON(bank, pin, topic) \ 12 | { GPIO(bank, pin), topic, 0, false} 13 | 14 | #define OUTPUT(bank, pin, topic) \ 15 | { GPIO(bank, pin), topic } 16 | 17 | #define F_CPU 12500000UL 18 | 19 | #define IPADDR0 192 20 | #define IPADDR1 168 21 | #define IPADDR2 10 22 | #define IPADDR3 156 23 | 24 | #define ETHADDR0 0x00 25 | #define ETHADDR1 0xbd 26 | #define ETHADDR2 0x3b 27 | #define ETHADDR3 0x33 28 | #define ETHADDR4 0x05 29 | #define ETHADDR5 0x71 30 | 31 | #define ENC28J60_SPI_PORT PORTB 32 | #define ENC28J60_SPI_DDR DDRB 33 | #define ENC28J60_SPI_SCK PB5 34 | #define ENC28J60_SPI_MOSI PB3 35 | #define ENC28J60_SPI_MISO PB4 36 | #define ENC28J60_SPI_SS PB2 37 | #define ENC28J60_CONTROL_PORT PORTB 38 | #define ENC28J60_CONTROL_DDR DDRB 39 | #define ENC28J60_CONTROL_CS PB2 40 | 41 | #define HAS_DHT 42 | #define HAS_DS 43 | #define HAS_BUTTONS 44 | #define HAS_OUTPUTS 45 | 46 | #define MQTT_IP0 192 47 | #define MQTT_IP1 168 48 | #define MQTT_IP2 10 49 | #define MQTT_IP3 21 50 | 51 | #define MQTT_KEEP_ALIVE 30 52 | #define MQTT_CLIENT_ID "avr-mqtt-" STR(IPADDR3) 53 | #define MQTT_TOPIC_DATE "time/date" 54 | #define MQTT_TOPIC_DATETIME "time/daytime" 55 | #define MQTT_TOPIC_TEMP "sensors/temperature/frontdoor" 56 | #define MQTT_TOPIC_HUMIDITY "sensors/humidity/frontdoor" 57 | #define MQTT_TOPIC_WEATHER "weather/local/general" 58 | 59 | #define SENSORS_PUBLISH_RATE 60 60 | #define SENSORS_DISPLAY_RATE 5 61 | 62 | #define BUTTONS \ 63 | BUTTON(C, 3, "input/button/doorbell/top"), \ 64 | BUTTON(C, 2, "input/button/doorbell/bottom") 65 | 66 | #define OUTPUTS \ 67 | OUTPUT(C, 0, "output/binary/bell") 68 | 69 | typedef struct nethandler_state uip_tcp_appstate_t; 70 | #define UIP_APPCALL nethandler_umqtt_appcall 71 | 72 | #endif /*__CONFIG_H__*/ 73 | -------------------------------------------------------------------------------- /src/dht.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Driver for DHT11 humidity sensor 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #include 22 | #include 23 | 24 | #include "common.h" 25 | #include "clock-arch.h" 26 | #include "dht.h" 27 | 28 | /* TODO: Handle timeouts! */ 29 | 30 | int dht_humidity(struct dht *d) 31 | { 32 | int ret = 0; 33 | int i; 34 | 35 | cli(); 36 | 37 | gpio_out(&(d)->gpio); 38 | gpio_low(&(d)->gpio); 39 | _delay_ms(20); 40 | gpio_in(&(d)->gpio); 41 | gpio_high(&(d)->gpio); 42 | 43 | while (gpio_value(&d->gpio)); 44 | while (!gpio_value(&d->gpio)); 45 | while (gpio_value(&d->gpio)); 46 | 47 | times(8, i) { 48 | while (!gpio_value(&d->gpio)) 49 | _delay_us(1); /* Latch onto the data signal */ 50 | _delay_us(40); 51 | if (gpio_value(&d->gpio)) { 52 | ret = (ret << 1) | 1; 53 | while (gpio_value(&d->gpio)) 54 | _delay_us(1); 55 | } else { 56 | ret = ret << 1; 57 | } 58 | } 59 | 60 | sei(); 61 | 62 | return ret & 0xff; 63 | } 64 | -------------------------------------------------------------------------------- /src/dht.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Header file for the DHT11 driver 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef __DHT_H__ 22 | #define __DHT_H__ 23 | 24 | #include "gpio.h" 25 | 26 | struct dht { 27 | struct gpio gpio; 28 | }; 29 | 30 | /* Returns 0 - 100 on correct read, < 0 on error */ 31 | int dht_humidity(struct dht *dht); 32 | 33 | #endif /* __DHT_H__ */ 34 | -------------------------------------------------------------------------------- /src/ds18b20.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Driver for the DS18B20 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #include 22 | #include 23 | 24 | #include "common.h" 25 | #include "ds18b20.h" 26 | 27 | #define ds18b20_drive(ds) \ 28 | do { \ 29 | gpio_out(&ds->gpio); \ 30 | gpio_low(&ds->gpio); \ 31 | } while (0) 32 | 33 | #define ds18b20_release(ds) \ 34 | do { \ 35 | gpio_in(&ds->gpio); \ 36 | gpio_high(&ds->gpio); \ 37 | } while (0) 38 | 39 | static void ds18b20_write(struct ds18b20 *ds, bool b) 40 | { 41 | ds18b20_drive(ds); 42 | if (b) { 43 | _delay_us(1); 44 | ds18b20_release(ds); 45 | _delay_us(59); 46 | } else { 47 | _delay_us(60); 48 | ds18b20_release(ds); 49 | } 50 | } 51 | 52 | static bool ds18b20_read(struct ds18b20 *ds) 53 | { 54 | bool ret; 55 | 56 | ds18b20_drive(ds); 57 | _delay_us(1); 58 | ds18b20_release(ds); 59 | _delay_us(14); 60 | ret = gpio_value(&ds->gpio); 61 | _delay_us(45); 62 | return ret; 63 | } 64 | 65 | static uint8_t ds18b20_read_byte(struct ds18b20 *ds) 66 | { 67 | uint8_t ret = 0; 68 | int i; 69 | 70 | times(8, i) 71 | ret |= ds18b20_read(ds) << i; 72 | 73 | return ret; 74 | } 75 | 76 | static void ds18b20_write_byte(struct ds18b20 *ds, uint8_t data) 77 | { 78 | int i; 79 | 80 | times(8, i) { 81 | ds18b20_write(ds, data & _BV(i)); 82 | _delay_us(1); 83 | } 84 | } 85 | 86 | signed long ds18b20_read_temp(struct ds18b20 *ds) 87 | { 88 | signed long ret; 89 | 90 | ds18b20_reset(ds); 91 | ds18b20_write_byte(ds, 0xcc); 92 | ds18b20_write_byte(ds, 0xbe); /* Read memory */ 93 | ret = ds18b20_read_byte(ds); 94 | ret |= ds18b20_read_byte(ds) << 8; 95 | ds18b20_reset(ds); /* We really do not care about the rest of the memory */ 96 | 97 | return ret * 625 / 10; 98 | } 99 | 100 | void ds18b20_convert(struct ds18b20 *ds) 101 | { 102 | ds18b20_reset(ds); 103 | 104 | ds18b20_write_byte(ds, 0xcc); /* Skip ROM */ 105 | ds18b20_write_byte(ds, 0x44); /* Convert */ 106 | } 107 | 108 | bool ds18b20_reset(struct ds18b20 *ds) 109 | { 110 | bool ret; 111 | 112 | ds18b20_drive(ds); 113 | _delay_us(480); 114 | ds18b20_release(ds); 115 | _delay_us(60); 116 | ret = gpio_value(&ds->gpio); 117 | _delay_us(420); 118 | return !ret; /* Low value - driven by ds18b20 */ 119 | } 120 | 121 | -------------------------------------------------------------------------------- /src/ds18b20.h: -------------------------------------------------------------------------------- 1 | /* 2 | * DS18B20 driver header file 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef __DS18B20_H__ 22 | #define __DS18B20_H__ 23 | 24 | #include "gpio.h" 25 | 26 | struct ds18b20 { 27 | struct gpio gpio; 28 | }; 29 | 30 | /* Returns true on presence pulse detected */ 31 | bool ds18b20_reset(struct ds18b20 *ds); 32 | /* Converts temperature */ 33 | void ds18b20_convert(struct ds18b20 *ds); 34 | /* Returns temperature in mC */ 35 | signed long ds18b20_read_temp(struct ds18b20 *ds); 36 | 37 | #endif /* __DS18B20_H__ */ 38 | -------------------------------------------------------------------------------- /src/gpio.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GPIO utilities 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef __GPIO_H__ 22 | #define __GPIO_H__ 23 | 24 | struct gpio { 25 | volatile unsigned char *ddr; 26 | volatile unsigned char *pin; 27 | volatile unsigned char *port; 28 | int n; 29 | }; 30 | 31 | #define GPIO(b, p) \ 32 | { .ddr = &(DDR##b), .pin = &(PIN##b), .port = &(PORT##b), .n = p } 33 | 34 | #define gpio_in(g) \ 35 | (*(g)->ddr &= ~_BV((g)->n)) 36 | 37 | #define gpio_out(g) \ 38 | (*(g)->ddr |= _BV((g)->n)) 39 | 40 | #define gpio_high(g) \ 41 | (*(g)->port |= _BV((g)->n)) 42 | 43 | #define gpio_low(g) \ 44 | (*(g)->port &= ~_BV((g)->n)) 45 | 46 | #define gpio_toggle(g) \ 47 | (*(g)->port ^= _BV((g)->n)) 48 | 49 | #define gpio_value(g) \ 50 | (!!(*(g)->pin & _BV((g)->n))) 51 | 52 | #endif /* __GPIO_H__ */ 53 | -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (C) Josef Gajdusek 4 | * 5 | * This program is free software: you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation, either version 3 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program. If not, see . 17 | * 18 | * */ 19 | 20 | #include "timer.h" 21 | #include "uip-conf.h" 22 | 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #include "common.h" 32 | #include "uip.h" 33 | #include "uip_arp.h" 34 | #include "network.h" 35 | #include "enc28j60.h" 36 | #include "nethandler.h" 37 | #include "oled.h" 38 | #include "bitmaps.h" 39 | #include "ds18b20.h" 40 | #include "dht.h" 41 | #include "umqtt/umqtt.h" 42 | 43 | #if defined(HAS_DS) || defined(HAS_DHT) 44 | #define HAS_SENSORS 45 | #endif 46 | 47 | #define led_init() (DDRC |= _BV(PC1)) 48 | #define led_on() (PORTC |= _BV(PC1)) 49 | #define led_off() (PORTC &= ~_BV(PC1)) 50 | #define led_toggle() (PORTC ^= _BV(PC1)) 51 | 52 | /* This is time in LOCAL time zone. This allows elegant centralized handling 53 | * of leap seconds/summer time or whatever weirdness is imposed on us 54 | * */ 55 | 56 | struct human_time { 57 | unsigned int hours; 58 | unsigned int minutes; 59 | unsigned int seconds; 60 | }; 61 | 62 | /* The currently displayed time. 63 | * Set to impossible values to force rendering right from the start 64 | * */ 65 | static struct human_time time_displ = { 25, 61, 61 }; 66 | static unsigned long time_day; /* Seconds of day */ 67 | static unsigned long time_offset; 68 | 69 | static volatile bool flag_packet_rx = true; 70 | 71 | static struct oled oled = { 72 | .sda = GPIO(C, 4), 73 | .scl = GPIO(C, 5), 74 | }; 75 | 76 | #ifdef HAS_OUTPUTS 77 | 78 | struct output_data { 79 | struct gpio gpio; 80 | char *topic; 81 | }; 82 | 83 | /* Has to be publicly accessible so we can subscribe in nethandler.c */ 84 | struct output_data outputs[] = { 85 | OUTPUTS 86 | }; 87 | 88 | static void outputs_init() 89 | { 90 | unsigned int i; 91 | 92 | iterate(outputs, i) { 93 | gpio_out(&outputs[i].gpio); 94 | gpio_low(&outputs[i].gpio); 95 | } 96 | } 97 | 98 | #define outputs_high(o) \ 99 | gpio_high(&(o)->gpio) 100 | 101 | #define outputs_low(o) \ 102 | gpio_low(&(o)->gpio) 103 | 104 | #endif 105 | 106 | #ifdef HAS_BUTTONS 107 | 108 | struct button_data { 109 | struct gpio gpio; 110 | char *topic; 111 | unsigned int debounce_counter; 112 | bool pressed; 113 | }; 114 | 115 | static struct button_data buttons[] = { 116 | BUTTONS 117 | }; 118 | 119 | static void buttons_init() 120 | { 121 | unsigned int i; 122 | 123 | iterate(buttons, i) { 124 | gpio_in(&buttons[i].gpio); 125 | gpio_high(&buttons[i].gpio); /* Pull up */ 126 | } 127 | 128 | /* Set to f_cpu / 256 - app. 191 Hertz */ 129 | TCCR0B = _BV(CS02); 130 | TIMSK0 = _BV(TOIE0); 131 | } 132 | 133 | #endif 134 | 135 | #ifdef HAS_DS 136 | 137 | static struct ds18b20 therm = { 138 | .gpio = GPIO(B, 1), 139 | }; 140 | 141 | #endif 142 | 143 | #ifdef HAS_DHT 144 | 145 | static struct dht dht = { 146 | .gpio = GPIO(B, 0), 147 | }; 148 | 149 | #endif 150 | 151 | static int pointer_x = 0; 152 | 153 | static int display_putchar(char c, FILE __attribute__((unused))*stream) 154 | { 155 | if (c == '\n') { 156 | pointer_x = 0; 157 | return 0; 158 | } 159 | oled_write_image_pgm(&oled, pointer_x, 0, 6, 1, bitmaps_font6x8[c - 0x20]); 160 | pointer_x = (pointer_x + 6) % 128; 161 | return 0; 162 | } 163 | 164 | static void display_time() 165 | { 166 | unsigned long clock = clock_time_seconds(); 167 | unsigned long h; 168 | unsigned long m; 169 | unsigned long s; 170 | 171 | time_day = (time_day + (clock - time_offset)); 172 | time_offset = clock; 173 | 174 | h = time_day / 3600; 175 | m = (time_day - h * 3600) / 60; 176 | s = (time_day - h * 3600 - m * 60); 177 | 178 | if (h != time_displ.hours) { 179 | oled_write_image_pgm(&oled, 18 * 0, 3, 12, 3, 180 | bitmaps_7seg12x24[h / 10]); 181 | oled_write_image_pgm(&oled, 18 * 1, 3, 12, 3, 182 | bitmaps_7seg12x24[h % 10]); 183 | time_displ.hours = h; 184 | } 185 | if (m != time_displ.minutes) { 186 | oled_write_image_pgm(&oled, 18 * 2, 3, 12, 3, 187 | bitmaps_7seg12x24[m / 10]); 188 | oled_write_image_pgm(&oled, 18 * 3, 3, 12, 3, 189 | bitmaps_7seg12x24[m % 10]); 190 | time_displ.minutes = m; 191 | } 192 | /* We should get called at most once per second */ 193 | oled_write_image_pgm(&oled, 23 + 0, 6, 7, 2, bitmaps_7seg7x16[s / 10]); 194 | oled_write_image_pgm(&oled, 20 + 15, 6, 7, 2, bitmaps_7seg7x16[s % 10]); 195 | 196 | time_displ.seconds = s; 197 | } 198 | 199 | static void display_date(int m, int d) 200 | { 201 | unsigned int i; 202 | char str[6]; 203 | 204 | snprintf(str, sizeof(str), "%02d%02d", m, d); 205 | 206 | for (i = 0; str[i]; i++) 207 | oled_write_image_pgm(&oled, i * 10, 0, 7, 2, 208 | str[i] >= '0' && str[i] <= '9' ? 209 | bitmaps_7seg7x16[str[i] - 0x30] : 210 | bitmaps_7seg7x16[10]); 211 | } 212 | 213 | static void display_weather(char *str) 214 | { 215 | const uint8_t *ptr; 216 | 217 | if (strcmp(str, "cloudy") == 0) 218 | ptr = bitmaps_cloudy; 219 | else if (strcmp(str, "lightning") == 0) 220 | ptr = bitmaps_lightning; 221 | else if (strcmp(str, "rain") == 0) 222 | ptr = bitmaps_rain; 223 | else if (strcmp(str, "snow") == 0) 224 | ptr = bitmaps_snow; 225 | else if (strcmp(str, "clear+cloud") == 0) 226 | ptr = bitmaps_suncloud; 227 | else 228 | ptr = bitmaps_sun; 229 | oled_write_image_pgm(&oled, 58, 0, 20, 2, ptr); 230 | } 231 | 232 | static void handle_message(struct umqtt_connection __attribute__((unused))*conn, 233 | char *topic, uint8_t *data, int len) 234 | { 235 | char str[len + 1]; 236 | unsigned int h; 237 | unsigned int m; 238 | unsigned int s; 239 | 240 | memcpy(str, data, len); 241 | 242 | str[len] = 0; 243 | 244 | if (strcmp(topic, MQTT_TOPIC_DATETIME) == 0) { 245 | sscanf(str, "%d:%d:%d", &h, &m, &s); 246 | time_day = h * 3600l + m * 60l + s; 247 | time_offset = clock_time_seconds(); 248 | } else if (strcmp(topic, MQTT_TOPIC_DATE) == 0) { 249 | sscanf(str, "%d-%d-%d", &h, &m, &s); 250 | display_date(m, s); 251 | } else if (strcmp(topic, MQTT_TOPIC_WEATHER) == 0) { 252 | display_weather(str); 253 | } else { 254 | #ifdef HAS_OUTPUTS 255 | iterate(outputs, h) { 256 | if (strcmp(topic, outputs[h].topic) == 0) { 257 | if (strcmp(str, "true") == 0) 258 | outputs_high(&outputs[h]); 259 | else 260 | outputs_low(&outputs[h]); 261 | } 262 | } 263 | #endif 264 | } 265 | } 266 | 267 | static FILE display_stream = FDEV_SETUP_STREAM(display_putchar, NULL, 268 | _FDEV_SETUP_WRITE); 269 | 270 | static uint8_t mqtt_txbuff[200]; 271 | static uint8_t mqtt_rxbuff[150]; 272 | 273 | static struct umqtt_connection mqtt = { 274 | .txbuff = { 275 | .start = mqtt_txbuff, 276 | .length = sizeof(mqtt_txbuff), 277 | }, 278 | .rxbuff = { 279 | .start = mqtt_rxbuff, 280 | .length = sizeof(mqtt_rxbuff), 281 | }, 282 | .message_callback = handle_message, 283 | }; 284 | 285 | #ifdef HAS_SENSORS 286 | 287 | struct timer dis_sensors_timer; 288 | struct timer sensors_send_timer; 289 | 290 | static void sensors_send(char *topic, signed long val) 291 | { 292 | char buff[20]; 293 | int len; 294 | len = snprintf(buff, sizeof(buff), "%ld", val); 295 | umqtt_publish(&mqtt, topic, (uint8_t *)buff, len); 296 | } 297 | 298 | #endif 299 | 300 | #ifdef HAS_DS 301 | 302 | static void display_therm(signed long i) 303 | { 304 | i /= 1000; 305 | oled_write_image_pgm(&oled, 18 * 5, 3, 12, 3, bitmaps_7seg12x24[i / 10]); 306 | oled_write_image_pgm(&oled, 18 * 6, 3, 12, 3, bitmaps_7seg12x24[i % 10]); 307 | } 308 | 309 | static void sensors_therm_expired() 310 | { 311 | signed long temp = ds18b20_read_temp(&therm); 312 | 313 | ds18b20_convert(&therm); 314 | 315 | if (timer_expired(&dis_sensors_timer)) 316 | display_therm(temp); 317 | if (timer_expired(&sensors_send_timer)) 318 | sensors_send(MQTT_TOPIC_TEMP, temp); 319 | } 320 | 321 | #endif 322 | 323 | #ifdef HAS_DHT 324 | 325 | static void display_humidity(int i) 326 | { 327 | oled_write_image_pgm(&oled, 128 - 11, 0, 11, 2, bitmaps_percent9x16); 328 | oled_write_image_pgm(&oled, 128 - 22, 0, 7, 2, bitmaps_7seg7x16[i % 10]); 329 | oled_write_image_pgm(&oled, 128 - 33, 0, 7, 2, bitmaps_7seg7x16[i / 10]); 330 | } 331 | 332 | static void sensors_humidity_expired() 333 | { 334 | int hum = dht_humidity(&dht); 335 | 336 | if (timer_expired(&dis_sensors_timer)) 337 | display_humidity(hum); 338 | if (timer_expired(&sensors_send_timer)) 339 | sensors_send(MQTT_TOPIC_HUMIDITY, hum); 340 | } 341 | 342 | #endif 343 | 344 | int main() 345 | { 346 | struct uip_eth_addr mac; 347 | struct timer periodic_timer; 348 | struct timer arp_timer; 349 | struct timer kalive_timer; 350 | struct timer dis_time_timer; 351 | uip_ipaddr_t ip; 352 | #ifdef HAS_OUTPUTS 353 | unsigned int i; 354 | #endif 355 | 356 | mac.addr[0] = ETHADDR0; 357 | mac.addr[1] = ETHADDR1; 358 | mac.addr[2] = ETHADDR2; 359 | mac.addr[3] = ETHADDR3; 360 | mac.addr[4] = ETHADDR4; 361 | mac.addr[5] = ETHADDR5; 362 | 363 | oled_init(&oled); 364 | oled_fill_screen(&oled, 0x00); 365 | oled_active(&oled, true); 366 | oled_contrast(&oled, 0xff); 367 | 368 | stdout = &display_stream; 369 | 370 | #ifdef HAS_DS 371 | ds18b20_convert(&therm); /* Initial conversion - we won't have 85C on startup */ 372 | #endif 373 | 374 | network_init(); 375 | 376 | /* Setup INT0 on rx packet pending */ 377 | EIMSK |= _BV(INT0); 378 | EICRA |= _BV(ISC11); 379 | enc28j60_write(EIE, 0b11000000); 380 | 381 | /* Setup magjack LEDs */ 382 | enc28j60_phy_write(PHLCON, 0b0000011101001010); 383 | /* 25MHz / 2 */ 384 | enc28j60_write(ECOCON, 2); 385 | 386 | led_init(); 387 | #ifdef HAS_BUTTONS 388 | buttons_init(); 389 | #endif 390 | #ifdef HAS_OUTPUTS 391 | outputs_init(); 392 | #endif 393 | clock_init(); 394 | uip_init(); 395 | sei(); 396 | 397 | timer_set(&periodic_timer, CLOCK_SECOND / 2); 398 | timer_set(&arp_timer, CLOCK_SECOND * 10); 399 | timer_set(&kalive_timer, CLOCK_SECOND * MQTT_KEEP_ALIVE); 400 | timer_set(&dis_time_timer, CLOCK_SECOND * 1); 401 | 402 | #ifdef HAS_SENSORS 403 | timer_set(&sensors_send_timer, CLOCK_SECOND * SENSORS_PUBLISH_RATE); 404 | timer_set(&dis_sensors_timer, CLOCK_SECOND * SENSORS_DISPLAY_RATE); 405 | #endif 406 | 407 | uip_setethaddr(mac); 408 | uip_ipaddr(ip, IPADDR0, IPADDR1, IPADDR2, IPADDR3); 409 | uip_sethostaddr(ip); 410 | 411 | while(1) { 412 | if (flag_packet_rx) { 413 | flag_packet_rx = false; 414 | nethandler_rx(); 415 | } 416 | if (timer_tryrestart(&periodic_timer)) 417 | nethandler_periodic(); 418 | if (timer_tryrestart(&arp_timer)) 419 | nethandler_periodic_arp(); 420 | if (timer_tryrestart(&kalive_timer)) 421 | umqtt_ping(&mqtt); 422 | if (timer_tryrestart(&dis_time_timer)) 423 | display_time(); 424 | #ifdef HAS_SENSORS 425 | if (timer_expired(&dis_sensors_timer) || 426 | timer_expired(&sensors_send_timer)) { 427 | #ifdef HAS_DS 428 | sensors_therm_expired(); 429 | #endif 430 | #ifdef HAS_DHT 431 | sensors_humidity_expired(); 432 | #endif 433 | } 434 | timer_tryrestart(&dis_sensors_timer); 435 | timer_tryrestart(&sensors_send_timer); 436 | #endif 437 | /* Just assume that the 0 connection is the MQTT one */ 438 | if (!uip_conn_active(0) && clock_time_seconds() % 10 == 0) { 439 | nethandler_umqtt_init(&mqtt); 440 | umqtt_subscribe(&mqtt, MQTT_TOPIC_DATE); 441 | umqtt_subscribe(&mqtt, MQTT_TOPIC_DATETIME); 442 | umqtt_subscribe(&mqtt, MQTT_TOPIC_WEATHER); 443 | #ifdef HAS_OUTPUTS 444 | iterate(outputs, i) 445 | umqtt_subscribe(&mqtt, outputs[i].topic); 446 | #endif 447 | } 448 | if (mqtt.state != UMQTT_STATE_CONNECTED) 449 | led_on(); 450 | } 451 | return 0; 452 | } 453 | 454 | ISR(INT0_vect) 455 | { 456 | flag_packet_rx = true; 457 | } 458 | 459 | #ifdef HAS_BUTTONS 460 | 461 | ISR(TIMER0_OVF_vect) 462 | { 463 | unsigned int i; 464 | iterate(buttons, i) { 465 | /* Do not forget, LOW means pressed */ 466 | if (buttons[i].pressed == gpio_value(&buttons[i].gpio)) 467 | buttons[i].debounce_counter++; 468 | else 469 | buttons[i].debounce_counter = 0; 470 | 471 | if (buttons[i].debounce_counter > 10) { 472 | /* Accept the change*/ 473 | buttons[i].pressed = !buttons[i].pressed; 474 | buttons[i].debounce_counter = 0; 475 | 476 | if (buttons[i].pressed) 477 | umqtt_publish(&mqtt, buttons[i].topic, (uint8_t *)"pressed", 7); 478 | } 479 | } 480 | } 481 | 482 | #endif 483 | -------------------------------------------------------------------------------- /src/nethandler.c: -------------------------------------------------------------------------------- 1 | /* 2 | * This fil handles various network related tasks 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #include 22 | #include 23 | 24 | #include "common.h" 25 | #include "uip.h" 26 | #include "uip_arp.h" 27 | #include "network.h" 28 | 29 | #define BUF (((struct uip_eth_hdr *)&uip_buf[0])) 30 | #pragma GCC diagnostic ignored "-Wstrict-aliasing" 31 | 32 | void nethandler_rx() 33 | { 34 | uip_len = network_read(); 35 | 36 | if (uip_len > 0) { 37 | switch (ntohs(BUF->type)) { 38 | case UIP_ETHTYPE_IP: 39 | uip_arp_ipin(); 40 | uip_input(); 41 | if (uip_len > 0) { 42 | uip_arp_out(); 43 | network_send(); 44 | } 45 | break; 46 | case UIP_ETHTYPE_ARP: 47 | uip_arp_arpin(); 48 | if (uip_len > 0) 49 | network_send(); 50 | break; 51 | } 52 | } 53 | } 54 | 55 | void nethandler_periodic() 56 | { 57 | int i; 58 | 59 | times(UIP_CONNS, i) { 60 | uip_periodic(i); 61 | if (uip_len > 0) { 62 | uip_arp_out(); 63 | network_send(); 64 | } 65 | } 66 | } 67 | 68 | void nethandler_periodic_arp() 69 | { 70 | uip_arp_timer(); 71 | } 72 | 73 | void nethandler_umqtt_init(struct umqtt_connection *conn) 74 | { 75 | struct uip_conn *uc; 76 | uip_ipaddr_t ip; 77 | 78 | uip_ipaddr(&ip, MQTT_IP0, MQTT_IP1, MQTT_IP2, MQTT_IP3); 79 | uc = uip_connect(&ip, htons(1883)); 80 | if (uc == NULL) 81 | return; 82 | 83 | umqtt_init(conn); 84 | umqtt_circ_init(&conn->txbuff); 85 | umqtt_circ_init(&conn->rxbuff); 86 | 87 | umqtt_connect(conn, MQTT_KEEP_ALIVE, MQTT_CLIENT_ID); 88 | 89 | uc->appstate.conn = conn; 90 | } 91 | 92 | void nethandler_umqtt_appcall() 93 | { 94 | struct umqtt_connection *conn = uip_conn->appstate.conn; 95 | uint8_t buff[uip_mss() > (unsigned int) conn->txbuff.datalen ? 96 | (unsigned int) conn->txbuff.datalen : uip_mss()]; 97 | int ret; 98 | 99 | if (uip_newdata()) { 100 | umqtt_circ_push(&conn->rxbuff, uip_appdata, uip_datalen()); 101 | umqtt_process(conn); 102 | } 103 | 104 | if (uip_poll() || uip_acked()) { 105 | ret = umqtt_circ_pop(&conn->txbuff, buff, sizeof(buff)); 106 | if (!ret) 107 | return; 108 | uip_send(buff, ret); 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /src/nethandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Header file for nethandler.c 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef __NETHANDLER_H__ 22 | #define __NETHANDLER_H__ 23 | 24 | void nethandler_rx(); 25 | void nethandler_periodic(); 26 | void nethandler_periodic_arp(); 27 | 28 | void nethandler_umqtt_init(); 29 | void nethandler_umqtt_appcall(); 30 | 31 | struct nethandler_state { 32 | struct umqtt_connection *conn; 33 | int slen; /* Length of data currently being sent (fox rxmit) */ 34 | }; 35 | 36 | #endif /* __NETHANDLER_H__ */ 37 | -------------------------------------------------------------------------------- /src/oled.c: -------------------------------------------------------------------------------- 1 | /* 2 | * SSD1306 driver 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #include 22 | 23 | #include "common.h" 24 | #include "oled.h" 25 | #include "gpio.h" 26 | 27 | #define oled_scl_high(o) \ 28 | gpio_high(&(o)->scl) 29 | 30 | #define oled_scl_low(o) \ 31 | gpio_low(&(o)->scl) 32 | 33 | #define oled_sda_high(o) \ 34 | gpio_high(&(o)->sda) 35 | 36 | #define oled_sda_low(o) \ 37 | gpio_low(&(o)->sda) 38 | 39 | 40 | static void oled_i2c_start(struct oled *oled) 41 | { 42 | oled_scl_high(oled); 43 | oled_sda_high(oled); 44 | oled_sda_low(oled); 45 | oled_scl_low(oled); 46 | } 47 | 48 | static void oled_i2c_stop(struct oled *oled) 49 | { 50 | oled_scl_low(oled); 51 | oled_sda_low(oled); 52 | oled_scl_high(oled); 53 | oled_sda_high(oled); 54 | } 55 | 56 | static void oled_i2c_write_byte(struct oled *oled, uint8_t byte) 57 | { 58 | int i; 59 | 60 | times(8, i) { /* From MSB to LSB */ 61 | /* Set bit */ 62 | if ((byte << i) & 0x80) 63 | oled_sda_high(oled); 64 | else 65 | oled_sda_low(oled); 66 | /* Clock */ 67 | oled_scl_high(oled); 68 | oled_scl_low(oled); 69 | } 70 | /* ACK cycle */ 71 | oled_sda_high(oled); 72 | oled_scl_high(oled); 73 | oled_scl_low(oled); 74 | } 75 | 76 | static void oled_i2c_start_data(struct oled *oled) 77 | { 78 | oled_i2c_start(oled); 79 | oled_i2c_write_byte(oled, 0x78); 80 | oled_i2c_write_byte(oled, 0x40); 81 | } 82 | 83 | void oled_send_command(struct oled *oled, uint8_t command) 84 | { 85 | oled_i2c_start(oled); 86 | oled_i2c_write_byte(oled, 0x78); /* Write address */ 87 | oled_i2c_write_byte(oled, 0x00); /* Write command */ 88 | oled_i2c_write_byte(oled, command); 89 | oled_i2c_stop(oled); 90 | } 91 | 92 | void oled_send_command2(struct oled *oled, int c, ...) 93 | { 94 | va_list args; 95 | 96 | oled_i2c_start(oled); 97 | va_start(args, c); 98 | oled_i2c_write_byte(oled, 0x78); 99 | oled_i2c_write_byte(oled, 0x00); 100 | for (; c > 0; c--) 101 | oled_i2c_write_byte(oled, va_arg(args, int)); 102 | oled_i2c_stop(oled); 103 | } 104 | 105 | static void oled_limit_write(struct oled *oled, int x, int y, int w, int h) 106 | { 107 | oled_send_command2(oled, 3, 0x21, x, x + w - 1); 108 | oled_send_command2(oled, 3, 0x22, y, y + h - 1); 109 | } 110 | 111 | void oled_fill_screen(struct oled *oled, uint8_t data) 112 | { 113 | int i; 114 | 115 | oled_limit_write(oled, 0, 0, 128, 8); 116 | 117 | oled_i2c_start_data(oled); 118 | times(128 * 8, i) 119 | oled_i2c_write_byte(oled, data); 120 | oled_i2c_stop(oled); 121 | } 122 | 123 | void oled_write_image(struct oled *oled, 124 | uint8_t x, uint8_t y, uint8_t w, uint8_t h, 125 | uint8_t *data) 126 | { 127 | int i; 128 | 129 | oled_limit_write(oled, x, y, w, h); 130 | 131 | oled_i2c_start_data(oled); 132 | times(w * h, i) 133 | oled_i2c_write_byte(oled, data[i]); 134 | oled_i2c_stop(oled); 135 | } 136 | 137 | void oled_write_image_pgm(struct oled *oled, 138 | uint8_t x, uint8_t y, uint8_t w, uint8_t h, 139 | const uint8_t *progmem) 140 | { 141 | int i; 142 | 143 | oled_limit_write(oled, x, y, w, h); 144 | 145 | oled_i2c_start_data(oled); 146 | times(w * h, i) 147 | oled_i2c_write_byte(oled, pgm_read_byte(progmem + i)); 148 | oled_i2c_stop(oled); 149 | } 150 | 151 | void oled_init(struct oled *oled) 152 | { 153 | gpio_out(&oled->sda); 154 | gpio_out(&oled->scl); 155 | /* Copied from the manufacturers code */ 156 | /* Some of the comments do not seem to correspond to the datasheet */ 157 | oled_send_command(oled, 0xae); /* Display off */ 158 | oled_send_command(oled, 0x00); /* Set memory addressing */ 159 | oled_send_command(oled, 0x10); /* Page memory addressing */ 160 | oled_send_command(oled, 0x40); /* Set page start */ 161 | oled_send_command(oled, 0x81); /* Set COM output scan direction */ 162 | oled_send_command(oled, 0xcf); /* Set low column address */ 163 | oled_send_command(oled, 0xa1); /* Set high column address */ 164 | oled_send_command(oled, 0xc8); /* Set start line address */ 165 | oled_send_command(oled, 0xa6); /* Set contrast control register */ 166 | oled_send_command(oled, 0xa8); 167 | oled_send_command(oled, 0x3f); /* Set segment re-map 0 to 127 */ 168 | oled_send_command(oled, 0xd3); /* Set normal display */ 169 | oled_send_command(oled, 0x00); /* Set multiplex ratio 1 to 64 */ 170 | oled_send_command(oled, 0xd5); 171 | oled_send_command(oled, 0x80); 172 | oled_send_command(oled, 0xd9); /* Set display offset */ 173 | oled_send_command(oled, 0xf1); /* Not offset */ 174 | oled_send_command(oled, 0xda); /* Set clock divider */ 175 | oled_send_command(oled, 0x12); /* Set divider ratio */ 176 | oled_send_command(oled, 0xdb); /* Set precharge */ 177 | oled_send_command(oled, 0x40); 178 | oled_send_command(oled, 0x20); /* Set com HW config */ 179 | oled_send_command(oled, 0x02); 180 | oled_send_command(oled, 0x8d); /* Set vcomh */ 181 | oled_send_command(oled, 0x14); /* Some sort of voltage control */ 182 | oled_send_command(oled, 0xa4); /* DC-DC enable */ 183 | oled_send_command(oled, 0xa6); 184 | oled_send_command2(oled, 2, 0x20, 0x00); 185 | } 186 | -------------------------------------------------------------------------------- /src/oled.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Header file for the SSD1306 I2C OLED driver 3 | * 4 | * Copyright (C) Josef Gajdusek 5 | * 6 | * This program is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation, either version 3 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program. If not, see . 18 | * 19 | * */ 20 | 21 | #ifndef OLED_HELTEC_H_ 22 | #define OLED_HELTEC_H_ 23 | 24 | #include 25 | #include 26 | 27 | #include "gpio.h" 28 | 29 | struct oled { 30 | struct gpio sda; 31 | struct gpio scl; 32 | }; 33 | 34 | void oled_init(struct oled *oled); 35 | 36 | void oled_send_command(struct oled *oled, uint8_t commmans); 37 | void oled_send_command2(struct oled *oled, int c, ...); 38 | 39 | void oled_fill_screen(struct oled *oled, uint8_t data); 40 | void oled_write_frame(struct oled *oled, uint8_t *data); 41 | void oled_write_image(struct oled *oled, 42 | uint8_t x, uint8_t y, uint8_t w, uint8_t h, 43 | uint8_t *data); 44 | void oled_write_image_pgm(struct oled *oled, 45 | uint8_t x, uint8_t y, uint8_t w, uint8_t h, 46 | const uint8_t *progmem); 47 | void oled_contrast(struct oled *oled, uint8_t con); 48 | 49 | #define oled_active(o, b) \ 50 | oled_send_command(o, b ? 0xaf : 0xae) 51 | 52 | #define oled_invert(o, b) \ 53 | oled_send_command(o, b ? 0xa7 : 0xa6) 54 | 55 | #define oled_contrast(o, n) \ 56 | oled_send_command2(o, 2, 0x81, n); 57 | 58 | #define oled_vertical_flip(o, b) \ 59 | oled_send_command(o, (b) ? 0xc0 : 0xc8) 60 | 61 | #define oled_vertical_offset(o, c) \ 62 | oled_send_command(o, 0x40 + (c)) 63 | 64 | #define oled_horizontal_flip(o, b) \ 65 | oled_send_command(o, (b) ? 0xa0 : 0xa1) 66 | 67 | #endif /* OLED_HELTEC_H_ */ 68 | -------------------------------------------------------------------------------- /src/uip-conf.h: -------------------------------------------------------------------------------- 1 | #ifndef __UIP_CONF_H__ 2 | #define __UIP_CONF_H__ 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | /** 10 | * 8 bit datatype 11 | * 12 | * This typedef defines the 8-bit type used throughout uIP. 13 | * 14 | * \hideinitializer 15 | */ 16 | typedef uint8_t u8_t; 17 | 18 | /** 19 | * 16 bit datatype 20 | * 21 | * This typedef defines the 16-bit type used throughout uIP. 22 | * 23 | * \hideinitializer 24 | */ 25 | typedef uint16_t u16_t; 26 | 27 | /** 28 | * Statistics datatype 29 | * 30 | * This typedef defines the dataype used for keeping statistics in 31 | * uIP. 32 | * 33 | * \hideinitializer 34 | */ 35 | typedef unsigned short uip_stats_t; 36 | 37 | /** 38 | * Maximum number of TCP connections. 39 | * 40 | * \hideinitializer 41 | */ 42 | #define UIP_CONF_MAX_CONNECTIONS 1 43 | 44 | /** 45 | * Maximum number of listening TCP ports. 46 | * 47 | * \hideinitializer 48 | */ 49 | #define UIP_CONF_MAX_LISTENPORTS 1 50 | 51 | /** 52 | * uIP buffer size. 53 | * 54 | * \hideinitializer 55 | */ 56 | #define UIP_CONF_BUFFER_SIZE 300 57 | /** 58 | * CPU byte order. 59 | * 60 | * \hideinitializer 61 | */ 62 | #define UIP_CONF_BYTE_ORDER LITTLE_ENDIAN 63 | 64 | /** 65 | * Logging on or off 66 | * 67 | * \hideinitializer 68 | */ 69 | #define UIP_CONF_LOGGING 0 70 | 71 | /** 72 | * UDP support on or off requires DHCP if ON 73 | * 74 | * \hideinitializer 75 | */ 76 | #define UIP_CONF_UDP 0 77 | 78 | /** 79 | * UDP checksums on or off 80 | * 81 | * \hideinitializer 82 | */ 83 | #define UIP_CONF_UDP_CHECKSUMS 0 84 | 85 | /** 86 | * uIP statistics on or off 87 | * 88 | * \hideinitializer 89 | */ 90 | #define UIP_CONF_STATISTICS 1 91 | 92 | /** 93 | * Broadcast support. Needed for dhcp 94 | * 95 | * \hideinitializer 96 | */ 97 | #define UIP_CONF_BROADCAST 0 98 | 99 | /** 100 | * The maximum amount of concurrent UDP connections. 101 | * 102 | * \hideinitializer 103 | */ 104 | #define UIP_CONF_UDP_CONNS 0 105 | 106 | /** 107 | * Turn on IP packet re-assembly. 108 | * This will re-assemble ip packets that become fragmented 109 | * which when assembled will fit in your UIP BUFFER. 110 | * 111 | * Note: This will double the amount of RAM used by the UIP BUFFER. 112 | */ 113 | #define UIP_REASSEMBLY 0 114 | 115 | #endif /* __UIP_CONF_H__ */ 116 | 117 | /** @} */ 118 | /** @} */ 119 | -------------------------------------------------------------------------------- /utils/graphic/12x24-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-0.png -------------------------------------------------------------------------------- /utils/graphic/12x24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-1.png -------------------------------------------------------------------------------- /utils/graphic/12x24-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-2.png -------------------------------------------------------------------------------- /utils/graphic/12x24-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-3.png -------------------------------------------------------------------------------- /utils/graphic/12x24-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-4.png -------------------------------------------------------------------------------- /utils/graphic/12x24-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-5.png -------------------------------------------------------------------------------- /utils/graphic/12x24-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-6.png -------------------------------------------------------------------------------- /utils/graphic/12x24-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-7.png -------------------------------------------------------------------------------- /utils/graphic/12x24-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-8.png -------------------------------------------------------------------------------- /utils/graphic/12x24-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/12x24-9.png -------------------------------------------------------------------------------- /utils/graphic/7x16--.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16--.png -------------------------------------------------------------------------------- /utils/graphic/7x16-0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-0.png -------------------------------------------------------------------------------- /utils/graphic/7x16-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-1.png -------------------------------------------------------------------------------- /utils/graphic/7x16-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-2.png -------------------------------------------------------------------------------- /utils/graphic/7x16-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-3.png -------------------------------------------------------------------------------- /utils/graphic/7x16-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-4.png -------------------------------------------------------------------------------- /utils/graphic/7x16-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-5.png -------------------------------------------------------------------------------- /utils/graphic/7x16-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-6.png -------------------------------------------------------------------------------- /utils/graphic/7x16-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-7.png -------------------------------------------------------------------------------- /utils/graphic/7x16-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-8.png -------------------------------------------------------------------------------- /utils/graphic/7x16-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-9.png -------------------------------------------------------------------------------- /utils/graphic/7x16-percent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/7x16-percent.png -------------------------------------------------------------------------------- /utils/graphic/9x16-percent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/9x16-percent.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-cloudy.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-lightning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-lightning.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-mist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-mist.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-rain.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-snow.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-sun.png -------------------------------------------------------------------------------- /utils/graphic/weather-20x16-suncl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atx/avr-mqtt-board/99b3a15b2a7e24eeb2c614380730657b8760814d/utils/graphic/weather-20x16-suncl.png -------------------------------------------------------------------------------- /utils/tooled.groovy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/groovy 2 | /* 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 3 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | * 16 | * */ 17 | 18 | import javax.imageio.ImageIO 19 | 20 | if(args.length == 0) { 21 | println "Usage: tooled.groovy " 22 | System.exit(-1) 23 | } 24 | 25 | args.each { fn -> 26 | image = ImageIO.read(new File(fn)) 27 | 28 | println "{" 29 | 30 | (image.height / 8).times() { y -> 31 | print "\t" 32 | image.width.times { x -> 33 | int i = 0 34 | (7..0).each { 35 | i = (i << 1) | (image.getRGB(x, (y * 8) + it) == -1 ? 0 : 1) 36 | } 37 | print "0x${Integer.toString(i, 16).with { it.length() < 2 ? '0' + it : it }}, " 38 | } 39 | println "" 40 | } 41 | 42 | println "}," 43 | } 44 | --------------------------------------------------------------------------------