├── .gitattributes ├── .gitignore ├── Eagle Hardware V1.0 ├── btn_0.3.brd └── btn_0.3.sch ├── Eagle Hardware V2.0 ├── README.md ├── front side.png ├── rear side.png ├── tinytouchbutton_v2.jpg ├── tinytouchbutton_v2_0.2.brd └── tinytouchbutton_v2_0.2.sch ├── Finished PCB.jpg ├── README.md ├── TinyTouchButton.atsln ├── TinyTouchButton.atsuo ├── TinyTouchButton ├── TinyTouchButton.c ├── TinyTouchButton.cproj ├── TinyTouchLib.c ├── TinyTouchLib.h ├── light_ws2812.c └── light_ws2812.h └── circuit.jpg /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | 131 | # NuGet Packages Directory 132 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 133 | #packages/ 134 | 135 | # Windows Azure Build Output 136 | csx 137 | *.build.csdef 138 | 139 | # Windows Store app package directory 140 | AppPackages/ 141 | 142 | # Others 143 | sql/ 144 | *.Cache 145 | ClientBin/ 146 | [Ss]tyle[Cc]op.* 147 | ~$* 148 | *~ 149 | *.dbmdl 150 | *.[Pp]ublish.xml 151 | *.pfx 152 | *.publishsettings 153 | 154 | # RIA/Silverlight projects 155 | Generated_Code/ 156 | 157 | # Backup & report files from converting an old project file to a newer 158 | # Visual Studio version. Backup files are not needed, because we have git ;-) 159 | _UpgradeReport_Files/ 160 | Backup*/ 161 | UpgradeLog*.XML 162 | UpgradeLog*.htm 163 | 164 | # SQL Server files 165 | App_Data/*.mdf 166 | App_Data/*.ldf 167 | 168 | ############# 169 | ## Windows detritus 170 | ############# 171 | 172 | # Windows image file caches 173 | Thumbs.db 174 | ehthumbs.db 175 | 176 | # Folder config file 177 | Desktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Mac crap 183 | .DS_Store 184 | 185 | 186 | ############# 187 | ## Python 188 | ############# 189 | 190 | *.py[co] 191 | 192 | # Packages 193 | *.egg 194 | *.egg-info 195 | dist/ 196 | build/ 197 | eggs/ 198 | parts/ 199 | var/ 200 | sdist/ 201 | develop-eggs/ 202 | .installed.cfg 203 | 204 | # Installer logs 205 | pip-log.txt 206 | 207 | # Unit test / coverage reports 208 | .coverage 209 | .tox 210 | 211 | #Translations 212 | *.mo 213 | 214 | #Mr Developer 215 | .mr.developer.cfg 216 | -------------------------------------------------------------------------------- /Eagle Hardware V1.0/btn_0.3.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | ISP 115 | GND 116 | +5V 117 | 118 | 119 | 120 | Developed by element14 :<br> 121 | element14 CAD Library consolidation.ulp 122 | at 27/07/2012 14:02:49 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | * 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | * 175 | >NAME 176 | >VALUE 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | >NAME 189 | >VALUE 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | Lotverbinder für die Platinenkante. Einseitig. 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | <h3>SparkFun Electronics' preferred foot prints</h3> 229 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 230 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 231 | <br><br> 232 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 233 | 234 | 235 | 236 | 237 | 238 | 239 | >NAME 240 | >VALUE 241 | 242 | 243 | 244 | 245 | <h3>SparkFun Electronics' preferred foot prints</h3> 246 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 247 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 248 | <br><br> 249 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 250 | 251 | 252 | 253 | 254 | 255 | 256 | >NAME 257 | >VALUE 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | <b> DRC-File für Sammelnutzen. </b><br><br> 274 | 275 | Die in diesen Designregeln festgelegten Maße, Abstände und Durchmesser stellen die Mindestanforderungen für eine Teilnahme am Sammelnutzen dar und lauten wie folgt:<br><br> 276 | 277 | <table border=1> 278 | <tr> 279 | <th>Bezeichnung</th> 280 | <th>Maß</th> 281 | </tr> 282 | <tr> 283 | <td>min. Leiterbahnenbreite </td> 284 | <td>0,15mm</td> 285 | </tr> 286 | <tr> 287 | <td>min. Leiterbahnenabstand </td> 288 | <td>0,15mm</td> 289 | </tr> 290 | <tr> 291 | <td>min. Abstand Kupfer zu Kontur </td> 292 | <td>0,2mm</td> 293 | </tr> 294 | <tr> 295 | <td></td> 296 | <td></td> 297 | </tr> 298 | <tr> 299 | <td>min. Bohrdurchmesser</td> 300 | <td>0,3mm</td> 301 | </tr> 302 | </table> 303 | <br><br> 304 | Alle Durchkontaktierungen unter 0,8mm gelten als Via und werden abgedeckt.<br> (kann man über "Masks/Limit" verändern)<br><br> 305 | 306 | Thermals für Vias sind ausgeschaltet (kann man über "Supply/generate thermals for vias" einschalten)<br><br> 307 | 308 | Natürlich können Sie alle Einstellungen "nach oben" korregieren, wenn Sie dies für Ihr Layout benötigen.<br><br> 309 | 310 | Sollten Sie Fragen zu den Designregeln haben, können Sie mich über <b>platinensammler@gmail.com</b> erreichen.<br><br> 311 | 312 | Jakob Kleinen 313 | <b>EAGLE Design Rules</b> 314 | <p> 315 | The default Design Rules have been set to cover 316 | a wide range of applications. Your particular design 317 | may have different requirements, so please make the 318 | necessary adjustments and save your customized 319 | design rules under a new name. 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 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 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 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 | -------------------------------------------------------------------------------- /Eagle Hardware V1.0/btn_0.3.sch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | Developed by element14 :<br> 108 | element14 CAD Library consolidation.ulp 109 | at 27/07/2012 14:02:49 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | * 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | * 162 | >NAME 163 | >VALUE 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | >NAME 179 | >VALUE 180 | 181 | 182 | 183 | 184 | 8-bit Microcontroller with In-System Programmable Flash 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | >NAME 221 | >VALUE 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | >NAME 244 | >VALUE 245 | 246 | 247 | 248 | 249 | WS2812 Intelligent RGB LED 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | Lotverbinder für die Platinenkante. Einseitig. 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | ISP 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | AVR-ISP connector an Platinenrand 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | Lötverbinder für Platinenkante. Einseitig. 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | <h3>SparkFun Electronics' preferred foot prints</h3> 387 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 388 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 389 | <br><br> 390 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 391 | 392 | 393 | 394 | 395 | 396 | >Name 397 | >Value 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | >Name 408 | >Value 409 | 410 | 411 | 412 | 413 | 414 | 415 | >NAME 416 | >VALUE 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | >Name 426 | >Value 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | >NAME 444 | >VALUE 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | >NAME 459 | >VALUE 460 | 461 | 462 | 463 | 464 | 465 | <b>CAPACITOR</b><p> 466 | chip 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | >NAME 477 | >VALUE 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | >Name 487 | >Value 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | >Name 501 | >Value 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | >NAME 513 | >VALUE 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | >NAME 525 | >VALUE 526 | 527 | 528 | 529 | 530 | 531 | CTZ3 Series land pattern for variable capacitor - CTZ3E-50C-W1-PF 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | >NAME 550 | >VALUE 551 | 552 | 553 | <h3>CAP-PTH-SMALL-KIT</h3> 554 | Commonly used for small ceramic capacitors. Like our 0.1uF (http://www.sparkfun.com/products/8375) or 22pF caps (http://www.sparkfun.com/products/8571).<br> 555 | <br> 556 | <b>Warning:</b> This is the KIT version of this package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side. 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 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 | This is the "EZ" version of the .1" spaced ceramic thru-hole cap.<br> 591 | It has reduced top mask to make it harder to put the component on the wrong side of the board. 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | >Name 600 | >Value 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | >NAME 612 | >VALUE 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | <b>Capacitor</b> 622 | Standard 0603 ceramic capacitor, and 0.1" leaded capacitor. 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 | <h3>SparkFun Electronics' preferred foot prints</h3> 759 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 760 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 761 | <br><br> 762 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | >NAME 774 | >VALUE 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | >Name 791 | >Value 792 | 793 | 794 | <b>RESISTOR</b><p> 795 | chip 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | >NAME 807 | >VALUE 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | >NAME 817 | >VALUE 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | >NAME 829 | >VALUE 830 | 831 | 832 | 833 | 834 | 835 | 836 | <b>CAPACITOR</b><p> 837 | chip 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | >NAME 847 | >VALUE 848 | 849 | 850 | 851 | 852 | 853 | 854 | 1/6W Thru-hole Resistor - *UNPROVEN* 855 | 856 | 857 | 858 | 859 | 860 | 861 | >NAME 862 | >VALUE 863 | 864 | 865 | 866 | 867 | 868 | 869 | >NAME 870 | >VALUE 871 | 872 | 873 | 874 | 875 | 1/4W Resistor, 0.4" wide<p> 876 | 877 | Yageo CFR series <a href="http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf">http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf</a> 878 | 879 | 880 | 881 | 882 | 883 | 884 | >Name 885 | >Value 886 | 887 | 888 | 1/2W Resistor, 0.5" wide<p> 889 | 890 | Yageo CFR series <a href="http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf">http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf</a> 891 | 892 | 893 | 894 | 895 | 896 | 897 | >Name 898 | >Value 899 | 900 | 901 | 1W Resistor, 0.6" wide<p> 902 | 903 | Yageo CFR series <a href="http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf">http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf</a> 904 | 905 | 906 | 907 | 908 | 909 | 910 | >Name 911 | >Value 912 | 913 | 914 | 2W Resistor, 0.8" wide<p> 915 | 916 | Yageo CFR series <a href="http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf">http://www.yageo.com/pdf/yageo/Leaded-R_CFR_2008.pdf</a> 917 | 918 | 919 | 920 | 921 | 922 | 923 | >Name 924 | >Value 925 | 926 | 927 | <h3>AXIAL-0.3-KIT</h3> 928 | 929 | Commonly used for 1/4W through-hole resistors. 0.3" pitch between holes.<br> 930 | <br> 931 | 932 | <b>Warning:</b> This is the KIT version of the AXIAL-0.3 package. This package has a smaller diameter top stop mask, which doesn't cover the diameter of the pad. This means only the bottom side of the pads' copper will be exposed. You'll only be able to solder to the bottom side. 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | >Name 944 | >Value 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | This is the "EZ" version of the standard .3" spaced resistor package.<br> 972 | It has a reduced top mask to make it harder to install upside-down. 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | >Name 984 | >Value 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | >NAME 1003 | >VALUE 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | <b>Resistor</b> 1011 | Basic schematic elements and footprints for 0603, 1206, and PTH resistors. 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | <h3>SparkFun Electronics' preferred foot prints</h3> 1148 | In this library you'll find non-functional items- supply symbols, logos, notations, frame blocks, etc.<br><br> 1149 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 1150 | <br><br> 1151 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | >VALUE 1159 | 1160 | 1161 | 1162 | 1163 | >VALUE 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | 1181 | <b>SUPPLY SYMBOL</b> 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1268 | 1269 | 1270 | 1271 | 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | 1353 | 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | 1372 | 1373 | 1374 | 1375 | 1376 | 1378 | 1379 | 1380 | 1381 | 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1390 | 1391 | 1392 | 1393 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1402 | 1403 | 1404 | 1405 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | 1458 | 1459 | 1460 | 1461 | 1462 | 1463 | 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | -------------------------------------------------------------------------------- /Eagle Hardware V2.0/README.md: -------------------------------------------------------------------------------- 1 | TinyTouchButton Hardware V2.0 2 | =============== 3 | 4 | A touch controlled light with a WS2812 RGB LEDs and ATtiny 10 5 | 6 | This is a small hardware project which utilizes the [light_WS2812 library](https://github.com/cpldcpu/light_ws2812) and the [TinyTouchLib](https://github.com/cpldcpu/TinyTouchLib) 7 | to implement a touch-button controlled RGB-LED light. Only two output pins of the ATtiny 10 8 | are used. 9 | 10 | Look at the button in operation [here](http://www.youtube.com/watch?v=yGvvy51Po7Q)! 11 | 12 | ### PCB renders by OSH Park ### 13 | 14 | ![PCB](/Eagle%20Hardware%20V2.0/front%20side.png) 15 | ![PCB](/Eagle%20Hardware%20V2.0/rear%20side.png) 16 | 17 | ### Finished PCB ### 18 | 19 | ![PCB](/Eagle%20Hardware%20V2.0/tinytouchbutton_v2.jpg) 20 | 21 | -------------------------------------------------------------------------------- /Eagle Hardware V2.0/front side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/Eagle Hardware V2.0/front side.png -------------------------------------------------------------------------------- /Eagle Hardware V2.0/rear side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/Eagle Hardware V2.0/rear side.png -------------------------------------------------------------------------------- /Eagle Hardware V2.0/tinytouchbutton_v2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/Eagle Hardware V2.0/tinytouchbutton_v2.jpg -------------------------------------------------------------------------------- /Eagle Hardware V2.0/tinytouchbutton_v2_0.2.brd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | GND 115 | OUT 116 | LED 117 | VCC 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | GND 127 | OUT 128 | LED 129 | LED 130 | VCC 131 | VCC 132 | PAD 133 | RST 134 | R1 135 | C2 136 | C1 137 | 138 | 139 | 140 | Developed by element14 :<br> 141 | element14 CAD Library consolidation.ulp 142 | at 27/07/2012 14:02:49 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | * 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | * 195 | >NAME 196 | >VALUE 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | >NAME 206 | >VALUE 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | Lotverbinder für die Platinenkante. Einseitig. 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | <h3>SparkFun Electronics' preferred foot prints</h3> 242 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 243 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 244 | <br><br> 245 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 246 | 247 | 248 | 249 | 250 | 251 | 252 | >NAME 253 | >VALUE 254 | 255 | 256 | 257 | 258 | <h3>SparkFun Electronics' preferred foot prints</h3> 259 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 260 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 261 | <br><br> 262 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 263 | 264 | 265 | 266 | 267 | 268 | 269 | >NAME 270 | >VALUE 271 | 272 | 273 | 274 | 275 | <h3>SparkFun Electronics' preferred foot prints</h3> 276 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 277 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is the end user's responsibility to ensure correctness and suitablity for a given componet or application. If you enjoy using this library, please buy one of our products at www.sparkfun.com. 278 | <br><br> 279 | <b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 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 | >NAME 327 | >VALUE 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | <b>EAGLE Design Rules</b> 350 | <p> 351 | Die Standard-Design-Rules sind so gewählt, dass sie für 352 | die meisten Anwendungen passen. Sollte ihre Platine 353 | besondere Anforderungen haben, treffen Sie die erforderlichen 354 | Einstellungen hier und speichern die Design Rules unter 355 | einem neuen Namen ab. 356 | <b>Laen's PCB Order Design Rules</b> 357 | <p> 358 | Please make sure your boards conform to these design rules. 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 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 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 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 | -------------------------------------------------------------------------------- /Finished PCB.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/Finished PCB.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | TinyTouchButton 2 | =============== 3 | 4 | A touch controlled light with 4xWS2812 RGB LEDs and ATtiny 10 5 | 6 | This is a small hardware project which utilizes the [light_WS2812 library](https://github.com/cpldcpu/light_ws2812) and the [TinyTouchLib](https://github.com/cpldcpu/TinyTouchLib) 7 | to implement a touch-button controlled RGB-LED light. Only two output pins of the ATtiny 10 8 | are used. 9 | 10 | Atmel Studio project and Eagle files are included. 11 | 12 | New: Hardware V2.0. See [subfolder](https://github.com/cpldcpu/TinyTouchButton/tree/master/Eagle%20Hardware%20V2.0). 13 | 14 | ### Finished PCB V1.0 ### 15 | 16 | ![PCB](Finished%20PCB.jpg) 17 | 18 | ### Finished PCB V2.0 ### 19 | 20 | ![PCB](Eagle%20Hardware%20V2.0/tinytouchbutton_v2.jpg) 21 | 22 | 23 | ### Circuit ### 24 | 25 | ![PCB](circuit.jpg) 26 | -------------------------------------------------------------------------------- /TinyTouchButton.atsln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Atmel Studio Solution File, Format Version 11.00 4 | Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "TinyTouchButton", "TinyTouchButton\TinyTouchButton.cproj", "{48E49E78-9DA0-4FBC-A5B9-376CE93D686B}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|AVR = Debug|AVR 9 | Release|AVR = Release|AVR 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {48E49E78-9DA0-4FBC-A5B9-376CE93D686B}.Debug|AVR.ActiveCfg = Debug|AVR 13 | {48E49E78-9DA0-4FBC-A5B9-376CE93D686B}.Debug|AVR.Build.0 = Debug|AVR 14 | {48E49E78-9DA0-4FBC-A5B9-376CE93D686B}.Release|AVR.ActiveCfg = Release|AVR 15 | {48E49E78-9DA0-4FBC-A5B9-376CE93D686B}.Release|AVR.Build.0 = Release|AVR 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /TinyTouchButton.atsuo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/TinyTouchButton.atsuo -------------------------------------------------------------------------------- /TinyTouchButton/TinyTouchButton.c: -------------------------------------------------------------------------------- 1 | /* 2 | * TinyTouchButton.c 3 | * 4 | * Created: 31.05.2013 18:13:26 5 | * Author: Tim 6 | 7 | Hardware: 8 | - Attiny 10 9 | - 4x WS2812 LED on PB2 10 | - Touchbutton on PB1 11 | */ 12 | 13 | #define F_CPU 8000000 14 | 15 | #include 16 | #include 17 | #include "light_ws2812.h" 18 | #include "TinyTouchLib.h" 19 | 20 | struct CRGB { uint8_t g; uint8_t r; uint8_t b; }; 21 | struct CRGB led[4]; 22 | 23 | int main(void) 24 | { 25 | uint8_t ledon=0; 26 | uint8_t ctr; 27 | 28 | CCP=0xD8; // configuration change protection, write signature 29 | CLKPSR=0; // set cpu clock prescaler =1 (8Mhz) (attiny 4/5/9/10) 30 | 31 | DDRB|=_BV(PB2); // Output pin for WS2812 32 | DDRB|=_BV(PB0); // Data output 33 | 34 | tinytouch_init(); 35 | 36 | while(1) 37 | { 38 | if (tinytouch_sense()==tt_push) {ledon^=1;} 39 | 40 | ctr++; 41 | 42 | if (ledon) { 43 | led[0].r=128;led[0].g=128;led[0].b=128; // light on: white on maximum brightness 44 | led[1].r=255;led[1].g=255;led[1].b=255; 45 | led[2].r=255;led[2].g=255;led[2].b=255; 46 | led[3].r=255;led[3].g=255;led[3].b=255; 47 | PORTB|=_BV(PB0); 48 | } else { 49 | led[0].r=0;led[0].g=0;led[0].b=0; // light off: Attract mode. 50 | led[1].r=0;led[1].g=0;led[1].b=0; 51 | led[2].r=0;led[2].g=0;led[2].b=0; 52 | led[3].r=0;led[3].g=0;led[3].b=0; 53 | led[ctr>>6].g=((ctr&0x3f)^0x3f)>>3; 54 | led[((ctr>>6)+1)&3].g=(ctr&0x3f)>>3; 55 | PORTB&=~_BV(PB0); 56 | } 57 | 58 | ws2812_sendarray_mask(led,12,_BV(PB2)); 59 | _delay_ms(3); 60 | } 61 | } 62 | 63 | -------------------------------------------------------------------------------- /TinyTouchButton/TinyTouchButton.cproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 2.0 5 | 6.0 6 | com.Atmel.AVRGCC8 7 | {48e49e78-9da0-4fbc-a5b9-376ce93d686b} 8 | ATtiny10 9 | none 10 | Executable 11 | C 12 | $(MSBuildProjectName) 13 | .elf 14 | $(MSBuildProjectDirectory)\$(Configuration) 15 | TinyTouchButton 16 | TinyTouchButton 17 | TinyTouchButton 18 | Native 19 | true 20 | false 21 | 22 | 0 23 | 3.5.1 24 | 25 | 26 | 27 | 28 | True 29 | True 30 | True 31 | True 32 | True 33 | True 34 | Optimize for size (-Os) 35 | True 36 | True 37 | True 38 | 39 | 40 | m 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | True 50 | True 51 | True 52 | True 53 | True 54 | True 55 | Optimize for size (-Os) 56 | True 57 | True 58 | True 59 | Default (-g2) 60 | True 61 | 62 | 63 | m 64 | 65 | 66 | True 67 | Default (-Wa,-g) 68 | 69 | 70 | 71 | 72 | 73 | compile 74 | 75 | 76 | compile 77 | 78 | 79 | compile 80 | 81 | 82 | compile 83 | 84 | 85 | compile 86 | 87 | 88 | compile 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /TinyTouchButton/TinyTouchLib.c: -------------------------------------------------------------------------------- 1 | /* 2 | * tinytouchlib.c 3 | * 4 | * Created: 09.06.2013 17:25:47 - v0.1 Initial release (ATtiny 10) 5 | * 10.06.2013 - v0.2 ported to ATtiny 25/45/85 and ATtiny13 6 | * Author: Tim (cpldcpu@gmail.com) 7 | */ 8 | 9 | 10 | #include "TinyTouchLib.h" 11 | #include 12 | 13 | // Internal function to read the adc input 14 | uint8_t tinytouch_adc(void); 15 | 16 | uint16_t bias; 17 | uint8_t touch; 18 | #if touch_timeout>0 19 | uint8_t timer; 20 | #endif 21 | /* 22 | Capacitive sensing using charge sharing between 23 | the S/H capacitor and an external sensing pad 24 | */ 25 | 26 | void tinytouch_init(void) { 27 | 28 | #ifndef __AVR_ATtiny13__ 29 | PRR &=~_BV(PRADC); 30 | #endif 31 | ADCSRA =_BV(ADEN)|_BV(ADPS2)|_BV(ADPS1); // Enable ADC, Set prescaler to 64 32 | 33 | bias=tinytouch_adc()<<8; 34 | touch=0; 35 | } 36 | 37 | uint8_t tinytouch_sense(void) { 38 | uint8_t i; 39 | uint16_t tmp; 40 | int16_t delta; 41 | 42 | tmp=0; 43 | for (i=0; i<16; i++) { 44 | tmp+=tinytouch_adc(); // average 16 samples 45 | _delay_us(100); 46 | } 47 | 48 | delta=tmp-(bias>>4); 49 | 50 | if (!touch) { 51 | if (delta>touch_threshold_on) { 52 | touch=1; 53 | #if touch_timeout>0 54 | timer=0; 55 | #endif 56 | return tt_push; 57 | } 58 | 59 | // update bias only when touch not active 60 | bias=(bias-(bias>>6))+(tmp>>2); // IIR low pass 61 | return tt_off; 62 | } else { 63 | if (delta0 69 | if (timer==255) { 70 | bias=tinytouch_adc()<<8; 71 | return tt_timeout; 72 | } 73 | timer++; 74 | #endif 75 | return tt_on; 76 | } 77 | } 78 | 79 | uint8_t tinytouch_adc(void) { 80 | 81 | uint8_t dat1,dat2; 82 | 83 | // Precharge Low 84 | ADMUX =tt_refadc; // connect S/H cap to reference pin 85 | PORTB |= _BV(tt_refpin); // Charge S/H Cap 86 | PORTB &=~_BV(tt_sensepin); // Discharge Pad (0) 87 | DDRB |= _BV(tt_refpin)|_BV(tt_sensepin); 88 | 89 | _delay_us(32); 90 | 91 | DDRB &=~(_BV(tt_sensepin)); // float pad input, note that pull up is off. 92 | 93 | #ifdef __AVR_ATtiny10__ 94 | ADMUX =tt_senseadc; // Connect sense input to adc 95 | #else 96 | ADMUX =tt_senseadc|_BV(ADLAR); // Connect sense input to adc 97 | #endif 98 | 99 | ADCSRA |=_BV(ADSC); // Start conversion 100 | while (!(ADCSRA&_BV(ADIF))); 101 | ADCSRA |=_BV(ADIF); // Clear ADIF 102 | 103 | #ifdef __AVR_ATtiny10__ 104 | dat1=ADCL; 105 | #else 106 | dat1=ADCH; 107 | #endif 108 | 109 | // Precharge High 110 | ADMUX =tt_refadc; // connect S/H cap to reference pin 111 | PORTB &=~_BV(tt_refpin); // Discharge S/H Cap 112 | PORTB |= _BV(tt_sensepin); // Charge Pad 113 | DDRB |= _BV(tt_refpin)|_BV(tt_sensepin); 114 | 115 | _delay_us(32); 116 | 117 | DDRB &=~(_BV(tt_sensepin)); // float pad input input 118 | PORTB &=~_BV(tt_sensepin); // pull up off 119 | 120 | #ifdef __AVR_ATtiny10__ 121 | ADMUX =tt_senseadc; // Connect sense input to adc 122 | #else 123 | ADMUX =tt_senseadc|_BV(ADLAR); // Connect sense input to adc 124 | #endif 125 | 126 | ADCSRA |=_BV(ADSC); // Start conversion 127 | while (!(ADCSRA&_BV(ADIF))); 128 | ADCSRA |=_BV(ADIF); // Clear ADIF 129 | 130 | #ifdef __AVR_ATtiny10__ 131 | dat2=ADCL; 132 | #else 133 | dat2=ADCH; 134 | #endif 135 | 136 | 137 | return dat2-dat1; 138 | } 139 | 140 | -------------------------------------------------------------------------------- /TinyTouchButton/TinyTouchLib.h: -------------------------------------------------------------------------------- 1 | /* 2 | * TinyTouchLib.h 3 | * 4 | * Created: 09.06.2013 17:25:47 - v0.1 Initial release 5 | * Author: Tim (cpldcpu@gmail.com) 6 | */ 7 | 8 | 9 | #ifndef TINYTOUCHLIB_H_ 10 | #define TINYTOUCHLIB_H_ 11 | #include 12 | 13 | enum {tt_off=0,tt_on,tt_push,tt_release,tt_timeout}; 14 | 15 | ////////////////////////////////////////////////////////////////////////// 16 | // 17 | // User definable settings 18 | // 19 | ////////////////////////////////////////////////////////////////////////// 20 | 21 | // Define upper and lower threshold for the touch sensing. You may have to 22 | // change these depending on the geometry of your touch button. 23 | // Setting the "on" value lower will make the touch button more sensitive. 24 | // Setting the "off" value higher will make the touch button less likely 25 | // to be "stuck". Too high values can lead to oscillations. 26 | 27 | #define touch_threshold_on 70 28 | #define touch_threshold_off 20 29 | 30 | // If the touch button is pressed, the bias value is not updated 31 | // to prevent detection of multiple touches. In some cases this may 32 | // lead to a "stuck button" situation. Therefore an update of the bias 33 | // is forced after a certain time unless this function is deactivated. 34 | // 35 | // The value of timeout corresponds to the number of calls to tinytouch_sense(). 36 | // The maximum is 255. 37 | // Setting timeout to 0 will turn the functionality off. 38 | 39 | #define touch_timeout 255 40 | //#define touch_timeout 0 // turn off timeout functionality 41 | 42 | 43 | // Define pins to use for the reference input and the touch button 44 | // The reference pin is used to charge or discharge the internal 45 | // sample&hold capacitor. This pin is used in output mode and should 46 | // not be shorted to VCC or GND externally. 47 | // The sense pin is connected to the touch-button. To improve noise immunity 48 | // a series resistor can be used. 49 | 50 | // The pin number corresponds to the analog input number ADCx. The port 51 | // is chosen automatically. (PORTB on ATtiny 5/10/13/25/45/85) 52 | 53 | #define tt_refpin 2 // Use PB0 as reference pin 54 | #define tt_refadc 2 // Use ADC0 as reference ADC input 55 | #define tt_sensepin 1 // Use PB1 as sense pin 56 | #define tt_senseadc 1 // Use ADC1 as sense ADC input 57 | 58 | ////////////////////////////////////////////////////////////////////////// 59 | // 60 | // Library functions 61 | // 62 | ////////////////////////////////////////////////////////////////////////// 63 | 64 | // Library initialization 65 | // Call this once to initialize the library functions and the ADC converter 66 | void tinytouch_init(void); 67 | 68 | // The sense function evaluates the button state and performs internal 69 | // housekeeping. It should be polled at least 30 times per second to 70 | // update the internal logic. Please note that each call performs 32 71 | // analog to digital conversions with active waiting. This may take 72 | // several ms. 73 | 74 | // Possible return values are: 75 | // tt_off=0 No touch sensed 76 | // tt_on Touch button is active and touch is sensed. 77 | // tt_push Touch button is pushed. Use this to initiate one time events. 78 | // tt_release Touch button is released. Use this to initiate one time events. 79 | // tt_timeout Touch button has been active too long and internal bias was reset. 80 | uint8_t tinytouch_sense(void); 81 | 82 | #endif -------------------------------------------------------------------------------- /TinyTouchButton/light_ws2812.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/TinyTouchButton/light_ws2812.c -------------------------------------------------------------------------------- /TinyTouchButton/light_ws2812.h: -------------------------------------------------------------------------------- 1 | /* 2 | * light weight WS2812 lib 3 | * 4 | * Created: 07.04.2013 15:58:05 - v0.1 5 | * 06.05.2013 - v0.3 - clean up 6 | * 27.05.2013 - v0.6 - clean up, removed RC variants, added mask 7 | * Author: Tim (cpldcpu@gmail.com) 8 | */ 9 | 10 | #include 11 | 12 | #ifndef LIGHT_WS2812_H_ 13 | #define LIGHT_WS2812_H_ 14 | 15 | // Call with address to led color array (order is Green-Red-Blue) 16 | // Numer of bytes to be transmitted is leds*3 17 | 18 | void ws2812_sendarray(uint8_t *ledarray,uint16_t length); 19 | void ws2812_sendarray_mask(uint8_t *ledarray,uint16_t length, uint8_t mask); 20 | 21 | /////////////////////////////////////////////////////////////////////// 22 | // User defined area: Define I/O pin 23 | /////////////////////////////////////////////////////////////////////// 24 | 25 | #define ws2812_port PORTB // Data port register 26 | #define ws2812_pin 2 // Number of the data out pin 27 | 28 | /////////////////////////////////////////////////////////////////////// 29 | // User defined area: Define CPU clock speed 30 | // Uncomment one and only one #define matching your application 31 | /////////////////////////////////////////////////////////////////////// 32 | 33 | // #define ws2812_4MHz 34 | #define ws2812_8MHz 35 | // #define ws2812_9p6MHz 36 | // #define ws2812_12MHz // Warning: Untested in v0.6 37 | // #define ws2812_16MHz 38 | 39 | /////////////////////////////////////////////////////////////////////// 40 | // End user defined area 41 | /////////////////////////////////////////////////////////////////////// 42 | 43 | #endif /* LIGHT_WS2812_H_ */ -------------------------------------------------------------------------------- /circuit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cpldcpu/TinyTouchButton/6c33778e35c41a35690977fb5d38159c44e76ec7/circuit.jpg --------------------------------------------------------------------------------