├── Application ├── Application.ino ├── TinyTouchLib.c └── TinyTouchLib.h ├── Board ├── BOM.html ├── Gerber │ ├── PCB-Business-Card.zip │ └── panelized.zip ├── HARDWARE-LICENSE ├── PCB-Business-Card.fzz └── panelized.fzz ├── Bootloader └── bootloader.hex ├── Images ├── assembled-board-back.jpg ├── assembled-board-front.jpg ├── assembled-board.jpg ├── assembly-and-programming.jpg ├── easyada-gerber-viewer.png ├── panelized-easyeda-gerber-viewer.png └── precleanup-showing-embossed-email-copper-layer.jpg ├── README.md └── SVG Files ├── board.svg ├── bug.svg ├── me.svg └── panelized.svg /Application/Application.ino: -------------------------------------------------------------------------------- 1 | /* 2 | PCB Business Card by: Corey Harding 3 | http://www.LegacySecurityGroup.com 4 | 5 | Initial programming instructions if building the board from scratch. 6 | ----- 7 | (Any of my assembled boards already have the bootloader burned in) 8 | Fuse: avrdude -c buspirate -P /dev/ttyUSB1 -p attiny85 -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m -B 20 9 | Burn Bootloader: avrdude -c buspirate -P /dev/ttyUSB1 -p attiny85 -U flash:w:bootloader.hex:i -B 20 10 | The Micronucleus build included has a custom 1 second programming delay before running the application. 11 | The default 6 second delay was too long to wait to run the application for my specific use case. 12 | 13 | Programming the application portion via the Arduino IDE. 14 | ----- 15 | File - Preferences - Additional Board Manager URLs - http://digistump.com/package_digistump_index.json - OK 16 | Tools - Board - Boards Manager... - Digistump AVR Boards - Install 17 | Board: Digispark (Default - 16.5mhz) 18 | Programmer: Micronucleus 19 | 20 | Jumpers 21 | ----- 22 | Cut J1 to disable the capacitive touch sensor. 23 | Cut J2 to disable R5 resistor from RST to VCC. 24 | Bridge J3 to enter programming mode when flashed with a different Micronucleus build. 25 | 26 | Optional Features 27 | ----- 28 | Reset Switch 29 | Power LED - Requires 1K Resistor 30 | Utilizing the Prototyping Area 31 | Flashing a new application via USB 32 | Flashing via the AVR ISP header(Do not connect a programmer while connected to a USB port) 33 | 34 | Notes 35 | ----- 36 | The board thickness is 1.6mm and requires a shim to fit snugly into the USB port. 37 | Currently a blank PVC ID card is cut to size and bonded using Loctite 495 Instant Adhesive. 38 | This has proven so far to be a fast, strong, and relatively consistent solution. 39 | 40 | Enjoy! 41 | */ 42 | 43 | #include "DigiKeyboard.h" 44 | 45 | extern "C" { 46 | #include "TinyTouchLib.h" //From: https://github.com/cpldcpu/TinyTouchLib 47 | } 48 | 49 | void setup() { 50 | DigiKeyboard.sendKeyStroke(0); 51 | tinytouch_init(); 52 | } 53 | 54 | void loop() { 55 | 56 | CLKPR = _BV(CLKPCE); 57 | CLKPR = 0; 58 | 59 | if (tinytouch_sense() == tt_push) { 60 | DigiKeyboard.update(); 61 | DigiKeyboard.println(F("---Contact Info---")); 62 | DigiKeyboard.println(F("")); 63 | DigiKeyboard.println(F("Name: Corey Harding")); 64 | DigiKeyboard.println(F("Email: contact@legacysecuritygroup.com")); 65 | DigiKeyboard.println(F("Phone: (555)-123-4567")); 66 | DigiKeyboard.println(F("URL: https://www.LegacySecurityGroup.com")); 67 | DigiKeyboard.println(F("")); 68 | DigiKeyboard.println(F("Board designed, assembled, and programmed by Corey Harding.")); 69 | DigiKeyboard.println(F("GitHub: https://github.com/exploitagency/PCB-Business-Card")); 70 | DigiKeyboard.println(F("This board also doubles as an ATtiny85 development board.")); 71 | DigiKeyboard.println(F("It is loaded with the micronucleus bootloader and can be programmed using the Arduino IDE.")); 72 | DigiKeyboard.println(F("Select \"Board: Digispark (Default - 16.5mhz)\" and Programmer: \"Micronucleus\".")); 73 | DigiKeyboard.println(F("")); 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /Application/TinyTouchLib.c: -------------------------------------------------------------------------------- 1 | //From: https://github.com/cpldcpu/TinyTouchLib 2 | /* 3 | * tinytouchlib.c 4 | * 5 | * Created: 09.06.2013 17:25:47 - v0.1 Initial release (ATtiny 10) 6 | * 10.06.2013 - v0.2 ported to ATtiny 25/45/85 and ATtiny13 7 | * Author: Tim (cpldcpu@gmail.com) 8 | */ 9 | 10 | 11 | #include "TinyTouchLib.h" 12 | #include 13 | 14 | // Internal function to read the adc input 15 | uint8_t tinytouch_adc(void); 16 | 17 | uint16_t bias; 18 | uint8_t touch; 19 | #if touch_timeout>0 20 | uint8_t timer; 21 | #endif 22 | /* 23 | Capacitive sensing using charge sharing between 24 | the S/H capacitor and an external sensing pad 25 | */ 26 | 27 | void tinytouch_init(void) { 28 | 29 | #ifndef __AVR_ATtiny13__ 30 | PRR &=~_BV(PRADC); 31 | #endif 32 | ADCSRA =_BV(ADEN)|_BV(ADPS2)|_BV(ADPS1); // Enable ADC, Set prescaler to 64 33 | 34 | bias=tinytouch_adc()<<8; 35 | touch=0; 36 | } 37 | 38 | uint8_t tinytouch_sense(void) { 39 | uint8_t i; 40 | uint16_t tmp; 41 | int16_t delta; 42 | 43 | tmp=0; 44 | for (i=0; i<16; i++) { 45 | tmp+=tinytouch_adc(); // average 16 samples 46 | _delay_us(100); 47 | } 48 | 49 | delta=tmp-(bias>>4); 50 | 51 | if (!touch) { 52 | if (delta>touch_threshold_on) { 53 | touch=1; 54 | #if touch_timeout>0 55 | timer=0; 56 | #endif 57 | return tt_push; 58 | } 59 | 60 | // update bias only when touch not active 61 | bias=(bias-(bias>>6))+(tmp>>2); // IIR low pass 62 | return tt_off; 63 | } else { 64 | if (delta0 70 | if (timer==255) { 71 | bias=tinytouch_adc()<<8; 72 | return tt_timeout; 73 | } 74 | timer++; 75 | #endif 76 | return tt_on; 77 | } 78 | } 79 | 80 | uint8_t tinytouch_adc(void) { 81 | 82 | uint8_t dat1,dat2; 83 | 84 | // Precharge Low 85 | ADMUX =tt_refadc; // connect S/H cap to reference pin 86 | PORTB |= _BV(tt_refpin); // Charge S/H Cap 87 | PORTB &=~_BV(tt_sensepin); // Discharge Pad (0) 88 | DDRB |= _BV(tt_refpin)|_BV(tt_sensepin); 89 | 90 | _delay_us(32); 91 | 92 | DDRB &=~(_BV(tt_sensepin)); // float pad input, note that pull up is off. 93 | 94 | #ifdef __AVR_ATtiny10__ 95 | ADMUX =tt_senseadc; // Connect sense input to adc 96 | #else 97 | ADMUX =tt_senseadc|_BV(ADLAR); // Connect sense input to adc 98 | #endif 99 | 100 | ADCSRA |=_BV(ADSC); // Start conversion 101 | while (!(ADCSRA&_BV(ADIF))); 102 | ADCSRA |=_BV(ADIF); // Clear ADIF 103 | 104 | #ifdef __AVR_ATtiny10__ 105 | dat1=ADCL; 106 | #else 107 | dat1=ADCH; 108 | #endif 109 | 110 | // Precharge High 111 | ADMUX =tt_refadc; // connect S/H cap to reference pin 112 | PORTB &=~_BV(tt_refpin); // Discharge S/H Cap 113 | PORTB |= _BV(tt_sensepin); // Charge Pad 114 | DDRB |= _BV(tt_refpin)|_BV(tt_sensepin); 115 | 116 | _delay_us(32); 117 | 118 | DDRB &=~(_BV(tt_sensepin)); // float pad input input 119 | PORTB &=~_BV(tt_sensepin); // pull up off 120 | 121 | #ifdef __AVR_ATtiny10__ 122 | ADMUX =tt_senseadc; // Connect sense input to adc 123 | #else 124 | ADMUX =tt_senseadc|_BV(ADLAR); // Connect sense input to adc 125 | #endif 126 | 127 | ADCSRA |=_BV(ADSC); // Start conversion 128 | while (!(ADCSRA&_BV(ADIF))); 129 | ADCSRA |=_BV(ADIF); // Clear ADIF 130 | 131 | #ifdef __AVR_ATtiny10__ 132 | dat2=ADCL; 133 | #else 134 | dat2=ADCH; 135 | #endif 136 | 137 | 138 | return dat2-dat1; 139 | } 140 | 141 | 142 | -------------------------------------------------------------------------------- /Application/TinyTouchLib.h: -------------------------------------------------------------------------------- 1 | //From: https://github.com/cpldcpu/TinyTouchLib 2 | /* 3 | * TinyTouchLib.h 4 | * 5 | * Created: 09.06.2013 17:25:47 - v0.1 Initial release (Attiny 10) 6 | * 10.06.2013 - v0.2 ported to ATtiny 25/45/85 and ATtiny13 7 | * Author: Tim (cpldcpu@gmail.com) 8 | */ 9 | 10 | #ifndef TINYTOUCHLIB_H_ 11 | #define TINYTOUCHLIB_H_ 12 | #include 13 | 14 | enum {tt_off=0,tt_on,tt_push,tt_release,tt_timeout}; 15 | 16 | ////////////////////////////////////////////////////////////////////////// 17 | // 18 | // User definable settings 19 | // 20 | ////////////////////////////////////////////////////////////////////////// 21 | 22 | // Define upper and lower threshold for the touch sensing. You may have to 23 | // change these depending on the geometry of your touch button. 24 | // Setting the "on" value lower will make the touch button more sensitive. 25 | // Setting the "off" value higher will make the touch button less likely 26 | // to be "stuck". Too high values can lead to oscillations. 27 | 28 | #define touch_threshold_on 60 29 | #define touch_threshold_off 20 30 | 31 | // If the touch button is pressed, the bias value is not updated 32 | // to prevent detection of multiple touches. In some cases this may 33 | // lead to a "stuck button" situation. Therefore an update of the bias 34 | // is forced after a certain time unless this function is deactivated. 35 | // 36 | // The value of timeout corresponds to the number of calls to tinytouch_sense(). 37 | // The maximum is 255. 38 | // Setting timeout to 0 will turn the functionality off. 39 | 40 | #define touch_timeout 255 41 | //#define touch_timeout 0 // turn off timeout functionality 42 | 43 | 44 | // Define pins to use for the reference input and the touch button 45 | // The reference pin is used to charge or discharge the internal 46 | // sample&hold capacitor. This pin is used in output mode and should 47 | // not be shorted to VCC or GND externally. 48 | // The sense pin is connected to the touch-button. To improve noise immunity 49 | // a series resistor can be used. 50 | 51 | // The pin number must match the corresponding analog input number ADCx. 52 | // Default port is PORTB. (ATtiny 5/10/13/25/45/85) 53 | 54 | #define tt_refpin 0 // Use PB0 as reference pin 55 | #define tt_refadc 0 // Use ADC0 as reference ADC input 56 | #define tt_sensepin 2 // Use PB3 as sense pin 57 | #define tt_senseadc 1 // Use ADC1 as sense ADC input 58 | 59 | ////////////////////////////////////////////////////////////////////////// 60 | // 61 | // Library functions 62 | // 63 | ////////////////////////////////////////////////////////////////////////// 64 | 65 | // Library initialization 66 | // Call this once to initialize the library functions and the ADC converter 67 | void tinytouch_init(void); 68 | 69 | // The sense function evaluates the button state and performs internal 70 | // housekeeping. It should be polled at least 30 times per second to 71 | // update the internal logic. Please note that each call performs 32 72 | // analog to digital conversions with active waiting. This may take 73 | // several ms. 74 | 75 | // Possible return values are: 76 | // tt_off=0 No touch sensed 77 | // tt_on Touch button is active and touch is sensed. 78 | // tt_push Touch button is pushed. Use this to initiate one time events. 79 | // tt_release Touch button is released. Use this to initiate one time events. 80 | // tt_timeout Touch button has been active too long and internal bias was reset. 81 | uint8_t tinytouch_sense(void); 82 | 83 | #endif 84 | -------------------------------------------------------------------------------- /Board/BOM.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Fritzing Bill of Materials 6 | 28 | 29 | 30 | 31 |

