diff --git "a/Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1 /Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1.brd" b/7 segment display units PCBs/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1.brd similarity index 100% rename from "Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1 /Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1.brd" rename to 7 segment display units PCBs/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1.brd diff --git "a/Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1 /Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1.sch" b/7 segment display units PCBs/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1.sch similarity index 100% rename from "Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1 /Maxim 7219 LED display - Adafruit 0.56\" 7 segment v.1.1.sch" rename to 7 segment display units PCBs/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1/Maxim_7219_LED_display_Adafruit_0.56_7_segment_v1_1.sch diff --git a/Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1/Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1.brd b/7 segment display units PCBs/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1.brd similarity index 100% rename from Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1/Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1.brd rename to 7 segment display units PCBs/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1.brd diff --git a/Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1/Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1.sch b/7 segment display units PCBs/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1.sch similarity index 100% rename from Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1/Maxim 7219 LED display - KingBright 7 segment SC39-11SRWA v.1.1.sch rename to 7 segment display units PCBs/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1/Maxim_7219_LED_display_KingBright_7_segment_SC39_11SRWA_v1_1.sch diff --git a/Arduino Libraries/DS1307RTC.zip b/Arduino Libraries/DS1307RTC.zip new file mode 100644 index 0000000..44e4ca2 Binary files /dev/null and b/Arduino Libraries/DS1307RTC.zip differ diff --git a/LedControl added COMMON ANODE display support/MAX7219 and Common Anode displays with LedControl - Arduino Forum.pdf b/Arduino Libraries/LedControl.zip similarity index 53% rename from LedControl added COMMON ANODE display support/MAX7219 and Common Anode displays with LedControl - Arduino Forum.pdf rename to Arduino Libraries/LedControl.zip index 9faf8c0..c3dcdc6 100644 Binary files a/LedControl added COMMON ANODE display support/MAX7219 and Common Anode displays with LedControl - Arduino Forum.pdf and b/Arduino Libraries/LedControl.zip differ diff --git a/Arduino Libraries/OneWire.zip b/Arduino Libraries/OneWire.zip new file mode 100644 index 0000000..837e4d7 Binary files /dev/null and b/Arduino Libraries/OneWire.zip differ diff --git a/Arduino Libraries/Time.zip b/Arduino Libraries/Time.zip new file mode 100644 index 0000000..1e91758 Binary files /dev/null and b/Arduino Libraries/Time.zip differ diff --git a/DCF77_Analyzer_Clock_1.72.ino b/Arduino Sketches/DCF77_Analyzer_Clock_2_0_Main_sketch/DCF77_Analyzer_Clock_2_0_Main_sketch.ino similarity index 73% rename from DCF77_Analyzer_Clock_1.72.ino rename to Arduino Sketches/DCF77_Analyzer_Clock_2_0_Main_sketch/DCF77_Analyzer_Clock_2_0_Main_sketch.ino index 81e942e..fb5a375 100644 --- a/DCF77_Analyzer_Clock_1.72.ino +++ b/Arduino Sketches/DCF77_Analyzer_Clock_2_0_Main_sketch/DCF77_Analyzer_Clock_2_0_Main_sketch.ino @@ -1,6 +1,6 @@ -/* + /* ================================================================================ - DCF77 Analyzer / Clock + DCF77 Analyzer / Clock version 2.0 ================================================================================ This sketch is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -15,19 +15,12 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - - The C++ code is far from optimized because I myself am an Arduino and C++ novice. + ================================================================================ + + This C++ code is far from optimized because I myself am an Arduino and C++ novice. But even after learning some more now, I want to keep the code simpel and readable. That is why I maybe over-documented the code to help understand what's going on. - HELP WANTED: - I'm not experienced enough to get to the point where the second-tick - of the Real Time Clock display is exactly in sync with the DCF pulse. - Now there's a small time lag. - If you have a solution, please let me know! - - Erik de Ruiter 2014-2016 @@ -35,9 +28,20 @@ May 2014 First version March 2016 - big overhaul... + July 2016 - Start with building the 2.0 Clock and adapting the sketch + Version 2.0 - August 2016 + - This sketch is adapted for my 2.0 version of the DCF/Analyzer Clock. It used the Arduino MEGA and the DCF Superfilter + by default and to drive the many seperate LED's I now use the ports of an Arduino Mega instead of a Maxim 7219 chip. + This is because driving LED's with many different Voltage/Current specs is problematic with the Maxim chip. + Lighting additional LED's for expample will influence (dim) the LED's already on. As I'm not an electronics engineer + my only solution was to use the extra ports of the Arduino Mega. Ofcourse you can use transistors or extra chips to + drive the LED's but for me this was the obvious solution. + - Removed all the code to use Maxim 72xx chips with Common Anode displays - Version 1.72 + + + Version 1.72 - May 2016 - Option: Use a cheap Ebay PIR detector to shut off selectable display's when no activity is detected. The switch off delay can be set by the user to prevent the display shutting of if a person is not moving but the display should be on. @@ -78,8 +82,8 @@ can now be configured somewhat easier by editing two variables POWERSAVINGONTIME and POWERSAVINGOFFTIME. - changed some variable names: - Maxim instances 'lc' and 'lc1' are now MaximCC and MaximCA - - Display description MaximDcfTime is now MaximTemperature - - DCF77SOUNDPIN is now BUZZERPIN + - Display description MaximDcfTime is now DisplayTempWeek + - DCF77SOUNDPIN is now BUZZERSWITCHPIN - LED/Display test after power up now build in @@ -129,7 +133,7 @@ The only thing is you can't see it... ;) DCF beep: - With a switch, connected to pin BUZZERPIN, you can hear the received DCF bits coming in. + With a switch, connected to pin BUZZERSWITCHPIN, you can hear the received DCF bits coming in. The tone duration is equivalent to pulse width of the DCF bits, so either 100 or 200 ms. Miscelleanous: @@ -193,45 +197,75 @@ //---------------------------------------------------------------------------------------------------------- // Arduino UNO Pin connections in an easy to read table // - // Pin 0 - input - Rx - used for programming/communication with PC - // Pin 1 - output - Tx - used for programming/communication with PC -#define DCF77PIN 2 // Pin 2 - input - DCF signal from antenna pcb. Must be pin 2 or 3 because of interrupt! -#define PIRDETECTORPIN 3 // Pin 3 - input - PIR detector: check for activity in the room to activate displays -#define BUZZERPIN 4 // Pin 4 - input - SWITCH - turn on/off DCF77 'beep' piezo buzzer / ON = HIGH, OFF = LOW -#define MAXIMCALD 5 // Pin 5 - output - CS/LOAD - Maxim Common Cathode 7 segment displays -#define MAXIMCACLK 6 // Pin 6 - output - CLOCK - Maxim Common Cathode 7 segment displays -#define MAXIMCADATA 7 // Pin 7 - output - DATA - Maxim Common Cathode 7 segment displays -#define TEMPSENSORPIN 8 // Pin 8 - input - Dallas One Wire DS18B20 temperature sensor -#define TEMPRESETPIN 9 // Pin 9 - input - PUSH BUTTON - reset temperature min/max memory / HIGH = reset -#define MAXIMCCLD 10 // Pin 10 - output - CS/LOAD - Maxim Common Anode 7 segment displays -#define MAXIMCCCLK 11 // Pin 11 - output - CLOCK - Maxim Common Anode 7 segment displays -#define MAXIMCCDATA 12 // Pin 12 - output - DATA - Maxim Common Anode 7 segment displays - // Pin 13 - // Pin A0 -#define BUZZER A1 // Pin A1 - output - Piezo buzzer for DCF77 'beep' (to '+' of the buzzer) -#define SPEAKERVOLPIN A2 // Pin A2 - output - Sound Board volume - LOW = volume one notch lower. SPEAKERVOLUME determines how many times this output is activated after power on -#define CHIMEPIN A3 // Pin A3 - output - Chime Activate - OUTPUT LOW = Activate Chime on Adafruit Soundboard FX -// USED for DS1307 RTC // Pin A4 - I2C DATA - connect to Real Time Clock pcb -// USED for DS1307 RTC // Pin A5 - I2C CLOCK - connect to Real Time Clock pcb + // input - Rx - used for programming/communication with PC + // output - Tx - used for programming/communication with PC +#define DCF77PIN 2 // input - DCF signal from antenna pcb. Pin must an interrupt input! +#define PIRDETECTORPIN 3 // input - PIR detector: check for activity in the room to activate displays +#define BUZZERSWITCHPIN 4 // input - SWITCH - turn on/off DCF77 'beep' piezo buzzer / ON = HIGH, OFF = LOW +#define CHIMESWITCHPIN 5 // input - SWITCH - turn on/off the hourly chime sound / ON = HIGH, OFF = LOW +#define POWERSAVESWITCHPIN 6 // input - SWITCH - turn on/off the power save feature so display is always on / ON = HIGH, OFF = LOW +#define TEMPSENSORPIN 8 // input - Dallas One Wire DS18B20 temperature sensor +#define TEMPRESETPIN 9 // input - PUSH BUTTON - reset temperature min/max memory / HIGH = reset +#define MAXIMCCLD 10 // output - CS/LOAD - pseudo SPI connection to the Maxim 7219 chip - 7 segment displays +#define MAXIMCCCLK 11 // output - CLOCK - pseudo SPI connection to the Maxim 7219 chip - 7 segment displays +#define MAXIMCCDATA 12 // output - DATA - pseudo SPI connection to the Maxim 7219 chip - 7 segment displays +// !! Pins 22 through 53 are only to be used for LED's +#define LED_SUNDAY 22 // output - LED - Sunday +#define LED_MONDAY 23 // output - LED - Monday +#define LED_TUESDAY 24 // output - LED - Tuesday +#define LED_WEDNESDAY 25 // output - LED - Wednesday +#define LED_THURSDAY 26 // output - LED - Thursday +#define LED_FRIDAY 27 // output - LED - Friday +#define LED_SATURDAY 28 // output - LED - Saturday +#define LED_CEST 29 // output - LED - Summertime CEST +#define LED_CET 30 // output - LED - Wintertime CET +#define LED_LEAPYEAR 31 // output - LED - Leap year +#define LED_RTCERROR 32 // output - LED - problem reading RTC data (empty battery/connection) +#define LED_RTCSYNC 33 // output - LED - On when RTC is succesfully synced with the DCF time +#define LED_TEMP 34 // output - LED - temperature is displayed +#define LED_OPTION1 35 // output - LED - optional 1 data is displayed +#define LED_OPTION2 36 // output - LED - optional 2 data is displayed +#define LED_ERRORPT 37 // output - LED - DCF Period Time error +#define LED_ERRORPW 38 // output - LED - DCF Period Width error +#define LED_BUFFERFULL 39 // output - LED - Buffer full indicator, next the data will be analized +#define LED_MINUTEMARKER 40 // output - LED - End of DCF data stream detected before buffer is filled, data is corrupt +#define LED_BUFFEROVERFLOW 41 // output - LED - More data received in one minute than expected due to bad signal +#define LED_DCFSTATUS 42 // output - LED - On when we have good DCF data +#define LED_POWERSAVE 43 // output - LED - Power save mode is activated, some displays are off +#define LED_PARITY1PASS 44 // output - LED - Parity 1 bit is OK +#define LED_PARITY1FAIL 45 // output - LED - Parity 1 bit FAILED +#define LED_PARITY2PASS 46 // output - LED - Parity 2 bit is OK +#define LED_PARITY2FAIL 47 // output - LED - Parity 2 bit FAILED +#define LED_PARITY3PASS 48 // output - LED - Parity 3 bit is OK +#define LED_PARITY3FAIL 49 // output - LED - Parity 3 bit FAILED +#define LED_PIRMOTION 50 // output - LED - On when PIR is detecting motion + +// Analog pins +#define BUZZER A7 // Pin A1 - output - Piezo buzzer for DCF77 'beep' (to '+' of the buzzer) +#define SPEAKERVOLPIN A6 // Pin A2 - output - Sound Board volume - HIGH = volume one notch lower. + //SPEAKERVOLUME determines how many times this output is activated after power on +#define CHIMEPIN A5 // Pin A3 - output - Chime Activate - OUTPUT HIGH = Activate Chime on Adafruit Soundboard FX +// USED for DS1307 RTC // I2C DATA - connect to Real Time Clock pcb +// USED for DS1307 RTC // I2C CLOCK - connect to Real Time Clock pcb //---------------------------------------------------------------------------------------------------------- // DS18B20 initialization //---------------------------------------------------------------------------------------------------------- -OneWire ds(TEMPSENSORPIN); // define Onewire instance DS on pin 8 +OneWire ds(TEMPSENSORPIN); // define Onewire instance DS //---------------------------------------------------------------------------------------------------------- // Maxim 7219 Matrix Display initialization //---------------------------------------------------------------------------------------------------------- /* - clearDisplay(int addr) ........................................ clears the selected display + clearDisplay(int addr) ............................................. clears the selected display MaximCC.shutdown(int addr, boolean) ................................ wake up the MAX72XX from power-saving mode (true = sleep, false = awake) MaximCC.setIntensity(int addr, value) .............................. set a medium brightness for the Leds (0=min - 15=max) MaximCC.setLed(int addr, int row, int col, boolean state) .......... switch on the led in row, column. remember that indices start at 0! MaximCC.setRow(int addr, int row, byte value) ...................... this function takes 3 arguments. example: MaximCC.setRow(0,2,B10110000); MaximCC.setColumn(int addr, int col, byte value) ................... this function takes 3 arguments. example: MaximCC.setColumn(0,5,B00001111); MaximCC.setDigit(int addr, int digit, byte value, boolean dp) ...... this function takes an argument of type byte and prints the corresponding digit on the specified column. - The range of valid values runs from 0..15. All values between 0..9 are printed as digits, - values between 10..15 are printed as their hexadecimal equivalent + The range of valid values runs from 0..15. All values between 0..9 are printed as digits, + values between 10..15 are printed as their hexadecimal equivalent MaximCC.setChar(int addr, int digit, char value, boolean dp) ....... will display: 0 1 2 3 4 5 6 7 8 9 A B C D E F H L P; - . , _ (the blank or space char) ***** Please set the number of devices you have ***** @@ -239,13 +273,9 @@ OneWire ds(TEMPSENSORPIN); // define Onewire instance DS on pin 8 LedConrol(DATAIN, CLOCK, CS/LOAD, NUMBER OF MAXIM CHIPS) */ -// lc is for the Maxim Common CATHODE displays -LedControl MaximCC = LedControl(MAXIMCCDATA, MAXIMCCCLK, MAXIMCCLD, 8, false); // Define pins for Maxim 72xx and how many 72xx we use -// lc1 is for the Maxim Common ANODE displays -// !!! NOTE: you must use a special version of the Ledcontrol.h library to get Common Anode support -// because the Maxim chip is normally only suitable for common CATHODE displays! -LedControl MaximCA = LedControl(MAXIMCADATA, MAXIMCACLK, MAXIMCALD, 1, true); // Define pins for Maxim 72xx and how many 72xx we use - +// lc is for the Maxim displays +LedControl MaximCC = LedControl(MAXIMCCDATA, MAXIMCCCLK, MAXIMCCLD, 7, false); // Define pins for Maxim 72xx and how many 72xx we use + //---------------------------------------------------------------------------------------------------------- // User settings, variable and array definitions //---------------------------------------------------------------------------------------------------------- @@ -293,83 +323,22 @@ LedControl MaximCA = LedControl(MAXIMCADATA, MAXIMCACLK, MAXIMCALD, 1, true); // // definition of Maxim 7219 display number wiring sequence // first Maxim 7219 in wiring 'daisychain' must be '0', next '1' etc. // COMMON CATHODE DISPLAYS -#define MaximLedRingInner 0 -#define MaximLedRingOuter 1 -#define MaximPeriodPulse 2 -#define MaximBufferBitError 3 -#define MaximWeek 4 -#define MaximDate 5 -#define MaximRtcTime 6 -#define MaximLeds 7 -// COMMON ANODE DISPLAYS -#define MaximTemperature 0 +#define LedRingInner 0 +#define LedRingOuter 1 +#define DisplayBufferBitError 2 +#define DisplayPeriodPulse 3 +#define DisplayTempWeek 4 +#define DisplayDate 5 +#define DisplayTime 6 // definition of display brighness levels -#define BrightnessMaximLedRingOuter 1 -#define BrightnessMaximLedRingInner 1 -#define BrightnessMaximPeriodPulse 2 -#define BrightnessMaximBufferBitError 15 -#define BrightnessMaximWeek 3 -#define BrightnessMaximDate 9 -#define BrightnessMaximRtcTime 1 -#define BrightnessMaximLeds 6 -#define BrightnessMaximTemperature 4 - -// definition of Status/Error Led's. We use division and modulo to seperate Row/Col values -// to lit a LED you need a ROW and COLUMN value. -// so, for example: BFLed (with value 14) divided by 10 results in the value '1' (row) -// and BFLed % (Modulo) 10 results in the value '4' (column) -// Modulo explained: http://www.cprogramming.com/tutorial/modulus.html - -/* Row/Col LED numbers of Maxim 7219 chip - LED Row Col - -------------- --- --- ---------------------------------------------------------------- - Sunday 0 0 - Monday 0 1 - Tuesday 0 2 - Wednesday 0 3 - Thursday 0 4 - Friday 0 5 - Saturday 0 6 - Synced 0 7 ON when RTC is set by the received DCF time - RTCError 1 0 ON when there is no response from the RTC (connection / battery empty) - SummerTime 1 1 ON when Central European Summer Time is set - WinterTime 1 2 ON when Central European Time is set - LeapYear 1 3 ON when we have a Leap Year... Duh! - BF 1 4 Flashes ON shortly when the DCF buffer if full and can be processed - EoM 1 5 Flashed ON shortly when the Minute Mark is detected BEFORE the DCF buffer is filled (after power up or other errors) - EoB 1 6 Flashes ON shortly when too many pulses are received before the Minute Marker (noisy signal) - rPW 1 7 Flashes ON shortly when the time between two pulse periods is out of set limits - rPT 2 0 Flashes ON shortly when the pulse time is out of set limits - DCFOk 2 1 ON when whe have a received a full minute of valid DCF data - Chime 2 2 ON when the Chime is enabled. If it's night time or wh switch the Chime off, this LED should be OFF - LEDP1Pass 3 0 --- - LEDP1Fail 3 1 Parity Check LED's, use if desired. - LEDP2Pass 3 2 WHILE receiving the incoming bits, at 3 moments, you can see if the Parity bits are OK or FAILED... - LEDP2Fail 3 3 I use 3 dual color 3mm LED's for this purpose but you can also only use the 'PASS' LED's) - LEDP3Pass 3 4 - LEDP3Fail 3 5 --- - -*/ - -#define SyncedLed 07 -#define RTCError 10 -#define SummerTimeLed 11 -#define WinterTimeLed 12 -#define LeapYearLed 13 -#define BFLed 14 -#define EoMLed 15 -#define EoBLed 16 -#define rPWLed 17 -#define rPTLed 20 -#define DCFOKLed 21 -#define ChimeLed 22 -#define LEDP1Pass 30 -#define LEDP1Fail 31 -#define LEDP2Pass 32 -#define LEDP2Fail 33 -#define LEDP3Pass 34 -#define LEDP3Fail 35 +#define BrightnessLedRingOuter 1 +#define BrightnessLedRingInner 1 +#define BrightnessDisplayTime 1 +#define BrightnessDisplayDate 7 +#define BrightnessDisplayTempWeek 15 +#define BrightnessDisplayPeriodPulse 2 +#define BrightnessDisplayBufferBitError 15 // Pulse flanks static unsigned long flankTime = 0; @@ -453,14 +422,21 @@ void setup() //Serial.begin(115200); // initialize PIN connections - pinMode(DCF77PIN, INPUT); - pinMode(TEMPRESETPIN, INPUT); - pinMode(BUZZERPIN, INPUT); - pinMode(PIRDETECTORPIN,INPUT); - pinMode(CHIMEPIN, OUTPUT); - pinMode(SPEAKERVOLPIN, OUTPUT); - - // Initialize variables and LED displays + pinMode(DCF77PIN, INPUT); + pinMode(TEMPRESETPIN, INPUT); + pinMode(BUZZERSWITCHPIN, INPUT); + pinMode(CHIMESWITCHPIN, INPUT); + pinMode(POWERSAVESWITCHPIN, INPUT); + pinMode(PIRDETECTORPIN, INPUT); + pinMode(CHIMEPIN, OUTPUT); + pinMode(SPEAKERVOLPIN, OUTPUT); + // initialize LED pins 22 - 49 + for (int i1 = 22; i1 <= 53; i1 ++ ) + { + pinMode(i1, OUTPUT); + } + + // Initialize variables, LED displays and LED's initialize(); // Initialize DCF77 pulse interrupt on pin DCF_INTERRUPT, looking for a change of the signal, @@ -474,11 +450,11 @@ void setup() // check if RTC has set the system time if (timeStatus() != timeSet) { // Unable to sync with the RTC - activate RTCError LED - MaximCC.setLed(MaximLeds, RTCError / 10, RTCError % 10, true); + digitalWrite(LED_RTCERROR, HIGH); } else { // RTC has set the system time - dim RTCError LED - MaximCC.setLed(MaximLeds, RTCError / 10, RTCError % 10, false); + digitalWrite(LED_RTCERROR, LOW); } // After power on, set the speaker volume of the Adafruit Audio Board @@ -524,7 +500,7 @@ void setup() displayTemp(); // activate errorCounter display after LED test - ledDisplay(MaximBufferBitError, "R", 0); + ledDisplay(DisplayBufferBitError, "R", 0); } @@ -621,9 +597,9 @@ void scanSignal() trailingEdge = millis(); // display period width time on "L"eft side of the 8 digit Maxim 72xx LED display - ledDisplay(MaximPeriodPulse, "L", (leadingEdge - previousLeadingEdge)); + ledDisplay(DisplayPeriodPulse, "L", (leadingEdge - previousLeadingEdge)); // display pulse width time on the "R"ight side of the 8 digit Maxim 72xx LED display - ledDisplay(MaximPeriodPulse, "R", (trailingEdge - leadingEdge)); + ledDisplay(DisplayPeriodPulse, "R", (trailingEdge - leadingEdge)); //-------------------------------------------------------------------------------- // Check PERIOD TIME @@ -633,7 +609,7 @@ void scanSignal() if ((leadingEdge - previousLeadingEdge) < 900) { // rPW - ERROR: Periode Time (rising flank to rising flank) time is too short -> REJECTED - error(rPWLed); + error(LED_ERRORPW); errorCondition = true; } //-------------------------------------------------------------------------------- @@ -644,7 +620,7 @@ void scanSignal() if (((trailingEdge - leadingEdge) < 70) || ((trailingEdge - leadingEdge) > 230)) { //rPT - ERROR: Pulse Width too short or too long -> REJECTED - error(rPTLed); + error(LED_ERRORPT); errorCondition = true; } @@ -663,11 +639,11 @@ void scanSignal() //-------------------------------------------------------------------- // first we turn any error Led's OFF - MaximCC.setLed(MaximLeds, rPWLed / 10, rPWLed % 10, false); - MaximCC.setLed(MaximLeds, rPTLed / 10, rPTLed % 10, false); - MaximCC.setLed(MaximLeds, BFLed / 10, BFLed % 10, false); - MaximCC.setLed(MaximLeds, EoBLed / 10, EoBLed % 10, false); - MaximCC.setLed(MaximLeds, EoMLed / 10, EoMLed % 10, false); + digitalWrite(LED_ERRORPW, LOW); + digitalWrite(LED_ERRORPT, LOW); + digitalWrite(LED_BUFFERFULL, LOW); // previous BF + digitalWrite(LED_BUFFEROVERFLOW, LOW); // previous EoB + digitalWrite(LED_MINUTEMARKER, LOW); // previous EoM // END OF MINUTE check, looking for a gap of approx. 2000ms if ( leadingEdge - previousLeadingEdge > 1900 && leadingEdge - previousLeadingEdge < 2100) @@ -717,11 +693,11 @@ void processDcfBit(int dcfBit) // display values on the 7 segment displays //-------------------------------------------------------------------- // display bufferPosition, digits 7,6 - MaximCC.setChar(MaximBufferBitError, 7, bufferPosition / 10, false); - MaximCC.setChar(MaximBufferBitError, 6, bufferPosition % 10, false); + MaximCC.setChar(DisplayBufferBitError, 7, bufferPosition / 10, false); + MaximCC.setChar(DisplayBufferBitError, 6, bufferPosition % 10, false); // display received DCFbit, digit 4 - MaximCC.setChar(MaximBufferBitError, 4, dcfBit, false); + MaximCC.setChar(DisplayBufferBitError, 4, dcfBit, false); //-------------------------------------------------------------------- // display incoming DCF bits on inner LED ring @@ -731,7 +707,7 @@ void processDcfBit(int dcfBit) if (dcfValidSignal == true || MinuteMarkerFlag == true) { // display received bits on inner LED ring - MaximCC.setLed(MaximLedRingInner, bufferPosition / 8, bufferPosition % 8, dcfBit); + MaximCC.setLed(LedRingInner, bufferPosition / 8, bufferPosition % 8, dcfBit); } //-------------------------------------------------------------------- @@ -753,12 +729,12 @@ void processDcfBit(int dcfBit) if (bufferPosition == 0) { // reset the parity LED's - MaximCC.setLed(MaximLeds, LEDP1Pass / 10, LEDP1Pass % 10, false); - MaximCC.setLed(MaximLeds, LEDP1Fail / 10, LEDP1Fail % 10, false); - MaximCC.setLed(MaximLeds, LEDP2Pass / 10, LEDP2Pass % 10, false); - MaximCC.setLed(MaximLeds, LEDP2Fail / 10, LEDP2Fail % 10, false); - MaximCC.setLed(MaximLeds, LEDP3Pass / 10, LEDP3Pass % 10, false); - MaximCC.setLed(MaximLeds, LEDP3Fail / 10, LEDP3Fail % 10, false); + digitalWrite(LED_PARITY1PASS, LOW); + digitalWrite(LED_PARITY1FAIL, LOW); + digitalWrite(LED_PARITY2PASS, LOW); + digitalWrite(LED_PARITY2FAIL, LOW); + digitalWrite(LED_PARITY3PASS, LOW); + digitalWrite(LED_PARITY3FAIL, LOW); // reset variables dcfP1counter = 0; dcfP2counter = 0; @@ -783,18 +759,18 @@ void processDcfBit(int dcfBit) if((DCFbitBuffer[28] + dcfP1counter) % 2 == 0) { // Parity1 PASS LED ON - MaximCC.setLed(MaximLeds, LEDP1Pass / 10, LEDP1Pass % 10, true); + digitalWrite(LED_PARITY1PASS, HIGH); // Parity P1 PASS dcfParityCheckP1 = 1; } else { // Parity1 FAIL LED ON - MaximCC.setLed(MaximLeds, LEDP1Fail / 10, LEDP1Fail % 10, true); + digitalWrite(LED_PARITY1FAIL, HIGH); // we have no valid data! dcfValidSignal = false; // Turn DCF OK LED OFF - MaximCC.setLed(MaximLeds, DCFOKLed / 10, DCFOKLed % 10, false); + digitalWrite(LED_DCFSTATUS, LOW); } } @@ -812,18 +788,18 @@ void processDcfBit(int dcfBit) if((DCFbitBuffer[35] + dcfP2counter) % 2 == 0) { // Parity2 PASS LED ON - MaximCC.setLed(MaximLeds, LEDP2Pass / 10, LEDP2Pass % 10, true); + digitalWrite(LED_PARITY2PASS, HIGH); // Parity P2 PASS dcfParityCheckP2 = 1; } else { // Parity2 FAIL LED ON - MaximCC.setLed(MaximLeds, LEDP2Fail / 10, LEDP2Fail % 10, true); + digitalWrite(LED_PARITY2FAIL, HIGH); // we have no valid data! dcfValidSignal = false; // Turn DCF OK LED OFF - MaximCC.setLed(MaximLeds, DCFOKLed / 10, DCFOKLed % 10, false); + digitalWrite(LED_DCFSTATUS, LOW); } } @@ -843,18 +819,18 @@ void processDcfBit(int dcfBit) if(dcfParityCheckP3 == 1) { // Parity2 PASS LED ON - MaximCC.setLed(MaximLeds, LEDP3Pass / 10, LEDP3Pass % 10, true); + digitalWrite(LED_PARITY3PASS, HIGH); // Parity P3 PASS dcfParityCheckP3 = 1; } else { // Parity2 FAIL LED ON - MaximCC.setLed(MaximLeds, LEDP3Fail / 10, LEDP3Fail % 10, true); + digitalWrite(LED_PARITY3FAIL, HIGH); // we have no valid data! dcfValidSignal = false; // Turn DCF OK LED OFF - MaximCC.setLed(MaximLeds, DCFOKLed / 10, DCFOKLed % 10, false); + digitalWrite(LED_DCFSTATUS, LOW); } // ---------------------------------------- @@ -874,7 +850,7 @@ void processDcfBit(int dcfBit) //-------------------------------------------------------------------- if (bufferPosition > 59) { - // End of Buffer (EoB) ERROR - we have received more pulses before reaching + // Buffer Overflow ERROR - we have received more pulses before reaching // the 2 second 'gap' signalling the end of the minute. //This error may be due to a noisy signal giving addition peaks/dcfBits // So clear both DCFbit displays and start again. @@ -882,9 +858,9 @@ void processDcfBit(int dcfBit) // Reset buffer counter bufferPosition = 0; // clear inner LED ring - MaximCC.clearDisplay(MaximLedRingInner); - // turn EoB Error LED ON - error(EoBLed); + MaximCC.clearDisplay(LedRingInner); + // turn Buffer Overflow Error LED ON + error(LED_BUFFEROVERFLOW); // exit return; } @@ -915,18 +891,18 @@ void finalizeBuffer(void) if (bufferPosition == 59 && dcfValidSignal == true) { // bufferPosition == 59 so turn Buffer Full LED ON - MaximCC.setLed(MaximLeds, BFLed / 10, BFLed % 10, true); + digitalWrite(LED_BUFFERFULL, HIGH); // Turn DCF OK LED ON - MaximCC.setLed(MaximLeds, DCFOKLed / 10, DCFOKLed % 10, true); + digitalWrite(LED_DCFSTATUS, HIGH); // Reset inner LED ring (incoming time information) - MaximCC.clearDisplay(MaximLedRingInner); + MaximCC.clearDisplay(LedRingInner); // copy 'contents' of inner LED ring to the outer LED ring (current time information) for (int i = 0; i < 59; i++) { - MaximCC.setLed(MaximLedRingOuter, i / 8, i % 8, DCFbitBuffer[i]); + MaximCC.setLed(LedRingOuter, i / 8, i % 8, DCFbitBuffer[i]); } // process buffer and extract data sync the time with the RTC @@ -937,7 +913,7 @@ void finalizeBuffer(void) RTC.set(now()); // activate Synced LED - MaximCC.setLed(MaximLeds, SyncedLed / 10, SyncedLed % 10, true); + digitalWrite(LED_RTCSYNC, HIGH); // Reset running buffer bufferPosition = 0; @@ -956,15 +932,15 @@ void finalizeBuffer(void) //-------------------------------------------------------------------- // The buffer is not yet filled although the 2 second 'gap' was detected. // Can be result of a noisy signal, starting in middle of receiving data etc. - // Turn End of Message LED ON + // Turn 'Minute Mark' LED ON //-------------------------------------------------------------------- else { - MaximCC.setLed(MaximLeds, EoMLed / 10, EoMLed % 10, true); + digitalWrite(LED_MINUTEMARKER, HIGH); // Clear displays - MaximCC.clearDisplay(MaximLedRingInner); - MaximCC.clearDisplay(MaximLedRingOuter); + MaximCC.clearDisplay(LedRingInner); + MaximCC.clearDisplay(LedRingOuter); // Reset running buffer and start afresh. Now we are in sync with the incoming data bufferPosition = 0; @@ -1066,7 +1042,10 @@ void tasksEverySecond() { case 0: // hourly chime output: ACTIVATE - if(dayTime == 1 && minute() == 0) digitalWrite(CHIMEPIN, HIGH); + if(dayTime == 1 && minute() == 0 && digitalRead(CHIMESWITCHPIN) == HIGH) + { + digitalWrite(CHIMEPIN, HIGH); + } // reset temperature min/max memory at midnight // @@ -1086,33 +1065,35 @@ void tasksEverySecond() break; case 30: // display 'HI' on display for Hi temperature - MaximCA.clearDisplay(MaximTemperature); // clear display - MaximCA.setChar(MaximTemperature, 3, 'H', false); // Display 'H' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG - MaximCA.setChar(MaximTemperature, 2, '1', false); // Display 'I' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setChar(DisplayTempWeek, 5, ' ', false); // Clear part of the display + MaximCC.setChar(DisplayTempWeek, 4, ' ', false); // Clear part of the display + MaximCC.setChar(DisplayTempWeek, 7, 'H', false); // Display 'H' character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setRow(DisplayTempWeek, 6, B00010000); // Display 'i' character. Binary pattern to lite up individual segments in this order is: .ABCDEFG break; case 31: case 32: // display Max temperature on DCF display LED display - MaximCA.setChar(MaximTemperature, 3, (maxTemp / 100), false); - MaximCA.setChar(MaximTemperature, 2, (maxTemp % 100) / 10, true); - MaximCA.setChar(MaximTemperature, 1, (maxTemp % 10), false); - MaximCA.setRow(MaximTemperature, 0, B01001110); // Display 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG - MaximCA.setChar(MaximTemperature, 5, 1, false); // activate top dot + MaximCC.setChar(DisplayTempWeek, 7, (maxTemp / 100), false); + MaximCC.setChar(DisplayTempWeek, 6, (maxTemp % 100) / 10, true); + MaximCC.setChar(DisplayTempWeek, 5, (maxTemp % 10), false); + MaximCC.setRow(DisplayTempWeek, 4, B11001110); // Display Degrees dot and 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + // NOTE: I physically rotated digit 4 so when I activate the decimal dot, this now is the 'degrees dot' in the upper left corner break; case 33: // display 'LO' on display for Low temperature - MaximCA.clearDisplay(MaximTemperature); // clear display - MaximCA.setChar(MaximTemperature, 3, 'L', false); // Display 'L' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG - MaximCA.setChar(MaximTemperature, 2, '0', false); // Display 'O' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setChar(DisplayTempWeek, 5, ' ', false); // Clear part of the display + MaximCC.setChar(DisplayTempWeek, 4, ' ', false); // Clear part of the display + MaximCC.setChar(DisplayTempWeek, 7, 'L', false); // Display 'L' character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setRow(DisplayTempWeek, 6, B00011101); // Display 'o' character. Binary pattern to lite up individual segments in this order is: .ABCDEFG break; case 34: case 35: // display Min temperature on DCF display LED display - MaximCA.setChar(MaximTemperature, 3, (minTemp / 100), false); - MaximCA.setChar(MaximTemperature, 2, (minTemp % 100) / 10, true); - MaximCA.setChar(MaximTemperature, 1, (minTemp % 10), false); - MaximCA.setRow(MaximTemperature, 0, B01001110); // Display 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG - MaximCA.setChar(MaximTemperature, 5, 1, false); // activate top dot + MaximCC.setChar(DisplayTempWeek, 7, (minTemp / 100), false); + MaximCC.setChar(DisplayTempWeek, 6, (minTemp % 100) / 10, true); + MaximCC.setChar(DisplayTempWeek, 5, (minTemp % 10), false); + MaximCC.setRow(DisplayTempWeek, 4, B11001110); // Display Degrees dot and 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + // NOTE: I physically rotated digit 4 so when I activate the decimal dot, this now is the 'degrees dot' in the upper left corner break; case 36: // befor displaying the temperature in the next second, @@ -1120,9 +1101,10 @@ void tasksEverySecond() calculateTemp(); // display 'CU' on display for Current temperature - MaximCA.clearDisplay(MaximTemperature); // clear display - MaximCA.setColumn(MaximTemperature, 3, B01001110); // Display 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG - MaximCA.setColumn(MaximTemperature, 2, B00111110); // Display 'O' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setChar(DisplayTempWeek, 5, ' ', false); // Clear part of the display + MaximCC.setChar(DisplayTempWeek, 4, ' ', false); // Clear part of the display + MaximCC.setRow(DisplayTempWeek, 7, B01001110); // Display 'C' character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setRow(DisplayTempWeek, 6, B00011100); // Display 'u' character. Binary pattern to lite up individual segments in this order is: .ABCDEFG break; case 37: // read temperature, store in min/max memory and display current temperature @@ -1186,7 +1168,7 @@ void tasksEveryHour() //-------------------------------------------------------------------- errorCounter = 0; // update error counter display - ledDisplay(MaximBufferBitError, "R", errorCounter); + ledDisplay(DisplayBufferBitError, "R", errorCounter); //--------------------------------------------------------------------- // Power saving function, shutting the displays off at night @@ -1277,7 +1259,7 @@ void initialize(void) previousLeadingEdge = 0; bufferPosition = 0; - digitalWrite(CHIMEPIN, HIGH); // Set Chimepin to default state + digitalWrite(CHIMEPIN, LOW); // Set Chimepin to default state // Reset DCFbitBuffer array, positions 0-58 (=59 bits) for (int i = 0; i < 59; i++) { @@ -1296,26 +1278,26 @@ void initialize(void) // clear display MaximCC.clearDisplay(i); } - // Maxim Common Anode displays - // display wake up - MaximCA.shutdown(0, false); - // clear display - MaximCA.clearDisplay(0); //--------------------------------------------------- // Set brightness of Maxim 72xx 7 segment displays //--------------------------------------------------- // Maxim Common Cathode displays - MaximCC.setIntensity(MaximLedRingOuter, BrightnessMaximLedRingOuter); - MaximCC.setIntensity(MaximLedRingInner, BrightnessMaximLedRingInner); - MaximCC.setIntensity(MaximPeriodPulse, BrightnessMaximPeriodPulse); - MaximCC.setIntensity(MaximWeek, BrightnessMaximWeek); - MaximCC.setIntensity(MaximDate, BrightnessMaximDate); - MaximCC.setIntensity(MaximRtcTime, BrightnessMaximRtcTime); - MaximCC.setIntensity(MaximLeds, BrightnessMaximLeds); - MaximCC.setIntensity(MaximBufferBitError, BrightnessMaximBufferBitError); - // Maxim Common Anode displays - MaximCA.setIntensity(MaximTemperature, BrightnessMaximTemperature); + MaximCC.setIntensity(LedRingOuter, BrightnessLedRingOuter); + MaximCC.setIntensity(LedRingInner, BrightnessLedRingInner); + MaximCC.setIntensity(DisplayTime, BrightnessDisplayTime); + MaximCC.setIntensity(DisplayDate, BrightnessDisplayDate); + MaximCC.setIntensity(DisplayTempWeek, BrightnessDisplayTempWeek); + MaximCC.setIntensity(DisplayPeriodPulse, BrightnessDisplayPeriodPulse); + MaximCC.setIntensity(DisplayBufferBitError, BrightnessDisplayBufferBitError); + + //--------------------------------------------------- + // Set all Arduino LED outputs to LOW (Led's OFF) + //--------------------------------------------------- + for (int i1 = 22; i1 <= 49; i1 ++ ) + { + digitalWrite(i1, LOW); + } } //================================================================================================================ @@ -1347,17 +1329,13 @@ void int0handler() void turnDisplaysOn() { // activate SELECTED displays and status LED's - MaximCC.shutdown(MaximRtcTime, false); - MaximCC.shutdown(MaximDate, false); - MaximCC.shutdown(MaximWeek, false); - MaximCC.shutdown(MaximLeds, false); - MaximCC.shutdown(MaximLedRingInner, false); - MaximCC.shutdown(MaximLedRingOuter, false); - MaximCC.shutdown(MaximPeriodPulse, false); - MaximCC.shutdown(MaximBufferBitError, false); - // Common Anode displays - MaximCA.shutdown(MaximTemperature, false); - + MaximCC.shutdown(LedRingInner, false); + MaximCC.shutdown(LedRingOuter, false); + MaximCC.shutdown(DisplayTime, false); + MaximCC.shutdown(DisplayDate, false); + MaximCC.shutdown(DisplayTempWeek, false); + MaximCC.shutdown(DisplayPeriodPulse, false); + MaximCC.shutdown(DisplayBufferBitError, false); } //================================================================================================================ @@ -1375,17 +1353,13 @@ void turnDisplaysOff() // below you can select which display's need to be shut down for the night // In this case, the time display remains ON - //MaximCC.shutdown(MaximRtcTime, true); - MaximCC.shutdown(MaximDate, true); - MaximCC.shutdown(MaximWeek, true); - MaximCC.shutdown(MaximLeds, true); - MaximCC.shutdown(MaximLedRingInner, true); - MaximCC.shutdown(MaximLedRingOuter, true); - MaximCC.shutdown(MaximPeriodPulse, true); - MaximCC.shutdown(MaximBufferBitError, true); - // Common Anode displays - MaximCA.shutdown(MaximTemperature, true); - + //MaximCC.shutdown(DisplayTime, true); + MaximCC.shutdown(LedRingInner, true); + MaximCC.shutdown(LedRingOuter, true); + MaximCC.shutdown(DisplayDate, true); + MaximCC.shutdown(DisplayTempWeek, true); + MaximCC.shutdown(DisplayPeriodPulse, true); + MaximCC.shutdown(DisplayBufferBitError, true); } //================================================================================================================ @@ -1399,7 +1373,7 @@ void turnDisplaysOff() // //================================================================================================================ -// example: ledDisplay( MaximBufferBitError, "R", errorCounter ) +// example: ledDisplay( DisplayBufferBitError, "R", errorCounter ) // so display the 'error counter' value on the RIGHT side of the 8 digit // 7 segment display number 3 @@ -1454,8 +1428,8 @@ void checkSwitches(void) } //------------------------------------------------------------- - //read state of switch BUZZERPIN - dcf77SoundSwitch = digitalRead(BUZZERPIN); + //read state of switch BUZZERSWITCHPIN + dcf77SoundSwitch = digitalRead(BUZZERSWITCHPIN); } //================================================================================================================ @@ -1486,7 +1460,9 @@ void checkPIR() if(pirActivity == 1) { // PIR activity detected... - // Reset the PIR timer variable (in function) every time + // activated the PIR LED + digitalWrite(LED_PIRMOTION, HIGH); + // Reset the PIR timer variable (used in function) every time // the PIR is activated so effectually resetting the shut-off timer. pirTimer = 0; @@ -1503,7 +1479,10 @@ void checkPIR() } else { - // No PIR activity detected so check the pirTimer counter in the function). + // No PIR activity detected... + // turn the PIR LED off + digitalWrite(LED_PIRMOTION, LOW); + // check the pirTimer counter in the function). // and if the delaytime has passed, only continue if the displays are now ON // else this code would be executed many times per second if(pirTimer > PIR_DELAY_TIME && pirDisplaysState == 1) @@ -1536,16 +1515,16 @@ void error(int errorLed) dcfValidSignal = false; // turn 'dcfValidSignal = false on' - MaximCC.setLed(MaximLeds, errorLed / 10, errorLed % 10, true); + digitalWrite(errorLed, HIGH); // clear Led's/displays because of error condition - MaximCC.setLed(MaximLeds, DCFOKLed / 10, DCFOKLed % 10, false); - MaximCC.setLed(MaximLeds, SyncedLed / 10, SyncedLed % 10, false); - MaximCC.clearDisplay(MaximLedRingOuter); // clear display + digitalWrite(LED_DCFSTATUS, LOW); + digitalWrite(LED_RTCSYNC, LOW); + MaximCC.clearDisplay(LedRingOuter); // clear display // increase errorCounter and display errorCount errorCounter++; - ledDisplay(MaximBufferBitError, "R", errorCounter); + ledDisplay(DisplayBufferBitError, "R", errorCounter); return; } @@ -1642,76 +1621,102 @@ int calculateLeapYear(int year) void displayData(void) { // display Day of Week on LED's - // first, clear all the 'Day' Led's (row '0') before displaying new value - for (int i = 0; i < 7; i++) + // first, clear all the 'Day' Led's before displaying new value + digitalWrite(LED_SUNDAY, LOW); + digitalWrite(LED_MONDAY, LOW); + digitalWrite(LED_TUESDAY, LOW); + digitalWrite(LED_WEDNESDAY, LOW); + digitalWrite(LED_THURSDAY, LOW); + digitalWrite(LED_FRIDAY, LOW); + digitalWrite(LED_SATURDAY, LOW); + + // switch on the Weekday LED + switch (dcfWeekDay) { - MaximCC.setLed(MaximLeds, 0, i, false); + case 1: + digitalWrite(LED_MONDAY, HIGH); + break; + case 2: + digitalWrite(LED_TUESDAY, HIGH); + break; + case 3: + digitalWrite(LED_WEDNESDAY, HIGH); + break; + case 4: + digitalWrite(LED_THURSDAY, HIGH); + break; + case 5: + digitalWrite(LED_FRIDAY, HIGH); + break; + case 6: + digitalWrite(LED_SATURDAY, HIGH); + break; + case 7: + digitalWrite(LED_SUNDAY, HIGH); + break; } - // Maxim 7219 LED's are numbered from zero so sunday '7' must be changed to '0' - MaximCC.setLed(MaximLeds, 0, ((dcfWeekDay == 7) ? 0 : dcfWeekDay), true); - // display Weeknumber - MaximCC.setChar(MaximWeek, 1, ((weekNumber < 10) ? ' ' : (weekNumber / 10)), false); - MaximCC.setChar(MaximWeek, 0, weekNumber % 10, false); + MaximCC.setChar(DisplayTempWeek, 1, ((weekNumber < 10) ? ' ' : (weekNumber / 10)), false); + MaximCC.setChar(DisplayTempWeek, 0, weekNumber % 10, false); // display Date - with dashes between D-M-Y // for example: 03-08-2015, so with leading zero's - MaximCC.setChar(MaximDate, 7, dcfDay / 10, false); - MaximCC.setChar(MaximDate, 6, dcfDay % 10, false); - MaximCC.setChar(MaximDate, 5, '-', false); - MaximCC.setChar(MaximDate, 4, dcfMonth / 10, false); - MaximCC.setChar(MaximDate, 3, dcfMonth % 10, false); - MaximCC.setChar(MaximDate, 2 , '-', false); - MaximCC.setChar(MaximDate, 1, dcfYear / 10, false); - MaximCC.setChar(MaximDate, 0, dcfYear % 10, false); + MaximCC.setChar(DisplayDate, 7, dcfDay / 10, false); + MaximCC.setChar(DisplayDate, 6, dcfDay % 10, false); + MaximCC.setChar(DisplayDate, 5, '-', false); + MaximCC.setChar(DisplayDate, 4, dcfMonth / 10, false); + MaximCC.setChar(DisplayDate, 3, dcfMonth % 10, false); + MaximCC.setChar(DisplayDate, 2 , '-', false); + MaximCC.setChar(DisplayDate, 1, dcfYear / 10, false); + MaximCC.setChar(DisplayDate, 0, dcfYear % 10, false); /* OTHER OPTIONS TO DISPLAY THE DATE: // display Date - with dots between D.M.Y // for example: 03.08.15 - MaximCC.setChar(MaximDate, 7, dcfDay / 10, false); - MaximCC.setChar(MaximDate, 6, dcfDay % 10, true); - MaximCC.setChar(MaximDate, 5, dcfMonth / 10, false); - MaximCC.setChar(MaximDate, 4, dcfMonth % 10, true); - MaximCC.setChar(MaximDate, 3, 2, false); - MaximCC.setChar(MaximDate, 2, 0, false); - MaximCC.setChar(MaximDate, 1, dcfYear / 10, false); - MaximCC.setChar(MaximDate, 0, dcfYear % 10, false); + MaximCC.setChar(DisplayDate, 7, dcfDay / 10, false); + MaximCC.setChar(DisplayDate, 6, dcfDay % 10, true); + MaximCC.setChar(DisplayDate, 5, dcfMonth / 10, false); + MaximCC.setChar(DisplayDate, 4, dcfMonth % 10, true); + MaximCC.setChar(DisplayDate, 3, 2, false); + MaximCC.setChar(DisplayDate, 2, 0, false); + MaximCC.setChar(DisplayDate, 1, dcfYear / 10, false); + MaximCC.setChar(DisplayDate, 0, dcfYear % 10, false); */ /* // display Date - moved day to right if month is <10 // for example: __3.8.15 or _22.7.15 or 24.12.15 (where _ is a blank display) - MaximCC.setChar(MaximDate, 7, ((dcfDay < 10) ? ' ' : ((dcfMonth < 10) ? ' ' : (dcfDay / 10))), false); - MaximCC.setChar(MaximDate, 6, ((dcfMonth < 10) ? ((dcfDay < 10) ? ' ' : (dcfDay / 10)) : (dcfDay % 10)), ((dcfMonth < 10) ? false : true)); - MaximCC.setChar(MaximDate, 5, ((dcfMonth < 10) ? (dcfDay % 10) : (dcfMonth / 10)), ((dcfMonth < 10) ? true : false)); - MaximCC.setChar(MaximDate, 4, dcfMonth % 10, true); - MaximCC.setChar(MaximDate, 3, 2, false); - MaximCC.setChar(MaximDate, 2, 0, false); - MaximCC.setChar(MaximDate, 1, dcfYear / 10, false); - MaximCC.setChar(MaximDate, 0, dcfYear % 10, false); + MaximCC.setChar(DisplayDate, 7, ((dcfDay < 10) ? ' ' : ((dcfMonth < 10) ? ' ' : (dcfDay / 10))), false); + MaximCC.setChar(DisplayDate, 6, ((dcfMonth < 10) ? ((dcfDay < 10) ? ' ' : (dcfDay / 10)) : (dcfDay % 10)), ((dcfMonth < 10) ? false : true)); + MaximCC.setChar(DisplayDate, 5, ((dcfMonth < 10) ? (dcfDay % 10) : (dcfMonth / 10)), ((dcfMonth < 10) ? true : false)); + MaximCC.setChar(DisplayDate, 4, dcfMonth % 10, true); + MaximCC.setChar(DisplayDate, 3, 2, false); + MaximCC.setChar(DisplayDate, 2, 0, false); + MaximCC.setChar(DisplayDate, 1, dcfYear / 10, false); + MaximCC.setChar(DisplayDate, 0, dcfYear % 10, false); */ // display Summer- or Wintertime LED if (dcfDST == 1) { - MaximCC.setLed(MaximLeds, SummerTimeLed / 10, SummerTimeLed % 10, true); - MaximCC.setLed(MaximLeds, WinterTimeLed / 10, WinterTimeLed % 10, false); + digitalWrite(LED_CEST, HIGH); + digitalWrite(LED_CET, LOW); } else { - MaximCC.setLed(MaximLeds, WinterTimeLed / 10, WinterTimeLed % 10, true); - MaximCC.setLed(MaximLeds, SummerTimeLed / 10, SummerTimeLed % 10, false); + digitalWrite(LED_CET, HIGH); + digitalWrite(LED_CEST, LOW); } // display Leap Year LED if (leapYear = 1) { - MaximCC.setLed(MaximLeds, LeapYearLed / 10, LeapYearLed % 10, true); + digitalWrite(LED_LEAPYEAR, HIGH); } else { - MaximCC.setLed(MaximLeds, LeapYearLed / 10, LeapYearLed % 10, false); + digitalWrite(LED_LEAPYEAR, LOW); } } @@ -1728,12 +1733,18 @@ void displayData(void) void displayRtcTime() { - MaximCC.setChar(MaximRtcTime, 3, ((hour() < 10) ? ' ' : (hour() / 10)), false); - MaximCC.setChar(MaximRtcTime, 2, (hour() % 10), false); - MaximCC.setChar(MaximRtcTime, 1, (minute() / 10), false); - MaximCC.setChar(MaximRtcTime, 0, (minute() % 10), false); - MaximCC.setChar(MaximRtcTime, 5, (second() / 10), false); - MaximCC.setChar(MaximRtcTime, 4, (second() % 10), false); + MaximCC.setChar(DisplayTime, 7, ((hour() < 10) ? ' ' : (hour() / 10)), false); + MaximCC.setChar(DisplayTime, 6, (hour() % 10), false); + // activate only the segments 'a' and 'g' of the 7 segment display, representing the dots between the digits + // Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setRow(DisplayTime, 5, B00001001); + MaximCC.setChar(DisplayTime, 4, (minute() / 10), false); + MaximCC.setChar(DisplayTime, 3, (minute() % 10), false); + // activate only the segments 'a' and 'g' of the 7 segment display, representing the dots between the digits + // Binary pattern to lite up individual segments in this order is: .ABCDEFG + MaximCC.setRow(DisplayTime, 2, B01001001); + MaximCC.setChar(DisplayTime, 1, (second() / 10), false); + MaximCC.setChar(DisplayTime, 0, (second() % 10), false); } //================================================================================================================ @@ -1812,20 +1823,21 @@ void displayTemp() if (tempCelsius > maxTemp) maxTemp = tempCelsius; if (tempCelsius < minTemp) minTemp = tempCelsius; - // display temperature on DCF display LED display - // first, deactivate colon digits - MaximCA.setChar(MaximTemperature, 4, ' ', false); + // Display temperature on the multi purpose display 'TempWeek' + + // Also light the 'Temp' LED on the front panel + digitalWrite(LED_TEMP, HIGH); // Display Digit 3: example: temperature value 216 / 100 = 2 - MaximCA.setChar(MaximTemperature, 3, (tempCelsius / 100), false); + MaximCC.setChar(DisplayTempWeek, 7, (tempCelsius / 100), false); // Display Digit 2: example: temperature value 216 % 100 / 10 = 1 // also activate decimal dot on display 2 - MaximCA.setChar(MaximTemperature, 2, (tempCelsius % 100) / 10, true); + MaximCC.setChar(DisplayTempWeek, 6, (tempCelsius % 100) / 10, true); // Display Digit 3: example: temperature value 216 % 10 = 6 - MaximCA.setChar(MaximTemperature, 1, (tempCelsius % 10), false); - // Display 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG - MaximCA.setRow (MaximTemperature, 0, B01001110); - // activate top ("Degrees") dot on LED display - MaximCA.setChar(MaximTemperature, 5, 1, false); + MaximCC.setChar(DisplayTempWeek, 5, (tempCelsius % 10), false); + // Display Degrees dot and 'C' (Celcius) character. Binary pattern to lite up individual segments in this order is: .ABCDEFG + // NOTE: I physically rotated digit 4 7 segement display so when I activate the decimal dot, + // this now is the 'degrees dot' in the upper left corner of the display... + MaximCC.setRow (DisplayTempWeek, 4, B11001110); } //================================================================================================================ @@ -1848,14 +1860,14 @@ void ledTest() for (int i = 0; i < 59; i++) { // LED's ON - MaximCC.setLed(MaximLedRingOuter, i / 8, i % 8, true); + MaximCC.setLed(LedRingOuter, i / 8, i % 8, true); delay(LEDTEST_DELAY_LED_RING); } for (int i = 58; i >= 0; i--) { // LED's OFF - MaximCC.setLed(MaximLedRingOuter, i / 8, i % 8, false); + MaximCC.setLed(LedRingOuter, i / 8, i % 8, false); delay(LEDTEST_DELAY_LED_RING); } //--------------------------------------------------------------------- @@ -1863,99 +1875,86 @@ void ledTest() for (int i = 0; i < 59; i++) { // LED's ON - MaximCC.setLed(MaximLedRingInner, i / 8, i % 8, true); + MaximCC.setLed(LedRingInner, i / 8, i % 8, true); delay(LEDTEST_DELAY_LED_RING); } for (int i = 58; i >= 0; i--) { // LED's OFF - MaximCC.setLed(MaximLedRingInner, i / 8, i % 8, false); + MaximCC.setLed(LedRingInner, i / 8, i % 8, false); delay(LEDTEST_DELAY_LED_RING); } //--------------------------------------------------------------------- - // Temperature display - for (int i = 0; i < 8; i++) - { - // LED's ON - MaximCA.setChar(MaximTemperature, i, 0, true); - // activate top ("Degrees") dot on LED display - //MaximCC.setChar(MaximTemperature, 5, 1, false); // activate top dot - } - // wait before turning the LED's off - delay(LEDTEST_DELAY_DISPLAYS); - // clear display - MaximCA.clearDisplay(MaximTemperature); -//--------------------------------------------------------------------- // LED's - for (int i = 0; i < 40; i++) + for (int i = 22; i <= 53; i++) { // LED's ON - MaximCC.setLed(MaximLeds, i / 8, i % 8, true); + digitalWrite(i, HIGH); delay(LEDTEST_DELAY_LED_RING); } // wait before turning the LED's off delay(LEDTEST_DELAY_DISPLAYS); - for (int i = 40; i >= 0; i--) + for (int i = 53; i >= 22; i--) { // LED's OFF - MaximCC.setLed(MaximLeds, i / 8, i % 8, false); + digitalWrite(i, LOW); } //--------------------------------------------------------------------- // Real Time Clock display for (int i = 0; i < 8; i++) { // LED's ON - MaximCC.setChar(MaximRtcTime, i, 8, true); + MaximCC.setChar(DisplayTime, i, 8, true); } // wait before turning the LED's off delay(LEDTEST_DELAY_DISPLAYS); // clear display - MaximCC.clearDisplay(MaximRtcTime); + MaximCC.clearDisplay(DisplayTime); //--------------------------------------------------------------------- // Date display for (int i = 0; i < 8; i++) { // LED's ON - MaximCC.setChar(MaximDate, i, 8, true); + MaximCC.setChar(DisplayDate, i, 8, true); } // wait before turning the LED's off delay(LEDTEST_DELAY_DISPLAYS); // clear display - MaximCC.clearDisplay(MaximDate); + MaximCC.clearDisplay(DisplayDate); //--------------------------------------------------------------------- - // Week display - for (int i = 0; i < 2; i++) + // Temp and Week display + for (int i = 0; i < 8; i++) { // LED's ON - MaximCC.setChar(MaximWeek, i, 8, true); + MaximCC.setChar(DisplayTempWeek, i, 8, true); } // wait before turning the LED's off delay(LEDTEST_DELAY_DISPLAYS); // clear display - MaximCC.clearDisplay(MaximWeek); + MaximCC.clearDisplay(DisplayTempWeek); //--------------------------------------------------------------------- // Period-Pulse display for (int i = 0; i < 8; i++) { // LED's ON - MaximCC.setChar(MaximPeriodPulse, i, 8, true); + MaximCC.setChar(DisplayPeriodPulse, i, 8, true); } // wait before turning the LED's off delay(LEDTEST_DELAY_DISPLAYS); // clear display - MaximCC.clearDisplay(MaximPeriodPulse); + MaximCC.clearDisplay(DisplayPeriodPulse); //--------------------------------------------------------------------- // Buffer-DCFbit-Errors display for (int i = 0; i < 8; i++) { // LED's ON - MaximCC.setChar(MaximBufferBitError, i, 8, true); + MaximCC.setChar(DisplayBufferBitError, i, 8, true); } // wait before turning the LED's off delay(LEDTEST_DELAY_DISPLAYS); // clear display - MaximCC.clearDisplay(MaximBufferBitError); + MaximCC.clearDisplay(DisplayBufferBitError); } //================================================================================================================ diff --git a/Arduino Sketches/DCF77_Analyzer_Clock_2_0_Superfilter_sketch/DCF77_Analyzer_Clock_2_0_Superfilter_sketch.ino b/Arduino Sketches/DCF77_Analyzer_Clock_2_0_Superfilter_sketch/DCF77_Analyzer_Clock_2_0_Superfilter_sketch.ino new file mode 100644 index 0000000..5478ac5 --- /dev/null +++ b/Arduino Sketches/DCF77_Analyzer_Clock_2_0_Superfilter_sketch/DCF77_Analyzer_Clock_2_0_Superfilter_sketch.ino @@ -0,0 +1,353 @@ +// +// This is the Superfilter sketch I use with the DCF Analyzer/Clock 2.0 +// Udo Klein did an amazing job with this filter +// +// Erik de Ruiter + +/* + Arduino Uno pin connections I used for the DCF Analyzer Clock + + DCF input ................. A5 (19) = dcf77_sample_pin + Output DCF Filtered ....... 12 = dcf77_filtered_pin + Output DCF Semi Synthesized A2 (16) = dcf77_semi_synthesized_pin + Output DCF Synthesized .... 6 = dcf77_synthesized_pin + LED DCF output filtered ... A4 (18) = dcf77_monitor_pin = DCF Monitor LED + LED 1 Hz pulse ............ 10 = dcf77_second_pulse_pin = Filter Locked LED + LED DCF OK ................ 13 = dcf77_signal_good_indicator_pin = Signal Quality LED + LED Difference Filtered ... 7 = dcf77_filter_diff_pin \ + LED Difference Semi Synth.. A0 = dcf77_semi_synthesized_diff_pin -> = Signal Difference LED + LED Difference Synthesized 4 = dcf77_synthesized_diff_pin / +*/ + +// +// www.blinkenlight.net +// +// Copyright 2014, 2015 Udo Klein +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/ + +#include +/* +const uint8_t pon_pin = 51; // connect pon to ground !!! +const uint8_t data_pin = 19; +const uint8_t gnd_pin = 51; +const uint8_t vcc_pin = 49; +*/ + +const uint8_t dcf77_analog_samples = false; +const uint8_t dcf77_analog_sample_pin = 5; +const uint8_t dcf77_sample_pin = 19; // A5 +const uint8_t dcf77_inverted_samples = 0; +#if defined(__AVR__) +#define ledpin(led) (led) +#else +#define ledpin(led) (led<14? led: led+(54-14)) +#endif + +const uint8_t dcf77_monitor_pin = ledpin(18); // A4 + +const bool provide_filtered_output = true; +const uint8_t dcf77_filtered_pin = ledpin(12); +const uint8_t dcf77_inverted_filtered_pin = ledpin(11); +const uint8_t dcf77_filter_diff_pin = ledpin(7); + +const bool provide_semi_synthesized_output = true; +const uint8_t dcf77_semi_synthesized_pin = ledpin(16); +const uint8_t dcf77_inverted_semi_synthesized_pin = ledpin(15); +const uint8_t dcf77_semi_synthesized_diff_pin = ledpin(14); + +const bool provide_synthesized_output = true; +const uint8_t dcf77_synthesized_pin = ledpin(6); +const uint8_t dcf77_inverted_synthesized_pin = ledpin(5); +const uint8_t dcf77_synthesized_diff_pin = ledpin(4); + +const uint8_t dcf77_second_pulse_pin = ledpin(10); + + +const uint8_t dcf77_signal_good_indicator_pin = ledpin(13); + +volatile uint16_t ms_counter = 0; +volatile Internal::DCF77::tick_t tick = Internal::DCF77::undefined; + + +template +void set_output(uint8_t clock_state, uint8_t sampled_data, uint8_t synthesized_signal) +{ + if (enable) { + const uint8_t filtered_output = clock_state < threshold? sampled_data: synthesized_signal; + digitalWrite(filtered_pin, filtered_output); + digitalWrite(inverted_filtered_pin, !filtered_output); + digitalWrite(diff_pin, filtered_output ^ sampled_data); + } +} + +namespace { + struct Scope { + static const uint16_t samples_per_second = 1000; + static const uint8_t bins = 100; + static const uint8_t samples_per_bin = samples_per_second / bins; + + volatile uint8_t gbin[bins]; + volatile boolean samples_pending = false; + volatile uint32_t count = 0; + + void process_one_sample(const uint8_t sample) { + static uint8_t sbin[bins]; + + static uint16_t ticks = 999; // first pass will init the bins + ++ticks; + + if (ticks == 1000) { + ticks = 0; + memcpy((void *)gbin, sbin, bins); + memset(sbin, 0, bins); + samples_pending = true; + ++count; + } + sbin[ticks/samples_per_bin] += sample; + } + + void print() { + uint8_t lbin[bins]; + + if (samples_pending) { + noInterrupts(); + memcpy(lbin, (void *)gbin, bins); + samples_pending = false; + interrupts(); + + // ensure the count values will be aligned to the right + for (int32_t val=count; val < 100000000; val *= 10) { + Serial.print(' '); + } + Serial.print((int32_t)count); + Serial.print(", "); + for (uint8_t bin=0; bin 200) + : digitalRead(dcf77_sample_pin)); + #else + dcf77_inverted_samples ^ digitalRead(dcf77_sample_pin); + #endif + + digitalWrite(dcf77_monitor_pin, sampled_data); + digitalWrite(dcf77_second_pulse_pin, ms_counter < 500 && clock_state >= Clock::locked); + + const uint8_t synthesized_signal = + tick == Internal::DCF77::long_tick ? ms_counter < 200: + tick == Internal::DCF77::short_tick ? ms_counter < 100: + tick == Internal::DCF77::sync_mark ? 0: + // tick == DCF77::undefined --> default handling + // allow signal to pass for the first 200ms of each second + (ms_counter <=200 && sampled_data) || + // if the clock has valid time data then undefined ticks + // are data bits --> first 100ms of signal must be high + ms_counter <100; + + set_output + (clock_state, sampled_data, synthesized_signal); + + set_output + (clock_state, sampled_data, synthesized_signal); + + set_output + (clock_state, sampled_data, synthesized_signal); + + ms_counter+= (ms_counter < 1000); + + scope_1.process_one_sample(sampled_data); + scope_2.process_one_sample(digitalRead(dcf77_synthesized_pin)); + + return sampled_data; +} + + + + +void output_handler(const Clock::time_t &decoded_time) { + // reset ms_counter for 1 Hz ticks + ms_counter = 0; + + // status indicator --> always on if signal is good + // blink 3s on 1s off if signal is poor + // blink 1s on 3s off if signal is very poor + // always off if signal is bad + const uint8_t clock_state = DCF77_Clock::get_clock_state(); + digitalWrite(dcf77_signal_good_indicator_pin, + clock_state >= Clock::locked ? 1: + clock_state == Clock::unlocked? (decoded_time.second.digit.lo & 0x03) != 0: + clock_state == Clock::free ? (decoded_time.second.digit.lo & 0x03) == 0: + 0); + // compute output for signal synthesis + Internal::DCF77_Encoder now; + now.second = BCD::bcd_to_int(decoded_time.second); + now.minute = decoded_time.minute; + now.hour = decoded_time.hour; + now.weekday = decoded_time.weekday; + now.day = decoded_time.day; + now.month = decoded_time.month; + now.year = decoded_time.year; + now.uses_summertime = decoded_time.uses_summertime; + now.leap_second_scheduled = decoded_time.leap_second_scheduled; + now.timezone_change_scheduled = decoded_time.timezone_change_scheduled; + + now.undefined_minute_output = false; + now.undefined_uses_summertime_output = false; + now.undefined_abnormal_transmitter_operation_output = false; + now.undefined_timezone_change_scheduled_output = false; + + now.advance_minute(); + tick = now.get_current_signal(); +} + +void setup_serial() { + Serial.begin(115200); +} + +void output_splash_screen() { + Serial.println(); + Serial.println(F("DCF77 Superfilter 3.0")); + Serial.println(F("(c) 2015 Udo Klein")); + Serial.println(F("www.blinkenlight.net")); + Serial.println(); + Serial.print(F("Sample Pin: ")); Serial.println(dcf77_sample_pin); + Serial.print(F("Inverted Mode: ")); Serial.println(dcf77_inverted_samples); + #if defined(__AVR__) + Serial.print(F("Analog Mode: ")); Serial.println(dcf77_analog_samples); + #endif + Serial.print(F("Monitor Pin: ")); Serial.println(dcf77_monitor_pin); + Serial.println(); + + if (provide_filtered_output) { + Serial.println(F("Filtered Output")); + Serial.print(F(" Filtered Pin: ")); Serial.println(dcf77_filtered_pin); + Serial.print(F(" Diff Pin: ")); Serial.println(dcf77_filter_diff_pin); + Serial.print(F(" Inverse Filtered Pin: ")); Serial.println(dcf77_inverted_filtered_pin); + Serial.println(); + } + + if (provide_semi_synthesized_output) { + Serial.println(F("Semi Synthesized Output")); + Serial.print(F(" Filtered Pin: ")); Serial.println(dcf77_semi_synthesized_pin); + Serial.print(F(" Diff Pin: ")); Serial.println(dcf77_semi_synthesized_diff_pin); + Serial.print(F(" Inverse Filtered Pin: ")); Serial.println(dcf77_inverted_semi_synthesized_pin); + Serial.println(); + } + + if (provide_synthesized_output) { + Serial.println(F("Synthesized Output")); + Serial.print(F(" Filtered Pin: ")); Serial.println(dcf77_synthesized_pin); + Serial.print(F(" Diff Pin: ")); Serial.println(dcf77_synthesized_diff_pin); + Serial.print(F(" Inverse Filtered Pin: ")); Serial.println(dcf77_inverted_synthesized_pin); + Serial.println(); + } + + Serial.print(F("Second Pulse Pin: ")); Serial.println(dcf77_second_pulse_pin); + Serial.print(F("Signal Good Pin: ")); Serial.println(dcf77_signal_good_indicator_pin); + + Serial.println(); + + Serial.println(); + Serial.println(F("Initializing...")); + Serial.println(); +}; + +void setup_pins() { + if (provide_filtered_output) { + pinMode(dcf77_filtered_pin, OUTPUT); + pinMode(dcf77_filter_diff_pin, OUTPUT); + pinMode(dcf77_inverted_filtered_pin, OUTPUT); + } + + if (provide_semi_synthesized_output) { + pinMode(dcf77_semi_synthesized_pin, OUTPUT); + pinMode(dcf77_semi_synthesized_diff_pin, OUTPUT); + pinMode(dcf77_inverted_semi_synthesized_pin, OUTPUT); + } + + if (provide_synthesized_output) { + pinMode(dcf77_synthesized_pin, OUTPUT); + pinMode(dcf77_synthesized_diff_pin, OUTPUT); + pinMode(dcf77_inverted_synthesized_pin, OUTPUT); + } + + pinMode(dcf77_monitor_pin, OUTPUT); + pinMode(dcf77_signal_good_indicator_pin, OUTPUT); + pinMode(dcf77_second_pulse_pin, OUTPUT); + pinMode(dcf77_sample_pin, INPUT); + digitalWrite(dcf77_sample_pin, HIGH); +} + +void setup_clock() { + DCF77_Clock::setup(); + DCF77_Clock::set_input_provider(sample_input_pin); + DCF77_Clock::set_output_handler(output_handler); +} + +void setup() { + setup_serial(); + output_splash_screen(); + setup_pins(); + setup_clock(); +/* + pinMode(gnd_pin, OUTPUT); + digitalWrite(gnd_pin, LOW); + pinMode(pon_pin, OUTPUT); + digitalWrite(pon_pin, LOW); + pinMode(vcc_pin, OUTPUT); + digitalWrite(vcc_pin, HIGH); + */ +} + +void loop() { + Clock::time_t now; + DCF77_Clock::get_current_time(now); + + if (now.month.val > 0) { + Serial.println(); + Serial.print(F("Decoded time: ")); + + DCF77_Clock::print(now); + Serial.println(); + } + + Serial.print(DCF77_Clock::get_clock_state()); + Serial.print(' '); + DCF77_Clock::debug(); + + scope_1.print(); + scope_2.print(); +} diff --git a/DCF77 Analyzer-clock Schematic.jpg b/DCF77 Analyzer-clock Schematic.jpg deleted file mode 100644 index 0ed4188..0000000 Binary files a/DCF77 Analyzer-clock Schematic.jpg and /dev/null differ diff --git a/DCF77 Analyzer-clock Schematic.pdf b/DCF77 Analyzer-clock Schematic.pdf deleted file mode 100644 index b43721b..0000000 Binary files a/DCF77 Analyzer-clock Schematic.pdf and /dev/null differ diff --git a/DCF77 Analyzer-clock Schematic.png b/DCF77 Analyzer-clock Schematic.png deleted file mode 100644 index c485919..0000000 Binary files a/DCF77 Analyzer-clock Schematic.png and /dev/null differ diff --git a/DCF77_Analyzer_Clock_v2_BackPanel_Preview.png b/DCF77_Analyzer_Clock_v2_BackPanel_Preview.png new file mode 100644 index 0000000..9c92218 Binary files /dev/null and b/DCF77_Analyzer_Clock_v2_BackPanel_Preview.png differ diff --git a/DCF77_Analyzer_Clock_v2_FrontPanel_Preview.jpg b/DCF77_Analyzer_Clock_v2_FrontPanel_Preview.jpg new file mode 100644 index 0000000..c8885b1 Binary files /dev/null and b/DCF77_Analyzer_Clock_v2_FrontPanel_Preview.jpg differ diff --git a/DCF77_clock.jpg b/DCF77_clock.jpg deleted file mode 100644 index 05bca98..0000000 Binary files a/DCF77_clock.jpg and /dev/null differ diff --git a/Front_Back_Panel_Drawings_Inkscape/DCF77_Analyzer_Clock_v2_BACKPanel_Inkscape.svg b/Front_Back_Panel_Drawings_Inkscape/DCF77_Analyzer_Clock_v2_BACKPanel_Inkscape.svg new file mode 100644 index 0000000..5e47f73 --- /dev/null +++ b/Front_Back_Panel_Drawings_Inkscape/DCF77_Analyzer_Clock_v2_BACKPanel_Inkscape.svg @@ -0,0 +1,4910 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DCF77Antenna + Temp.Sensor + FTDIArduino + Spare + Power + TickingSound + Volume + Temp.Mem. + Arduino + SuperFilter + Semi Synthesized + Synthesized + Basic Filter + Power7-30V DC 1 Amp. + External Connections + DCF Superfilter Mode + Reset + Sound Board + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Front_Back_Panel_Drawings_Inkscape/DCF77_Analyzer_Clock_v2_FRONTPanel_Inkscape.svg b/Front_Back_Panel_Drawings_Inkscape/DCF77_Analyzer_Clock_v2_FRONTPanel_Inkscape.svg new file mode 100644 index 0000000..113dbd6 --- /dev/null +++ b/Front_Back_Panel_Drawings_Inkscape/DCF77_Analyzer_Clock_v2_FRONTPanel_Inkscape.svg @@ -0,0 +1,46597 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Power + SuperFilter + Option1 + DCFBeep + Option2 + PIR + ChimeOn/Test + PowerSave + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DCF77 Analyzer / Clock v2.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Minute + Hour + Day + Day ofWeek + Month + Year + Leap Hr + CEST + CET + Leap Sec + Start + Antenna + 10 + 20 + 30 + 40 + 50 + 0 + M + 20 + 1 + 2 + 4 + 1 + 2 + 4 + 8 + 10 + 1 + 4 + 8 + 10 + 20 + 40 + 80 + P3 + 2 + 1 + 2 + 4 + 8 + 10 + 20 + P2 + 1 + 2 + 4 + 8 + 10 + 1 + 2 + 4 + 8 + 10 + 20 + 40 + P1 + DCF77 Signal Decoding Display + DCF77 + MeteoData + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Filter Off + Signal Quality + Filter Locked + Basic Filter + Semi Synthesized + Synthesized + DCF77 Monitor + Signal Difference + + + DCF77 Superfilter + Status + Buffer Full + Minute Marker + Parity Bit 1 + Parity Bit 2 + Parity Bit 3 + Power Save + DCF77 Status + + + Buffer Overflow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sun + Mon + Tue + Wed + Thu + Fri + Sat + CEST + CET + + LeapYear + + + + + + + + + + + + + + + + + + + + RTC Time + Date + Week + Temp + Period Time (ms) + Pulse Width (ms) + Bit Number + Bit Value + Error Count + Option + + Synced + Error + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Front_Panel_PrintService_Drawing/DCF77_Analyzer_Clock_v2_FrontPanel_ALUPRINT.jpg b/Front_Panel_PrintService_Drawing/DCF77_Analyzer_Clock_v2_FrontPanel_ALUPRINT.jpg new file mode 100644 index 0000000..9c5a1b1 Binary files /dev/null and b/Front_Panel_PrintService_Drawing/DCF77_Analyzer_Clock_v2_FrontPanel_ALUPRINT.jpg differ diff --git a/Grandfather_Clock_Sound_files/T00.ogg b/Grandfather_Clock_Sound_files/T00.ogg new file mode 100755 index 0000000..2e72ba6 Binary files /dev/null and b/Grandfather_Clock_Sound_files/T00.ogg differ diff --git a/Grandfather_Clock_Sound_files/T10HOLDL.ogg b/Grandfather_Clock_Sound_files/T10HOLDL.ogg new file mode 100755 index 0000000..7be12d5 Binary files /dev/null and b/Grandfather_Clock_Sound_files/T10HOLDL.ogg differ diff --git a/LedControl added COMMON ANODE display support/LedControl.cpp b/LedControl added COMMON ANODE display support/LedControl.cpp deleted file mode 100644 index 3aa3570..0000000 --- a/LedControl added COMMON ANODE display support/LedControl.cpp +++ /dev/null @@ -1,213 +0,0 @@ -/* - * LedControl.cpp - A library for controling Leds with a MAX7219/MAX7221 - * Copyright (c) 2007 Eberhard Fahle - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * This permission notice shall be included in all copies or - * substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "LedControl.h" - -//the opcodes for the MAX7221 and MAX7219 -#define OP_NOOP 0 -#define OP_DIGIT0 1 -#define OP_DIGIT1 2 -#define OP_DIGIT2 3 -#define OP_DIGIT3 4 -#define OP_DIGIT4 5 -#define OP_DIGIT5 6 -#define OP_DIGIT6 7 -#define OP_DIGIT7 8 -#define OP_DECODEMODE 9 -#define OP_INTENSITY 10 -#define OP_SCANLIMIT 11 -#define OP_SHUTDOWN 12 -#define OP_DISPLAYTEST 15 - -LedControl::LedControl(int dataPin, int clkPin, int csPin, int numDevices) { - SPI_MOSI=dataPin; - SPI_CLK=clkPin; - SPI_CS=csPin; - if(numDevices<=0 || numDevices>8 ) - numDevices=8; - maxDevices=numDevices; - pinMode(SPI_MOSI,OUTPUT); - pinMode(SPI_CLK,OUTPUT); - pinMode(SPI_CS,OUTPUT); - digitalWrite(SPI_CS,HIGH); - SPI_MOSI=dataPin; - for(int i=0;i<64;i++) - status[i]=0x00; - for(int i=0;i=maxDevices) - return; - if(b) - spiTransfer(addr, OP_SHUTDOWN,0); - else - spiTransfer(addr, OP_SHUTDOWN,1); -} - -void LedControl::setScanLimit(int addr, int limit) { - if(addr<0 || addr>=maxDevices) - return; - if(limit>=0 || limit<8) - spiTransfer(addr, OP_SCANLIMIT,limit); -} - -void LedControl::setIntensity(int addr, int intensity) { - if(addr<0 || addr>=maxDevices) - return; - if(intensity>=0 || intensity<16) - spiTransfer(addr, OP_INTENSITY,intensity); - -} - -void LedControl::clearDisplay(int addr) { - int offset; - - if(addr<0 || addr>=maxDevices) - return; - offset=addr*8; - for(int i=0;i<8;i++) { - status[offset+i]=0; - spiTransfer(addr, i+1,status[offset+i]); - } -} - -void LedControl::setLed(int addr, int row, int column, boolean state) { - int offset; - byte val=0x00; - - if(addr<0 || addr>=maxDevices) - return; - if(row<0 || row>7 || column<0 || column>7) - return; - offset=addr*8; - val=B10000000 >> column; - if(state) - status[offset+row]=status[offset+row]|val; - else { - val=~val; - status[offset+row]=status[offset+row]&val; - } - spiTransfer(addr, row+1,status[offset+row]); -} - -void LedControl::setRow(int addr, int row, byte value) { - int offset; - if(addr<0 || addr>=maxDevices) - return; - if(row<0 || row>7) - return; - offset=addr*8; - status[offset+row]=value; - spiTransfer(addr, row+1,status[offset+row]); -} - -void LedControl::setColumn(int addr, int col, byte value) { - byte val; - - if(addr<0 || addr>=maxDevices) - return; - if(col<0 || col>7) - return; - for(int row=0;row<8;row++) { - val=value >> (7-row); - val=val & 0x01; - setLed(addr,row,col,val); - } -} - -void LedControl::setDigit(int addr, int digit, byte value, boolean dp) { - int offset; - byte v; - - if(addr<0 || addr>=maxDevices) - return; - if(digit<0 || digit>7 || value>15) - return; - offset=addr*8; - v=charTable[value]; - if(dp) - v|=B10000000; - status[offset+digit]=v; - spiTransfer(addr, digit+1,v); - -} - -void LedControl::setChar(int addr, int digit, char value, boolean dp) { - int offset; - byte index,v; - - if(addr<0 || addr>=maxDevices) - return; - if(digit<0 || digit>7) - return; - offset=addr*8; - index=(byte)value; - if(index >127) { - //nothing define we use the space char - value=32; - } - v=charTable[index]; - if(dp) - v|=B10000000; - status[offset+digit]=v; - spiTransfer(addr, digit+1,v); -} - -void LedControl::spiTransfer(int addr, volatile byte opcode, volatile byte data) { - //Create an array with the data to shift out - int offset=addr*2; - int maxbytes=maxDevices*2; - - for(int i=0;i0;i--) - shiftOut(SPI_MOSI,SPI_CLK,MSBFIRST,spidata[i-1]); - //latch the data onto the display - digitalWrite(SPI_CS,HIGH); -} - - diff --git a/LedControl added COMMON ANODE display support/LedControl.h b/LedControl added COMMON ANODE display support/LedControl.h deleted file mode 100644 index 6f2e6c9..0000000 --- a/LedControl added COMMON ANODE display support/LedControl.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - * LedControl.h - A library for controling Leds with a MAX7219/MAX7221 - * Copyright (c) 2007 Eberhard Fahle - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * This permission notice shall be included in all copies or - * substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef LedControl_h -#define LedControl_h - -#if (ARDUINO >= 100) -#include -#else -#include -#endif - -/* - * Segments to be switched on for characters and digits on - * 7-Segment Displays - */ -const static byte charTable[128] = { - B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000, - B01111111,B01111011,B01110111,B00011111,B00001101,B00111101,B01001111,B01000111, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B10000000,B00000001,B10000000,B00000000, - B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000, - B01111111,B01111011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B01110111,B00011111,B00001101,B00111101,B01001111,B01000111,B00000000, - B00110111,B00000000,B00000000,B00000000,B00001110,B00000000,B00000000,B00000000, - B01100111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00001000, - B00000000,B01110111,B00011111,B00001101,B00111101,B01001111,B01000111,B00000000, - B00110111,B00000000,B00000000,B00000000,B00001110,B00000000,B00000000,B00000000, - B01100111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000 -}; - -class LedControl { - private : - /* The array for shifting the data to the devices */ - byte spidata[16]; - /* Send out a single command to the device */ - void spiTransfer(int addr, byte opcode, byte data); - - /* We keep track of the led-status for all 8 devices in this array */ - byte status[64]; - /* Data is shifted out of this pin*/ - int SPI_MOSI; - /* The clock is signaled on this pin */ - int SPI_CLK; - /* This one is driven LOW for chip selectzion */ - int SPI_CS; - /* The maximum number of devices we use */ - int maxDevices; - - public: - /* - * Create a new controler - * Params : - * dataPin pin on the Arduino where data gets shifted out - * clockPin pin for the clock - * csPin pin for selecting the device - * numDevices maximum number of devices that can be controled - */ - LedControl(int dataPin, int clkPin, int csPin, int numDevices=1); - - /* - * Gets the number of devices attached to this LedControl. - * Returns : - * int the number of devices on this LedControl - */ - int getDeviceCount(); - - /* - * Set the shutdown (power saving) mode for the device - * Params : - * addr The address of the display to control - * status If true the device goes into power-down mode. Set to false - * for normal operation. - */ - void shutdown(int addr, bool status); - - /* - * Set the number of digits (or rows) to be displayed. - * See datasheet for sideeffects of the scanlimit on the brightness - * of the display. - * Params : - * addr address of the display to control - * limit number of digits to be displayed (1..8) - */ - void setScanLimit(int addr, int limit); - - /* - * Set the brightness of the display. - * Params: - * addr the address of the display to control - * intensity the brightness of the display. (0..15) - */ - void setIntensity(int addr, int intensity); - - /* - * Switch all Leds on the display off. - * Params: - * addr address of the display to control - */ - void clearDisplay(int addr); - - /* - * Set the status of a single Led. - * Params : - * addr address of the display - * row the row of the Led (0..7) - * col the column of the Led (0..7) - * state If true the led is switched on, - * if false it is switched off - */ - void setLed(int addr, int row, int col, boolean state); - - /* - * Set all 8 Led's in a row to a new state - * Params: - * addr address of the display - * row row which is to be set (0..7) - * value each bit set to 1 will light up the - * corresponding Led. - */ - void setRow(int addr, int row, byte value); - - /* - * Set all 8 Led's in a column to a new state - * Params: - * addr address of the display - * col column which is to be set (0..7) - * value each bit set to 1 will light up the - * corresponding Led. - */ - void setColumn(int addr, int col, byte value); - - /* - * Display a hexadecimal digit on a 7-Segment Display - * Params: - * addr address of the display - * digit the position of the digit on the display (0..7) - * value the value to be displayed. (0x00..0x0F) - * dp sets the decimal point. - */ - void setDigit(int addr, int digit, byte value, boolean dp); - - /* - * Display a character on a 7-Segment display. - * There are only a few characters that make sense here : - * '0','1','2','3','4','5','6','7','8','9','0', - * 'A','b','c','d','E','F','H','L','P', - * '.','-','_',' ' - * Params: - * addr address of the display - * digit the position of the character on the display (0..7) - * value the character to be displayed. - * dp sets the decimal point. - */ - void setChar(int addr, int digit, char value, boolean dp); -}; - -#endif //LedControl.h - - - diff --git a/LedControl added COMMON ANODE display support/LedControlCA.cpp b/LedControl added COMMON ANODE display support/LedControlCA.cpp deleted file mode 100644 index 2e36d27..0000000 --- a/LedControl added COMMON ANODE display support/LedControlCA.cpp +++ /dev/null @@ -1,310 +0,0 @@ -/* - * LedControl.cpp - A library for controling Leds with a MAX7219/MAX7221 - * Copyright (c) 2007 Eberhard Fahle - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * This permission notice shall be included in all copies or - * substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - - -#include "LedControl.h" - -//the opcodes for the MAX7221 and MAX7219 -#define OP_NOOP 0 -#define OP_DIGIT0 1 -#define OP_DIGIT1 2 -#define OP_DIGIT2 3 -#define OP_DIGIT3 4 -#define OP_DIGIT4 5 -#define OP_DIGIT5 6 -#define OP_DIGIT6 7 -#define OP_DIGIT7 8 -#define OP_DECODEMODE 9 -#define OP_INTENSITY 10 -#define OP_SCANLIMIT 11 -#define OP_SHUTDOWN 12 -#define OP_DISPLAYTEST 15 - -LedControl::LedControl(int dataPin, int clkPin, int csPin, int numDevices, bool anode) { - SPI_MOSI=dataPin; - SPI_CLK=clkPin; - SPI_CS=csPin; - if(numDevices<=0 || numDevices>8 ) - numDevices=8; - maxDevices=numDevices; - anodeMode=anode; - pinMode(SPI_MOSI,OUTPUT); - pinMode(SPI_CLK,OUTPUT); - pinMode(SPI_CS,OUTPUT); - digitalWrite(SPI_CS,HIGH); - SPI_MOSI=dataPin; - for(int i=0;i<64;i++) { - status[i]=0x00; - statusTransposed[i]=0x00; - } - for(int i=0;i=maxDevices) - return; - if(b) - spiTransfer(addr, OP_SHUTDOWN,0); - else - spiTransfer(addr, OP_SHUTDOWN,1); -} - -void LedControl::setScanLimit(int addr, int limit) { - if(addr<0 || addr>=maxDevices) - return; - if(limit>=0 || limit<8) - spiTransfer(addr, OP_SCANLIMIT,limit); -} - -void LedControl::setIntensity(int addr, int intensity) { - if(addr<0 || addr>=maxDevices) - return; - if(intensity>=0 || intensity<16) - spiTransfer(addr, OP_INTENSITY,intensity); - -} - -void LedControl::clearDisplay(int addr) { - int offset; - - if(addr<0 || addr>=maxDevices) - return; - offset=addr*8; - for(int i=0;i<8;i++) { - status[offset+i]=0; - } - if (anodeMode) { - transposeData(addr); - for(int i=0;i<8;i++) { - spiTransfer(addr, i+1, statusTransposed[offset+i]); - } - } else { - for(int i=0;i<8;i++) { - spiTransfer(addr, i+1, status[offset+i]); - } - } -} - -void LedControl::setLed(int addr, int row, int column, boolean state) { - int offset; - byte val=0x00; - - if(addr<0 || addr>=maxDevices) - return; - if(row<0 || row>7 || column<0 || column>7) - return; - offset=addr*8; - val=B10000000 >> column; - if(state) - status[offset+row]=status[offset+row]|val; - else { - val=~val; - status[offset+row]=status[offset+row]&val; - } - spiTransfer(addr, row+1,status[offset+row]); -} - -void LedControl::setRow(int addr, int row, byte value) { - int offset; - if(addr<0 || addr>=maxDevices) - return; - if(row<0 || row>7) - return; - offset=addr*8; - status[offset+row]=value; - spiTransfer(addr, row+1,status[offset+row]); -} - -void LedControl::setColumn(int addr, int col, byte value) { - byte val; - - if(addr<0 || addr>=maxDevices) - return; - if(col<0 || col>7) - return; - for(int row=0;row<8;row++) { - val=value >> (7-row); - val=val & 0x01; - setLed(addr,row,col,val); - } -} - -void LedControl::setDigit(int addr, int digit, byte value, boolean dp) { - int offset; - byte v; - - if(addr<0 || addr>=maxDevices) - return; - if(digit<0 || digit>7 || value>15) - return; - offset=addr*8; - v=charTable[value]; - if(dp) - v|=B10000000; - status[offset+digit]=v; - if (anodeMode) { - //transpose the digit matrix - transposeData(addr); - //send the entire set of digits - for(int i=0;i<8;i++) { - spiTransfer(addr, i+1, statusTransposed[offset+i]); - } - } else { - spiTransfer(addr, digit+1, v); - } -} - -void LedControl::setChar(int addr, int digit, char value, boolean dp) { - int offset; - byte index,v; - - if(addr<0 || addr>=maxDevices) - return; - if(digit<0 || digit>7) - return; - - offset=addr*8; - index=(byte)value; - if(index >127) { - //nothing defined we use the space char - value=32; - } - v=charTable[index]; - if(dp) - v|=B10000000; - status[offset+digit]=v; - if (anodeMode) { - //transpose the digit matrix - transposeData(addr); - //send the entire set of digits - for(int i=0;i<8;i++) { - spiTransfer(addr, i+1, statusTransposed[offset+i]); - } - } else { - spiTransfer(addr, digit+1, v); - } -} - -void LedControl::spiTransfer(int addr, volatile byte opcode, volatile byte data) { - //Create an array with the data to shift out - int offset=addr*2; - int maxbytes=maxDevices*2; - - for(int i=0;i0;i--) - shiftOut(SPI_MOSI,SPI_CLK,MSBFIRST,spidata[i-1]); - //latch the data onto the display - digitalWrite(SPI_CS,HIGH); -} - - -void LedControl::transposeData(int addr) { - int offset=addr*8; - byte a0, a1, a2, a3, a4, a5, a6, a7, - b0, b1, b2, b3, b4, b5, b6, b7; - - // Perform a bitwise transpose operation on an 8x8 bit matrix, stored as 8-byte array. - // We have to use the naive method because we're working on a 16-bit microprocessor. - - // Load the array into eight one-byte variables. - a0 = status[offset]; - a1 = status[offset+1]; - a2 = status[offset+2]; - a3 = status[offset+3]; - a4 = status[offset+4]; - a5 = status[offset+5]; - a6 = status[offset+6]; - a7 = status[offset+7]; - - // Magic happens. Credit goes to: http://www.hackersdelight.org/HDcode/transpose8.c.txt - b0 = (a0 & 128) | (a1 & 128)/2 | (a2 & 128)/4 | (a3 & 128)/8 | - (a4 & 128)/16 | (a5 & 128)/32 | (a6 & 128)/64 | (a7 )/128; - b1 = (a0 & 64)*2 | (a1 & 64) | (a2 & 64)/2 | (a3 & 64)/4 | - (a4 & 64)/8 | (a5 & 64)/16 | (a6 & 64)/32 | (a7 & 64)/64; - b2 = (a0 & 32)*4 | (a1 & 32)*2 | (a2 & 32) | (a3 & 32)/2 | - (a4 & 32)/4 | (a5 & 32)/8 | (a6 & 32)/16 | (a7 & 32)/32; - b3 = (a0 & 16)*8 | (a1 & 16)*4 | (a2 & 16)*2 | (a3 & 16) | - (a4 & 16)/2 | (a5 & 16)/4 | (a6 & 16)/8 | (a7 & 16)/16; - b4 = (a0 & 8)*16 | (a1 & 8)*8 | (a2 & 8)*4 | (a3 & 8)*2 | - (a4 & 8) | (a5 & 8)/2 | (a6 & 8)/4 | (a7 & 8)/8; - b5 = (a0 & 4)*32 | (a1 & 4)*16 | (a2 & 4)*8 | (a3 & 4)*4 | - (a4 & 4)*2 | (a5 & 4) | (a6 & 4)/2 | (a7 & 4)/4; - b6 = (a0 & 2)*64 | (a1 & 2)*32 | (a2 & 2)*16 | (a3 & 2)*8 | - (a4 & 2)*4 | (a5 & 2)*2 | (a6 & 2) | (a7 & 2)/2; - b7 = (a0 )*128| (a1 & 1)*64 | (a2 & 1)*32 | (a3 & 1)*16| - (a4 & 1)*8 | (a5 & 1)*4 | (a6 & 1)*2 | (a7 & 1); - - // Assemble into output array. - statusTransposed[offset] = b0; - statusTransposed[offset+1] = b1; - statusTransposed[offset+2] = b2; - statusTransposed[offset+3] = b3; - statusTransposed[offset+4] = b4; - statusTransposed[offset+5] = b5; - statusTransposed[offset+6] = b6; - statusTransposed[offset+7] = b7; - -} - -void LedControl::setDirectDigit(int addr, int digit, byte value) { - int offset; - - if(addr<0 || addr>=maxDevices) - return; - if(digit<0 || digit>7) - return; - offset=addr*8; - status[offset+digit]=value; - if (anodeMode) { - transposeData(addr); - for(int i=0;i<8;i++) { - spiTransfer(addr, i+1, statusTransposed[offset+i]); - } - } else { - spiTransfer(addr, digit+1, value); - } -} - diff --git a/LedControl added COMMON ANODE display support/LedControlCA.h b/LedControl added COMMON ANODE display support/LedControlCA.h deleted file mode 100644 index 576ff0a..0000000 --- a/LedControl added COMMON ANODE display support/LedControlCA.h +++ /dev/null @@ -1,217 +0,0 @@ -/* - * LedControl.h - A library for controling Leds with a MAX7219/MAX7221 - * Copyright (c) 2007 Eberhard Fahle - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * This permission notice shall be included in all copies or - * substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - */ - -#ifndef LedControl_h -#define LedControl_h - -#if (ARDUINO >= 100) -#include -#else -#include -#endif - -/* - * Segments to be switched on for characters and digits on - * 7-Segment Displays - */ -const static byte charTable[128] = { - B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000, - B01111111,B01111011,B01110111,B00011111,B00001101,B00111101,B01001111,B01000111, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B10000000,B00000001,B10000000,B00000000, - B01111110,B00110000,B01101101,B01111001,B00110011,B01011011,B01011111,B01110000, - B01111111,B01111011,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B01110111,B00011111,B00001101,B00111101,B01001111,B01000111,B00000000, - B00110111,B00000000,B00000000,B00000000,B00001110,B00000000,B00000000,B00000000, - B01100111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00001000, - B00000000,B01110111,B00011111,B00001101,B00111101,B01001111,B01000111,B00000000, - B00110111,B00000000,B00000000,B00000000,B00001110,B00000000,B00000000,B00000000, - B01100111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, - B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000 -}; - -class LedControl { - private : - /* The array for shifting the data to the devices */ - byte spidata[16]; - /* Send out a single command to the device */ - void spiTransfer(int addr, byte opcode, byte data); - - /* We keep track of the led-status for all 8 devices in this array */ - byte status[64]; - /* We also keep track of the transposed version */ - byte statusTransposed[64]; - /* Data is shifted out of this pin*/ - int SPI_MOSI; - /* The clock is signaled on this pin */ - int SPI_CLK; - /* This one is driven LOW for chip selectzion */ - int SPI_CS; - /* The maximum number of devices we use */ - int maxDevices; - /* Choose whether we're using common cathode or common anode displays */ - bool anodeMode; - - - public: - /* - * Create a new controler - * Params : - * dataPin pin on the Arduino where data gets shifted out - * clockPin pin for the clock - * csPin pin for selecting the device - * numDevices maximum number of devices that can be controled - * anode false for common-cathode displays, true for common-anode displays - */ - LedControl(int dataPin, int clkPin, int csPin, int numDevices=1, bool anode=false); - /* - * Gets the number of devices attached to this LedControl. - * Returns : - * int the number of devices on this LedControl - */ - int getDeviceCount(); - - /* - * Set the shutdown (power saving) mode for the device - * Params : - * addr The address of the display to control - * status If true the device goes into power-down mode. Set to false - * for normal operation. - */ - void shutdown(int addr, bool status); - - /* - * Set the number of digits (or rows) to be displayed. - * See datasheet for sideeffects of the scanlimit on the brightness - * of the display. - * Params : - * addr address of the display to control - * limit number of digits to be displayed (1..8) - */ - void setScanLimit(int addr, int limit); - - /* - * Set the brightness of the display. - * Params: - * addr the address of the display to control - * intensity the brightness of the display. (0..15) - */ - void setIntensity(int addr, int intensity); - - /* - * Switch all Leds on the display off. - * Params: - * addr address of the display to control - */ - void clearDisplay(int addr); - - /* - * Set the status of a single Led. - * Params : - * addr address of the display - * row the row of the Led (0..7) - * col the column of the Led (0..7) - * state If true the led is switched on, - * if false it is switched off - */ - void setLed(int addr, int row, int col, boolean state); - - /* - * Set all 8 Led's in a row to a new state - * Params: - * addr address of the display - * row row which is to be set (0..7) - * value each bit set to 1 will light up the - * corresponding Led. - */ - void setRow(int addr, int row, byte value); - - /* - * Set all 8 Led's in a column to a new state - * Params: - * addr address of the display - * col column which is to be set (0..7) - * value each bit set to 1 will light up the - * corresponding Led. - */ - void setColumn(int addr, int col, byte value); - - /* - * Display a hexadecimal digit on a 7-Segment Display - * Params: - * addr address of the display - * digit the position of the digit on the display (0..7) - * value the value to be displayed. (0x00..0x0F) - * dp sets the decimal point. - */ - void setDigit(int addr, int digit, byte value, boolean dp); - - - - - /* - * Display a character on a 7-Segment display. - * There are only a few characters that make sense here : - * '0','1','2','3','4','5','6','7','8','9','0', - * 'A','b','c','d','E','F','H','L','P', - * '.','-','_',' ' - * Params: - * addr address of the display - * digit the position of the character on the display (0..7) - * value the character to be displayed. - * dp sets the decimal point. - */ - void setChar(int addr, int digit, char value, boolean dp); - - - /* - * Transpose data matrix for use with common-anode displays. - * Params: - * addr address of the display - */ - void transposeData(int addr); - - /* - * Light up segments of a 7-segment display directly by passing a binary value. - * The eight bits of the byte each refer to a segment: - * Byte: 0 0 0 0 0 0 0 0 - * Segments: DP A B C D E F G - * Params: - * addr address of the display - * digit the position of the character on the display (0..7) - * value the binary value to be displayed - */ - void setDirectDigit(int addr, int digit, byte value); - -}; - -#endif //LedControl.h - - - diff --git a/LedControl added COMMON ANODE display support/common-anode.patch b/LedControl added COMMON ANODE display support/common-anode.patch deleted file mode 100644 index 87f2319..0000000 --- a/LedControl added COMMON ANODE display support/common-anode.patch +++ /dev/null @@ -1,228 +0,0 @@ -Common subdirectories: LedControl-unpatched/examples and LedControl/examples -diff -u LedControl-unpatched/LedControl.cpp LedControl/LedControl.cpp ---- LedControl-unpatched/LedControl.cpp 2008-10-14 02:21:21.000000000 -0700 -+++ LedControl/LedControl.cpp 2012-09-02 01:24:35.000000000 -0700 -@@ -35,20 +35,23 @@ - #define OP_SHUTDOWN 12 - #define OP_DISPLAYTEST 15 - --LedControl::LedControl(int dataPin, int clkPin, int csPin, int numDevices) { -+LedControl::LedControl(int dataPin, int clkPin, int csPin, int numDevices, bool anode) { - SPI_MOSI=dataPin; - SPI_CLK=clkPin; - SPI_CS=csPin; - if(numDevices<=0 || numDevices>8 ) - numDevices=8; - maxDevices=numDevices; -+ anodeMode=anode; - pinMode(SPI_MOSI,OUTPUT); - pinMode(SPI_CLK,OUTPUT); - pinMode(SPI_CS,OUTPUT); - digitalWrite(SPI_CS,HIGH); - SPI_MOSI=dataPin; -- for(int i=0;i<64;i++) -+ for(int i=0;i<64;i++) { - status[i]=0x00; -+ statusTransposed[i]=0x00; -+ } - for(int i=0;i127) { -- //nothing define we use the space char -+ //nothing defined we use the space char - value=32; - } - v=charTable[index]; - if(dp) - v|=B10000000; - status[offset+digit]=v; -- spiTransfer(addr, digit+1,v); -+ if (anodeMode) { -+ //transpose the digit matrix -+ transposeData(addr); -+ //send the entire set of digits -+ for(int i=0;i<8;i++) { -+ spiTransfer(addr, i+1, statusTransposed[offset+i]); -+ } -+ } else { -+ spiTransfer(addr, digit+1, v); -+ } - } - - void LedControl::spiTransfer(int addr, volatile byte opcode, volatile byte data) { -@@ -202,4 +231,73 @@ - digitalWrite(SPI_CS,HIGH); - } - -+void LedControl::transposeData(int addr) { -+ int offset=addr*8; -+ byte a0, a1, a2, a3, a4, a5, a6, a7, -+ b0, b1, b2, b3, b4, b5, b6, b7; -+ -+ // Perform a bitwise transpose operation on an 8x8 bit matrix, stored as 8-byte array. -+ // We have to use the naive method because we're working on a 16-bit microprocessor. -+ -+ // Load the array into eight one-byte variables. -+ a0 = status[offset]; -+ a1 = status[offset+1]; -+ a2 = status[offset+2]; -+ a3 = status[offset+3]; -+ a4 = status[offset+4]; -+ a5 = status[offset+5]; -+ a6 = status[offset+6]; -+ a7 = status[offset+7]; -+ -+ // Magic happens. Credit goes to: http://www.hackersdelight.org/HDcode/transpose8.c.txt -+ b0 = (a0 & 128) | (a1 & 128)/2 | (a2 & 128)/4 | (a3 & 128)/8 | -+ (a4 & 128)/16 | (a5 & 128)/32 | (a6 & 128)/64 | (a7 )/128; -+ b1 = (a0 & 64)*2 | (a1 & 64) | (a2 & 64)/2 | (a3 & 64)/4 | -+ (a4 & 64)/8 | (a5 & 64)/16 | (a6 & 64)/32 | (a7 & 64)/64; -+ b2 = (a0 & 32)*4 | (a1 & 32)*2 | (a2 & 32) | (a3 & 32)/2 | -+ (a4 & 32)/4 | (a5 & 32)/8 | (a6 & 32)/16 | (a7 & 32)/32; -+ b3 = (a0 & 16)*8 | (a1 & 16)*4 | (a2 & 16)*2 | (a3 & 16) | -+ (a4 & 16)/2 | (a5 & 16)/4 | (a6 & 16)/8 | (a7 & 16)/16; -+ b4 = (a0 & 8)*16 | (a1 & 8)*8 | (a2 & 8)*4 | (a3 & 8)*2 | -+ (a4 & 8) | (a5 & 8)/2 | (a6 & 8)/4 | (a7 & 8)/8; -+ b5 = (a0 & 4)*32 | (a1 & 4)*16 | (a2 & 4)*8 | (a3 & 4)*4 | -+ (a4 & 4)*2 | (a5 & 4) | (a6 & 4)/2 | (a7 & 4)/4; -+ b6 = (a0 & 2)*64 | (a1 & 2)*32 | (a2 & 2)*16 | (a3 & 2)*8 | -+ (a4 & 2)*4 | (a5 & 2)*2 | (a6 & 2) | (a7 & 2)/2; -+ b7 = (a0 )*128| (a1 & 1)*64 | (a2 & 1)*32 | (a3 & 1)*16| -+ (a4 & 1)*8 | (a5 & 1)*4 | (a6 & 1)*2 | (a7 & 1); -+ -+ // Assemble into output array. -+ statusTransposed[offset] = b0; -+ statusTransposed[offset+1] = b1; -+ statusTransposed[offset+2] = b2; -+ statusTransposed[offset+3] = b3; -+ statusTransposed[offset+4] = b4; -+ statusTransposed[offset+5] = b5; -+ statusTransposed[offset+6] = b6; -+ statusTransposed[offset+7] = b7; -+ -+} -+ -+void LedControl::setDirectDigit(int addr, int digit, byte value) { -+ int offset; -+ -+ if(addr<0 || addr>=maxDevices) -+ return; -+ if(digit<0 || digit>7) -+ return; -+ offset=addr*8; -+ status[offset+digit]=value; -+ if (anodeMode) { -+ transposeData(addr); -+ for(int i=0;i<8;i++) { -+ spiTransfer(addr, i+1, statusTransposed[offset+i]); -+ } -+ } else { -+ spiTransfer(addr, digit+1, value); -+ } -+} -+ -+ -+ - -diff -u LedControl-unpatched/LedControl.h LedControl/LedControl.h ---- LedControl-unpatched/LedControl.h 2011-09-20 23:49:06.000000000 -0700 -+++ LedControl/LedControl.h 2012-09-02 00:18:47.000000000 -0700 -@@ -58,6 +58,8 @@ - - /* We keep track of the led-status for all 8 devices in this array */ - byte status[64]; -+ /* We also keep track of the transposed version */ -+ byte statusTransposed[64]; - /* Data is shifted out of this pin*/ - int SPI_MOSI; - /* The clock is signaled on this pin */ -@@ -66,6 +68,8 @@ - int SPI_CS; - /* The maximum number of devices we use */ - int maxDevices; -+ /* Choose whether we're using common cathode or common anode displays */ -+ bool anodeMode; - - public: - /* -@@ -75,8 +79,9 @@ - * clockPin pin for the clock - * csPin pin for selecting the device - * numDevices maximum number of devices that can be controled -+ * anode false for common-cathode displays, true for common-anode displays - */ -- LedControl(int dataPin, int clkPin, int csPin, int numDevices=1); -+ LedControl(int dataPin, int clkPin, int csPin, int numDevices=1, bool anode=false); - - /* - * Gets the number of devices attached to this LedControl. -@@ -173,9 +178,25 @@ - * dp sets the decimal point. - */ - void setChar(int addr, int digit, char value, boolean dp); -+ -+ /* -+ * Transpose data matrix for use with common-anode displays. -+ * Params: -+ * addr address of the display -+ */ -+ void transposeData(int addr); -+ -+ /* -+ * Light up segments of a 7-segment display directly by passing a binary value. -+ * The eight bits of the byte each refer to a segment: -+ * Byte: 0 0 0 0 0 0 0 0 -+ * Segments: DP A B C D E F G -+ * Params: -+ * addr address of the display -+ * digit the position of the character on the display (0..7) -+ * value the binary value to be displayed -+ */ -+ void setDirectDigit(int addr, int digit, byte value); - }; - - #endif //LedControl.h -- -- -- diff --git a/LedControl added COMMON ANODE display support/examples/LCDemo7Segment/LCDemo7Segment.pde b/LedControl added COMMON ANODE display support/examples/LCDemo7Segment/LCDemo7Segment.pde deleted file mode 100644 index a75f32f..0000000 --- a/LedControl added COMMON ANODE display support/examples/LCDemo7Segment/LCDemo7Segment.pde +++ /dev/null @@ -1,73 +0,0 @@ -//We always have to include the library -#include "LedControl.h" - -/* - Now we need a LedControl to work with. - ***** These pin numbers will probably not work with your hardware ***** - pin 12 is connected to the DataIn - pin 11 is connected to the CLK - pin 10 is connected to LOAD - We have only a single MAX72XX. - */ -LedControl lc=LedControl(12,11,10,1); - -/* we always wait a bit between updates of the display */ -unsigned long delaytime=250; - -void setup() { - /* - The MAX72XX is in power-saving mode on startup, - we have to do a wakeup call - */ - lc.shutdown(0,false); - /* Set the brightness to a medium values */ - lc.setIntensity(0,8); - /* and clear the display */ - lc.clearDisplay(0); -} - - -/* - This method will display the characters for the - word "Arduino" one after the other on digit 0. - */ -void writeArduinoOn7Segment() { - lc.setChar(0,0,'a',false); - delay(delaytime); - lc.setRow(0,0,0x05); - delay(delaytime); - lc.setChar(0,0,'d',false); - delay(delaytime); - lc.setRow(0,0,0x1c); - delay(delaytime); - lc.setRow(0,0,B00010000); - delay(delaytime); - lc.setRow(0,0,0x15); - delay(delaytime); - lc.setRow(0,0,0x1D); - delay(delaytime); - lc.clearDisplay(0); - delay(delaytime); -} - -/* - This method will scroll all the hexa-decimal - numbers and letters on the display. You will need at least - four 7-Segment digits. otherwise it won't really look that good. - */ -void scrollDigits() { - for(int i=0;i<13;i++) { - lc.setDigit(0,3,i,false); - lc.setDigit(0,2,i+1,false); - lc.setDigit(0,1,i+2,false); - lc.setDigit(0,0,i+3,false); - delay(delaytime); - } - lc.clearDisplay(0); - delay(delaytime); -} - -void loop() { - writeArduinoOn7Segment(); - scrollDigits(); -} diff --git a/LedControl added COMMON ANODE display support/examples/LCDemoCascadedDevices/LCDemoCascadedDevices.pde b/LedControl added COMMON ANODE display support/examples/LCDemoCascadedDevices/LCDemoCascadedDevices.pde deleted file mode 100644 index 090b8dd..0000000 --- a/LedControl added COMMON ANODE display support/examples/LCDemoCascadedDevices/LCDemoCascadedDevices.pde +++ /dev/null @@ -1,52 +0,0 @@ -//We always have to include the library -#include "LedControl.h" - -/* - Now we need a LedControl to work with. - ***** These pin numbers will probably not work with your hardware ***** - pin 12 is connected to the DataIn - pin 11 is connected to the CLK - pin 10 is connected to LOAD - ***** Please set the number of devices you have ***** - But the maximum default of 8 MAX72XX wil also work. - */ -LedControl lc=LedControl(12,11,10,8); - -/* we always wait a bit between updates of the display */ -unsigned long delaytime=500; - -/* - This time we have more than one device. - But all of them have to be initialized - individually. - */ -void setup() { - //we have already set the number of devices when we created the LedControl - int devices=lc.getDeviceCount(); - //we have to init all devices in a loop - for(int address=0;address - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Power -5V DC -VCC -GND -Din -Dout -CLK -CLK -LD -LD -R_Iset -220µF -100nF -Erik de Ruiter -The Netherlands -2014/08 Rev.1.1 -COL_K -COL_A -APOS_A -APOS_K -1 -2 -3 -4 -DP -E -D -B -G -A -C -F - - - - - - - - -Maxim 7219 Display Board for -Sparkfun 4 Digit 7 Segment Display -COM-09483 (red) or equivalent -Use MODIFIED Ledcontrol Library ! -Google: "Maxim 7219 Common Anode" -Maxim 7219 Common ANODE Display Board - - - -<b>Resistors, Capacitors, Inductors</b><p> -Based on the previous libraries: -<ul> -<li>r.lbr -<li>cap.lbr -<li>cap-fe.lbr -<li>captant.lbr -<li>polcap.lbr -<li>ipc-smd.lbr -</ul> -All SMD packages are defined according to the IPC specifications and CECC<p> -<author>Created by librarian@cadsoft.de</author><p> -<p> -for Electrolyt Capacitors see also :<p> -www.bccomponents.com <p> -www.panasonic.com<p> -www.kemet.com<p> -http://www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf <b>(SANYO)</b> -<p> -for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p> - -<table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0> -<tr valign="top"> - -<! <td width="10">&nbsp;</td> -<td width="90%"> - -<b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b> -<P> -<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> - <TR> - <TD COLSPAN=8> - <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT> - </TD> - </TR> - <TR> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT> - </B> - </TD><TD>&nbsp;</TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 > - 3005P<BR> - 3006P<BR> - 3006W<BR> - 3006Y<BR> - 3009P<BR> - 3009W<BR> - 3009Y<BR> - 3057J<BR> - 3057L<BR> - 3057P<BR> - 3057Y<BR> - 3059J<BR> - 3059L<BR> - 3059P<BR> - 3059Y<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 89P<BR> - 89W<BR> - 89X<BR> - 89PH<BR> - 76P<BR> - 89XH<BR> - 78SLT<BR> - 78L&nbsp;ALT<BR> - 56P&nbsp;ALT<BR> - 78P&nbsp;ALT<BR> - T8S<BR> - 78L<BR> - 56P<BR> - 78P<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - T18/784<BR> - 783<BR> - 781<BR> - -<BR> - -<BR> - -<BR> - 2199<BR> - 1697/1897<BR> - 1680/1880<BR> - 2187<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 8035EKP/CT20/RJ-20P<BR> - -<BR> - RJ-20X<BR> - -<BR> - -<BR> - -<BR> - 1211L<BR> - 8012EKQ&nbsp;ALT<BR> - 8012EKR&nbsp;ALT<BR> - 1211P<BR> - 8012EKJ<BR> - 8012EKL<BR> - 8012EKQ<BR> - 8012EKR<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 2101P<BR> - 2101W<BR> - 2101Y<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 2102L<BR> - 2102S<BR> - 2102Y<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - EVMCOG<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 43P<BR> - 43W<BR> - 43Y<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 40L<BR> - 40P<BR> - 40Y<BR> - 70Y-T602<BR> - 70L<BR> - 70P<BR> - 70Y<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - RT/RTR12<BR> - RT/RTR12<BR> - RT/RTR12<BR> - -<BR> - RJ/RJR12<BR> - RJ/RJR12<BR> - RJ/RJR12<BR></FONT> - </TD> - </TR> - <TR> - <TD COLSPAN=8>&nbsp; - </TD> - </TR> - <TR> - <TD COLSPAN=8> - <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT> - </TD> - </TR> - <TR> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3250L<BR> - 3250P<BR> - 3250W<BR> - 3250X<BR> - 3252P<BR> - 3252W<BR> - 3252X<BR> - 3260P<BR> - 3260W<BR> - 3260X<BR> - 3262P<BR> - 3262W<BR> - 3262X<BR> - 3266P<BR> - 3266W<BR> - 3266X<BR> - 3290H<BR> - 3290P<BR> - 3290W<BR> - 3292P<BR> - 3292W<BR> - 3292X<BR> - 3296P<BR> - 3296W<BR> - 3296X<BR> - 3296Y<BR> - 3296Z<BR> - 3299P<BR> - 3299W<BR> - 3299X<BR> - 3299Y<BR> - 3299Z<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 66P&nbsp;ALT<BR> - 66W&nbsp;ALT<BR> - 66X&nbsp;ALT<BR> - 66P&nbsp;ALT<BR> - 66W&nbsp;ALT<BR> - 66X&nbsp;ALT<BR> - -<BR> - 64W&nbsp;ALT<BR> - -<BR> - 64P&nbsp;ALT<BR> - 64W&nbsp;ALT<BR> - 64X&nbsp;ALT<BR> - 64P<BR> - 64W<BR> - 64X<BR> - 66X&nbsp;ALT<BR> - 66P&nbsp;ALT<BR> - 66W&nbsp;ALT<BR> - 66P<BR> - 66W<BR> - 66X<BR> - 67P<BR> - 67W<BR> - 67X<BR> - 67Y<BR> - 67Z<BR> - 68P<BR> - 68W<BR> - 68X<BR> - 67Y&nbsp;ALT<BR> - 67Z&nbsp;ALT<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 5050<BR> - 5091<BR> - 5080<BR> - 5087<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - T63YB<BR> - T63XB<BR> - -<BR> - -<BR> - -<BR> - 5887<BR> - 5891<BR> - 5880<BR> - -<BR> - -<BR> - -<BR> - T93Z<BR> - T93YA<BR> - T93XA<BR> - T93YB<BR> - T93XB<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 8026EKP<BR> - 8026EKW<BR> - 8026EKM<BR> - 8026EKP<BR> - 8026EKB<BR> - 8026EKM<BR> - 1309X<BR> - 1309P<BR> - 1309W<BR> - 8024EKP<BR> - 8024EKW<BR> - 8024EKN<BR> - RJ-9P/CT9P<BR> - RJ-9W<BR> - RJ-9X<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 3103P<BR> - 3103Y<BR> - 3103Z<BR> - 3103P<BR> - 3103Y<BR> - 3103Z<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 3105P/3106P<BR> - 3105W/3106W<BR> - 3105X/3106X<BR> - 3105Y/3106Y<BR> - 3105Z/3105Z<BR> - 3102P<BR> - 3102W<BR> - 3102X<BR> - 3102Y<BR> - 3102Z<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - EVMCBG<BR> - EVMCCG<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 55-1-X<BR> - 55-4-X<BR> - 55-3-X<BR> - 55-2-X<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 50-2-X<BR> - 50-4-X<BR> - 50-3-X<BR> - -<BR> - -<BR> - -<BR> - 64P<BR> - 64W<BR> - 64X<BR> - 64Y<BR> - 64Z<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - RT/RTR22<BR> - RT/RTR22<BR> - RT/RTR22<BR> - RT/RTR22<BR> - RJ/RJR22<BR> - RJ/RJR22<BR> - RJ/RJR22<BR> - RT/RTR26<BR> - RT/RTR26<BR> - RT/RTR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RT/RTR24<BR> - RT/RTR24<BR> - RT/RTR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> - <TR> - <TD COLSPAN=8>&nbsp; - </TD> - </TR> - <TR> - <TD COLSPAN=8> - <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> - </TD> - </TR> - <TR> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3323P<BR> - 3323S<BR> - 3323W<BR> - 3329H<BR> - 3329P<BR> - 3329W<BR> - 3339H<BR> - 3339P<BR> - 3339W<BR> - 3352E<BR> - 3352H<BR> - 3352K<BR> - 3352P<BR> - 3352T<BR> - 3352V<BR> - 3352W<BR> - 3362H<BR> - 3362M<BR> - 3362P<BR> - 3362R<BR> - 3362S<BR> - 3362U<BR> - 3362W<BR> - 3362X<BR> - 3386B<BR> - 3386C<BR> - 3386F<BR> - 3386H<BR> - 3386K<BR> - 3386M<BR> - 3386P<BR> - 3386S<BR> - 3386W<BR> - 3386X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 25P<BR> - 25S<BR> - 25RX<BR> - 82P<BR> - 82M<BR> - 82PA<BR> - -<BR> - -<BR> - -<BR> - 91E<BR> - 91X<BR> - 91T<BR> - 91B<BR> - 91A<BR> - 91V<BR> - 91W<BR> - 25W<BR> - 25V<BR> - 25P<BR> - -<BR> - 25S<BR> - 25U<BR> - 25RX<BR> - 25X<BR> - 72XW<BR> - 72XL<BR> - 72PM<BR> - 72RX<BR> - -<BR> - 72PX<BR> - 72P<BR> - 72RXW<BR> - 72RXL<BR> - 72X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - T7YB<BR> - T7YA<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - TXD<BR> - TYA<BR> - TYP<BR> - -<BR> - TYD<BR> - TX<BR> - -<BR> - 150SX<BR> - 100SX<BR> - 102T<BR> - 101S<BR> - 190T<BR> - 150TX<BR> - 101<BR> - -<BR> - -<BR> - 101SX<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - ET6P<BR> - ET6S<BR> - ET6X<BR> - RJ-6W/8014EMW<BR> - RJ-6P/8014EMP<BR> - RJ-6X/8014EMX<BR> - TM7W<BR> - TM7P<BR> - TM7X<BR> - -<BR> - 8017SMS<BR> - -<BR> - 8017SMB<BR> - 8017SMA<BR> - -<BR> - -<BR> - CT-6W<BR> - CT-6H<BR> - CT-6P<BR> - CT-6R<BR> - -<BR> - CT-6V<BR> - CT-6X<BR> - -<BR> - -<BR> - 8038EKV<BR> - -<BR> - 8038EKX<BR> - -<BR> - -<BR> - 8038EKP<BR> - 8038EKZ<BR> - 8038EKW<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - 3321H<BR> - 3321P<BR> - 3321N<BR> - 1102H<BR> - 1102P<BR> - 1102T<BR> - RVA0911V304A<BR> - -<BR> - RVA0911H413A<BR> - RVG0707V100A<BR> - RVA0607V(H)306A<BR> - RVA1214H213A<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 3104B<BR> - 3104C<BR> - 3104F<BR> - 3104H<BR> - -<BR> - 3104M<BR> - 3104P<BR> - 3104S<BR> - 3104W<BR> - 3104X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - EVMQ0G<BR> - EVMQIG<BR> - EVMQ3G<BR> - EVMS0G<BR> - EVMQ0G<BR> - EVMG0G<BR> - -<BR> - -<BR> - -<BR> - EVMK4GA00B<BR> - EVM30GA00B<BR> - EVMK0GA00B<BR> - EVM38GA00B<BR> - EVMB6<BR> - EVLQ0<BR> - -<BR> - EVMMSG<BR> - EVMMBG<BR> - EVMMAG<BR> - -<BR> - -<BR> - EVMMCS<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - EVMM1<BR> - -<BR> - -<BR> - EVMM0<BR> - -<BR> - -<BR> - EVMM3<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - 62-3-1<BR> - 62-1-2<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 67R<BR> - -<BR> - 67P<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 67X<BR> - 63V<BR> - 63S<BR> - 63M<BR> - -<BR> - -<BR> - 63H<BR> - 63P<BR> - -<BR> - -<BR> - 63X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - RJ/RJR50<BR> - RJ/RJR50<BR> - RJ/RJR50<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> -</TABLE> -<P>&nbsp;<P> -<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3> - <TR> - <TD COLSPAN=7> - <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT> - <P> - <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT> - </TD> - </TR> - <TR> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3224G<BR> - 3224J<BR> - 3224W<BR> - 3269P<BR> - 3269W<BR> - 3269X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 44G<BR> - 44J<BR> - 44W<BR> - 84P<BR> - 84W<BR> - 84X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - ST63Z<BR> - ST63Y<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - ST5P<BR> - ST5W<BR> - ST5X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> - <TR> - <TD COLSPAN=7>&nbsp; - </TD> - </TR> - <TR> - <TD COLSPAN=7> - <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> - </TD> - </TR> - <TR> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3314G<BR> - 3314J<BR> - 3364A/B<BR> - 3364C/D<BR> - 3364W/X<BR> - 3313G<BR> - 3313J<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 23B<BR> - 23A<BR> - 21X<BR> - 21W<BR> - -<BR> - 22B<BR> - 22A<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - ST5YL/ST53YL<BR> - ST5YJ/5T53YJ<BR> - ST-23A<BR> - ST-22B<BR> - ST-22<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - ST-4B<BR> - ST-4A<BR> - -<BR> - -<BR> - -<BR> - ST-3B<BR> - ST-3A<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - EVM-6YS<BR> - EVM-1E<BR> - EVM-1G<BR> - EVM-1D<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - G4B<BR> - G4A<BR> - TR04-3S1<BR> - TRG04-2S1<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - DVR-43A<BR> - CVR-42C<BR> - CVR-42A/C<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> -</TABLE> -<P> -<FONT SIZE=4 FACE=ARIAL><B>ALT =&nbsp;ALTERNATE</B></FONT> -<P> - -&nbsp; -<P> -</td> -</tr> -</table> - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 2.5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>RESISTOR</b><p> -type 0207, grid 10 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 3.5 mm, diameter 8 mm - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<h3>SparkFun Electronics' preferred foot prints</h3> -In this library you'll find all manner of digital ICs- microcontrollers, memory chips, logic chips, FPGAs, etc.<br><br> -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. -<br><br> -<b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Pin Header Connectors</b><p> -<author>Created by librarian@cadsoft.de</author> - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<h3>SparkFun Electronics' preferred foot prints</h3> -In this library you'll find all manner of display devices- LED displays, LCD displays, etc.<br><br> -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. -<br><br> -<b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. - - -This is a package for the 4-digit 7-segment RED LED from Young Sun. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - -<b>EAGLE Design Rules</b> -<p> -Die Standard-Design-Rules sind so gewählt, dass sie für -die meisten Anwendungen passen. Sollte ihre Platine -besondere Anforderungen haben, treffen Sie die erforderlichen -Einstellungen hier und speichern die Design Rules unter -einem neuen Namen ab. -<b>EAGLE Design Rules</b> -<p> -The default Design Rules have been set to cover -a wide range of applications. Your particular design -may have different requirements, so please make the -necessary adjustments and save your customized -design rules under a new name. -<b>Seeed Studio EAGLE Design Rules</b> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Since Version 6.2.2 text objects can contain more than one line, -which will not be processed correctly with this version. - - - diff --git a/Maxim 7219 LED display - Sparkfun YoungSun 4 digit 7 segment CA/Maxim 7219 LED display - Sparkfun YoungSun 4 digit 7 segment CA v.1.1.sch b/Maxim 7219 LED display - Sparkfun YoungSun 4 digit 7 segment CA/Maxim 7219 LED display - Sparkfun YoungSun 4 digit 7 segment CA v.1.1.sch deleted file mode 100644 index 929e82f..0000000 --- a/Maxim 7219 LED display - Sparkfun YoungSun 4 digit 7 segment CA/Maxim 7219 LED display - Sparkfun YoungSun 4 digit 7 segment CA v.1.1.sch +++ /dev/null @@ -1,13473 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->VALUE - - - - - ->VALUE - - - - - -<b>SUPPLY SYMBOL</b> - - - - - - - - - - - - -<b>SUPPLY SYMBOL</b> - - - - - - - - - - - - - - -<b>Resistors, Capacitors, Inductors</b><p> -Based on the previous libraries: -<ul> -<li>r.lbr -<li>cap.lbr -<li>cap-fe.lbr -<li>captant.lbr -<li>polcap.lbr -<li>ipc-smd.lbr -</ul> -All SMD packages are defined according to the IPC specifications and CECC<p> -<author>Created by librarian@cadsoft.de</author><p> -<p> -for Electrolyt Capacitors see also :<p> -www.bccomponents.com <p> -www.panasonic.com<p> -www.kemet.com<p> -http://www.secc.co.jp/pdf/os_e/2004/e_os_all.pdf <b>(SANYO)</b> -<p> -for trimmer refence see : <u>www.electrospec-inc.com/cross_references/trimpotcrossref.asp</u><p> - -<table border=0 cellspacing=0 cellpadding=0 width="100%" cellpaddding=0> -<tr valign="top"> - -<! <td width="10">&nbsp;</td> -<td width="90%"> - -<b><font color="#0000FF" size="4">TRIM-POT CROSS REFERENCE</font></b> -<P> -<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2> - <TR> - <TD COLSPAN=8> - <FONT SIZE=3 FACE=ARIAL><B>RECTANGULAR MULTI-TURN</B></FONT> - </TD> - </TR> - <TR> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">BOURNS</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">BI&nbsp;TECH</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">DALE-VISHAY</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">PHILIPS/MEPCO</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">MURATA</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">PANASONIC</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">SPECTROL</FONT> - </B> - </TD> - <TD ALIGN=CENTER> - <B> - <FONT SIZE=3 FACE=ARIAL color="#FF0000">MILSPEC</FONT> - </B> - </TD><TD>&nbsp;</TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3 > - 3005P<BR> - 3006P<BR> - 3006W<BR> - 3006Y<BR> - 3009P<BR> - 3009W<BR> - 3009Y<BR> - 3057J<BR> - 3057L<BR> - 3057P<BR> - 3057Y<BR> - 3059J<BR> - 3059L<BR> - 3059P<BR> - 3059Y<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 89P<BR> - 89W<BR> - 89X<BR> - 89PH<BR> - 76P<BR> - 89XH<BR> - 78SLT<BR> - 78L&nbsp;ALT<BR> - 56P&nbsp;ALT<BR> - 78P&nbsp;ALT<BR> - T8S<BR> - 78L<BR> - 56P<BR> - 78P<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - T18/784<BR> - 783<BR> - 781<BR> - -<BR> - -<BR> - -<BR> - 2199<BR> - 1697/1897<BR> - 1680/1880<BR> - 2187<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 8035EKP/CT20/RJ-20P<BR> - -<BR> - RJ-20X<BR> - -<BR> - -<BR> - -<BR> - 1211L<BR> - 8012EKQ&nbsp;ALT<BR> - 8012EKR&nbsp;ALT<BR> - 1211P<BR> - 8012EKJ<BR> - 8012EKL<BR> - 8012EKQ<BR> - 8012EKR<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 2101P<BR> - 2101W<BR> - 2101Y<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 2102L<BR> - 2102S<BR> - 2102Y<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - EVMCOG<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 43P<BR> - 43W<BR> - 43Y<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 40L<BR> - 40P<BR> - 40Y<BR> - 70Y-T602<BR> - 70L<BR> - 70P<BR> - 70Y<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - RT/RTR12<BR> - RT/RTR12<BR> - RT/RTR12<BR> - -<BR> - RJ/RJR12<BR> - RJ/RJR12<BR> - RJ/RJR12<BR></FONT> - </TD> - </TR> - <TR> - <TD COLSPAN=8>&nbsp; - </TD> - </TR> - <TR> - <TD COLSPAN=8> - <FONT SIZE=4 FACE=ARIAL><B>SQUARE MULTI-TURN</B></FONT> - </TD> - </TR> - <TR> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3250L<BR> - 3250P<BR> - 3250W<BR> - 3250X<BR> - 3252P<BR> - 3252W<BR> - 3252X<BR> - 3260P<BR> - 3260W<BR> - 3260X<BR> - 3262P<BR> - 3262W<BR> - 3262X<BR> - 3266P<BR> - 3266W<BR> - 3266X<BR> - 3290H<BR> - 3290P<BR> - 3290W<BR> - 3292P<BR> - 3292W<BR> - 3292X<BR> - 3296P<BR> - 3296W<BR> - 3296X<BR> - 3296Y<BR> - 3296Z<BR> - 3299P<BR> - 3299W<BR> - 3299X<BR> - 3299Y<BR> - 3299Z<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - 66P&nbsp;ALT<BR> - 66W&nbsp;ALT<BR> - 66X&nbsp;ALT<BR> - 66P&nbsp;ALT<BR> - 66W&nbsp;ALT<BR> - 66X&nbsp;ALT<BR> - -<BR> - 64W&nbsp;ALT<BR> - -<BR> - 64P&nbsp;ALT<BR> - 64W&nbsp;ALT<BR> - 64X&nbsp;ALT<BR> - 64P<BR> - 64W<BR> - 64X<BR> - 66X&nbsp;ALT<BR> - 66P&nbsp;ALT<BR> - 66W&nbsp;ALT<BR> - 66P<BR> - 66W<BR> - 66X<BR> - 67P<BR> - 67W<BR> - 67X<BR> - 67Y<BR> - 67Z<BR> - 68P<BR> - 68W<BR> - 68X<BR> - 67Y&nbsp;ALT<BR> - 67Z&nbsp;ALT<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 5050<BR> - 5091<BR> - 5080<BR> - 5087<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - T63YB<BR> - T63XB<BR> - -<BR> - -<BR> - -<BR> - 5887<BR> - 5891<BR> - 5880<BR> - -<BR> - -<BR> - -<BR> - T93Z<BR> - T93YA<BR> - T93XA<BR> - T93YB<BR> - T93XB<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 8026EKP<BR> - 8026EKW<BR> - 8026EKM<BR> - 8026EKP<BR> - 8026EKB<BR> - 8026EKM<BR> - 1309X<BR> - 1309P<BR> - 1309W<BR> - 8024EKP<BR> - 8024EKW<BR> - 8024EKN<BR> - RJ-9P/CT9P<BR> - RJ-9W<BR> - RJ-9X<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 3103P<BR> - 3103Y<BR> - 3103Z<BR> - 3103P<BR> - 3103Y<BR> - 3103Z<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 3105P/3106P<BR> - 3105W/3106W<BR> - 3105X/3106X<BR> - 3105Y/3106Y<BR> - 3105Z/3105Z<BR> - 3102P<BR> - 3102W<BR> - 3102X<BR> - 3102Y<BR> - 3102Z<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - EVMCBG<BR> - EVMCCG<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 55-1-X<BR> - 55-4-X<BR> - 55-3-X<BR> - 55-2-X<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 50-2-X<BR> - 50-4-X<BR> - 50-3-X<BR> - -<BR> - -<BR> - -<BR> - 64P<BR> - 64W<BR> - 64X<BR> - 64Y<BR> - 64Z<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - RT/RTR22<BR> - RT/RTR22<BR> - RT/RTR22<BR> - RT/RTR22<BR> - RJ/RJR22<BR> - RJ/RJR22<BR> - RJ/RJR22<BR> - RT/RTR26<BR> - RT/RTR26<BR> - RT/RTR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RJ/RJR26<BR> - RT/RTR24<BR> - RT/RTR24<BR> - RT/RTR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - RJ/RJR24<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> - <TR> - <TD COLSPAN=8>&nbsp; - </TD> - </TR> - <TR> - <TD COLSPAN=8> - <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> - </TD> - </TR> - <TR> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BOURN</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MURATA</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>SPECTROL</B></FONT> - </TD> - <TD ALIGN=CENTER> - <FONT SIZE=3 FACE=ARIAL><B>MILSPEC</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3323P<BR> - 3323S<BR> - 3323W<BR> - 3329H<BR> - 3329P<BR> - 3329W<BR> - 3339H<BR> - 3339P<BR> - 3339W<BR> - 3352E<BR> - 3352H<BR> - 3352K<BR> - 3352P<BR> - 3352T<BR> - 3352V<BR> - 3352W<BR> - 3362H<BR> - 3362M<BR> - 3362P<BR> - 3362R<BR> - 3362S<BR> - 3362U<BR> - 3362W<BR> - 3362X<BR> - 3386B<BR> - 3386C<BR> - 3386F<BR> - 3386H<BR> - 3386K<BR> - 3386M<BR> - 3386P<BR> - 3386S<BR> - 3386W<BR> - 3386X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 25P<BR> - 25S<BR> - 25RX<BR> - 82P<BR> - 82M<BR> - 82PA<BR> - -<BR> - -<BR> - -<BR> - 91E<BR> - 91X<BR> - 91T<BR> - 91B<BR> - 91A<BR> - 91V<BR> - 91W<BR> - 25W<BR> - 25V<BR> - 25P<BR> - -<BR> - 25S<BR> - 25U<BR> - 25RX<BR> - 25X<BR> - 72XW<BR> - 72XL<BR> - 72PM<BR> - 72RX<BR> - -<BR> - 72PX<BR> - 72P<BR> - 72RXW<BR> - 72RXL<BR> - 72X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - T7YB<BR> - T7YA<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - TXD<BR> - TYA<BR> - TYP<BR> - -<BR> - TYD<BR> - TX<BR> - -<BR> - 150SX<BR> - 100SX<BR> - 102T<BR> - 101S<BR> - 190T<BR> - 150TX<BR> - 101<BR> - -<BR> - -<BR> - 101SX<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - ET6P<BR> - ET6S<BR> - ET6X<BR> - RJ-6W/8014EMW<BR> - RJ-6P/8014EMP<BR> - RJ-6X/8014EMX<BR> - TM7W<BR> - TM7P<BR> - TM7X<BR> - -<BR> - 8017SMS<BR> - -<BR> - 8017SMB<BR> - 8017SMA<BR> - -<BR> - -<BR> - CT-6W<BR> - CT-6H<BR> - CT-6P<BR> - CT-6R<BR> - -<BR> - CT-6V<BR> - CT-6X<BR> - -<BR> - -<BR> - 8038EKV<BR> - -<BR> - 8038EKX<BR> - -<BR> - -<BR> - 8038EKP<BR> - 8038EKZ<BR> - 8038EKW<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - 3321H<BR> - 3321P<BR> - 3321N<BR> - 1102H<BR> - 1102P<BR> - 1102T<BR> - RVA0911V304A<BR> - -<BR> - RVA0911H413A<BR> - RVG0707V100A<BR> - RVA0607V(H)306A<BR> - RVA1214H213A<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 3104B<BR> - 3104C<BR> - 3104F<BR> - 3104H<BR> - -<BR> - 3104M<BR> - 3104P<BR> - 3104S<BR> - 3104W<BR> - 3104X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - EVMQ0G<BR> - EVMQIG<BR> - EVMQ3G<BR> - EVMS0G<BR> - EVMQ0G<BR> - EVMG0G<BR> - -<BR> - -<BR> - -<BR> - EVMK4GA00B<BR> - EVM30GA00B<BR> - EVMK0GA00B<BR> - EVM38GA00B<BR> - EVMB6<BR> - EVLQ0<BR> - -<BR> - EVMMSG<BR> - EVMMBG<BR> - EVMMAG<BR> - -<BR> - -<BR> - EVMMCS<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - EVMM1<BR> - -<BR> - -<BR> - EVMM0<BR> - -<BR> - -<BR> - EVMM3<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - 62-3-1<BR> - 62-1-2<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 67R<BR> - -<BR> - 67P<BR> - -<BR> - -<BR> - -<BR> - -<BR> - 67X<BR> - 63V<BR> - 63S<BR> - 63M<BR> - -<BR> - -<BR> - 63H<BR> - 63P<BR> - -<BR> - -<BR> - 63X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - RJ/RJR50<BR> - RJ/RJR50<BR> - RJ/RJR50<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> -</TABLE> -<P>&nbsp;<P> -<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=3> - <TR> - <TD COLSPAN=7> - <FONT color="#0000FF" SIZE=4 FACE=ARIAL><B>SMD TRIM-POT CROSS REFERENCE</B></FONT> - <P> - <FONT SIZE=4 FACE=ARIAL><B>MULTI-TURN</B></FONT> - </TD> - </TR> - <TR> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3224G<BR> - 3224J<BR> - 3224W<BR> - 3269P<BR> - 3269W<BR> - 3269X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 44G<BR> - 44J<BR> - 44W<BR> - 84P<BR> - 84W<BR> - 84X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - ST63Z<BR> - ST63Y<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - ST5P<BR> - ST5W<BR> - ST5X<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> - <TR> - <TD COLSPAN=7>&nbsp; - </TD> - </TR> - <TR> - <TD COLSPAN=7> - <FONT SIZE=4 FACE=ARIAL><B>SINGLE TURN</B></FONT> - </TD> - </TR> - <TR> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BOURNS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>BI&nbsp;TECH</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>DALE-VISHAY</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PHILIPS/MEPCO</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>PANASONIC</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>TOCOS</B></FONT> - </TD> - <TD> - <FONT SIZE=3 FACE=ARIAL><B>AUX/KYOCERA</B></FONT> - </TD> - </TR> - <TR> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 3314G<BR> - 3314J<BR> - 3364A/B<BR> - 3364C/D<BR> - 3364W/X<BR> - 3313G<BR> - 3313J<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - 23B<BR> - 23A<BR> - 21X<BR> - 21W<BR> - -<BR> - 22B<BR> - 22A<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - ST5YL/ST53YL<BR> - ST5YJ/5T53YJ<BR> - ST-23A<BR> - ST-22B<BR> - ST-22<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - ST-4B<BR> - ST-4A<BR> - -<BR> - -<BR> - -<BR> - ST-3B<BR> - ST-3A<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - EVM-6YS<BR> - EVM-1E<BR> - EVM-1G<BR> - EVM-1D<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - G4B<BR> - G4A<BR> - TR04-3S1<BR> - TRG04-2S1<BR> - -<BR> - -<BR> - -<BR></FONT> - </TD> - <TD BGCOLOR="#cccccc" ALIGN=CENTER><FONT FACE=ARIAL SIZE=3> - -<BR> - -<BR> - DVR-43A<BR> - CVR-42C<BR> - CVR-42A/C<BR> - -<BR> - -<BR></FONT> - </TD> - </TR> -</TABLE> -<P> -<FONT SIZE=4 FACE=ARIAL><B>ALT =&nbsp;ALTERNATE</B></FONT> -<P> - -&nbsp; -<P> -</td> -</tr> -</table> - - -<b>TANTALUM CAPACITOR</b> - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>TANTALUM CAPACITOR</b> - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>TANTALUM CAPACITOR</b> - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>TANTALUM CAPACITOR</b> - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -body 5 x 5 mm, rectangle, grid 2.54 mm - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -body 7.6 x 5 mm, rectangle, grid 5.08 mm - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -body 12.7 x 7.6 mm, rectangle, grid 10.16 mm - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -body 12.5 x 12.5 mm, rectangle, grid 10.16 mm - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 4 mm, grid 2.54 mm - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 4 mm, grid 2.54 mm - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 5 mm, grid 2.54 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 6 mm, grid 2.54 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 6 mm, grid 2.54 mm - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 7 mm, grid 2.54 mm - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 7 mm, grid 2.54 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 10 mm, grid 5.08 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 11 mm, grid 5.08 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 11 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 6 mm, grid 5.08 mm - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 6 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 7 mm, grid 5.08 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 7 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 9 mm, grid 5.08 mm - - - - - - - - - - - - ->NAME ->VALUE -TT - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 9 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -rectangle, grid 2.54 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -rectangle, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -rectangle, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -rectangle, grid 10.16 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -rectangle, grid 10.16 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 4.5 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 5.0 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 7.0 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 6.0 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 8.0 mm, grid 5.08 mm - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 1.8 mm, diameter 4 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 15.24 mm, diameter 5 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 15.24 mm, diameter 6 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 15.24 mm, diameter 9 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.54 mm, diameter 4 mm - - - - - - - - ->NAME ->VALUE - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.54 mm, diameter 5 mm - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.54 mm, diameter 6 mm - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.54 mm, diameter 7 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.54 mm, diameter 4 mm, - - - - - - - - ->NAME ->VALUE - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2 mm, diameter 4 mm - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.032 mm, diameter 5 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 22.86 mm, diameter 10 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 22.86 mm, diameter 6 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 22.86 mm, diameter 9 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 3.5 mm, diameter 10 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 25.4 mm, diameter 10 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 25.4 mm, diameter 9 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 3.5 mm, diameter 8 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 30.48 mm, diameter 10 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 30.48 mm, diameter 12 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 30.48 mm, diameter 16 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 35.56 mm, diameter 12 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 30.48 mm, diameter 14 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 30.48 mm, diameter 16 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 30.48 mm, diameter 18 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 45.72 mm, diameter 16 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 45.72 mm, diameter 18 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 45.72 mm, diameter 21 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 45.72 mm, diameter 22 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 45.72 mm, diameter 25 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.08 mm, diameter 10.5 mm - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.08 mm, diameter 13 mm - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.05 mm, diameter 4 mm - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.08 mm, diameter 5 mm - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.08 mm, diameter 6 mm - - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.08 mm, diameter 8.5 mm - - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 50 mm, diameter 25 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 50 mm, diameter 30 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 55 mm, diameter 25 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 55 mm, diameter 30 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 5.08 mm, diameter 9 mm - - - - - - - - - ->NAME ->VALUE - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 7.62 mm, diameter 16 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 7.62 mm, diameter 18 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 10.16 mm, diameter 20 mm - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 10.16 mm, diameter 22.5 mm - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 10.16 mm, diameter 25 mm - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 10.16 mm, diameter 30 mm - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 10.16 mm, diameter 35 mm - - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>Aluminum electrolytic capacitors</b> reflow soldering<p> -SMD (Chip) Standard 085 CS<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> wave soldering<p> -SMD (Chip) Standard 085 CS<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> reflow soldering<p> -SMD (Chip) Standard 085 CS<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> wave soldering<p> -SMD (Chip) Standard 085 CS<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> reflow soldering<p> -SMD (Chip) Long Life 139 CLL<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> wave soldering<p> -SMD (Chip) Long Life 139 CLL<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> reflow soldering<p> -SMD (Chip) Long Life 139 CLL<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors</b> wave soldering<p> -SMD (Chip) Long Life 139 CLL<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Aluminum electrolytic capacitors SMD (Chip)</b><p> -Long life base plate, High temperature 140 CLH<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors SMD (Chip)</b><p> -Long life base plate, High temperature 140 CLH<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors SMD (Chip)</b><p> -Long life base plate, High temperature 140 CLH<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors SMD (Chip)</b><p> -Long life base plate, very low impedance 150 CLZ<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors SMD (Chip)</b><p> -Long life base plate, very low impedance 150 CLZ<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors SMD (Chip)</b><p> -Long life base plate, very low impedance 150 CLZ<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -SMD (Chip) Long Life Vertical 153 CLV<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -High Temperature solid electrolytic SMD 175 TMP<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Aluminum electrolytic capacitors</b><p> -High Temperature solid electrolytic SMD 175 TMP<p> -http://www.bccomponents.com/ - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Chip Capacitor Type KEMET A / EIA 3216-18 reflow solder</b><p>KEMET S / EIA 3216-12 - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET A / EIA 3216-18 Wave solder</b><p> -KEMET S / EIA 3216-12 - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET B / EIA 3528-21 reflow solder</b><p>KEMET T / EIA 3528-12 - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET B / EIA 3528-21 Wave solder</b><p> -KEMET T / EIA 3528-12 - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET C / EIA 6032-28 reflow solder</b><p>KEMET U / EIA 6032-15 - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET C / EIA 6032-28 Wafe solder</b><p> -KEMET U / EIA 6032-15 - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET D / EIA 7343-21</b><p>KEMET V / EIA 7343-20, KEMET X / EIA 7343-43 reflow solder - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET D / EIA 7343-21</b><p> -KEMET V / EIA 7343-20, KEMET X / EIA 7343-43 Wafe solder - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET E / EIA 7260-38 reflow solder</b> - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET E / EIA 7260-38 Wafe solder</b> - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET R/EIA 2012-12 reflow solder</b> - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor Type KEMET R/EIA 2012-12 Wafe solder</b> - - - - - - ->NAME ->VALUE - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package A</b> - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package B</b> - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package C</b> - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package D</b> - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package E</b> - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package F</b> - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - -<b>Panasonic Aluminium Electrolytic Capacitor VS-Serie Package G</b> - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -diameter 5 mm, grid 2.54 mm - - - - - - - - - - - - - - - - - ->NAME ->VALUE -TT - - - - - - - -<b>ELECTROLYTIC CAPACITOR</b><p> -grid 2.54 mm, diameter 6 mm - - - - - - - - - - - - ->NAME ->VALUE - - - -<b>Chip Capacitor </b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194, B 45 197, B 45 198<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor</b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor</b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor </b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194, B 45 197, B 45 198<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor </b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194, B 45 197, B 45 198<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor </b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194, B 45 197, B 45 198<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>Chip Capacitor </b> Polar tantalum capacitors with solid electrolyte<p> -Siemens Matsushita Components B 45 194, B 45 197, B 45 198<br> -Source: www.farnell.com/datasheets/247.pdf - - - - - - ->NAME ->VALUE - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b><p> -Source: e_os_all.pdf - - - - ->NAME ->VALUE - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>SANYO OSCON Capacitor</b> SMD type with conductive polymer electrolyte<p> -Source: e_os_all.pdf - - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>ALUMINUM ELECTROLYTIC CAPACITORS</b> UD Series 10 x 10 mm<p> -Source: http://products.nichicon.co.jp/en/pdf/XJA043/e-ud.pdf - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>ALUMINUM ELECTROLYTIC CAPACITORS</b> UD Series 4 x 5.8 mm<p> -Source: http://products.nichicon.co.jp/en/pdf/XJA043/e-ud.pdf - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>ALUMINUM ELECTROLYTIC CAPACITORS</b> UD Series 5 x 5.8 mm<p> -Source: http://products.nichicon.co.jp/en/pdf/XJA043/e-ud.pdf - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>ALUMINUM ELECTROLYTIC CAPACITORS</b> UD Series 6.3 x 5.8 mm<p> -Source: http://products.nichicon.co.jp/en/pdf/XJA043/e-ud.pdf - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>ALUMINUM ELECTROLYTIC CAPACITORS</b> UD Series 6.3 x 7.7 mm<p> -Source: http://products.nichicon.co.jp/en/pdf/XJA043/e-ud.pdf - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>ALUMINUM ELECTROLYTIC CAPACITORS</b> UD Series 8 x 10 mm<p> -Source: http://products.nichicon.co.jp/en/pdf/XJA043/e-ud.pdf - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b><p> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>CAPACITOR</b><p> -grid 2.5 mm, outline 2.4 x 4.4 mm - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 mm, outline 2.5 x 5 mm - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 mm, outline 3 x 5 mm - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 mm, outline 4 x 5 mm - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 mm, outline 5 x 5 mm - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 mm, outline 6 x 5 mm - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 mm + 5 mm, outline 2.4 x 7 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 + 5 mm, outline 2.5 x 7.5 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 + 5 mm, outline 3.5 x 7.5 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 + 5 mm, outline 4.5 x 7.5 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 2.5 + 5 mm, outline 5.5 x 7.5 mm - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 2.4 x 4.4 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 2.5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 4.5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 3 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 5.5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 7.5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -Horizontal, grid 5 mm, outline 7.5 x 7.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>CAPACITOR</b><p> -grid 7.5 mm, outline 3.2 x 10.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 7.5 mm, outline 4.2 x 10.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 7.5 mm, outline 5.2 x 10.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 10.2 mm, outline 4.3 x 13.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 10.2 mm, outline 5.4 x 13.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 10.2 mm, outline 6.4 x 13.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 10.2 mm + 15.2 mm, outline 6.2 x 18.4 mm - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 15 mm, outline 5.4 x 18.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 15 mm, outline 6.4 x 18.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 15 mm, outline 7.2 x 18.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 15 mm, outline 8.4 x 18.3 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 15 mm, outline 9.1 x 18.2 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 22.5 mm, outline 6.2 x 26.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 22.5 mm, outline 7.4 x 26.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 22.5 mm, outline 8.7 x 26.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 22.5 mm, outline 10.8 x 26.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 22.5 mm, outline 11.3 x 26.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 27.5 mm, outline 9.3 x 31.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 27.5 mm, outline 11.3 x 31.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 27.5 mm, outline 13.4 x 31.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 27.5 mm, outline 20.5 x 31.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 32.5 mm, outline 13.7 x 37.4 mm - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 32.5 mm, outline 16.2 x 37.4 mm - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 32.5 mm, outline 18.2 x 37.4 mm - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 37.5 mm, outline 19.2 x 41.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 37.5 mm, outline 20.3 x 41.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 5 mm, outline 3.5 x 7.5 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 37.5 mm, outline 15.5 x 41.8 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 7.5 mm, outline 6.3 x 10.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 27.5 mm, outline 15.4 x 31.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>CAPACITOR</b><p> -grid 27.5 mm, outline 17.3 x 31.6 mm - - - - - - - - - - - - - - - - ->NAME ->VALUE - - -<b>Ceramic Chip Capacitor KEMET 0204 reflow solder</b><p> -Metric Code Size 1005 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 0603 reflow solder</b><p> -Metric Code Size 1608 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 0805 reflow solder</b><p> -Metric Code Size 2012 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 1206 reflow solder</b><p> -Metric Code Size 3216 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 1210 reflow solder</b><p> -Metric Code Size 3225 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 1812 reflow solder</b><p> -Metric Code Size 4532 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 1825 reflow solder</b><p> -Metric Code Size 4564 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 2220 reflow solder</b><p>Metric Code Size 5650 - - - - ->NAME ->VALUE - - - - -<b>Ceramic Chip Capacitor KEMET 2225 reflow solder</b><p>Metric Code Size 5664 - - - - ->NAME ->VALUE - - - - -<b> </b><p> -Source: http://www.vishay.com/docs/10129/hpc0201a.pdf - - ->NAME ->VALUE - - - -Source: http://www.avxcorp.com/docs/catalogs/cx5r.pdf - - ->NAME ->VALUE - - - - - - -<b>CAPACITOR</b><p> -Source: AVX .. aphvc.pdf - - - - ->NAME ->VALUE - - - - -<b>CAPACITOR</b><p> -Source: AVX .. aphvc.pdf - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> wave soldering<p> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -wave soldering - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -Source: http://download.siliconexpert.com/pdfs/2005/02/24/Semi_Ap/2/VSH/Resistor/dcrcwfre.pdf - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b> wave soldering<p> -Source: http://download.siliconexpert.com/pdfs/2005/02/24/Semi_Ap/2/VSH/Resistor/dcrcwfre.pdf - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.10 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.25 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.12 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.10 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.25 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.25 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.12 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -MELF 0.25 W - - - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -type 0204, grid 5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0204, grid 7.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0204, grid 2.5 mm - - - - - - ->NAME ->VALUE - - -<b>RESISTOR</b><p> -type 0207, grid 10 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0207, grid 12 mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>RESISTOR</b><p> -type 0207, grid 15mm - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>RESISTOR</b><p> -type 0207, grid 2.5 mm - - - - - - - ->NAME ->VALUE - - -<b>RESISTOR</b><p> -type 0207, grid 5 mm - - - - - - - ->NAME ->VALUE - - -<b>RESISTOR</b><p> -type 0207, grid 7.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0309, grid 10mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0309, grid 12.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0309, grid 2.5 mm - - - - - - ->NAME ->VALUE - - - - - -<b>RESISTOR</b><p> -type 0411, grid 12.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0411, grid 15 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0411, grid 3.81 mm - - - - - - ->NAME ->VALUE - - - -<b>RESISTOR</b><p> -type 0414, grid 15 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0414, grid 5 mm - - - - - - ->NAME ->VALUE - - - -<b>RESISTOR</b><p> -type 0617, grid 17.5 mm - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0617, grid 22.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0617, grid 5 mm - - - - - - ->NAME ->VALUE - - - -<b>RESISTOR</b><p> -type 0922, grid 22.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>RESISTOR</b><p> -type 0613, grid 5 mm - - - - - - ->NAME ->VALUE - - - -<b>RESISTOR</b><p> -type 0613, grid 15 mm - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type 0817, grid 22.5 mm - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -0817 - - - - -<b>RESISTOR</b><p> -type 0817, grid 6.35 mm - - - - - - ->NAME ->VALUE -0817 - - - -<b>RESISTOR</b><p> -type V234, grid 12.5 mm - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type V235, grid 17.78 mm - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>RESISTOR</b><p> -type V526-0, grid 2.5 mm - - - - - - - - - - ->NAME ->VALUE - - -<b>CECC Size RC2211</b> Reflow Soldering<p> -source Beyschlag - - - - - - ->NAME ->VALUE - - -<b>CECC Size RC2211</b> Wave Soldering<p> -source Beyschlag - - - - - - ->NAME ->VALUE - - -<b>CECC Size RC3715</b> Reflow Soldering<p> -source Beyschlag - - - - - - - - ->NAME ->VALUE - - -<b>CECC Size RC3715</b> Wave Soldering<p> -source Beyschlag - - - - - - - - ->NAME ->VALUE - - -<b>CECC Size RC6123</b> Reflow Soldering<p> -source Beyschlag - - - - - - - - ->NAME ->VALUE - - -<b>CECC Size RC6123</b> Wave Soldering<p> -source Beyschlag - - - - - - - - ->NAME ->VALUE - - -<b>RESISTOR</b><p> -type 0922, grid 7.5 mm - - - - - - ->NAME ->VALUE -0922 - - - -<b>RESISTOR</b><p> -type RDH, grid 15 mm - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE -RDH - - - - -<b>Mini MELF 0102 Axial</b> - - - - ->NAME ->VALUE - - - -<b>RESISTOR</b> chip<p> -Source: http://www.vishay.com/docs/20008/dcrcw.pdf - - ->NAME ->VALUE - - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RBR52<br> -Source: VISHAY .. vta56.pdf - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RBR53<br> -Source: VISHAY .. vta56.pdf - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RBR54<br> -Source: VISHAY .. vta56.pdf - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RBR55<br> -Source: VISHAY .. vta56.pdf - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RBR56<br> -Source: VISHAY .. vta56.pdf - - - - - - - - - - ->NAME ->VALUE - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RNC55<br> -Source: VISHAY .. vta56.pdf - - - - - - - - ->NAME ->VALUE - - - - -<b>Bulk Metal® Foil Technology</b>, Tubular Axial Lead Resistors, Meets or Exceeds MIL-R-39005 Requirements<p> -MIL SIZE RNC60<br> -Source: VISHAY .. vta56.pdf - - - - - - - - ->NAME ->VALUE - - - - -<b>Package 4527</b><p> -Source: http://www.vishay.com/docs/31059/wsrhigh.pdf - - - - - - ->NAME ->VALUE - - -<b>Wirewound Resistors, Precision Power</b><p> -Source: VISHAY wscwsn.pdf - - - - - - - - - - ->NAME ->VALUE - - -<b>Wirewound Resistors, Precision Power</b><p> -Source: VISHAY wscwsn.pdf - - - - - - ->NAME ->VALUE - - -<b>Wirewound Resistors, Precision Power</b><p> -Source: VISHAY wscwsn.pdf - - - - - - - - - - ->NAME ->VALUE - - -<b>Wirewound Resistors, Precision Power</b><p> -Source: VISHAY wscwsn.pdf - - - - - - - - - - ->NAME ->VALUE - - -<b>Wirewound Resistors, Precision Power</b><p> -Source: VISHAY wscwsn.pdf - - - - - - ->NAME ->VALUE - - -<b>Wirewound Resistors, Precision Power</b><p> -Source: VISHAY wscwsn.pdf - - - - - - ->NAME ->VALUE - - -<b>CRCW1218 Thick Film, Rectangular Chip Resistors</b><p> -Source: http://www.vishay.com .. dcrcw.pdf - - - - ->NAME ->VALUE - - - - -<b>Chip Monolithic Ceramic Capacitors</b> Medium Voltage High Capacitance for General Use<p> -Source: http://www.murata.com .. GRM43DR72E224KW01.pdf - - - - - - ->NAME ->VALUE - - - - - - - - - - ->NAME -+ ->VALUE - - - - - - - ->NAME ->VALUE - - - - - - - - - - ->NAME ->VALUE - - - - - - -<B>POLARIZED CAPACITOR</B>, European symbol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<B>CAPACITOR</B>, European symbol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<B>RESISTOR</B>, European symbol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<h3>SparkFun Electronics' preferred foot prints</h3> -In this library you'll find all manner of digital ICs- microcontrollers, memory chips, logic chips, FPGAs, etc.<br><br> -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. -<br><br> -<b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8-digit, 8-segment LED display driver, serial input - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<b>Pin Header Connectors</b><p> -<author>Created by librarian@cadsoft.de</author> - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - -<b>PIN HEADER</b> - - - - - - - - - - - ->NAME ->VALUE - - - - - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - ->NAME ->VALUE - - - - - - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - - - - - - - - - - -<b>PIN HEADER</b> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<h3>SparkFun Electronics' preferred foot prints</h3> -In this library you'll find all manner of display devices- LED displays, LCD displays, etc.<br><br> -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. -<br><br> -<b>Licensing:</b> CC v3.0 Share-Alike You are welcome to use this library for commercial purposes. For attribution, we ask that when you begin to sell your device using our footprint, you email us with a link to the product being sold. We want bragging rights that we helped (in a very small part) to create your 8th world wonder. We would like the opportunity to feature your device on our homepage. - - -This is a package for the 4-digit 7-segment RED LED from Young Sun. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->NAME ->VALUE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -A -B -C -D -E -F -G -DP -A -B -C -D -E -F -G -DP -A -B -C -D -E -F -G -DP -A -B -C -D -E -F -G -DP -COL -APOS ->Name ->Value - - - - - - - - - - - - - - - - - - - - -This is a part for the 4-Digit 7-segment LEDs from Young Sun. Different from the Digikey LEDs, all 16 pins are used. -The LONGPADS Variant is used for a test jig, but you may like it because there is more pad to solder to. If you are concerned about routing space, the standard works just fine though. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Maxim 7219 with 4 digit COMMON ANODE display -Work only with adjusted Ledcontrol.h library - -2014-04-16 Erik de Ruiter, The Netherlands - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Since Version 6.2.2 text objects can contain more than one line, -which will not be processed correctly with this version. - - - diff --git a/README.md b/README.md index 976495b..99fdcdb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - DCF77 Analyzer / Clock + DCF77 Analyzer/Clock v2.0 This sketch is free software; you can redistribute it and/or @@ -14,19 +14,12 @@ You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - - The C++ code is far from optimized because I myself am an Arduino and C++ novice. + + + This C++ code is far from optimized because I myself am an Arduino and C++ novice. But even after learning some more now, I want to keep the code simpel and readable. That is why I maybe over-documented the code to help understand what's going on. - HELP WANTED: - I'm not experienced enough to get to the point where the second-tick - of the Real Time Clock display is exactly in sync with the DCF pulse. - Now there's a small time lag. - If you have a solution, please let me know! - - Erik de Ruiter 2014-2016 @@ -34,9 +27,20 @@ May 2014 First version March 2016 - big overhaul... + July 2016 - Start with building the v2.0 Clock and adapting the sketch + Version 2.0 - August 2016 + - This sketch is adapted for my 2.0 version of the DCF/Analyzer Clock. It used the Arduino MEGA and the DCF Superfilter + by default and to drive the many seperate LED's I now use the ports of an Arduino Mega instead of a Maxim 7219 chip. + This is because driving LED's with many different Voltage/Current specs is problematic with the Maxim chip. + Lighting additional LED's for expample will influence (dim) the LED's already on. As I'm not an electronics engineer + my only solution was to use the extra ports of the Arduino Mega. Ofcourse you can use transistors or extra chips to + drive the LED's but for me this was the obvious solution. + - Removed all the code to use Maxim 72xx chips with Common Anode displays - Version 1.72 + + + Version 1.72 - May 2016 - Option: Use a cheap Ebay PIR detector to shut off selectable display's when no activity is detected. The switch off delay can be set by the user to prevent the display shutting of if a person is not moving but the display should be on. @@ -77,8 +81,8 @@ can now be configured somewhat easier by editing two variables POWERSAVINGONTIME and POWERSAVINGOFFTIME. - changed some variable names: - Maxim instances 'lc' and 'lc1' are now MaximCC and MaximCA - - Display description MaximDcfTime is now MaximTemperature - - DCF77SOUNDPIN is now BUZZERPIN + - Display description MaximDcfTime is now DisplayTempWeek + - DCF77SOUNDPIN is now BUZZERSWITCHPIN - LED/Display test after power up now build in @@ -128,7 +132,7 @@ The only thing is you can't see it... ;) DCF beep: - With a switch, connected to pin BUZZERPIN, you can hear the received DCF bits coming in. + With a switch, connected to pin BUZZERSWITCHPIN, you can hear the received DCF bits coming in. The tone duration is equivalent to pulse width of the DCF bits, so either 100 or 200 ms. Miscelleanous: diff --git a/Schematic/DCF77_Analyzer_Clock_v2_0_Schematic.pdf b/Schematic/DCF77_Analyzer_Clock_v2_0_Schematic.pdf new file mode 100644 index 0000000..d0fc194 Binary files /dev/null and b/Schematic/DCF77_Analyzer_Clock_v2_0_Schematic.pdf differ