├── Mechanical ├── InsulatorCard.odg ├── InsulatorCard.pdf ├── CaseWCutoutsModel.FCStd ├── Mechanical Drawing Export.pdf ├── Mechanical Drawing Source.odg └── solidworks │ ├── case_w_cutouts_model.PNG │ ├── case_w_cutouts_model.SLDPRT │ └── case_w_cutouts_model_2.SLDPRT ├── projects ├── teensy-based │ ├── sims │ │ └── IO-buffers.asc │ ├── sketches │ │ ├── echo │ │ │ ├── shaper1.ods │ │ │ ├── cubic-distort.h │ │ │ ├── README.md │ │ │ ├── mod-delay.h │ │ │ ├── cubic-distort.cpp │ │ │ ├── mod-delay.cpp │ │ │ └── echo.ino │ │ ├── AutoRoller │ │ │ ├── AutoRollerAudioProject.png │ │ │ ├── readme.md │ │ │ ├── AutoRollerAudioProject.txt │ │ │ └── AutoRoller.ino │ │ └── throughput │ │ │ └── throughput.ino │ └── eagle │ │ ├── dummy-teensy.lbr │ │ ├── teensy-pedal.brd │ │ └── teensy-pedal-example.brd └── gyrator-eq │ ├── LT-spice-sim │ ├── bass-boost.asc │ ├── mosfetfollower.asc │ ├── nat-semi-gyro.asc │ └── bass-boost-AC-coupled.asc │ └── EagleFiles │ ├── mosfet.lbr │ └── gyrator-eq.brd ├── .gitattributes ├── README.md ├── LICENSE.md ├── .gitignore └── test-plan └── testplan.md /Mechanical/InsulatorCard.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/InsulatorCard.odg -------------------------------------------------------------------------------- /Mechanical/InsulatorCard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/InsulatorCard.pdf -------------------------------------------------------------------------------- /Mechanical/CaseWCutoutsModel.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/CaseWCutoutsModel.FCStd -------------------------------------------------------------------------------- /Mechanical/Mechanical Drawing Export.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/Mechanical Drawing Export.pdf -------------------------------------------------------------------------------- /Mechanical/Mechanical Drawing Source.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/Mechanical Drawing Source.odg -------------------------------------------------------------------------------- /projects/teensy-based/sims/IO-buffers.asc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/teensy-based/sims/IO-buffers.asc -------------------------------------------------------------------------------- /Mechanical/solidworks/case_w_cutouts_model.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/solidworks/case_w_cutouts_model.PNG -------------------------------------------------------------------------------- /projects/gyrator-eq/LT-spice-sim/bass-boost.asc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/gyrator-eq/LT-spice-sim/bass-boost.asc -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/shaper1.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/teensy-based/sketches/echo/shaper1.ods -------------------------------------------------------------------------------- /Mechanical/solidworks/case_w_cutouts_model.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/solidworks/case_w_cutouts_model.SLDPRT -------------------------------------------------------------------------------- /Mechanical/solidworks/case_w_cutouts_model_2.SLDPRT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/Mechanical/solidworks/case_w_cutouts_model_2.SLDPRT -------------------------------------------------------------------------------- /projects/gyrator-eq/LT-spice-sim/mosfetfollower.asc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/gyrator-eq/LT-spice-sim/mosfetfollower.asc -------------------------------------------------------------------------------- /projects/gyrator-eq/LT-spice-sim/nat-semi-gyro.asc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/gyrator-eq/LT-spice-sim/nat-semi-gyro.asc -------------------------------------------------------------------------------- /projects/gyrator-eq/LT-spice-sim/bass-boost-AC-coupled.asc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/gyrator-eq/LT-spice-sim/bass-boost-AC-coupled.asc -------------------------------------------------------------------------------- /projects/teensy-based/sketches/AutoRoller/AutoRollerAudioProject.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkfun/Proto_Pedal/HEAD/projects/teensy-based/sketches/AutoRoller/AutoRollerAudioProject.png -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/AutoRoller/readme.md: -------------------------------------------------------------------------------- 1 | # AutoRoller Pedal 2 | 3 | This sketch runs on a Teensy that has been embeded into a proto pedal. 4 | 5 | The effect has an input filter for tone control, and output low-pass filter for effect, and a modulation source consisting of a sine wave generator with rate dependent on input peak values, so the louder you play the more wah-wahs happen. 6 | 7 | The demo expects 5 knobs: 8 | 9 | * Hi knob at A3 -- Input filter high tones 10 | * Lo knob at A2 -- Input filter low tones 11 | * Tone knob at A1 -- Output filter cutoff and resonance. CCW is low filter high Q, CW is high filter low Q 12 | * Depth knob at A6 -- Sets modulation depth 13 | * Speed knob at A7 -- Sets modulation osc rate 14 | 15 | Directory contents: 16 | 17 | * AutoRoller.ino -- The sketch. Requires teensyduino 18 | * AutoRollerAudioProject.png -- A picture of the Audio Tool workspace 19 | * AutoRollerAudioProject.txt -- The output data that corresponds with the graphic. Note: This may differ from the sketch but should always match the graphic. This is so you can modify the sketch but still have the source Audio Tool project, until you are happy with the changes and the png/txt can be updated. 20 | * readme.md -- This file. -------------------------------------------------------------------------------- /projects/teensy-based/sketches/AutoRoller/AutoRollerAudioProject.txt: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | // GUItool: begin automatically generated code 8 | AudioInputI2S i2s1; //xy=110,128 9 | AudioSynthWaveformDc dc1; //xy=195,380 10 | AudioFilterBiquad biquad3; //xy=278,188 11 | AudioFilterBiquad biquad1; //xy=279,107 12 | AudioFilterBiquad biquad2; //xy=279,149 13 | AudioEffectMultiply multiply1; //xy=367,334 14 | AudioSynthWaveformSine sine1; //xy=389,425 15 | AudioMixer4 mixer1; //xy=474,154 16 | AudioAnalyzePeak peak1; //xy=577,259 17 | AudioFilterStateVariable filter1; //xy=594,327 18 | AudioFilterStateVariable filter2; //xy=627,407 19 | AudioFilterStateVariable filter3; //xy=661,487 20 | AudioFilterStateVariable filter4; //xy=690,566 21 | AudioOutputI2S i2s2; //xy=842,592 22 | AudioConnection patchCord1(i2s1, 0, biquad1, 0); 23 | AudioConnection patchCord2(i2s1, 0, biquad2, 0); 24 | AudioConnection patchCord3(i2s1, 0, biquad3, 0); 25 | AudioConnection patchCord4(dc1, 0, multiply1, 1); 26 | AudioConnection patchCord5(biquad3, 0, mixer1, 2); 27 | AudioConnection patchCord6(biquad1, 0, mixer1, 0); 28 | AudioConnection patchCord7(biquad2, 0, mixer1, 1); 29 | AudioConnection patchCord8(multiply1, 0, filter1, 0); 30 | AudioConnection patchCord9(multiply1, peak1); 31 | AudioConnection patchCord10(sine1, 0, filter1, 1); 32 | AudioConnection patchCord11(sine1, 0, filter2, 1); 33 | AudioConnection patchCord12(sine1, 0, filter3, 1); 34 | AudioConnection patchCord13(sine1, 0, filter4, 1); 35 | AudioConnection patchCord14(mixer1, 0, multiply1, 0); 36 | AudioConnection patchCord15(filter1, 0, filter2, 0); 37 | AudioConnection patchCord16(filter2, 0, filter3, 0); 38 | AudioConnection patchCord17(filter3, 0, filter4, 0); 39 | AudioConnection patchCord18(filter4, 0, i2s2, 0); 40 | AudioControlSGTL5000 sgtl5000_1; //xy=728,84 41 | // GUItool: end automatically generated code 42 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/cubic-distort.h: -------------------------------------------------------------------------------- 1 | /* Cubic distortion waveshaper. 2 | * 3 | * Extracted from The MusicDSP list "Moog VCF, variation #1" filter 4 | * http://musicdsp.org/showArchiveComment.php?ArchiveID=25 5 | * 6 | * Implements the function: 7 | * output = input - (1/n*(input^3)) 8 | * 9 | * See shaper1.ods for a plotted transfer curve. 10 | * 11 | * Which is a gradual s-shaped input:output transfer characteristic 12 | * for soft clipping. 13 | * 14 | * 'n' determines the severity of the flattening of the curve, 15 | * and also the maximum output value. 16 | */ 17 | /* 18 | * Copyright (c) 2016, Byron Jacquot, SparkFun Electronics 19 | * SparkFun code, firmware, and software is released under 20 | * the MIT License(http://opensource.org/licenses/MIT). 21 | * 22 | * Permission is hereby granted, free of charge, to any person obtaining a copy 23 | * of this software and associated documentation files (the "Software"), to deal 24 | * in the Software without restriction, including without limitation the rights 25 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 26 | * copies of the Software, and to permit persons to whom the Software is 27 | * furnished to do so, subject to the following conditions: 28 | * 29 | * The above copyright notice, development funding notice, and this permission 30 | * notice shall be included in all copies or substantial portions of the Software. 31 | * 32 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 33 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 34 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 35 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 36 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 37 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 38 | * THE SOFTWARE. 39 | * 40 | * 41 | */ 42 | 43 | #pragma once 44 | 45 | #ifndef _cubic_distort_h_ 46 | #define _cubic_distort_h_ 47 | 48 | 49 | #include "AudioStream.h" 50 | 51 | class AudioEffectCubicDistort : public AudioStream 52 | { 53 | public: 54 | AudioEffectCubicDistort (void) : AudioStream(1, inputQueueArray) 55 | { 56 | } 57 | 58 | virtual void update(void); 59 | 60 | 61 | private: 62 | audio_block_t *inputQueueArray[1]; 63 | 64 | }; 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SparkFun Proto Pedal 2 | ======================================== 3 | 4 | ![SparkFun Proto Pedal](https://cdn.sparkfun.com//assets/parts/1/0/1/8/5/13124-05.jpg) 5 | 6 | [*SparkFun Proto Pedal*](https://www.sparkfun.com/products/13124) 7 | 8 | [*SparkFun Proto Pedal Chassis*](https://www.sparkfun.com/products/13967) 9 | 10 | The SparkFun Proto Pedal is breatboard featuring prewired I/O boilerplate for building guitar stompboxes. We also offer a matching predrilled chassis. 11 | 12 | _**If you're looking for the Teensy Project Sketches**_ [they're here](https://github.com/sparkfun/Proto_Pedal/tree/master/projects/teensy-based). Please remember to check the individual sketches for further notes and details in their respective `README.md` files. 13 | 14 | Repository Contents 15 | ------------------- 16 | 17 | * **/Hardware** - Eagle design files (.brd, .sch) 18 | * **/Mechanical** - Enclosure files and related information 19 | * **/Production** - Production panel files (.brd) 20 | * **/Projects** - Example circuits build on the Proto Pedal 21 | 22 | Documentation 23 | -------------- 24 | * **[Proto Pedal Assembly and Theory Guide](https://learn.sparkfun.com/tutorials/proto-pedal-assembly-and-theory-guide)** - Information to help get started. 25 | * **[Chassis Hookup Guide](https://learn.sparkfun.com/tutorials/proto-pedal-chassis-hookup-guide)** - Drilling and painting the enclosure. 26 | * **[Analog Equalizer Project](https://learn.sparkfun.com/tutorials/proto-pedal-example-analog-equalizer-project)** - the gyrator based two-band EQ example. 27 | * **[Teensy-Audio based Programmable Digital Pedal](https://learn.sparkfun.com/tutorials/proto-pedal-example-programmable-digital-pedal)** - building a DSP development platform 28 | 29 | Product Versions 30 | ---------------- 31 | * [SparkFun Proto Pedal](https://www.sparkfun.com/products/13124) 32 | * [SparkFun Proto Pedal Chassis](https://www.sparkfun.com/products/13967) 33 | 34 | Version History 35 | --------------- 36 | * [441c191](https://github.com/sparkfun/Proto_Pedal/commit/441c1917a6b56c2a821627207be28ff88913c089) - Initial Release 37 | 38 | License Information 39 | ------------------- 40 | 41 | This product is _**open source**_! 42 | 43 | Please review the LICENSE.md file for license information. 44 | 45 | If you have any questions or concerns on licensing, please contact techsupport@sparkfun.com. 46 | 47 | Distributed as-is; no warranty is given. 48 | 49 | - Your friends at SparkFun. 50 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/throughput/throughput.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | 8 | // GUItool: begin automatically generated code 9 | AudioInputI2S i2s1; //xy=200,69 10 | AudioOutputI2S i2s2; //xy=365,94 11 | AudioEffectMultiply mult1; 12 | AudioSynthWaveformDc dc1; 13 | 14 | AudioConnection patchCord1(i2s1, 0, mult1, 0); 15 | AudioConnection patchCord2(dc1, 0, mult1, 1); 16 | AudioConnection patchCord3(mult1, 0, i2s2, 0); 17 | AudioConnection patchCord4(mult1, 0, i2s2, 1); 18 | 19 | AudioControlSGTL5000 sgtl5000_1; //xy=302,184 20 | // GUItool: end automatically generated code 21 | 22 | uint32_t next; 23 | 24 | void setup() { 25 | // put your setup code here, to run once: 26 | 27 | Serial.begin(115200); 28 | 29 | delay(1500); 30 | 31 | Serial.println("Setup"); 32 | 33 | AudioMemory(15); 34 | 35 | AudioNoInterrupts(); 36 | 37 | 38 | sgtl5000_1.enable(); 39 | sgtl5000_1.inputSelect(AUDIO_INPUT_LINEIN ); 40 | 41 | sgtl5000_1.lineInLevel(0,2); 42 | sgtl5000_1.lineOutLevel(13); 43 | 44 | // Testing... 45 | sgtl5000_1.muteHeadphone(); 46 | //sgtl5000_1.muteLineout(); 47 | sgtl5000_1.adcHighPassFilterDisable(); 48 | sgtl5000_1.audioProcessorDisable(); 49 | 50 | dc1.amplitude(1.0); 51 | 52 | AudioInterrupts(); 53 | 54 | next = millis() + 2000; 55 | 56 | } 57 | 58 | void loop() { 59 | // put your main code here, to run repeatedly: 60 | 61 | static const int pot_channels[5] = {A1, A7, A6, A3, A2}; 62 | uint16_t pot_values[5]; 63 | 64 | static bool led = false; 65 | 66 | uint16_t len_pot; 67 | 68 | len_pot = analogRead(A1); 69 | 70 | //drum1.frequency(20 + (len_pot^2)); 71 | 72 | if (millis() >= next) 73 | { 74 | next = millis() + 1000; 75 | 76 | for(uint8_t i = 0; i < 5; i++) 77 | { 78 | pot_values[i] = analogRead(pot_channels[i]); 79 | } 80 | 81 | Serial.print("Pot values: "); 82 | 83 | for(uint8_t i = 0; i < 5; i++) 84 | { 85 | Serial.print(pot_values[i]); 86 | Serial.print(' '); 87 | } 88 | Serial.println(); 89 | 90 | Serial.print("Diagnostics: max: "); 91 | Serial.print(" "); 92 | Serial.print(AudioProcessorUsageMax()); 93 | Serial.print(" "); 94 | Serial.println(AudioMemoryUsageMax()); 95 | AudioProcessorUsageMaxReset(); 96 | 97 | //dc1.amplitude((led?0.0:1.0),500); 98 | 99 | //um1.noteOn(); 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/README.md: -------------------------------------------------------------------------------- 1 | # Echo Pedal 2 | 3 | This sketch runs on a Teensy that has been embeded into a proto pedal. 4 | 5 | **Important**: build this in a non-optimized target mode. We were using the plain 72 MHz mode. If you feel strongly about optimization, you'll need to slightly decrease the delay buffer size, as specified by the LEN macro. Optimization apparently trades RAM for execution speed. 6 | 7 | The effect emulates a vintage style tape echo, by degenerating the repeats with hipass and lopass filters. The delay feedback can to go above unity gain, and the lopass filter has a Q control, allowing buildup of repeat artifacts. 8 | 9 | The demo expects 5 knobs: 10 | 11 | * Delay length at A1 -- how long it takes new input to reach the output 12 | * Feedback level at A7 -- controls the number of echoes 13 | * Highpass frequency at A1 -- Feedback filter highpass frequency 14 | * Highpass resonance at A6 -- Feedback filter highpass resonance, effectively a bass boost 15 | * Lowpass frequency at A7 -- Feedback filter lowpass frequency 16 | 17 | Iff'n ya build it with **6** knobs, then you've got a control for the Lowpass Q, too. 18 | 19 | The Highpass resonance contributes to the feedback. Both it and the feedback control can cause the effect to run away. 20 | 21 | ## Directory contents: 22 | 23 | * echo.ino -- The sketch. Requires teensyduino 24 | * readme.md -- This file. 25 | * mod-delay.cpp/.h -- the delay line object...not yet mature enough to be officially contributed to Teensy Audio. 26 | * cubic-distort.cpp/.h -- a vestigial soft-clipping distortion block. 27 | 28 | ## Performance Notes 29 | 30 | It can be a fun effect, but it's got some ugly details. 31 | 32 | * The distortion in the feedback loop wasn't especially useful. The mixers already use saturating math, so they hard clip. 33 | * There's also a white noise block feeding the input mixer, but it's usually turned off. It's possible to introduce an almost inaudible amount, to get it to run away with no other input. 34 | * The delay line gets wonky & distorted if the modulation input is discontinuous. We do several things to help smooth it. 35 | * We throw away the noisy bottom LSBs of that ADC channel. 36 | * We're using a DC block to generate the timing signal for the delay, and setting the ramp time parameter to be longer than necessary. If you want to make things sound more rubbery, turn that time way up... 37 | * We keep track of the last value sent to that DC block, so we aren't calling it continually, resetting the time parameter. 38 | 39 | There's also the issue of noise floor performance. What we've learned so far 40 | 41 | * Having the USB port connected contributes to the 60/120 Hz in the background. 42 | * Having the USB port connected & talking to a serial app causes even more noise. 43 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/mod-delay.h: -------------------------------------------------------------------------------- 1 | /* Modulated delay line 2 | * 3 | * Inspired by; 4 | * http://musicdsp.org/showArchiveComment.php?ArchiveID=154 5 | * 6 | * But details changed for Teensy Audio. 7 | * No feedback within the class, just done externally 8 | * so we can add filters and stuff to the loop. 9 | * 10 | * Delay time is a signal input to the block, and functions from 0 to 0x7fff, 11 | * scaling the delay time accordingly. 12 | */ 13 | /* 14 | * Copyright (c) 2016, Byron Jacquot, SparkFun Electronics 15 | * SparkFun code, firmware, and software is released under 16 | * the MIT License(http://opensource.org/licenses/MIT). 17 | * 18 | * Permission is hereby granted, free of charge, to any person obtaining a copy 19 | * of this software and associated documentation files (the "Software"), to deal 20 | * in the Software without restriction, including without limitation the rights 21 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 22 | * copies of the Software, and to permit persons to whom the Software is 23 | * furnished to do so, subject to the following conditions: 24 | * 25 | * The above copyright notice, development funding notice, and this permission 26 | * notice shall be included in all copies or substantial portions of the Software. 27 | * 28 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 29 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 30 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 31 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 32 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 33 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 34 | * THE SOFTWARE. 35 | * 36 | * 37 | */ 38 | 39 | #pragma once 40 | 41 | #ifndef _mod_delay_h_ 42 | #define _mod_delay_h_ 43 | 44 | 45 | #include "AudioStream.h" 46 | 47 | class AudioEffectModDelay : public AudioStream 48 | { 49 | public: 50 | AudioEffectModDelay (void) : AudioStream(2, inputQueueArray) 51 | { 52 | buffer_length = 0; 53 | } 54 | 55 | virtual void update(void); 56 | 57 | // Set the parameters 58 | void setbuf(int32_t delay_len, int16_t* delay_buf ) 59 | { 60 | delayline_p = delay_buf; 61 | insert_index = 0; 62 | buffer_length = delay_len; 63 | 64 | for(int32_t i = 0; i < buffer_length; i++) 65 | { 66 | delayline_p[i] = 0; 67 | } 68 | }; 69 | 70 | void inspect(void) 71 | { 72 | Serial.print(insert_index, HEX); 73 | Serial.print(' '); 74 | Serial.print(delay_delta, HEX); 75 | Serial.print(' '); 76 | Serial.println(buffer_length, HEX); 77 | 78 | }; 79 | 80 | private: 81 | audio_block_t *inputQueueArray[2]; 82 | 83 | int16_t *delayline_p; 84 | 85 | int32_t insert_index; 86 | int32_t buffer_length; 87 | int32_t delay_delta; 88 | }; 89 | 90 | #endif 91 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | SparkFun License Information 2 | ============================ 3 | 4 | SparkFun uses two different licenses for our files — one for hardware and one for code. 5 | 6 | Hardware 7 | --------- 8 | 9 | **SparkFun hardware is released under [Creative Commons Share-alike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/).** 10 | 11 | Note: This is a human-readable summary of (and not a substitute for) the [license](http://creativecommons.org/licenses/by-sa/4.0/legalcode). 12 | 13 | You are free to: 14 | 15 | Share — copy and redistribute the material in any medium or format 16 | Adapt — remix, transform, and build upon the material 17 | for any purpose, even commercially. 18 | The licensor cannot revoke these freedoms as long as you follow the license terms. 19 | Under the following terms: 20 | 21 | Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 22 | ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. 23 | No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 24 | Notices: 25 | 26 | You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. 27 | No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. 28 | 29 | 30 | Code 31 | -------- 32 | 33 | **SparkFun code, firmware, and software is released under the MIT License(http://opensource.org/licenses/MIT).** 34 | 35 | The MIT License (MIT) 36 | 37 | Copyright (c) 2016 SparkFun Electronics 38 | 39 | Permission is hereby granted, free of charge, to any person obtaining a copy 40 | of this software and associated documentation files (the "Software"), to deal 41 | in the Software without restriction, including without limitation the rights 42 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 43 | copies of the Software, and to permit persons to whom the Software is 44 | furnished to do so, subject to the following conditions: 45 | 46 | The above copyright notice and this permission notice shall be included in all 47 | copies or substantial portions of the Software. 48 | 49 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 50 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 51 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 52 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 53 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 54 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 55 | SOFTWARE. 56 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/cubic-distort.cpp: -------------------------------------------------------------------------------- 1 | /* Cubic distortion waveshaper. 2 | * 3 | * Extracted from The MusicDSP list "Moog VCF, variation #1" filter 4 | * http://musicdsp.org/showArchiveComment.php?ArchiveID=25 5 | * 6 | * Implements the function: 7 | * output = input - (1/n*(input^3)) 8 | * 9 | * See shaper1.ods for a plotted transfer curve. 10 | * 11 | * Which is a gradual s-shaped input:output transfer characteristic 12 | * for soft clipping. 13 | * 14 | * 'n' determines the severity of the flattening of the curve, 15 | * and also the maximum output value. 16 | */ 17 | /* 18 | * Copyright (c) 2016, Byron Jacquot, SparkFun Electronics 19 | * SparkFun code, firmware, and software is released under 20 | * the MIT License(http://opensource.org/licenses/MIT). 21 | * 22 | * Permission is hereby granted, free of charge, to any person obtaining a copy 23 | * of this software and associated documentation files (the "Software"), to deal 24 | * in the Software without restriction, including without limitation the rights 25 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 26 | * copies of the Software, and to permit persons to whom the Software is 27 | * furnished to do so, subject to the following conditions: 28 | * 29 | * The above copyright notice, development funding notice, and this permission 30 | * notice shall be included in all copies or substantial portions of the Software. 31 | * 32 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 33 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 34 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 35 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 36 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 37 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 38 | * THE SOFTWARE. 39 | * 40 | * 41 | */ 42 | 43 | #include "cubic-distort.h" 44 | #include "utility/dspinst.h" 45 | 46 | 47 | void AudioEffectCubicDistort::update(void) 48 | { 49 | audio_block_t *audioblock; 50 | int16_t *data, *end; 51 | 52 | int32_t calc, temp; 53 | 54 | 55 | audioblock = receiveWritable(0); 56 | if (!audioblock) return; 57 | 58 | data = audioblock->data; 59 | end = audioblock->data + AUDIO_BLOCK_SAMPLES; 60 | 61 | do 62 | { 63 | calc = *data; 64 | calc <<= 16; 65 | 66 | // Cube 67 | temp = multiply_32x32_rshift32_rounded(calc, calc); 68 | temp = multiply_32x32_rshift32_rounded(calc, temp); 69 | 70 | // times 1/3 - peaks at 0.666 71 | //temp = multiply_32x32_rshift32_rounded(calc, 0x2aaaaaaa); 72 | 73 | // times 1/5 - peaks at 0.8 74 | temp = multiply_32x32_rshift32_rounded(calc, 0x19999999); 75 | 76 | // times 1/6 - peaks at 0.833 77 | //temp = multiply_32x32_rshift32_rounded(calc, 0x15555555); 78 | 79 | *data = (calc - temp)>> 16; 80 | data++; 81 | } while (data < end); 82 | transmit(audioblock); 83 | release(audioblock); 84 | } 85 | 86 | 87 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## SparkFun Useful stuff 3 | ################# 4 | 5 | ## AVR Development 6 | *.eep 7 | *.elf 8 | *.lst 9 | *.lss 10 | *.sym 11 | *.d 12 | *.o 13 | *.srec 14 | *.map 15 | 16 | ## Notepad++ backup files 17 | *.bak 18 | 19 | ## BOM files 20 | *bom* 21 | 22 | ################# 23 | ## Eclipse 24 | ################# 25 | 26 | *.pydevproject 27 | .project 28 | .metadata 29 | bin/ 30 | tmp/ 31 | *.tmp 32 | *.bak 33 | *.swp 34 | *~.nib 35 | local.properties 36 | .classpath 37 | .settings/ 38 | .loadpath 39 | 40 | # External tool builders 41 | .externalToolBuilders/ 42 | 43 | # Locally stored "Eclipse launch configurations" 44 | *.launch 45 | 46 | # CDT-specific 47 | .cproject 48 | 49 | # PDT-specific 50 | .buildpath 51 | 52 | 53 | ############# 54 | ## Eagle 55 | ############# 56 | 57 | # Ignore the library, board and schematic backup files 58 | *.b#? 59 | *.s#? 60 | *.l#? 61 | 62 | 63 | ################# 64 | ## Visual Studio 65 | ################# 66 | 67 | ## Ignore Visual Studio temporary files, build results, and 68 | ## files generated by popular Visual Studio add-ons. 69 | 70 | # User-specific files 71 | *.suo 72 | *.user 73 | *.sln.docstates 74 | 75 | # Build results 76 | [Dd]ebug/ 77 | [Rr]elease/ 78 | *_i.c 79 | *_p.c 80 | *.ilk 81 | *.meta 82 | *.obj 83 | *.pch 84 | *.pdb 85 | *.pgc 86 | *.pgd 87 | *.rsp 88 | *.sbr 89 | *.tlb 90 | *.tli 91 | *.tlh 92 | *.tmp 93 | *.vspscc 94 | .builds 95 | *.dotCover 96 | 97 | ## TODO: If you have NuGet Package Restore enabled, uncomment this 98 | #packages/ 99 | 100 | # Visual C++ cache files 101 | ipch/ 102 | *.aps 103 | *.ncb 104 | *.opensdf 105 | *.sdf 106 | 107 | # Visual Studio profiler 108 | *.psess 109 | *.vsp 110 | 111 | # ReSharper is a .NET coding add-in 112 | _ReSharper* 113 | 114 | # Installshield output folder 115 | [Ee]xpress 116 | 117 | # DocProject is a documentation generator add-in 118 | DocProject/buildhelp/ 119 | DocProject/Help/*.HxT 120 | DocProject/Help/*.HxC 121 | DocProject/Help/*.hhc 122 | DocProject/Help/*.hhk 123 | DocProject/Help/*.hhp 124 | DocProject/Help/Html2 125 | DocProject/Help/html 126 | 127 | # Click-Once directory 128 | publish 129 | 130 | # Others 131 | [Bb]in 132 | [Oo]bj 133 | sql 134 | TestResults 135 | *.Cache 136 | ClientBin 137 | stylecop.* 138 | ~$* 139 | *.dbmdl 140 | Generated_Code #added for RIA/Silverlight projects 141 | 142 | # Backup & report files from converting an old project file to a newer 143 | # Visual Studio version. Backup files are not needed, because we have git ;-) 144 | _UpgradeReport_Files/ 145 | Backup*/ 146 | UpgradeLog*.XML 147 | 148 | 149 | ############ 150 | ## Windows 151 | ############ 152 | 153 | # Windows image file caches 154 | Thumbs.db 155 | 156 | # Folder config file 157 | Desktop.ini 158 | 159 | 160 | ############# 161 | ## Python 162 | ############# 163 | 164 | *.py[co] 165 | 166 | # Packages 167 | *.egg 168 | *.egg-info 169 | dist 170 | build 171 | eggs 172 | parts 173 | bin 174 | var 175 | sdist 176 | develop-eggs 177 | .installed.cfg 178 | 179 | # Installer logs 180 | pip-log.txt 181 | 182 | # Unit test / coverage reports 183 | .coverage 184 | .tox 185 | 186 | #Translations 187 | *.mo 188 | 189 | #Mr Developer 190 | .mr.developer.cfg 191 | 192 | # Mac crap 193 | .DS_Store 194 | 195 | ############ 196 | ## LTSpice 197 | ############ 198 | 199 | # SPICE sim temp files 200 | *.raw 201 | *.log 202 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/mod-delay.cpp: -------------------------------------------------------------------------------- 1 | /* Modulated delay line 2 | * 3 | * Inspired by; 4 | * http://musicdsp.org/showArchiveComment.php?ArchiveID=154 5 | * 6 | * But details changed for Teensy Audio. 7 | * No feedback within the class, just done externally 8 | * so we can add filters and stuff to the loop. 9 | * 10 | * Delay time is a signal input to the block, and functions from 0 to 0x7fff, 11 | * scaling the delay time accordingly. 12 | */ 13 | /* 14 | * Copyright (c) 2016, Byron Jacquot, SparkFun Electronics 15 | * SparkFun code, firmware, and software is released under 16 | * the MIT License(http://opensource.org/licenses/MIT). 17 | * 18 | * Permission is hereby granted, free of charge, to any person obtaining a copy 19 | * of this software and associated documentation files (the "Software"), to deal 20 | * in the Software without restriction, including without limitation the rights 21 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 22 | * copies of the Software, and to permit persons to whom the Software is 23 | * furnished to do so, subject to the following conditions: 24 | * 25 | * The above copyright notice, development funding notice, and this permission 26 | * notice shall be included in all copies or substantial portions of the Software. 27 | * 28 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 29 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 30 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 31 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 32 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 33 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 34 | * THE SOFTWARE. 35 | * 36 | * 37 | */ 38 | 39 | 40 | #include "mod-delay.h" 41 | 42 | //#define INTERPOLATE (1) 43 | 44 | void AudioEffectModDelay::update(void) 45 | { 46 | audio_block_t *audioblock, *controlblock; 47 | int16_t *data, *end, *ctrl; 48 | 49 | int32_t extract_index; 50 | 51 | #ifdef INTERPOLATE 52 | int32_t interp_delta; 53 | int32_t next; 54 | int16_t calc; 55 | #endif 56 | 57 | if(buffer_length == 0) 58 | return; 59 | 60 | 61 | audioblock = receiveWritable(0); 62 | if (!audioblock) return; 63 | 64 | controlblock = receiveReadOnly(1); 65 | if (!controlblock) return; 66 | 67 | data = audioblock->data; 68 | end = audioblock->data + AUDIO_BLOCK_SAMPLES; 69 | 70 | ctrl = controlblock->data; 71 | 72 | do 73 | { 74 | delayline_p[insert_index] = *data; 75 | insert_index++; 76 | if(insert_index >= buffer_length) 77 | { 78 | insert_index = 0; 79 | } 80 | 81 | #ifdef INTERPOLATE 82 | // 83 | interp_delta = (buffer_length * (*ctrl)); 84 | delay_delta = interp_delta >> 15; // MSB's for delay len 85 | interp_delta &= 0x7fff; //LSBs for interp distance 86 | #else 87 | delay_delta = (buffer_length * (*ctrl)) >> 15; 88 | #endif 89 | 90 | extract_index = insert_index-delay_delta; 91 | 92 | if(extract_index < 0) 93 | { 94 | extract_index = buffer_length + extract_index; 95 | } 96 | 97 | #ifdef INTERPOLATE 98 | // Use the fractional part to interpolate between samples 99 | next = extract_index + 1; 100 | if(next >= buffer_length) 101 | { 102 | next = 0; 103 | } 104 | 105 | calc = delayline_p[next] - delayline_p[extract_index]; 106 | 107 | calc = (calc * interp_delta )>>15; 108 | calc += delayline_p[extract_index]; 109 | 110 | *data = calc; 111 | #else 112 | *data = delayline_p[extract_index]; 113 | #endif 114 | 115 | data++; 116 | ctrl++; 117 | } while (data < end); 118 | transmit(audioblock); 119 | release(audioblock); 120 | release(controlblock); 121 | } 122 | 123 | 124 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/echo/echo.ino: -------------------------------------------------------------------------------- 1 | /* Teensy pedal echo demo sketch. 2 | * 3 | * A tape-delay inspired delay sketch, with heavy filtering and 4 | * subtle distortion in the feedback loop. 5 | * 6 | * Copyright (c) 2016, Byron Jacquot, SparkFun Electronics 7 | * SparkFun code, firmware, and software is released under 8 | * the MIT License(http://opensource.org/licenses/MIT). 9 | * 10 | * Permission is hereby granted, free of charge, to any person obtaining a copy 11 | * of this software and associated documentation files (the "Software"), to deal 12 | * in the Software without restriction, including without limitation the rights 13 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | * copies of the Software, and to permit persons to whom the Software is 15 | * furnished to do so, subject to the following conditions: 16 | * 17 | * The above copyright notice, development funding notice, and this permission 18 | * notice shall be included in all copies or substantial portions of the Software. 19 | * 20 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 26 | * THE SOFTWARE. 27 | * 28 | */ 29 | 30 | 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | #include "mod-delay.h" 38 | #include "cubic-distort.h" 39 | 40 | /***************/ 41 | 42 | AudioSynthNoiseWhite noise; 43 | 44 | AudioMixer4 inmix; 45 | AudioSynthWaveformDc dlyctrl; 46 | AudioEffectModDelay xdly; 47 | AudioFilterStateVariable delayfilthp; 48 | AudioFilterStateVariable delayfiltlp; 49 | 50 | AudioOutputI2S i2s1; 51 | AudioInputI2S i2s2; 52 | AudioControlSGTL5000 sgtl5000_1; 53 | 54 | /***************/ 55 | 56 | ////AudioConnection patchCord01(i2s2, 0, infilt, 0); 57 | ////AudioConnection patchCord02(infilt, 0, inmix, 0); 58 | AudioConnection patchCord01(i2s2, 0, inmix, 0); 59 | AudioConnection patchCord03(noise, 0, inmix, 2); 60 | AudioConnection patchCord04(inmix, 0, xdly, 0); 61 | AudioConnection patchCord06(xdly, 0, delayfilthp, 0); 62 | AudioConnection patchCord07(delayfilthp, 2, delayfiltlp, 0); 63 | AudioConnection patchCord05(delayfiltlp, 0, inmix, 1); 64 | 65 | AudioConnection patchCord100(dlyctrl,0, xdly, 1); 66 | 67 | AudioConnection patchCord11(inmix, 0, i2s1, 0); 68 | AudioConnection patchCord12(inmix, 0, i2s1, 1); 69 | 70 | /***************/ 71 | 72 | 73 | // This is about max (97%!) for internal RAM 74 | static const uint32_t LEN = 0x06800; 75 | int16_t delaybuf[LEN]; 76 | 77 | uint32_t next; 78 | 79 | 80 | /***************/ 81 | 82 | void param_update() 83 | { 84 | uint16_t value; 85 | #if 0 86 | // If you don't have panel controls, here are prebaked settings 87 | 88 | inmix.gain(1, 0.7); 89 | dlyctrl.amplitude(1.0); 90 | delayfilthp.frequency(150); 91 | delayfilthp.resonance(1.0); 92 | delayfiltlp.frequency(1500); 93 | 94 | 95 | #else 96 | // ADC gives us 10 bits of data, but the bottom two are a bit noisy. 97 | // So we'll make them always 1's with a series of bitwise or with 3 ( | 0x03 ). 98 | 99 | static uint16_t last_time; 100 | 101 | // Set feedback level 102 | value = analogRead(A7); 103 | inmix.gain(1, (float)((value|0x03)*1.2/0x3ff)); 104 | 105 | value = analogRead(A1); 106 | value |= 0x03; 107 | if( value != last_time) 108 | { 109 | dlyctrl.amplitude((float)(value )/0x3ff, 200); 110 | last_time = value; 111 | } 112 | //dlyctrl.amplitude(0.5); 113 | 114 | value = analogRead(A2); 115 | // 10730 = 10230 + 500 116 | delayfiltlp.frequency(500 + ((value| 0x03)*10)); 117 | 118 | value = analogRead(A6); 119 | delayfilthp.frequency(100 + (value| 0x03)); 120 | 121 | value = analogRead(A3); 122 | delayfilthp.resonance(((float)(value|0x03)/0x3ff)* 2); 123 | //delayfiltlp.resonance((float)value/0x3ff); 124 | 125 | #endif 126 | } 127 | 128 | 129 | 130 | void setup() { 131 | // put your setup code here, to run once: 132 | 133 | Serial.begin(115200); 134 | Serial.println("Setup"); 135 | 136 | AudioMemory(20); 137 | 138 | AudioNoInterrupts(); 139 | 140 | // Adding in some noise can trigger spontaneous breakaway. 141 | //noise.amplitude(0.025); 142 | 143 | inmix.gain(0, 1.0); 144 | //inmix.gain(1, 0.9);// set by knob 145 | inmix.gain(2, 0.02); 146 | 147 | //infilt.setLowpass(0, 2500, 0.7); 148 | //infilt.setHighpass(1, 40, 0.7); 149 | 150 | xdly.setbuf(LEN, delaybuf); 151 | 152 | //delayfiltlp.resonance(2.0); 153 | 154 | sgtl5000_1.enable(); 155 | sgtl5000_1.inputSelect(AUDIO_INPUT_LINEIN ); 156 | 157 | sgtl5000_1.lineInLevel(0,2); 158 | sgtl5000_1.lineOutLevel(13); 159 | 160 | // Testing...these appear to address a little background noise... 161 | sgtl5000_1.muteHeadphone(); 162 | sgtl5000_1.adcHighPassFilterDisable(); 163 | sgtl5000_1.audioProcessorDisable(); 164 | 165 | AudioInterrupts(); 166 | 167 | next = millis() + 1000; 168 | 169 | Serial.println("Setup complete."); 170 | 171 | } 172 | 173 | 174 | 175 | void loop() { 176 | // put your main code here, to run repeatedly: 177 | static bool next_on = true; 178 | 179 | static uint32_t count = 0; 180 | 181 | param_update(); 182 | 183 | if(millis() > next) 184 | { 185 | next += 125; 186 | count++; 187 | 188 | Serial.print("Diagnostics: "); 189 | Serial.print(" max, buffs: "); 190 | Serial.print(AudioProcessorUsageMax()); 191 | Serial.print(" "); 192 | Serial.println(AudioMemoryUsageMax()); 193 | AudioProcessorUsageMaxReset(); 194 | xdly.inspect(); 195 | } 196 | 197 | } 198 | 199 | -------------------------------------------------------------------------------- /projects/teensy-based/sketches/AutoRoller/AutoRoller.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | // GUItool: begin automatically generated code 8 | AudioInputI2S i2s1; //xy=110,128 9 | AudioSynthWaveformDc dc1; //xy=195,380 10 | AudioFilterBiquad biquad3; //xy=278,188 11 | AudioFilterBiquad biquad1; //xy=279,107 12 | AudioFilterBiquad biquad2; //xy=279,149 13 | AudioEffectMultiply multiply1; //xy=367,334 14 | AudioSynthWaveformSine sine1; //xy=389,425 15 | AudioMixer4 mixer1; //xy=474,154 16 | AudioAnalyzePeak peak1; //xy=577,259 17 | AudioFilterStateVariable filter1; //xy=594,327 18 | AudioFilterStateVariable filter2; //xy=627,407 19 | AudioFilterStateVariable filter3; //xy=661,487 20 | AudioFilterStateVariable filter4; //xy=690,566 21 | AudioOutputI2S i2s2; //xy=842,592 22 | AudioConnection patchCord1(i2s1, 0, biquad1, 0); 23 | AudioConnection patchCord2(i2s1, 0, biquad2, 0); 24 | AudioConnection patchCord3(i2s1, 0, biquad3, 0); 25 | AudioConnection patchCord4(dc1, 0, multiply1, 1); 26 | AudioConnection patchCord5(biquad3, 0, mixer1, 2); 27 | AudioConnection patchCord6(biquad1, 0, mixer1, 0); 28 | AudioConnection patchCord7(biquad2, 0, mixer1, 1); 29 | AudioConnection patchCord8(multiply1, 0, filter1, 0); 30 | AudioConnection patchCord9(multiply1, peak1); 31 | AudioConnection patchCord10(sine1, 0, filter1, 1); 32 | AudioConnection patchCord11(sine1, 0, filter2, 1); 33 | AudioConnection patchCord12(sine1, 0, filter3, 1); 34 | AudioConnection patchCord13(sine1, 0, filter4, 1); 35 | AudioConnection patchCord14(mixer1, 0, multiply1, 0); 36 | AudioConnection patchCord15(filter1, 0, filter2, 0); 37 | AudioConnection patchCord16(filter2, 0, filter3, 0); 38 | AudioConnection patchCord17(filter3, 0, filter4, 0); 39 | AudioConnection patchCord18(filter4, 0, i2s2, 0); 40 | AudioControlSGTL5000 sgtl5000_1; //xy=728,84 41 | // GUItool: end automatically generated code 42 | 43 | //Used to prevent free run looping 44 | uint32_t next; 45 | 46 | void setup() { 47 | //**** General Setup ****// 48 | Serial.begin(115200); 49 | delay(1500); 50 | Serial.println("Sketch has started"); 51 | 52 | //**** Timer Setup ****// 53 | next = millis() + 2000; 54 | 55 | //**** Audio Setup ****// 56 | AudioNoInterrupts(); 57 | 58 | AudioMemory(35); 59 | 60 | sgtl5000_1.enable(); 61 | sgtl5000_1.volume(1); 62 | sgtl5000_1.inputSelect(AUDIO_INPUT_LINEIN); 63 | sgtl5000_1.unmuteHeadphone(); 64 | sgtl5000_1.lineInLevel(1); //use 2 for 1:1 65 | sgtl5000_1.lineOutLevel(13); 66 | 67 | //Set input defaults -- do this for parameters that do not get touched by knobs 68 | //Set input filter poles 69 | //low 70 | biquad1.setLowpass(0, 200 + 5000 * (4.0 / 256.0), 0.707); 71 | //mid 72 | biquad2.setBandpass(0, 400 + 15000 * (240.0 / 256.0), 0.7-(0.69*73.0 / 256.0)); 73 | //high 74 | biquad3.setHighpass(0, 400 + 15000 * (45.0 / 256.0), 0.707); 75 | 76 | //This section sets the output filters freq response to the control inputs. It should 77 | //set all 4 output filters but it sounds pretty good with just the one 78 | filter1.octaveControl(1); 79 | 80 | //The output filter does get reconfigured in the loop, but start with some known values. 81 | filter1.frequency(20 + 7000 * (float)20 / 256); 82 | filter1.resonance(5 * 200 / 256); 83 | filter2.frequency(20 + 7000 * (float)20 / 256); 84 | filter2.resonance(5 * 200 / 256); 85 | filter3.frequency(20 + 7000 * (float)20 / 256); 86 | filter3.resonance(5 * 200 / 256); 87 | filter4.frequency(20 + 7000 * (float)20 / 256); 88 | filter4.resonance(5 * 200 / 256); 89 | 90 | //Initial mod parameters 91 | sine1.amplitude((float)100 / 256); 92 | dc1.amplitude((float)255 / 256); 93 | 94 | AudioInterrupts(); 95 | 96 | } 97 | 98 | //Set knob names to analog input names here (use for remapping) 99 | #define HIGH_KNOB A3 100 | #define LOW_KNOB A2 101 | #define TONE_KNOB A1 102 | #define DEPTH_KNOB A6 103 | #define SPEED_KNOB A7 104 | 105 | uint16_t debugCounter = 0; 106 | 107 | void loop() { 108 | //Do this at the interval defined above, don't just free run the loop 109 | if (millis() >= next) 110 | { 111 | next = millis() + 15; 112 | 113 | //Variables for calculation 114 | float modFreqVar = 0; 115 | float modFreqDepth = 0; 116 | 117 | uint16_t lastHighKnobValue; 118 | uint16_t lastLowKnobValue; 119 | uint16_t lastToneKnobValue; 120 | uint16_t lastDepthKnobValue; 121 | uint16_t lastSpeedKnobValue; 122 | 123 | //Get the knob values 124 | lastHighKnobValue = analogRead(HIGH_KNOB); 125 | lastLowKnobValue = analogRead(LOW_KNOB); 126 | lastToneKnobValue = analogRead(TONE_KNOB); 127 | lastDepthKnobValue = analogRead(DEPTH_KNOB); 128 | lastSpeedKnobValue = analogRead(SPEED_KNOB); 129 | 130 | //Set audio platform parameters based on those values 131 | 132 | // Set mixer1 gain to set input filtering 133 | float preAmp = 2; //Use to scale input manually 134 | mixer1.gain(0, preAmp*(float)lastLowKnobValue / 1024); 135 | mixer1.gain(1, preAmp*150.0 / 256.0); 136 | mixer1.gain(2, preAmp*(float)lastHighKnobValue / 1024); 137 | 138 | // Set values for output filter. 139 | filter1.frequency(100 + 7000 * (float)lastToneKnobValue / 1024); 140 | filter1.resonance(2 * (1 - (float)lastToneKnobValue / 1024)); 141 | filter2.frequency(100 + 7000 * (float)lastToneKnobValue / 1024); 142 | filter2.resonance(2 * (1 - (float)lastToneKnobValue / 1024)); 143 | filter3.frequency(100 + 7000 * (float)lastToneKnobValue / 1024); 144 | filter3.resonance(2 * (1 - (float)lastToneKnobValue / 1024)); 145 | filter4.frequency(100 + 7000 * (float)lastToneKnobValue / 1024); 146 | filter4.resonance(2 * (1 - (float)lastToneKnobValue / 1024)); 147 | 148 | //Convert inputs to variables for ease of human thinking 149 | modFreqVar = ((float)lastSpeedKnobValue / 1024); 150 | modFreqDepth = ((float)lastDepthKnobValue / 1024); 151 | 152 | //Set the sine to 0 freq plus the mod frequency. 153 | sine1.frequency(0 + 1000 * modFreqVar * peak1.read()); 154 | sine1.amplitude(modFreqDepth); 155 | 156 | //When enough regular 15ms loops have occured, send out debug data to the serial 157 | if( debugCounter > 50 ) 158 | { 159 | debugCounter = 0; 160 | 161 | Serial.println("Knob values: "); 162 | 163 | Serial.print("High: "); 164 | Serial.println(lastHighKnobValue); 165 | 166 | Serial.print("Low: "); 167 | Serial.println(lastLowKnobValue); 168 | 169 | Serial.print("Tone: "); 170 | Serial.println(lastToneKnobValue); 171 | 172 | Serial.print("Depth: "); 173 | Serial.println(lastDepthKnobValue); 174 | 175 | Serial.print("Speed: "); 176 | Serial.println(lastSpeedKnobValue); 177 | 178 | Serial.print("Diagnostics: max: "); 179 | Serial.print(" "); 180 | Serial.print(AudioProcessorUsageMax()); 181 | Serial.print(" "); 182 | Serial.println(AudioMemoryUsageMax()); 183 | AudioProcessorUsageMaxReset(); 184 | 185 | Serial.println(); 186 | } 187 | debugCounter++; 188 | } 189 | } 190 | -------------------------------------------------------------------------------- /test-plan/testplan.md: -------------------------------------------------------------------------------- 1 | #Proto Pedal Test Plan. 2 | 3 | ## Prologue 4 | 5 | Assemble the protopedal by soldering the PTH components to the PCB. If you're intending to interface with a case, it's best to use the case as an assembly jig, to hold the TRS jacks and stomp switch. Be sure the following have been connected: 6 | 7 | * 2x TRS jacks 8 | * 9V battery snap with regard for color coding. 9 | * Barrel jack. 10 | 11 | 12 | ## Background 13 | 14 | *The stuff it's easy to forget when testing this device* 15 | 16 | Power circuits are completed by connecting a 1/4" TS jack to the input terminal. The sleeve of the jack bridges the ring terminal to ground, completing the power circuit. 17 | 18 | The barrel jack is sleeve-positive, tip-negative, as per the Roland/Boss standard. 19 | 20 | The barrel jack should disconnect the 9V battery when it's connected. We'll test this below! 21 | 22 | 23 | ## Materials 24 | 25 | * Multimeter with continuity, VDC and IDC modes. 26 | * Adjustable DC power supply with alligator clip wires and Ammeter display. 27 | * If not stated in test, configure supply for 9VDC output, with 25 mA current limit. 28 | * Barrel jack to raw wire pigtail, with *tip* and *barrel* clearly marked. 29 | * 1/4" TS jack (this can be a loose jack, or on a TS cable). *Be certain that it is not a TRS jack!* 30 | 31 | 32 | 33 | 34 | ## Power Related Tests 35 | 36 | 1. Sanity check against obvious shorts 37 | * Measure continuity between VCC and ground pads. 38 | * **Criteria:** should read open-circuit from VCC to Ground. 39 | 40 | 2. Verify input jack form ground connection 41 | * Measure continuity from TP4 (input ring, adjacent to input test point) to GND. 42 | * **Criteria:** should measure open. 43 | * Connect TS jack to input. 44 | * Measure continuity from TP4 to GND. 45 | * **Criteria:** Should measure short. 46 | 47 | 3. Verify VAUX is floating 48 | * Measure continuity from Vaux to VCC 49 | * **Criteria:** should measure open 50 | * Measure continuity from Vaux to GND 51 | * **Criteria:** should measure open 52 | 53 | 3. Verify battery snap polarity. 54 | * Connect power supply to 9V battery snap. 55 | * The larger terminal is +V 56 | * The smaller terminal is ground 57 | * Set power supply to current limit at 25 mA. 58 | * Switch supply on. 59 | * **Criteria:** Supply should indicate no current flowing. 60 | * Connect 1/4" TS jack to input. 61 | * Measure voltage between VCC and GND. 62 | * **Criteria:** Should measure supply voltage between VCC and GND 63 | * Switch the stomp switch. 64 | * **Criteria:** SMT LED should toggle on and off 65 | * **Criteria:** While LED is on, supply current should read ~5 mA. 66 | * Turn power supply off, remove input jack, disconnect battery snap. 67 | 68 | 4. Verify 9V battery reverse polarity protection 69 | * Connect power supply to 9V battery snap, now reversed. 70 | * The larger terminal is Ground 71 | * The smaller terminal is +V 72 | * Set power supply to current limit at 25 mA. 73 | * Switch supply on. 74 | * **Criteria:** Supply should indicate no current flowing. 75 | * Connect 1/4" TS jack to input. 76 | * Measure voltage between VCC and GND. 77 | * **Criteria:** Should measure at most 10 mV DC, supply indicating no measurable current. 78 | * Switch the stomp switch. 79 | * **Criteria:** SMT LED should remain dark 80 | * Turn power supply off, remove input jack, disconnect battery snap. 81 | 82 | 5. Verify barrel jack polarity. 83 | * Connect power supply to barrel jack with pigtails 84 | * Barrel is +V 85 | * Tip is ground 86 | * Set power supply to current limit at 25 mA. 87 | * Switch supply on. 88 | * **Criteria:** Supply should indicate no current flowing. 89 | * Connect 1/4" TS jack to input. 90 | * Measure voltage between VCC and GND. 91 | * **Criteria:** Should measure supply voltage between VCC and GND 92 | * Switch the stomp switch. 93 | * **Criteria:** SMT LED should toggle on and off 94 | * **Criteria:** While LED is on, supply current should read ~5 mA. 95 | * Turn power supply off, remove input jack, disconnect battery snap. 96 | 97 | 6. Verify barrel jack reverse polarity protection 98 | * Connect power supply to barrel jack with pigtails 99 | * Barrel is ground 100 | * Tip is +V 101 | * Set power supply to current limit at 25 mA. 102 | * Switch supply on. 103 | * **Criteria:** Supply should indicate no current flowing. 104 | * Connect 1/4" TS jack to input. 105 | * Measure voltage between VCC and GND. 106 | * **Criteria:** Should measure at most 10 mV DC, supply indicating no measurable current. 107 | * Switch the stomp switch. 108 | * **Criteria:** SMT LED should remain dark 109 | * Turn power supply off, remove input jack, disconnect battery snap. 110 | 111 | 112 | 7. Verify Barrel Jack Defeats battery. 113 | * Connect power supply to 9V battery snap. 114 | * The larger terminal is +V 115 | * The smaller terminal is ground 116 | * Disconnect barrel jack pigtails from all connections 117 | * Insert TS jack into input. 118 | * Toggle stomp switch until SMT LED comes on. 119 | * **Criteria:** Supply should indicate ~5 mA DC draw. 120 | * Insert disconnected barrel into socket. 121 | * **Criteria:** Supply should indicate 0 mA, LED should go dark. 122 | * Remove barrel from socket. 123 | * **Criteria:** LED should illuminate, current returns to ~5 mA. 124 | 125 | 8. Verify Power Input Range 126 | * Connect power supply to barrel jack with pigtails 127 | * Barrel is +V 128 | * Tip is ground 129 | * Plug TS into input. 130 | * Turn on power supply at 9 VDC. 131 | * Toggle stomp switch until LED comes on. 132 | * Slowly ramp PSU up to 18 VDC. 133 | * **Criteria:** No catastrophic failure, excess heat or excess current draw (typical current draw will be about ~15 mA). 134 | 135 | ## Switching Related Tests. 136 | 137 | 1. Prerequesite configuration 138 | * These teses assume that the DUT has already passed the power section tests. They also share a common setup: 139 | * TS connector plugged into intput jack. 140 | * 9VDC connected via barrel connector 141 | * barrel is +9VDC 142 | * tip is ground 143 | * These tests will call for DUT to switch between active and bypass states. The SMT LED is illuminated when the DUT is in the active state. 144 | 145 | 1. Verify Bypass state is functional 146 | * Set switch to bypass. SMT LED will be off. 147 | * Measure resistance from input tip connection to left side of C1 (at lower left corner of PCB) 148 | * **Criteria:** External side of C1 is floating WRT input tip 149 | * Measure resistance from input tip to output tip. 150 | * **Criteria:** tip-to-tip shows continuity. 151 | * Measure resistance from left side of C1 to ground 152 | * **Criteria:** LHS of C1 continuous with ground 153 | * Measure RHS of C2 (adjacent to battery leads) to tip of output 154 | * **Criteria:** RHS of C2 is floating WRT output tip 155 | * Measure RHS of C2 to ground 156 | * **Criteria:** RHS of C2 is 1Meg to ground. 157 | * 158 | 2. Verify active state is functional 159 | * Set switch to active state. SMT LED will illuminate 160 | * Measure voltage between RHS of R4 (PTH resistor marked "BRT") and ground 161 | * **Criteria:** Vcc (~9VDC) present at RHS of R4. 162 | * Measure resistance from input tip to ground. 163 | * **Criteria:** Input tip is is 1Meg to ground. 164 | * Measure resistance from input tip to LHS C1. 165 | * **Criteria:** Input tip is contonuous with LHS C1 166 | * Measure resistance input tip to output tip 167 | * **Criteria:** Resistance tip-to-tip is 2 Meg. 168 | * Measure resistance RHS of C2 to output tip 169 | * **Criteria:** Output tip is contonuous with RHS C2 170 | * Measure resistance output tip to ground 171 | * **Criteria:** Output tip is is 1Meg to ground. 172 | 3. Verify SJ1 defeats SMT LED. 173 | * Remove power. 174 | * Clear solder jumper SJ1 175 | -------------------------------------------------------------------------------- /projects/teensy-based/eagle/dummy-teensy.lbr: -------------------------------------------------------------------------------- 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 | 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 | -------------------------------------------------------------------------------- /projects/gyrator-eq/EagleFiles/mosfet.lbr: -------------------------------------------------------------------------------- 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 | 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 | 163 | 164 | 165 | >NAME 166 | >VALUE 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 | 196 | 197 | 198 | 199 | >NAME 200 | >VALUE 201 | D 202 | S 203 | G 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 | 229 | 230 | 231 | 232 | 233 | 234 | -------------------------------------------------------------------------------- /projects/teensy-based/eagle/teensy-pedal.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 | 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 | 163 | 164 | <h3>SparkFun Electronics' preferred foot prints</h3> 165 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 166 | 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. 167 | <br><br> 168 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 169 | <br><br> 170 | 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. 171 | 172 | 173 | 174 | 175 | 176 | 177 | >Name 178 | >Value 179 | 180 | 181 | 182 | 183 | <h3>SparkFun Electronics' preferred foot prints</h3> 184 | In this library you'll find non-functional items- supply symbols, logos, notations, frame blocks, etc.<br><br> 185 | 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. 186 | <br><br> 187 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 188 | <br><br> 189 | 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. 190 | 191 | 192 | Released under the Creative Commons Attribution Share-Alike 4.0 License 193 | https://creativecommons.org/licenses/by-sa/4.0/ 194 | Designed by: 195 | 196 | 197 | 198 | 199 | <h3>SparkFun Electronics' preferred foot prints</h3> 200 | In this library you'll find all manner of analog ICs- DACs, ADCs, video chips, op-amps, and others.<br><br> 201 | 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. 202 | <br><br> 203 | <b>Licensing:</b>Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 204 | <br><br> 205 | 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. 206 | 207 | 208 | <b>Dual In Line</b> 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | >VALUE 225 | >NAME 226 | 227 | 228 | 229 | 230 | <h3>SparkFun Electronics' preferred foot prints</h3> 231 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 232 | 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. 233 | <br><br> 234 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 235 | <br><br> 236 | 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. 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | <h3>SparkFun Electronics' preferred foot prints</h3> 247 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 248 | 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. 249 | <br><br> 250 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 251 | <br><br> 252 | 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. 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | >Name 266 | >Value 267 | 268 | 269 | 270 | 271 | <h3>SparkFun Electronics' preferred foot prints</h3> 272 | In this library you'll find anything that moves- switches, relays, buttons, potentiometers. Also, anything that goes on a board but isn't electrical in nature- screws, standoffs, etc.<br><br> 273 | 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. 274 | <br><br> 275 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 276 | <br><br> 277 | 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. 278 | 279 | 280 | Package for Alpha RV16AF-20 potentiometer 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | >Value 295 | >Name 296 | 297 | 298 | 299 | 300 | <h3>SparkFun Electronics' preferred foot prints</h3> 301 | In this library you'll find drivers, regulators, and amplifiers.<br><br> 302 | 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. 303 | <br><br> 304 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 305 | <br><br> 306 | 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. 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | >NAME 332 | >VALUE 333 | - 334 | I 335 | O 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | <b>EAGLE Design Rules</b> 357 | <p> 358 | Die Standard-Design-Rules sind so gewählt, dass sie für 359 | die meisten Anwendungen passen. Sollte ihre Platine 360 | besondere Anforderungen haben, treffen Sie die erforderlichen 361 | Einstellungen hier und speichern die Design Rules unter 362 | einem neuen Namen ab. 363 | <b>EAGLE Design Rules</b> 364 | <p> 365 | The default Design Rules have been set to cover 366 | a wide range of applications. Your particular design 367 | may have different requirements, so please make the 368 | necessary adjustments and save your customized 369 | design rules under a new name. 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 | -------------------------------------------------------------------------------- /projects/gyrator-eq/EagleFiles/gyrator-eq.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 | 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 | 163 | 164 | <h3>SparkFun Electronics' preferred foot prints</h3> 165 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 166 | 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. 167 | <br><br> 168 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 169 | <br><br> 170 | 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. 171 | 172 | 173 | 174 | 175 | 176 | 177 | >Name 178 | >Value 179 | 180 | 181 | 182 | 183 | 184 | >Name 185 | >Value 186 | 187 | 188 | <h3>CAP-PTH-SMALL-KIT</h3> 189 | 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> 190 | <br> 191 | <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. 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 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | <h3>SparkFun Electronics' preferred foot prints</h3> 228 | In this library you'll find all manner of analog ICs- DACs, ADCs, video chips, op-amps, and others.<br><br> 229 | 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. 230 | <br><br> 231 | <b>Licensing:</b>Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 232 | <br><br> 233 | 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. 234 | 235 | 236 | <b>Dual In Line</b> 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | >VALUE 253 | >NAME 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> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 263 | <br><br> 264 | 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. 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | >Name 278 | >Value 279 | 280 | 281 | 282 | 283 | <h3>SparkFun Electronics' preferred foot prints</h3> 284 | In this library you'll find anything that moves- switches, relays, buttons, potentiometers. Also, anything that goes on a board but isn't electrical in nature- screws, standoffs, etc.<br><br> 285 | 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. 286 | <br><br> 287 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 288 | <br><br> 289 | 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. 290 | 291 | 292 | Package for Alpha RV16AF-20 potentiometer 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | >Value 307 | >Name 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | >NAME 324 | >VALUE 325 | 326 | 327 | 328 | 329 | <h3>SparkFun Electronics' preferred foot prints</h3> 330 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 331 | 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. 332 | <br><br> 333 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 334 | <br><br> 335 | 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. 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | <h3>SparkFun Electronics' preferred foot prints</h3> 346 | In this library you'll find non-functional items- supply symbols, logos, notations, frame blocks, etc.<br><br> 347 | 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. 348 | <br><br> 349 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 350 | <br><br> 351 | 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. 352 | 353 | 354 | Released under the Creative Commons Attribution Share-Alike 4.0 License 355 | https://creativecommons.org/licenses/by-sa/4.0/ 356 | Designed by: 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | <b>EAGLE Design Rules</b> 371 | <p> 372 | Die Standard-Design-Rules sind so gewählt, dass sie für 373 | die meisten Anwendungen passen. Sollte ihre Platine 374 | besondere Anforderungen haben, treffen Sie die erforderlichen 375 | Einstellungen hier und speichern die Design Rules unter 376 | einem neuen Namen ab. 377 | <b>EAGLE Design Rules</b> 378 | <p> 379 | The default Design Rules have been set to cover 380 | a wide range of applications. Your particular design 381 | may have different requirements, so please make the 382 | necessary adjustments and save your customized 383 | design rules under a new name. 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 | -------------------------------------------------------------------------------- /projects/teensy-based/eagle/teensy-pedal-example.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 | 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 | 163 | 164 | <h3>SparkFun Electronics' preferred foot prints</h3> 165 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 166 | 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. 167 | <br><br> 168 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 169 | <br><br> 170 | 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. 171 | 172 | 173 | 174 | 175 | 176 | 177 | >Name 178 | >Value 179 | 180 | 181 | 182 | 183 | <h3>SparkFun Electronics' preferred foot prints</h3> 184 | In this library you'll find non-functional items- supply symbols, logos, notations, frame blocks, etc.<br><br> 185 | 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. 186 | <br><br> 187 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 188 | <br><br> 189 | 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. 190 | 191 | 192 | Released under the Creative Commons Attribution Share-Alike 4.0 License 193 | https://creativecommons.org/licenses/by-sa/4.0/ 194 | Designed by: 195 | 196 | 197 | 198 | 199 | <h3>SparkFun Electronics' preferred foot prints</h3> 200 | In this library you'll find all manner of analog ICs- DACs, ADCs, video chips, op-amps, and others.<br><br> 201 | 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. 202 | <br><br> 203 | <b>Licensing:</b>Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 204 | <br><br> 205 | 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. 206 | 207 | 208 | <b>Dual In Line</b> 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | >VALUE 225 | >NAME 226 | 227 | 228 | 229 | 230 | <h3>SparkFun Electronics' preferred foot prints</h3> 231 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 232 | 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. 233 | <br><br> 234 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 235 | <br><br> 236 | 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. 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | <h3>SparkFun Electronics' preferred foot prints</h3> 247 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 248 | 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. 249 | <br><br> 250 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 251 | <br><br> 252 | 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. 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | >Name 266 | >Value 267 | 268 | 269 | 270 | 271 | <h3>SparkFun Electronics' preferred foot prints</h3> 272 | In this library you'll find anything that moves- switches, relays, buttons, potentiometers. Also, anything that goes on a board but isn't electrical in nature- screws, standoffs, etc.<br><br> 273 | 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. 274 | <br><br> 275 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 276 | <br><br> 277 | 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. 278 | 279 | 280 | Package for Alpha RV16AF-20 potentiometer 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | >Value 295 | >Name 296 | 297 | 298 | 299 | 300 | <h3>SparkFun Electronics' preferred foot prints</h3> 301 | In this library you'll find drivers, regulators, and amplifiers.<br><br> 302 | 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. 303 | <br><br> 304 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 305 | <br><br> 306 | 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. 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | >NAME 332 | >VALUE 333 | - 334 | I 335 | O 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 | <b>EAGLE Design Rules</b> 380 | <p> 381 | Die Standard-Design-Rules sind so gewählt, dass sie für 382 | die meisten Anwendungen passen. Sollte ihre Platine 383 | besondere Anforderungen haben, treffen Sie die erforderlichen 384 | Einstellungen hier und speichern die Design Rules unter 385 | einem neuen Namen ab. 386 | <b>EAGLE Design Rules</b> 387 | <p> 388 | The default Design Rules have been set to cover 389 | a wide range of applications. Your particular design 390 | may have different requirements, so please make the 391 | necessary adjustments and save your customized 392 | design rules under a new name. 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 | --------------------------------------------------------------------------------