Bill of Materials: PCB-Business-Card.fzz

32 | 33 |

Assembly List

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 |
LabelPart TypeProperties
ATtiny85attiny85version Attiny85-20SU
AVR ISPAVR ISP 6 Pinpackage 1x6; pins 6; variant pth
C1Ceramic Capacitorvoltage 6.3V; capacitance 0.1µF; package 0805 [SMD, multilayer]
R168Ω Resistorresistance 68Ω; tolerance ±5%; package 0805 [SMD]
R268Ω Resistorresistance 68Ω; tolerance ±5%; package 0805 [SMD]
R31.5kΩ Resistorresistance 1.5kΩ; tolerance ±5%; package 0805 [SMD]
R410kΩ Resistorresistance 10kΩ; tolerance ±5%; package 0805 [SMD]
R510kΩ Resistorresistance 10kΩ; tolerance ±5%; package 0805 [SMD]
Z1DIODE-ZENERpackage sod-323; variant -bzt52; part # 3V6 Zener
Z2DIODE-ZENERpackage sod-323; variant -bzt52; part # 3V6 Zener
87 |

Shopping List

88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |
AmountPart TypeProperties
1attiny85version Attiny85-20SU
1AVR ISP 6 Pinpackage 1x6; pins 6; variant pth
1Ceramic Capacitorvoltage 6.3V; capacitance 0.1µF; package 0805 [SMD, multilayer]
268Ω Resistorresistance 68Ω; tolerance ±5%; package 0805 [SMD]
11.5kΩ Resistorresistance 1.5kΩ; tolerance ±5%; package 0805 [SMD]
210kΩ Resistorresistance 10kΩ; tolerance ±5%; package 0805 [SMD]
2DIODE-ZENERpackage sod-323; variant -bzt52; part # 3V6 Zener
128 |


