├── .gitattributes ├── .gitignore ├── Firmware ├── Bliptronics_Spectrum_Demo │ └── Bliptronics_Spectrum_Demo.ino ├── SparkFun_PWM_Demo │ └── SparkFun_PWM_Demo.ino ├── SparkFun_Spectrum_Demo │ └── SparkFun_Spectrum_Demo.ino ├── SparkFun_Spectrum_Serial_Plotter_Demo │ └── SparkFun_Spectrum_Serial_Plotter_Demo.ino └── SpectrumAnalyzer2 │ └── SpectrumAnalyzer2.pde ├── Hardware ├── Spectrum_Shield.brd └── Spectrum_Shield.sch ├── LICENSE.md ├── Production └── Spectrum_Shield_Panel_v16.brd └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## 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 board and schematic backup files 58 | *.b#? 59 | *.s#? 60 | 61 | 62 | ################# 63 | ## Visual Studio 64 | ################# 65 | 66 | ## Ignore Visual Studio temporary files, build results, and 67 | ## files generated by popular Visual Studio add-ons. 68 | 69 | # User-specific files 70 | *.suo 71 | *.user 72 | *.sln.docstates 73 | 74 | # Build results 75 | [Dd]ebug/ 76 | [Rr]elease/ 77 | *_i.c 78 | *_p.c 79 | *.ilk 80 | *.meta 81 | *.obj 82 | *.pch 83 | *.pdb 84 | *.pgc 85 | *.pgd 86 | *.rsp 87 | *.sbr 88 | *.tlb 89 | *.tli 90 | *.tlh 91 | *.tmp 92 | *.vspscc 93 | .builds 94 | *.dotCover 95 | 96 | ## TODO: If you have NuGet Package Restore enabled, uncomment this 97 | #packages/ 98 | 99 | # Visual C++ cache files 100 | ipch/ 101 | *.aps 102 | *.ncb 103 | *.opensdf 104 | *.sdf 105 | 106 | # Visual Studio profiler 107 | *.psess 108 | *.vsp 109 | 110 | # ReSharper is a .NET coding add-in 111 | _ReSharper* 112 | 113 | # Installshield output folder 114 | [Ee]xpress 115 | 116 | # DocProject is a documentation generator add-in 117 | DocProject/buildhelp/ 118 | DocProject/Help/*.HxT 119 | DocProject/Help/*.HxC 120 | DocProject/Help/*.hhc 121 | DocProject/Help/*.hhk 122 | DocProject/Help/*.hhp 123 | DocProject/Help/Html2 124 | DocProject/Help/html 125 | 126 | # Click-Once directory 127 | publish 128 | 129 | # Others 130 | [Bb]in 131 | [Oo]bj 132 | sql 133 | TestResults 134 | *.Cache 135 | ClientBin 136 | stylecop.* 137 | ~$* 138 | *.dbmdl 139 | Generated_Code #added for RIA/Silverlight projects 140 | 141 | # Backup & report files from converting an old project file to a newer 142 | # Visual Studio version. Backup files are not needed, because we have git ;-) 143 | _UpgradeReport_Files/ 144 | Backup*/ 145 | UpgradeLog*.XML 146 | 147 | 148 | ############ 149 | ## Windows 150 | ############ 151 | 152 | # Windows image file caches 153 | Thumbs.db 154 | 155 | # Folder config file 156 | Desktop.ini 157 | 158 | 159 | ############# 160 | ## Python 161 | ############# 162 | 163 | *.py[co] 164 | 165 | # Packages 166 | *.egg 167 | *.egg-info 168 | dist 169 | build 170 | eggs 171 | parts 172 | bin 173 | var 174 | sdist 175 | develop-eggs 176 | .installed.cfg 177 | 178 | # Installer logs 179 | pip-log.txt 180 | 181 | # Unit test / coverage reports 182 | .coverage 183 | .tox 184 | 185 | #Translations 186 | *.mo 187 | 188 | #Mr Developer 189 | .mr.developer.cfg 190 | 191 | # Mac crap 192 | .DS_Store 193 | -------------------------------------------------------------------------------- /Firmware/Bliptronics_Spectrum_Demo/Bliptronics_Spectrum_Demo.ino: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //Example to control RGB LED Modules with Spectrum Analyzer 4 | //Bliptronics.com 5 | //Ben Moyes 2010 6 | //Use this as you wish, but please give credit, or at least buy some of my LEDs! 7 | // 8 | 9 | 10 | LEDPixels LP; //Our LEDPixels library - see http://www.bliptronics.com/ArduinoCode/LEDPixels.zip 11 | 12 | //For spectrum analyzer shield, these three pins are used. 13 | //You can move pinds 4 and 5, but you must cut the trace on the shield and re-route from the 2 jumpers. 14 | int spectrumReset=5; 15 | int spectrumStrobe=4; 16 | int spectrumAnalog=0; //0 for left channel, 1 for right. 17 | 18 | //This holds the 15 bit RGB values for each LED. 19 | //You'll need one for each LED, we're using 25 LEDs here. 20 | //Note you've only got limited memory, so you can only control 21 | //Several hundred LEDs on a normal arduino. Double that on a Duemilanove. 22 | 23 | int MyDisplay[25]; 24 | 25 | // Spectrum analyzer read values will be kept here. 26 | int Spectrum[7]; 27 | 28 | void setup() { 29 | byte Counter; 30 | 31 | //Initialize the LEDPixels library. 32 | // refresh delay, address of data, number of LEDs, clock pin, data pin. 33 | LP.initialize(25, &MyDisplay[0],25, 12, 11 ); 34 | 35 | //Setup pins to drive the spectrum analyzer. 36 | pinMode(spectrumReset, OUTPUT); 37 | pinMode(spectrumStrobe, OUTPUT); 38 | 39 | //Init spectrum analyzer 40 | digitalWrite(spectrumStrobe,LOW); 41 | delay(1); 42 | digitalWrite(spectrumReset,HIGH); 43 | delay(1); 44 | digitalWrite(spectrumStrobe,HIGH); 45 | delay(1); 46 | digitalWrite(spectrumStrobe,LOW); 47 | delay(1); 48 | digitalWrite(spectrumReset,LOW); 49 | delay(5); 50 | // Reading the analyzer now will read the lowest frequency. 51 | 52 | // Turn all LEDs off. 53 | LP.setRange(0,24,LP.color(0,0,0)); 54 | LP.show(); //Write out display to LEDs 55 | 56 | } 57 | 58 | void loop() { 59 | 60 | int Counter, Counter2, Counter3; 61 | 62 | showSpectrum(); 63 | delay(15); //We wait here for a little while until all the values to the LEDs are written out. 64 | //This is being done in the background by an interrupt. 65 | } 66 | 67 | // Read 7 band equalizer. 68 | void readSpectrum() 69 | { 70 | // Band 0 = Lowest Frequencies. 71 | byte Band; 72 | for(Band=0;Band <7; Band++) 73 | { 74 | Spectrum[Band] = (analogRead(spectrumAnalog) + analogRead(spectrumAnalog) ) >>1; //Read twice and take the average by dividing by 2 75 | digitalWrite(spectrumStrobe,HIGH); 76 | delayMicroseconds(50); 77 | digitalWrite(spectrumStrobe,LOW); 78 | delayMicroseconds(50); 79 | } 80 | } 81 | 82 | 83 | void showSpectrum() 84 | { 85 | //Not I don;t use any floating point numbers - all integers to keep it zippy. 86 | readSpectrum(); 87 | byte Band, BarSize, MaxLevel; 88 | static unsigned int Divisor = 80, ChangeTimer=0; //, ReminderDivisor, 89 | unsigned int works, Remainder; 90 | 91 | MaxLevel = 0; 92 | 93 | for(Band=0;Band<5;Band++)//We only graph the lowest 5 bands here, there is 2 more unused! 94 | { 95 | //If value is 0, we don;t show anything on graph 96 | works = Spectrum[Band]/Divisor; //Bands are read in as 10 bit values. Scale them down to be 0 - 5 97 | if(works > MaxLevel) //Check if this value is the largest so far. 98 | MaxLevel = works; 99 | for(BarSize=1;BarSize <=5; BarSize++) 100 | { 101 | if( works > BarSize) LP.setLEDFast( LP.Translate(Band,BarSize-1),BarSize*6,31-(BarSize*5),0); 102 | else if ( works == BarSize) LP.setLEDFast( LP.Translate(Band,BarSize-1),BarSize*6,31-(BarSize*5),0); //Was remainder 103 | else LP.setLEDFast( LP.Translate(Band,BarSize-1),5,0,5); 104 | } 105 | } 106 | LP.show(); 107 | 108 | // Adjust the Divisor if levels are too high/low. 109 | // If below 4 happens 20 times, then very slowly turn up. 110 | if (MaxLevel >= 5) 111 | { 112 | Divisor=Divisor+1; 113 | ChangeTimer=0; 114 | } 115 | else 116 | if(MaxLevel < 4) 117 | { 118 | if(Divisor > 65) 119 | if(ChangeTimer++ > 20) 120 | { 121 | Divisor--; 122 | ChangeTimer=0; 123 | } 124 | } 125 | else 126 | { 127 | ChangeTimer=0; 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /Firmware/SparkFun_PWM_Demo/SparkFun_PWM_Demo.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | SparkFun Spectrum Shield PWM Demo 3 | Toni Klopfenstein @ SparkFun Electronics 4 | December 2015 5 | https://github.com/sparkfun/Spectrum_Shield 6 | 7 | This sketch shows the basic functionality of the Spectrum Shield, working with a basic RGB LED Matrix. 8 | 9 | The Spectrum Shield code is based off of the original demo sketch by Ben Moyes @Bliptronics. 10 | This sketch is available in the Spectrum Shield repository. 11 | 12 | Development environment specifics: 13 | Developed in Arduino 1.6. 14 | 15 | This code is beerware; if you see me (or any other SparkFun employee) at the local, and you've found our code helpful, please buy us a round! 16 | Distributed as-is; no warranty is given. 17 | *********************************************************************************/ 18 | 19 | //Declare Spectrum Shield pin connections 20 | #define STROBE 4 21 | #define RESET 5 22 | #define DC_One A0 23 | #define DC_Two A1 24 | 25 | 26 | //Define LED connections on the shield 27 | int LED[] = {7, 8, 9, 10, 11, 12, 13}; 28 | 29 | //Define spectrum variables 30 | int freq_amp; 31 | int Frequencies_One[7]; 32 | int Frequencies_Two[7]; 33 | int i; 34 | 35 | /********************Setup Loop*************************/ 36 | void setup() { 37 | 38 | //Set LED pin configurations 39 | for(i=0; i<7; i++) 40 | { 41 | pinMode(LED[i], OUTPUT); 42 | digitalWrite(LED[i], LOW); 43 | } 44 | 45 | //Set Spectrum Shield pin configurations 46 | pinMode(STROBE, OUTPUT); 47 | pinMode(RESET, OUTPUT); 48 | pinMode(DC_One, INPUT); 49 | pinMode(DC_Two, INPUT); 50 | digitalWrite(STROBE, HIGH); 51 | digitalWrite(RESET, HIGH); 52 | 53 | //Initialize Spectrum Analyzers 54 | digitalWrite(STROBE, LOW); 55 | delay(1); 56 | digitalWrite(RESET, HIGH); 57 | delay(1); 58 | digitalWrite(STROBE, HIGH); 59 | delay(1); 60 | digitalWrite(STROBE, LOW); 61 | delay(1); 62 | digitalWrite(RESET, LOW); 63 | } 64 | 65 | 66 | /**************************Main Function Loop*****************************/ 67 | void loop() { 68 | 69 | Read_Frequencies(); 70 | Graph_Frequencies(); 71 | delay(50); 72 | 73 | } 74 | 75 | 76 | /*******************Pull frequencies from Spectrum Shield********************/ 77 | void Read_Frequencies(){ 78 | //Read frequencies for each band 79 | for (freq_amp = 0; freq_amp<7; freq_amp++) 80 | { 81 | Frequencies_One[freq_amp] = analogRead(DC_One); 82 | Frequencies_Two[freq_amp] = analogRead(DC_Two); 83 | digitalWrite(STROBE, HIGH); 84 | delayMicroseconds(50); 85 | digitalWrite(STROBE, LOW); 86 | delayMicroseconds(50); 87 | } 88 | } 89 | 90 | /*******************Light LEDs based on frequencies*****************************/ 91 | void Graph_Frequencies(){ 92 | for( i= 0; i<7; i++) 93 | { 94 | if(Frequencies_Two[i] > Frequencies_One[i]){ 95 | analogWrite(LED[i], Frequencies_Two[i]/4); 96 | } 97 | else{ 98 | analogWrite(LED[i], Frequencies_One[i]/4); 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /Firmware/SparkFun_Spectrum_Demo/SparkFun_Spectrum_Demo.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | SparkFun Spectrum Shield Demo 3 | Toni Klopfenstein @ SparkFun Electronics 4 | December 2015 5 | https://github.com/sparkfun/Spectrum_Shield 6 | 7 | This sketch shows the basic functionality of the Spectrum Shield, working with a basic RGB LED Matrix. 8 | 9 | The Spectrum Shield code is based off of the original demo sketch by Ben Moyes @Bliptronics. 10 | This sketch is available in the Spectrum Shield repository. 11 | 12 | Development environment specifics: 13 | Developed in Arduino 1.6. 14 | 15 | This code is beerware; if you see me (or any other SparkFun employee) at the local, and you've found our code helpful, please buy us a round! 16 | Distributed as-is; no warranty is given. 17 | *********************************************************************************/ 18 | 19 | //Declare Spectrum Shield pin connections 20 | #define STROBE 4 21 | #define RESET 5 22 | #define DC_One A0 23 | #define DC_Two A1 24 | 25 | 26 | //Define LED connections on the Arduino/Shield 27 | int LED[] = {7, 8, 9, 10, 11, 12, 13}; 28 | 29 | //Define spectrum variables 30 | int freq_amp; 31 | int Frequencies_One[7]; 32 | int Frequencies_Two[7]; 33 | int i; 34 | 35 | /********************Setup Loop*************************/ 36 | void setup() { 37 | //Set LED pin configurations 38 | for(i=0; i<7; i++) 39 | { 40 | pinMode(LED[i], OUTPUT); 41 | digitalWrite(LED[i], LOW); 42 | } 43 | 44 | //Set spectrum Shield pin configurations 45 | pinMode(STROBE, OUTPUT); 46 | pinMode(RESET, OUTPUT); 47 | pinMode(DC_One, INPUT); 48 | pinMode(DC_Two, INPUT); 49 | digitalWrite(STROBE, HIGH); 50 | digitalWrite(RESET, HIGH); 51 | 52 | //Initialize Spectrum Analyzers 53 | digitalWrite(STROBE, LOW); 54 | delay(1); 55 | digitalWrite(RESET, HIGH); 56 | delay(1); 57 | digitalWrite(STROBE, HIGH); 58 | delay(1); 59 | digitalWrite(STROBE, LOW); 60 | delay(1); 61 | digitalWrite(RESET, LOW); 62 | } 63 | 64 | 65 | /**************************Main Function Loop*****************************/ 66 | void loop() { 67 | 68 | Read_Frequencies(); 69 | Graph_Frequencies(); 70 | delay(50); 71 | 72 | } 73 | 74 | 75 | /*******************Pull frquencies from Spectrum Shield********************/ 76 | void Read_Frequencies(){ 77 | //Read frequencies for each band 78 | for (freq_amp = 0; freq_amp<7; freq_amp++) 79 | { 80 | digitalWrite(STROBE, HIGH); 81 | delayMicroseconds(50); 82 | digitalWrite(STROBE, LOW); 83 | delayMicroseconds(50); 84 | Frequencies_One[freq_amp] = analogRead(DC_One); 85 | Frequencies_Two[freq_amp] = analogRead(DC_Two); 86 | } 87 | } 88 | 89 | /*******************Light LEDs based on frequencies*****************************/ 90 | void Graph_Frequencies(){ 91 | for( i= 0; i<7; i++) 92 | { 93 | if(Frequencies_Two[i] > Frequencies_One[i]){ 94 | digitalWrite(LED[i], HIGH); 95 | delay(Frequencies_Two[i]); 96 | digitalWrite(LED[i], LOW); 97 | } 98 | else{ 99 | digitalWrite(LED[i], HIGH); 100 | delay(Frequencies_One[i]); 101 | digitalWrite(LED[i], LOW); 102 | } 103 | } 104 | } -------------------------------------------------------------------------------- /Firmware/SparkFun_Spectrum_Serial_Plotter_Demo/SparkFun_Spectrum_Serial_Plotter_Demo.ino: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | SparkFun Spectrum Shield Demo 3 | Wes Furuya @ SparkFun Electronics 4 | January 2020 5 | https://github.com/sparkfun/Spectrum_Shield 6 | 7 | This sketch shows the basic functionality of the Spectrum Shield, using the Serial Monitor/Plotter. 8 | 9 | The Spectrum Shield code is based off of the original demo sketch by Toni Klopfenstein @SparkFun Electronics. 10 | This sketch is available in the Spectrum Shield repository. 11 | 12 | Development environment specifics: 13 | Developed in Arduino 1.8.5 14 | *********************************************************************************/ 15 | 16 | //Declare Spectrum Shield pin connections 17 | #define STROBE 4 18 | #define RESET 5 19 | #define DC_One A0 20 | #define DC_Two A1 21 | 22 | //Define spectrum variables 23 | int freq_amp; 24 | int Frequencies_One[7]; 25 | int Frequencies_Two[7]; 26 | int i; 27 | 28 | /********************Setup Loop*************************/ 29 | void setup() { 30 | //Set spectrum Shield pin configurations 31 | pinMode(STROBE, OUTPUT); 32 | pinMode(RESET, OUTPUT); 33 | pinMode(DC_One, INPUT); 34 | pinMode(DC_Two, INPUT); 35 | 36 | //Initialize Spectrum Analyzers 37 | digitalWrite(STROBE, LOW); 38 | digitalWrite(RESET, LOW); 39 | delay(5); 40 | 41 | Serial.begin(9600); 42 | } 43 | 44 | 45 | /**************************Main Function Loop*****************************/ 46 | void loop() { 47 | Read_Frequencies(); 48 | Graph_Frequencies(); 49 | 50 | } 51 | 52 | 53 | /*******************Pull frquencies from Spectrum Shield********************/ 54 | void Read_Frequencies() { 55 | digitalWrite(RESET, HIGH); 56 | delayMicroseconds(200); 57 | digitalWrite(RESET, LOW); 58 | delayMicroseconds(200); 59 | 60 | //Read frequencies for each band 61 | for (freq_amp = 0; freq_amp < 7; freq_amp++) 62 | { 63 | digitalWrite(STROBE, HIGH); 64 | delayMicroseconds(50); 65 | digitalWrite(STROBE, LOW); 66 | delayMicroseconds(50); 67 | 68 | Frequencies_One[freq_amp] = analogRead(DC_One); 69 | Frequencies_Two[freq_amp] = analogRead(DC_Two); 70 | } 71 | } 72 | 73 | /*****************Print Out Band Values for Serial Plotter*****************/ 74 | void Graph_Frequencies() { 75 | for (i = 0; i < 7; i++) 76 | { 77 | // Serial.print(Frequencies_One[i]); 78 | // Serial.print(" "); 79 | // Serial.print(Frequencies_Two[i]); 80 | // Serial.print(" "); 81 | Serial.print( (Frequencies_One[i] + Frequencies_Two[i]) / 2 ); 82 | Serial.print(" "); 83 | } 84 | Serial.println(); 85 | } 86 | 87 | 88 | -------------------------------------------------------------------------------- /Firmware/SpectrumAnalyzer2/SpectrumAnalyzer2.pde: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //Example to control RGB LED Modules with Spectrum Analyzer 4 | //Bliptronics.com 5 | //Ben Moyes 2010 6 | //Use this as you wish, but please give credit, or at least buy some of my LEDs! 7 | // 8 | 9 | 10 | LEDPixels LP; //Our LEDPixels library - see http://www.bliptronics.com/ArduinoCode/LEDPixels.zip 11 | 12 | //For spectrum analyzer shield, these three pins are used. 13 | //You can move pinds 4 and 5, but you must cut the trace on the shield and re-route from the 2 jumpers. 14 | int spectrumReset=5; 15 | int spectrumStrobe=4; 16 | int spectrumAnalog=0; //0 for left channel, 1 for right. 17 | 18 | //This holds the 15 bit RGB values for each LED. 19 | //You'll need one for each LED, we're using 25 LEDs here. 20 | //Note you've only got limited memory, so you can only control 21 | //Several hundred LEDs on a normal arduino. Double that on a Duemilanove. 22 | 23 | int MyDisplay[25]; 24 | 25 | // Spectrum analyzer read values will be kept here. 26 | int Spectrum[7]; 27 | 28 | void setup() { 29 | byte Counter; 30 | 31 | //Initialize the LEDPixels library. 32 | // refresh delay, address of data, number of LEDs, clock pin, data pin. 33 | LP.initialize(25, &MyDisplay[0],25, 12, 11 ); 34 | 35 | //Setup pins to drive the spectrum analyzer. 36 | pinMode(spectrumReset, OUTPUT); 37 | pinMode(spectrumStrobe, OUTPUT); 38 | 39 | //Init spectrum analyzer 40 | digitalWrite(spectrumStrobe,LOW); 41 | delay(1); 42 | digitalWrite(spectrumReset,HIGH); 43 | delay(1); 44 | digitalWrite(spectrumStrobe,HIGH); 45 | delay(1); 46 | digitalWrite(spectrumStrobe,LOW); 47 | delay(1); 48 | digitalWrite(spectrumReset,LOW); 49 | delay(5); 50 | // Reading the analyzer now will read the lowest frequency. 51 | 52 | // Turn all LEDs off. 53 | LP.setRange(0,24,LP.color(0,0,0)); 54 | LP.show(); //Write out display to LEDs 55 | 56 | } 57 | 58 | void loop() { 59 | 60 | int Counter, Counter2, Counter3; 61 | 62 | showSpectrum(); 63 | delay(15); //We wait here for a little while until all the values to the LEDs are written out. 64 | //This is being done in the background by an interrupt. 65 | } 66 | 67 | // Read 7 band equalizer. 68 | void readSpectrum() 69 | { 70 | // Band 0 = Lowest Frequencies. 71 | byte Band; 72 | for(Band=0;Band <7; Band++) 73 | { 74 | Spectrum[Band] = (analogRead(spectrumAnalog) + analogRead(spectrumAnalog) ) >>1; //Read twice and take the average by dividing by 2 75 | digitalWrite(spectrumStrobe,HIGH); 76 | digitalWrite(spectrumStrobe,LOW); 77 | } 78 | } 79 | 80 | 81 | void showSpectrum() 82 | { 83 | //Not I don;t use any floating point numbers - all integers to keep it zippy. 84 | readSpectrum(); 85 | byte Band, BarSize, MaxLevel; 86 | static unsigned int Divisor = 80, ChangeTimer=0; //, ReminderDivisor, 87 | unsigned int works, Remainder; 88 | 89 | MaxLevel = 0; 90 | 91 | for(Band=0;Band<5;Band++)//We only graph the lowest 5 bands here, there is 2 more unused! 92 | { 93 | //If value is 0, we don;t show anything on graph 94 | works = Spectrum[Band]/Divisor; //Bands are read in as 10 bit values. Scale them down to be 0 - 5 95 | if(works > MaxLevel) //Check if this value is the largest so far. 96 | MaxLevel = works; 97 | for(BarSize=1;BarSize <=5; BarSize++) 98 | { 99 | if( works > BarSize) LP.setLEDFast( LP.Translate(Band,BarSize-1),BarSize*6,31-(BarSize*5),0); 100 | else if ( works == BarSize) LP.setLEDFast( LP.Translate(Band,BarSize-1),BarSize*6,31-(BarSize*5),0); //Was remainder 101 | else LP.setLEDFast( LP.Translate(Band,BarSize-1),5,0,5); 102 | } 103 | } 104 | LP.show(); 105 | 106 | // Adjust the Divisor if levels are too high/low. 107 | // If below 4 happens 20 times, then very slowly turn up. 108 | if (MaxLevel >= 5) 109 | { 110 | Divisor=Divisor+1; 111 | ChangeTimer=0; 112 | } 113 | else 114 | if(MaxLevel < 4) 115 | { 116 | if(Divisor > 65) 117 | if(ChangeTimer++ > 20) 118 | { 119 | Divisor--; 120 | ChangeTimer=0; 121 | } 122 | } 123 | else 124 | { 125 | ChangeTimer=0; 126 | } 127 | } 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /Hardware/Spectrum_Shield.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 | 165 | bliptronics.com 166 | Based on design by 167 | Audio In 168 | L 169 | G 170 | R 171 | Reset 172 | Power 173 | V16 174 | Input 175 | 176 | 177 | 178 | Output 179 | 180 | 181 | 182 | Chris Taylor 183 | Revised by: P. Alberts 184 | 185 | 186 | 187 | 188 | Center point to center point Stand Off distance 189 | Center point to center point Stand Off distance 190 | Spectrum Shield 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | >NAME 220 | >VALUE 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | >NAME 243 | >VALUE 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | >NAME 293 | >VALUE 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | <h3>SparkFun Electronics' preferred foot prints</h3> 308 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 309 | 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. 310 | <br><br> 311 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 312 | <br><br> 313 | 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. 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | >NAME 326 | >VALUE 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | <h3>SparkFun Electronics' preferred foot prints</h3> 335 | In this library you'll find resistors, capacitors, inductors, test points, jumper pads, etc.<br><br> 336 | 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. 337 | <br><br> 338 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 339 | <br><br> 340 | 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. 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | >NAME 352 | >VALUE 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | <h3>SparkFun Electronics' preferred foot prints</h3> 362 | In this library you'll find discrete LEDs for illumination or indication, but no displays.<br><br> 363 | 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. 364 | <br><br> 365 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 366 | <br><br> 367 | 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. 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | >NAME 377 | >VALUE 378 | 379 | 380 | 381 | 382 | <h3>SparkFun Electronics' preferred foot prints</h3> 383 | In this library you'll find non-functional items- supply symbols, logos, notations, frame blocks, etc.<br><br> 384 | 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. 385 | <br><br> 386 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 387 | <br><br> 388 | 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. 389 | 390 | 391 | Released under the Creative Commons Attribution Share-Alike 4.0 License 392 | https://creativecommons.org/licenses/by-sa/4.0/ 393 | Designed by: 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | 974 | 975 | 976 | 977 | 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | 1177 | 1178 | 1179 | 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | 1235 | 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | 1245 | 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | 1271 | 1272 | 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | 1353 | 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | 1372 | 1373 | 1374 | 1375 | 1376 | 1377 | 1378 | 1379 | 1380 | 1381 | 1382 | 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1389 | 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | 1458 | 1459 | 1460 | 1461 | 1462 | 1463 | 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | 1478 | 1479 | 1480 | 1481 | 1482 | 1483 | 1484 | 1485 | 1486 | 1487 | 1488 | 1489 | 1490 | 1491 | 1492 | 1493 | 1494 | 1495 | 1496 | 1497 | 1498 | 1499 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1507 | 1508 | 1509 | 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | 1517 | 1518 | 1519 | 1520 | 1521 | 1522 | 1523 | 1524 | 1525 | 1526 | 1527 | 1528 | 1529 | 1530 | 1531 | 1532 | 1533 | 1534 | 1535 | 1536 | 1537 | 1538 | 1539 | 1540 | 1541 | 1542 | 1543 | 1544 | 1545 | 1546 | 1547 | 1548 | 1549 | 1550 | 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | 1557 | 1558 | 1559 | 1560 | 1561 | 1562 | 1563 | 1564 | 1565 | 1566 | 1567 | 1568 | 1569 | 1570 | 1571 | 1572 | 1573 | 1574 | 1575 | 1576 | 1577 | 1578 | 1579 | 1580 | 1581 | 1582 | 1583 | 1584 | 1585 | 1586 | 1587 | 1588 | 1589 | 1590 | 1591 | 1592 | 1593 | 1594 | 1595 | 1596 | 1597 | 1598 | 1599 | 1600 | 1601 | 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | 1612 | 1613 | 1614 | 1615 | 1616 | 1617 | 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | 1624 | <h3>SparkFun Electronics' preferred foot prints</h3> 1625 | In this library you'll find connectors and sockets- basically anything that can be plugged into or onto.<br><br> 1626 | 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. 1627 | <br><br> 1628 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1629 | <br><br> 1630 | 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. 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | 1646 | 1647 | 1648 | 1649 | 1650 | 1651 | 1652 | >Name 1653 | >Value 1654 | 1655 | 1656 | 1657 | 1658 | <h3>SparkFun Electronics' preferred foot prints</h3> 1659 | In this library you'll find boards and modules: Arduino footprints, breadboards, non-RF modules, etc.<br><br> 1660 | 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. 1661 | <br><br> 1662 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1663 | <br><br> 1664 | 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. 1665 | 1666 | 1667 | Uno R3 Compatible Board Layout 1668 | 1669 | 1670 | 1671 | 1672 | 1673 | 1674 | 1675 | 1676 | 1677 | 1678 | 1679 | 1680 | 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | 1687 | 1688 | 1689 | 1690 | 1691 | 1692 | 1693 | 1694 | 1695 | 1696 | 1697 | 1698 | 1699 | 1700 | 1701 | 1702 | 1703 | 1704 | 1705 | 1706 | 1707 | 1708 | 1709 | 1710 | 1711 | 1712 | 1713 | 1714 | 1715 | 1716 | 1717 | 1718 | 1719 | 1720 | 1721 | 1722 | 1723 | 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | 1730 | 1731 | GND 1732 | GND 1733 | +5V 1734 | RST 1735 | VIN 1736 | +3.3V 1737 | 0 1738 | 1 1739 | 2 1740 | 3 1741 | 4 1742 | 5 1743 | Analog In 1744 | GND 1745 | 13 1746 | 12 1747 | 11 1748 | AREF 1749 | 10 1750 | 9 1751 | 8 1752 | 7 1753 | 6 1754 | 5 1755 | 4 1756 | 3 1757 | 2 1758 | TX 1759 | RX 1760 | 1761 | 1762 | SDA 1763 | SCL 1764 | 1765 | 1766 | IOREF 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 1773 | 1774 | 1775 | RST 1776 | ISP 1777 | 1778 | 1779 | 1780 | 1781 | 1782 | <h3>SparkFun Electronics' preferred foot prints</h3> 1783 | In this library you'll find all manner of analog ICs- DACs, ADCs, video chips, op-amps, and others.<br><br> 1784 | 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. 1785 | <br><br> 1786 | <b>Licensing:</b>Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1787 | <br><br> 1788 | 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. 1789 | 1790 | 1791 | 1792 | 1793 | 1794 | 1795 | 1796 | 1797 | 1798 | 1799 | 1800 | 1801 | 1802 | 1803 | 1804 | >VALUE 1805 | >NAME 1806 | 1807 | 1808 | 1809 | 1810 | 1811 | 1812 | 1813 | 1814 | 1815 | 1816 | 1817 | 1818 | <h3>SparkFun Electronics' preferred foot prints</h3> 1819 | In this library you'll find all manner of retired footprints for resistors, capacitors, board names, ICs, etc., that are no longer used in our catalog.<br><br> 1820 | 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. 1821 | <br><br> 1822 | <b>Licensing:</b>Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1823 | <br><br> 1824 | 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. 1825 | 1826 | 1827 | 1828 | 1829 | 1830 | 1831 | 1832 | 1833 | 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | 1841 | 1842 | 1843 | >NAME 1844 | >Value 1845 | 1846 | 1847 | 1848 | 1849 | <h3>SparkFun Electronics' preferred foot prints</h3> 1850 | 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> 1851 | 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. 1852 | <br><br> 1853 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1854 | <br><br> 1855 | 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. 1856 | 1857 | 1858 | <b>Stand Off</b><p> 1859 | This is the mechanical footprint for a #4 phillips button head screw. Use the keepout ring to avoid running the screw head into surrounding components. SKU : PRT-00447 1860 | 1861 | 1862 | 1863 | 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | 1878 | 1879 | <b>EAGLE Design Rules</b> 1880 | <p> 1881 | The default Design Rules have been set to cover 1882 | a wide range of applications. Your particular design 1883 | may have different requirements, so please make the 1884 | necessary adjustments and save your customized 1885 | design rules under a new name. 1886 | 1887 | 1888 | 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | 1896 | 1897 | 1898 | 1899 | 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | 1910 | 1911 | 1912 | 1913 | 1914 | 1915 | 1916 | 1917 | 1918 | 1919 | 1920 | 1921 | 1922 | 1923 | 1924 | 1925 | 1926 | 1927 | 1928 | 1929 | 1930 | 1931 | 1932 | 1933 | 1934 | 1935 | 1936 | 1937 | 1938 | 1939 | 1940 | 1941 | 1942 | 1943 | 1944 | 1945 | 1946 | 1947 | 1948 | 1949 | 1950 | 1951 | 1952 | 1953 | 1954 | 1955 | 1956 | 1957 | 1958 | 1959 | 1960 | 1961 | 1962 | 1963 | 1964 | 1965 | 1966 | 1967 | 1968 | 1969 | 1970 | 1971 | 1972 | 1973 | 1974 | 1975 | 1976 | 1977 | 1978 | 1979 | 1980 | 1981 | 1982 | 1983 | 1984 | 1985 | 1986 | 1987 | 1988 | 1989 | 1990 | 1991 | 1992 | 1993 | 1994 | 1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | 2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 | 2027 | 2028 | 2029 | 2030 | 2031 | 2032 | 2033 | 2034 | 2035 | 2036 | 2037 | 2038 | 2039 | 2040 | 2041 | 2042 | 2043 | 2044 | 2045 | 2046 | 2047 | 2048 | 2049 | 2050 | 2051 | 2052 | 2053 | 2054 | 2055 | 2056 | 2057 | 2058 | 2059 | 2060 | 2061 | 2062 | 2063 | 2064 | 2065 | 2066 | 2067 | 2068 | 2069 | 2070 | 2071 | 2072 | 2073 | 2074 | 2075 | 2076 | 2077 | 2078 | 2079 | 2080 | 2081 | 2082 | 2083 | 2084 | 2085 | 2086 | 2087 | 2088 | 2089 | 2090 | 2091 | 2092 | 2093 | 2094 | 2095 | 2096 | 2097 | 2098 | 2099 | 2100 | 2101 | 2102 | 2103 | 2104 | 2105 | 2106 | 2107 | 2108 | 2109 | 2110 | 2111 | 2112 | 2113 | 2114 | 2115 | 2116 | 2117 | 2118 | 2119 | 2120 | 2121 | 2122 | 2123 | 2124 | 2125 | 2126 | 2127 | 2128 | 2129 | 2130 | 2131 | 2132 | 2133 | 2134 | 2135 | 2136 | 2137 | 2138 | 2139 | 2140 | 2141 | 2142 | 2143 | 2144 | 2145 | 2146 | 2147 | 2148 | 2149 | 2150 | 2151 | 2152 | 2153 | 2154 | 2155 | 2156 | 2157 | 2158 | 2159 | 2160 | 2161 | 2162 | 2163 | 2164 | 2165 | 2166 | 2167 | 2168 | 2169 | 2170 | 2171 | 2172 | 2173 | 2174 | 2175 | 2176 | 2177 | 2178 | 2179 | 2180 | 2181 | 2182 | 2183 | 2184 | 2185 | 2186 | 2187 | 2188 | 2189 | 2190 | 2191 | 2192 | 2193 | 2194 | 2195 | 2196 | 2197 | 2198 | 2199 | 2200 | 2201 | 2202 | 2203 | 2204 | 2205 | 2206 | 2207 | 2208 | 2209 | 2210 | 2211 | 2212 | 2213 | 2214 | 2215 | 2216 | 2217 | 2218 | 2219 | 2220 | 2221 | 2222 | 2223 | 2224 | 2225 | 2226 | 2227 | 2228 | 2229 | 2230 | 2231 | 2232 | 2233 | 2234 | 2235 | 2236 | 2237 | 2238 | 2239 | 2240 | 2241 | 2242 | 2243 | 2244 | 2245 | 2246 | 2247 | 2248 | 2249 | 2250 | 2251 | 2252 | 2253 | 2254 | 2255 | 2256 | 2257 | 2258 | 2259 | 2260 | 2261 | 2262 | 2263 | 2264 | 2265 | 2266 | 2267 | 2268 | 2269 | 2270 | 2271 | 2272 | 2273 | 2274 | 2275 | 2276 | 2277 | 2278 | 2279 | 2280 | 2281 | 2282 | 2283 | 2284 | 2285 | 2286 | 2287 | 2288 | 2289 | 2290 | 2291 | 2292 | 2293 | 2294 | 2295 | 2296 | 2297 | 2298 | 2299 | 2300 | 2301 | 2302 | 2303 | 2304 | 2305 | 2306 | 2307 | 2308 | 2309 | 2310 | 2311 | 2312 | 2313 | 2314 | 2315 | 2316 | 2317 | 2318 | 2319 | 2320 | 2321 | 2322 | 2323 | 2324 | 2325 | 2326 | 2327 | 2328 | 2329 | 2330 | 2331 | 2332 | 2333 | 2334 | 2335 | 2336 | 2337 | 2338 | 2339 | 2340 | 2341 | 2342 | 2343 | 2344 | 2345 | 2346 | 2347 | 2348 | 2349 | 2350 | 2351 | 2352 | 2353 | 2354 | 2355 | 2356 | 2357 | 2358 | 2359 | 2360 | 2361 | 2362 | 2363 | 2364 | 2365 | 2366 | 2367 | 2368 | 2369 | 2370 | 2371 | 2372 | 2373 | 2374 | 2375 | 2376 | 2377 | 2378 | 2379 | 2380 | 2381 | 2382 | 2383 | 2384 | 2385 | 2386 | 2387 | 2388 | 2389 | 2390 | 2391 | 2392 | 2393 | 2394 | 2395 | 2396 | 2397 | 2398 | 2399 | 2400 | 2401 | 2402 | 2403 | 2404 | 2405 | 2406 | 2407 | 2408 | 2409 | 2410 | 2411 | 2412 | 2413 | 2414 | 2415 | 2416 | 2417 | 2418 | 2419 | 2420 | 2421 | 2422 | 2423 | 2424 | 2425 | 2426 | 2427 | 2428 | 2429 | 2430 | 2431 | 2432 | 2433 | 2434 | 2435 | 2436 | 2437 | 2438 | 2439 | 2440 | 2441 | 2442 | 2443 | 2444 | 2445 | 2446 | 2447 | 2448 | 2449 | 2450 | 2451 | 2452 | 2453 | 2454 | 2455 | 2456 | 2457 | 2458 | 2459 | 2460 | 2461 | 2462 | 2463 | 2464 | 2465 | 2466 | 2467 | 2468 | 2469 | 2470 | 2471 | 2472 | 2473 | 2474 | 2475 | 2476 | 2477 | 2478 | 2479 | 2480 | 2481 | 2482 | 2483 | 2484 | 2485 | 2486 | 2487 | 2488 | 2489 | 2490 | 2491 | 2492 | 2493 | 2494 | 2495 | 2496 | 2497 | 2498 | 2499 | 2500 | 2501 | 2502 | 2503 | 2504 | 2505 | 2506 | 2507 | 2508 | 2509 | 2510 | 2511 | 2512 | 2513 | 2514 | 2515 | 2516 | 2517 | 2518 | 2519 | 2520 | 2521 | 2522 | 2523 | 2524 | 2525 | 2526 | 2527 | 2528 | 2529 | 2530 | 2531 | 2532 | 2533 | 2534 | 2535 | 2536 | 2537 | 2538 | 2539 | 2540 | 2541 | 2542 | 2543 | 2544 | 2545 | 2546 | 2547 | 2548 | 2549 | 2550 | 2551 | 2552 | 2553 | 2554 | 2555 | 2556 | 2557 | 2558 | 2559 | 2560 | 2561 | 2562 | 2563 | 2564 | 2565 | 2566 | 2567 | 2568 | 2569 | 2570 | 2571 | 2572 | 2573 | 2574 | 2575 | 2576 | 2577 | 2578 | 2579 | 2580 | 2581 | 2582 | 2583 | 2584 | 2585 | 2586 | 2587 | 2588 | 2589 | 2590 | 2591 | 2592 | 2593 | 2594 | 2595 | 2596 | 2597 | 2598 | 2599 | 2600 | 2601 | 2602 | 2603 | 2604 | 2605 | 2606 | 2607 | 2608 | 2609 | 2610 | 2611 | 2612 | 2613 | 2614 | 2615 | 2616 | 2617 | 2618 | 2619 | 2620 | 2621 | 2622 | 2623 | 2624 | 2625 | 2626 | 2627 | 2628 | 2629 | 2630 | 2631 | 2632 | 2633 | 2634 | 2635 | 2636 | 2637 | 2638 | 2639 | 2640 | 2641 | 2642 | 2643 | 2644 | 2645 | 2646 | 2647 | 2648 | 2649 | 2650 | 2651 | 2652 | 2653 | 2654 | 2655 | 2656 | 2657 | 2658 | 2659 | 2660 | 2661 | 2662 | 2663 | 2664 | 2665 | 2666 | 2667 | 2668 | 2669 | 2670 | 2671 | 2672 | 2673 | 2674 | 2675 | 2676 | 2677 | 2678 | 2679 | 2680 | 2681 | 2682 | 2683 | 2684 | 2685 | 2686 | 2687 | 2688 | 2689 | 2690 | 2691 | 2692 | 2693 | 2694 | 2695 | 2696 | 2697 | 2698 | 2699 | 2700 | 2701 | 2702 | 2703 | 2704 | 2705 | 2706 | 2707 | 2708 | 2709 | 2710 | 2711 | 2712 | 2713 | 2714 | 2715 | 2716 | 2717 | 2718 | 2719 | 2720 | 2721 | 2722 | 2723 | 2724 | 2725 | 2726 | 2727 | 2728 | 2729 | 2730 | 2731 | 2732 | 2733 | 2734 | 2735 | 2736 | 2737 | 2738 | 2739 | 2740 | 2741 | 2742 | 2743 | 2744 | 2745 | 2746 | 2747 | 2748 | 2749 | 2750 | 2751 | 2752 | 2753 | 2754 | 2755 | 2756 | 2757 | 2758 | 2759 | 2760 | 2761 | 2762 | 2763 | 2764 | 2765 | 2766 | 2767 | 2768 | 2769 | 2770 | 2771 | 2772 | 2773 | 2774 | 2775 | 2776 | 2777 | 2778 | 2779 | 2780 | 2781 | 2782 | 2783 | 2784 | 2785 | 2786 | 2787 | 2788 | 2789 | 2790 | 2791 | 2792 | 2793 | 2794 | 2795 | 2796 | 2797 | 2798 | 2799 | 2800 | 2801 | 2802 | 2803 | 2804 | 2805 | 2806 | 2807 | 2808 | 2809 | 2810 | 2811 | 2812 | 2813 | 2814 | 2815 | 2816 | 2817 | 2818 | 2819 | 2820 | 2821 | 2822 | 2823 | 2824 | 2825 | 2826 | 2827 | 2828 | 2829 | 2830 | 2831 | 2832 | 2833 | 2834 | 2835 | 2836 | 2837 | 2838 | 2839 | 2840 | 2841 | 2842 | 2843 | 2844 | 2845 | 2846 | 2847 | 2848 | 2849 | 2850 | 2851 | 2852 | 2853 | 2854 | 2855 | 2856 | 2857 | 2858 | 2859 | 2860 | 2861 | 2862 | 2863 | 2864 | 2865 | 2866 | 2867 | 2868 | 2869 | 2870 | 2871 | 2872 | 2873 | 2874 | 2875 | 2876 | 2877 | 2878 | 2879 | 2880 | 2881 | 2882 | 2883 | 2884 | 2885 | 2886 | 2887 | 2888 | 2889 | 2890 | 2891 | 2892 | 2893 | 2894 | 2895 | 2896 | 2897 | 2898 | 2899 | 2900 | 2901 | 2902 | 2903 | 2904 | 2905 | 2906 | 2907 | 2908 | 2909 | 2910 | 2911 | 2912 | 2913 | 2914 | 2915 | 2916 | 2917 | 2918 | 2919 | 2920 | 2921 | 2922 | 2923 | 2924 | 2925 | 2926 | 2927 | 2928 | 2929 | 2930 | 2931 | 2932 | 2933 | 2934 | 2935 | 2936 | 2937 | 2938 | 2939 | 2940 | 2941 | 2942 | 2943 | 2944 | 2945 | 2946 | 2947 | 2948 | 2949 | -------------------------------------------------------------------------------- /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) 2015 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SparkFun Spectrum Shield 2 | ======================== 3 | 4 | [![SparkFun Spectrum Shield](https://cdn.sparkfun.com//assets/parts/1/0/1/6/8/13116-01a.jpg)](https://www.sparkfun.com/products/13116) 5 | 6 | [*SparkFun Spectrum Shield (DEV-13116)*](https://www.sparkfun.com/products/13116) 7 | 8 | This shield can be used to create sound visualizers, detect patterns in music or add sound activation to your microcontroller projects. 9 | 10 | Repository Contents 11 | ------------------- 12 | * **/Firmware** - Example Arduino Sketch 13 | * **/Hardware** - All Eagle design files (.brd, .sch) 14 | * **/Production** - Test bed files and production panel files 15 | 16 | Documentation 17 | -------------- 18 | * **[Hookup Guide](https://learn.sparkfun.com/tutorials/spectrum-shield-hookup-guide-v2)** - Basic hookup guide for the Spectrum Shield. 19 | * **[SparkFun Fritzing repo](https://github.com/sparkfun/Fritzing_Parts)** - Fritzing diagrams for SparkFun products. 20 | * **[SparkFun 3D Model repo](https://github.com/sparkfun/3D_Models)** - 3D models of SparkFun products. 21 | 22 | Product Versions 23 | ---------------- 24 | * [DEV-13116](https://www.sparkfun.com/products/13116) - Version 1.6 25 | * [DEV-10306](https://www.sparkfun.com/products/10306) - Version 1.4. Retired. 26 | 27 | License Information 28 | ------------------- 29 | 30 | This product is _**open source**_! 31 | 32 | Please review the LICENSE.md file for license information. 33 | 34 | If you have any questions or concerns on licensing, please contact technical support on our [SparkFun forums](https://forum.sparkfun.com/viewforum.php?f=152). 35 | 36 | Distributed as-is; no warranty is given. 37 | 38 | - Your friends at SparkFun. 39 | --------------------------------------------------------------------------------