Exported with Fritzing 0.9.3- http://fritzing.org

129 | 130 | 131 | -------------------------------------------------------------------------------- /Board/Gerber/PCB-Business-Card.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Board/Gerber/PCB-Business-Card.zip -------------------------------------------------------------------------------- /Board/Gerber/panelized.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Board/Gerber/panelized.zip -------------------------------------------------------------------------------- /Board/HARDWARE-LICENSE: -------------------------------------------------------------------------------- 1 | The hardware is based on the minimal schematic for a digispark/micronucleus compatible board. https://digistump.com/wiki/digispark/policy 2 | A few parts have also been added for better stability as well as a capacitive touch sensor. 3 | Gerber files are included in the repo to send immediately to a board house as well as Fritzing PCB files to allow users to easily customize my board design. 4 | 5 | 6 | Human Readable License: https://creativecommons.org/licenses/by-sa/3.0/ 7 | Creative Commons 8 | Attribution-ShareAlike 3.0 Unported 9 | 10 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. 11 | 12 | License 13 | 14 | THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. 15 | 16 | BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 17 | 18 | 1. Definitions 19 | 20 | "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. 21 | "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. 22 | "Creative Commons Compatible License" means a license that is listed at https://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. 23 | "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. 24 | "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. 25 | "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. 26 | "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. 27 | "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. 28 | "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. 29 | "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. 30 | "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 31 | 32 | 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 33 | 34 | 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: 35 | 36 | to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; 37 | to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; 38 | to Distribute and Publicly Perform the Work including as incorporated in Collections; and, 39 | to Distribute and Publicly Perform Adaptations. 40 | 41 | For the avoidance of doubt: 42 | Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; 43 | Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, 44 | Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. 45 | 46 | The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 47 | 48 | 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: 49 | 50 | You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. 51 | You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. 52 | If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. 53 | Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 54 | 55 | 5. Representations, Warranties and Disclaimer 56 | 57 | UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 58 | 59 | 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 60 | 61 | 7. Termination 62 | 63 | This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. 64 | Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 65 | 66 | 8. Miscellaneous 67 | 68 | Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. 69 | Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. 70 | If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. 71 | No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. 72 | This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. 73 | The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. 74 | 75 | Creative Commons Notice 76 | 77 | Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. 78 | 79 | Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License. 80 | 81 | Creative Commons may be contacted at https://creativecommons.org/. -------------------------------------------------------------------------------- /Board/PCB-Business-Card.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Board/PCB-Business-Card.fzz -------------------------------------------------------------------------------- /Board/panelized.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Board/panelized.fzz -------------------------------------------------------------------------------- /Bootloader/bootloader.hex: -------------------------------------------------------------------------------- 1 | :0800000077CC76CCACCC74CCBB 2 | :1018C00017C016C04CC014C00902120001010080EC 3 | :1018D0003209040000000000000012011001FF00A6 4 | :1018E0000008D01653070B0100000001040309048F 5 | :1018F00011241FBECFE5D2E0CDBFDEBF00EB0F93BA 6 | :1019000007E00F9310E0A0E6B0E0E4EDFFE102C0D5 7 | :1019100005900D92A636B107D9F720E0A6E6B0E013 8 | :1019200001C01D92A639B207E1F7E1C1A82FB92F76 9 | :1019300080E090E041E050EA609530E009C02D91F0 10 | :1019400082279795879510F084279527305EC8F3F6 11 | :101950006F5FA8F30895EADF8D939D930895CF9369 12 | :10196000CFB7CF93C0915F02C03B21F4C0915E021C 13 | :10197000C73021F0CF91CFBFCF91A1CFCC27C39556 14 | :10198000B39BE9F7B39B0BC0B39B09C0B39B07C0E4 15 | :10199000B39B05C0B39B03C0B39B01C0D3C00F92E0 16 | :1019A000DF93C0917900DD27C058DF4F012EB39B34 17 | :1019B00003C0DF910F90E6CF2F930F931F934F93A8 18 | :1019C0002FEF4F6F06B303FB20F95F933F9350E077 19 | :1019D0003BE065C016B30126502953FDC89556B3A8 20 | :1019E000012703FB25F92F7306B3B1F05027102709 21 | :1019F00013FB26F906B22230F0F000C016B301271F 22 | :101A000003FB27F90126502906B22430E8F54F7769 23 | :101A1000206816B30000F6CF50274F7D206206B233 24 | :101A2000102F000000C006B300265029102713FB1A 25 | :101A300026F906B2E2CF4F7B06B3206400C0DACFAE 26 | :101A400001265029187106B269F14E7F2160012FDD 27 | :101A500016B328C0002650294D7F06B22260102FF1 28 | :101A600029C0012650294B7F06B22460012F2DC0CA 29 | :101A700016B301265029477F2860000006B22EC009 30 | :101A80004F7E06B3206130C0422706B3499300263B 31 | :101A90005029102706B24FEF13FB20F9297F16B308 32 | :101AA00079F2187159F10126502906B2012703FB7A 33 | :101AB00021F9237F06B371F2002650293150D0F06E 34 | :101AC00006B2102713FB22F9277E16B351F2012626 35 | :101AD0005029012703FB06B223F92F7C49F20000AD 36 | :101AE00006B3102713FB24F90026502906B22F79DC 37 | :101AF00039F270CF10E21ABF002717C03B50319562 38 | :101B0000C31BD04010E21ABF0881033CF9F00B342C 39 | :101B1000E9F0209177001981110F1213EDCF0936EA 40 | :101B200051F10D3211F0013E39F700937E003F91E3 41 | :101B30005F914F911F910F912F91DF910F90CAB735 42 | :101B4000C5FD1DCFCF91CFBFCF91189520917E00BD 43 | :101B5000222369F310917C00112321F5343022F106 44 | :101B600030937C0020937800109179003BE0311B8A 45 | :101B70003093790019C000917C0001309CF40AE593 46 | :101B80003091650034FD11C000936500CCE6D0E0D3 47 | :101B900010C0052710E000C021C0052710E0C8953F 48 | :101BA00008BB14C03AE501C032ED032EC0E0D0E01E 49 | :101BB00032E017B31861C39A08B317BB58E120E8A5 50 | :101BC0004FEF20FF052708BB279517951C3F28F7E7 51 | :101BD00000004552B0F720FF0527279508BB179551 52 | :101BE0001C3FB8F629913A9561F7077E10917D0068 53 | :101BF000110F08BBC250D04011F01093770010E2D3 54 | :101C00001ABF086017B3177E402F477E54E05A95DD 55 | :101C1000F1F708BB17BB48BB8ACFF8942FEFB0E8A9 56 | :101C2000A0E44AE0B1BF000081EE9CE0B399FECF92 57 | :101C3000B39BFECF0197B399FDCF97FF03C0BA1BAB 58 | :101C4000819501C0BA0FA69529F4281710F031B775 59 | :101C5000282FA1E0415031F731BF0000789408955A 60 | :101C6000F894F201329785E080935700E8957894D4 61 | :101C70000895F201309729F49093680080936700EB 62 | :101C800007C0E430F10539F490936A00809369004D 63 | :101C90008FE59CEC1FC02CEB421628E1520639F46C 64 | :101CA00080916700909168008E559C4F13C02EEB79 65 | :101CB000421628E1520639F48091690090916A0039 66 | :101CC0008D559C4F07C02AEB421628E1520611F4AD 67 | :101CD00081B790E02FB7F89431E00C0130935700B2 68 | :101CE000E8951124CF0102962C012FBF089514BE50 69 | :101CF00088E181BD87E081BDBB9A88E893E1ECE98A 70 | :101D0000F1E03197F1F70197D1F7BB98AC9A8BB717 71 | :101D100080628BBF7894712C8CE991E00197F1F788 72 | :101D2000A895312C60917C001DEF160F17FDB3C0F4 73 | :101D300080917900CCE0D0E0C81BD109C058DF4FBA 74 | :101D40006150CE01F3DD8E3F9F4409F0A2C0809127 75 | :101D500078008D3209F086C0183009F09AC083EC03 76 | :101D600080936C008AE58093650010926B009881E7 77 | :101D7000292F207689812223D1F0712C811108C06E 78 | :101D800080E690E090937B0080937A0094E060C0BE 79 | :101D9000813051F481E180935700E8954C805D805B 80 | :101DA00097FD51C09FEF50C0382E90E051C09A81EE 81 | :101DB00010927500811106C01092760025E730E080 82 | :101DC00092E03CC0853019F490937D0029C08630A4 83 | :101DD00009F58B81813019F48AED98E104C08230D5 84 | :101DE00041F488EC98E190937B0080937A0092E133 85 | :101DF0000DC0833051F4911108C08CEE98E190939E 86 | :101E00007B0080937A0094E001C090E080E48093AE 87 | :101E10006B001EC0883079F0893031F490937F00D8 88 | :101E200025E730E090E00AC091E08A3009F090E0C8 89 | :101E300025E730E003C02FE730E091E030937B00EE 90 | :101E400020937A0005C09E8180E880936B0007C0D4 91 | :101E50008F81811104C08E81891708F4982F909387 92 | :101E6000640017C080916B0087FF13C080EC481698 93 | :101E700088E1580640F0842D8F7359F495E0392E8F 94 | :101E80001092640006C089919991F3DE125071F7A7 95 | :101E9000F2CF10927C008091650084FF43C0809156 96 | :101EA00064008F3F09F43EC0C82F893008F0C8E0B5 97 | :101EB0008C1B8093640090916C0088E88927809344 98 | :101EC0006C00CC2319F180917A0040917B00209125 99 | :101ED0006B009C2F980F26FF0AC0ADE6B0E0E82FFC 100 | :101EE000F42F84918D9331969E13FBCF0BC02DE67A 101 | :101EF00030E0A82FB42F8D91F90181939F01FD014E 102 | :101F00009A13F9CFF0937B00E0937A006C2F8DE663 103 | :101F100090E021DDCC5FCC3019F08FEF809364002E 104 | :101F2000C093650084E196B3987131F48150D9F77C 105 | :101F300010927D0010927700C1E08111C0E0809185 106 | :101F400066008C1729F0C11101C067DEC0936600DE 107 | :101F5000C30101963C018031974211F484E0382E90 108 | :101F6000832D3320E9F0EAE3F0E23197F1F7823094 109 | :101F7000A9F4F894E0ECF8E1E054F10983E08093EF 110 | :101F80005700E8953097C1F7412C512CC8E08FEFEE 111 | :101F90009FEF6FDEC150D9F763DE02C08530E1F3F9 112 | :101FA00024E03212B9CEEDEBF8E1E491EF3F09F411 113 | :101FB000B3CEF894BB9A1BBE15BA10925F02EAEB3F 114 | :101FC000F8E1E4918FEF8E0F8E3F10F4E1BF000037 115 | :041FD00075CCFFCFFE 116 | :061FD40018BA4008FF5A94 117 | :04000003000018C021 118 | :00000001FF 119 | -------------------------------------------------------------------------------- /Images/assembled-board-back.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/assembled-board-back.jpg -------------------------------------------------------------------------------- /Images/assembled-board-front.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/assembled-board-front.jpg -------------------------------------------------------------------------------- /Images/assembled-board.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/assembled-board.jpg -------------------------------------------------------------------------------- /Images/assembly-and-programming.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/assembly-and-programming.jpg -------------------------------------------------------------------------------- /Images/easyada-gerber-viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/easyada-gerber-viewer.png -------------------------------------------------------------------------------- /Images/panelized-easyeda-gerber-viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/panelized-easyeda-gerber-viewer.png -------------------------------------------------------------------------------- /Images/precleanup-showing-embossed-email-copper-layer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/exploitagency/PCB-Business-Card/008228988e4e29f3c5c95974c79e096a214f043e/Images/precleanup-showing-embossed-email-copper-layer.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | PCB Business Card by: Corey Harding 2 | http://www.LegacySecurityGroup.com 3 | 4 | My PCB "business card" was designed with a credit card sized form factor in mind to easily fit into a wallet. The board also doubles as an ATtiny85 development board with pins broke out and a prototyping area. The ATtiny85 is pre-programmed to type out my contact info when a capacitive touch sensor is activated. There are also several optional through hole component upgrades for the end user to experiment with. You can even program the board using the Arduino IDE. It is preloaded with a custom 1s delay micronucleus bootloader and it is digispark compatible. 5 | 6 | I have seen other similar PCB business cards out there but I made sure to make my project easy for people to modify for personal use as well as allowing the person receiving the business card to have something extra to play with. I believe the ease of use and giving the end user something functional vs just something to look at and throw away is what makes my project stand out. Not to mention capacitive touch sensors are always fun to use! 7 | 8 | Video Demo 9 | ----- 10 | Click image below to view 11 | [![Video Demo](https://github.com/exploitagency/PCB-Business-Card/blob/master/Images/precleanup-showing-embossed-email-copper-layer.jpg)](https://youtu.be/Ss94M5kzOXM) 12 | Image is of the board before the cleanup process but it shows off the embossed copper email address well. 13 | 14 | Hardware License 15 | ----- 16 | Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) 17 | https://creativecommons.org/licenses/by-sa/3.0/ 18 | The hardware is based on the minimal schematic for a digispark/micronucleus compatible board. A few parts have also been added for better stability as well as a capacitive touch sensor. Gerber files are included in the repo to send immediately to a board house as well as Fritzing PCB files to allow users to easily customize my board design and export your own Gerber files. 19 | 20 | Software 21 | ----- 22 | Utilizes the TinyTouchLib: https://github.com/cpldcpu/TinyTouchLib 23 | Bootloader: https://github.com/micronucleus/ 24 | 25 | Initial programming instructions if building the board from scratch. 26 | ----- 27 | (Any of my assembled boards already have the bootloader burned in) 28 | Fuse: avrdude -c buspirate -P /dev/ttyUSB1 -p attiny85 -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m -B 20 29 | Burn Bootloader: avrdude -c buspirate -P /dev/ttyUSB1 -p attiny85 -U flash:w:bootloader.hex:i -B 20 30 | The Micronucleus build included has a custom 1 second programming delay before running the application. 31 | The default 6 second delay was too long to wait to run the application for my specific use case. 32 | 33 | Programming the application portion via the Arduino IDE. 34 | ----- 35 | File - Preferences - Additional Board Manager URLs - http://digistump.com/package_digistump_index.json - OK 36 | Tools - Board - Boards Manager... - Digistump AVR Boards - Install 37 | Board: Digispark (Default - 16.5mhz) 38 | Programmer: Micronucleus 39 | 40 | Jumpers 41 | ----- 42 | Cut J1 to disable the capacitive touch sensor. 43 | Cut J2 to disable R5 resistor from RST to VCC. 44 | Bridge J3 to enter programming mode when flashed with a different Micronucleus build. 45 | 46 | Optional Features 47 | ----- 48 | Reset Switch 49 | Power LED - Requires 1K Resistor 50 | Utilizing the Prototyping Area 51 | Flashing a new application via USB 52 | Flashing via the AVR ISP header(Do not connect a programmer while connected to a USB port) 53 | 54 | Notes 55 | ----- 56 | The board thickness is 1.6mm and requires a shim to fit snugly into the USB port. 57 | Currently a blank PVC ID card is cut to size and bonded using Loctite 495 Instant Adhesive. 58 | This has proven so far to be a fast, strong, and relatively consistent solution. 59 | 60 | Enjoy! 61 | -------------------------------------------------------------------------------- /SVG Files/board.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 17 | 18 | 20 | image/svg+xml 21 | 23 | 24 | 25 | 26 | 27 | 29 | 34 | 35 | 38 | 43 | 44 | 48 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /SVG Files/bug.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /SVG Files/me.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /SVG Files/panelized.svg: -------------------------------------------------------------------------------- 1 | 2 | 13 | 15 | 17 | 18 | 20 | image/svg+xml 21 | 23 | 24 | 25 | 26 | 27 | 30 | 35 | 36 | 39 | 44 | 45 | 49 | 54 | 55 | 56 | --------------------------------------------------------------------------------