├── Arduino ├── README.md ├── bpf_tester │ └── bpf_tester.ino ├── license.txt ├── mcp23008 │ ├── mcp23008.cpp │ ├── mcp23008.h │ └── mcp23008.ino └── pu2clr_autobpf_driver │ ├── AutoBPF.cpp │ ├── AutoBPF.h │ └── pu2clr_autobpf_driver.ino ├── README.md ├── _config.yml ├── _includes ├── video01.html └── video02.html ├── extras ├── auto_band_pass_filter.sch ├── custom_band_pass_filter_calc.s#1 ├── custom_band_pass_filter_calc.s#2 ├── custom_band_pass_filter_calc.s#3 └── custom_band_pass_filter_calc.sch └── images ├── F00_A.png ├── F01_A.png ├── F01_B.png ├── F02_A.png ├── F02_B.png ├── inductor_calculator_site.png ├── l_calculation_totoid_formula.png ├── lc_basic_bpf_circuit.png ├── lc_filter_formula.png └── schematic_01.png /Arduino/README.md: -------------------------------------------------------------------------------- 1 | # Arduino sketches 2 | 3 | 4 | # Bandpass filter tester (sketch bpf_tester.ino) 5 | 6 | You can use the __bpf_tester.ino__ sketch to check your circuit. 7 | This sketch is also useful to guide the user how to control the auto bandpass filter handleing teh Auduino pins direct. 8 | 9 | 10 | # Bandpass filter deiver (folder pu2clr_autobpf_driver) 11 | 12 | It is a small Arduino library to make easier the auto bandpass filter to be used with your Arduino solution. In this folder you will find the AutoBPF library (.h and .cpp files) and the sketch pu2clr_autobpf_driver.ino. The pu2clr_autobpf_driver.ino sketch is useful to check your BPF circuit; to test the AutoBPF library; and to guide the user 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Arduino/bpf_tester/bpf_tester.ino: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | Bandpass filter circuit tester. 4 | 5 | This sketch uses the Arduino IDE serial monitor to check the switches. 6 | You can select the bandpass filter by using the keyboard and typing 0, 1, 2 or 3. 7 | 8 | By Ricardo Lima Caratti, Jul 2020. 9 | */ 10 | 11 | #define S0_PIN 4 // FST3253 or SN74CBT3253D S0 pin 12 | #define S1_PIN 5 // FST3253 or SN74CBT3253D S1 pin 13 | 14 | void setup() 15 | { 16 | Serial.begin(9600); 17 | while (!Serial) {}; 18 | 19 | pinMode(S0_PIN, OUTPUT); 20 | pinMode(S1_PIN, OUTPUT); 21 | 22 | // Select the BPF 0 23 | digitalWrite(S0_PIN, LOW); 24 | digitalWrite(S1_PIN, LOW); 25 | 26 | showHelp(); 27 | 28 | } 29 | 30 | void showHelp() { 31 | Serial.print("\n******************************"); 32 | Serial.print("\nBandpass filter controller\n"); 33 | Serial.print("\nType 0, 1, 2 or 3 to select the bandpass filter"); 34 | } 35 | 36 | void loop() 37 | { 38 | uint8_t bpf; 39 | if (Serial.available() > 0) { 40 | char key = Serial.read(); 41 | if (key >= '0' && key <= '3' ) { 42 | bpf = key - '0'; // Converts char digit number to integer value. 43 | Serial.print("\nYou selected the BPF "); 44 | Serial.print(bpf); 45 | digitalWrite(S0_PIN, (bpf & 1)); // Sets the S0 HIGH or LOW 46 | digitalWrite(S1_PIN, (bpf & 2)); // Sets the S1 HIGH or LOW 47 | Serial.print("\n\nCheck the system (Circuit)...\n\n"); 48 | delay(5000); 49 | showHelp(); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Arduino/license.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Ricardo Lima Caratti 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ARRANTIES 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. 10 | 11 | -------------------------------------------------------------------------------- /Arduino/mcp23008/mcp23008.cpp: -------------------------------------------------------------------------------- 1 | #include "mcp23008.h" 2 | 3 | #include 4 | 5 | /** 6 | * @brief Starts the MCP23008 7 | * 8 | * @param i2c I2C address (0x20 ~ 0x27) - default 0x20 9 | * @param io If GPIO_OUTPUT (0), all GPIO PINS will configured to output 10 | * If GPIO_INPUT (255), all GPIO PINS will configured to input 11 | * You also can use a bitmask to configure some pins for input and other pins for output. 12 | */ 13 | void MCP::setup(uint8_t i2c, uint8_t io) { 14 | 15 | Wire.begin(); //creates a Wire object 16 | 17 | this->i2cAddress = i2c; 18 | this->setRegister(REG_IODIR, io); // All GPIO pins are configured to input (1) or output (0) 19 | this->setGPIOS(0); // // Sets all port to 0 20 | } 21 | 22 | /** 23 | * @brief Gets the corrent register information. 24 | * 25 | * @param reg (0x00 ~ 0xA) see MCP23008 registers documentation 26 | * @return uint8_t current register value 27 | */ 28 | uint8_t MCP::getRegister(uint8_t reg) { 29 | Wire.beginTransmission(this->i2cAddress); 30 | Wire.write(reg); 31 | Wire.endTransmission(); 32 | Wire.requestFrom(this->i2cAddress, 1); // reading 0x0A register 33 | return Wire.read(); 34 | } 35 | 36 | /** 37 | * @brief Sets a value to a given register 38 | * 39 | * @param reg (0x00 ~ 0xA) see MCP23008 registers documentation 40 | * @param value value (8 bits) 41 | */ 42 | void MCP::setRegister(uint8_t reg, uint8_t value) { 43 | Wire.beginTransmission(this->i2cAddress); 44 | Wire.write(reg); 45 | Wire.write(value); 46 | Wire.endTransmission(); //ends communication with the device 47 | } 48 | 49 | /** 50 | * @brief Sets a value to the GPIO Register 51 | * 52 | * @param value (8 bits) 53 | */ 54 | void MCP::setGPIOS(uint8_t value) { 55 | this->gpios = value; 56 | setRegister(REG_GPIO, value); 57 | Wire.beginTransmission(i2cAddress); 58 | } 59 | 60 | 61 | /** 62 | * @brief Turns a given GPIO port on (high level) 63 | * 64 | * @param gpio the GPIO/PIN number (0-7) 65 | */ 66 | void MCP::turnGpioOn(uint8_t gpio) 67 | { 68 | uint8_t b = (1 << gpio); 69 | // Checks if it is already ON (avoid trafic on I2C) 70 | if ( (bool)(gpios & b) || gpio > 7 ) 71 | return; 72 | gpios = gpios | b; 73 | setGPIOS(gpios); 74 | } 75 | 76 | /** 77 | * @brief Turns a given GPIO port off (low level) 78 | * 79 | * @param gpio the GPIO/PIN number (0-7) 80 | */ 81 | void MCP::turnGpioOff(uint8_t gpio) 82 | { 83 | uint8_t b = (1 << gpio); 84 | // Checks if it is already OFF 85 | if ((gpios & b) == 0 || gpio > 7) 86 | return; 87 | gpios = gpios ^ b; 88 | setGPIOS(gpios); 89 | } 90 | 91 | /** 92 | * @brief Turns intenal pull up resistor ON to a given GPIO PIN (high level) 93 | * 94 | * @param gpio the GPIO/PIN number (0-7) 95 | */ 96 | void MCP::pullUpGpioOn(uint8_t gpio) 97 | { 98 | // TODO 99 | uint8_t b = (1 << gpio); 100 | uint8_t gppu; 101 | 102 | if (gpio > 7) 103 | return; 104 | 105 | gppu |= 1 << gpio; 106 | 107 | setRegister(REG_GPPU, gppu); 108 | } 109 | 110 | /** 111 | * @brief Turns intenal pull up resistor OFF to a given GPIO PIN (low level) 112 | * 113 | * @param gpio the GPIO/PIN number (0-7) 114 | */ 115 | void MCP::pullUpGpioOff(uint8_t gpio) 116 | { 117 | // TODO 118 | uint8_t b = (1 << gpio); 119 | uint8_t gppu; 120 | 121 | if (gpio > 7) 122 | return; 123 | 124 | gppu &= ~(1 << gpio); 125 | 126 | setRegister(REG_GPPU, gppu); 127 | } 128 | -------------------------------------------------------------------------------- /Arduino/mcp23008/mcp23008.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file mcp23008.h 3 | * 4 | * This library was built based on the Datasheet "MCP23008/MCP23S08 8-Bit I/O Expander with Serial Interface" from Microchip 5 | * 6 | * @author Ricardo LIma Caratti (pu2clr@gmail.com) 7 | * @brief It is a Library to control the MCP23008 device. 8 | * @version 1.0.0 9 | * @date 2020-08-07 10 | * 11 | * This library can be freely distributed using the MIT Free Software model. 12 | * 13 | * @copyright Copyright (c) 2020 Ricardo Lima Caratti 14 | */ 15 | 16 | #include 17 | 18 | // registers 19 | #define REG_IODIR 0x00 //!< Controls the direction of the data I/O. When a bit is set, the corresponding pin becomes an input. When a bit is clear, the corresponding pin becomes an output. 20 | #define REG_IPOL 0x01 //!< The IPOL register allows the user to configure thepolarity on the corresponding GPIO port bits. 21 | #define REG_GPINTEN 0x02 //!< The GPINTEN register controls the interrupt-on-change feature for each pin. 22 | #define REG_DEFVAL 0x03 //!< The default comparison value is configured in the DEFVAL register. 23 | #define REG_INTCON 0x04 //!< The INTCON register controls how the associated pin value is compared for the interrupt-on-change feature 24 | #define REG_IOCON 0x05 //!< The IOCON register contains several bits for configuring the device 25 | #define REG_GPPU 0x06 //!< The GPPU register controls the pull-up resistors for the port pins. 26 | #define REG_INTF 0x07 //!< The INTF register reflects the interrupt condition on the port pins of any pin that is enabled for interrupts via the GPINTEN register. 27 | #define REG_INTCAP 0x08 //!< The INTCAP register captures the GPIO port value at the time the interrupt occurred. 28 | #define REG_GPIO 0x09 //!< The GPIO register reflects the value on the port. 29 | #define REG_OLAT 0x0A //!< The OLAT register provides access to the output latches. 30 | 31 | #define GPIO_INPUT 0xFF 32 | #define GPIO_OUTPUT 0x00 33 | 34 | 35 | class MCP { 36 | 37 | protected: 38 | 39 | uint8_t i2cAddress = 0x20; // Default i2c address 40 | uint8_t gpios = 0; // REG_GPIO shadow register 41 | 42 | public: 43 | void setup(uint8_t i2c = 0x20, uint8_t io = GPIO_OUTPUT); 44 | void setGPIOS(uint8_t value); 45 | uint8_t getRegister(uint8_t reg); 46 | void setRegister(uint8_t reg, uint8_t value); 47 | void turnGpioOn(uint8_t gpio); 48 | void turnGpioOff(uint8_t gpio); 49 | void pullUpGpioOn(uint8_t gpio); 50 | void pullUpGpioOff(uint8_t gpio); 51 | 52 | /** 53 | * @brief Return the current MCP GPIO pin levels 54 | * 55 | * @return uint8_t 56 | */ 57 | inline uint8_t getGPIOS() { return this->gpios; }; 58 | 59 | }; 60 | -------------------------------------------------------------------------------- /Arduino/mcp23008/mcp23008.ino: -------------------------------------------------------------------------------- 1 | 2 | #include "mcp23008.h" 3 | 4 | 5 | char sBuffer[80]; 6 | 7 | MCP mcp; 8 | 9 | 10 | 11 | void setup() { 12 | 13 | Serial.begin(9600); // The baudrate of Serial monitor is set in 9600 14 | while (!Serial); // Waiting for Serial Monitor 15 | 16 | mcp.setup(0x20); 17 | mcp.turnGpioOn(1); 18 | mcp.turnGpioOn(5); 19 | 20 | showGpios(); 21 | delay(2000); 22 | 23 | mcp.turnGpioOff(5); 24 | 25 | showGpios(); 26 | 27 | } 28 | 29 | void showGpios() { 30 | Serial.println("\n*************\n"); 31 | sprintf(sBuffer,"\nGPIOS: %d - %d\n", mcp.getGPIOS(), mcp.getRegister(REG_GPIO)) ; 32 | Serial.print(sBuffer); 33 | Serial.println(mcp.getGPIOS(),BIN); 34 | Serial.println(mcp.getRegister(REG_GPIO),BIN); 35 | } 36 | 37 | void loop() { 38 | 39 | mcp.turnGpioOn(1); 40 | mcp.turnGpioOn(5); 41 | mcp.turnGpioOn(7); 42 | showGpios(); 43 | delay(2000); 44 | mcp.turnGpioOff(5); 45 | delay(1000); 46 | mcp.turnGpioOff(1); 47 | delay(1000); 48 | mcp.turnGpioOff(7); 49 | showGpios(); 50 | delay(1000); 51 | mcp.turnGpioOn(1); 52 | delay(500); 53 | mcp.turnGpioOn(5); 54 | delay(500); 55 | mcp.turnGpioOn(7); 56 | showGpios(); 57 | delay(1000); 58 | mcp.turnGpioOff(1); 59 | mcp.turnGpioOff(5); 60 | mcp.turnGpioOff(7); 61 | showGpios(); 62 | delay(2000); 63 | } 64 | -------------------------------------------------------------------------------- /Arduino/pu2clr_autobpf_driver/AutoBPF.cpp: -------------------------------------------------------------------------------- 1 | #include "AutoBPF.h" 2 | 3 | 4 | /** 5 | * @brief Configures the Arduino pins used to control the bandpass filter circuit 6 | * 7 | * @param pin_s0 Audiono pin connected to the input s0 8 | * @param pin_s1 Audiono pin connected to the input s1 9 | */ 10 | void AutoBPF::setup(uint8_t pin_s0, uint8_t pin_s1) { 11 | this->s0 = pin_s0; 12 | this->s1 = pin_s1; 13 | pinMode(this->s0, OUTPUT); 14 | pinMode(this->s1, OUTPUT); 15 | } 16 | 17 | /** 18 | * @brief Sets the bandpass filter 19 | * @details Selects the BPF 20 | * 21 | * @param filter the valid values are 0,1,2 and 3. 22 | */ 23 | void AutoBPF::setFilter(uint8_t filter) { 24 | if (filter < 4) { 25 | digitalWrite(this->s0, (filter & 1)); // Sets the S0 HIGH or LOW 26 | digitalWrite(this->s1, (filter & 2)); // Sets the S1 HIGH or LOW 27 | this->currentFilter = filter; 28 | } 29 | }; 30 | 31 | /** 32 | * @brief Switches to the next BPF 33 | * @details if the current filter is the last (filter 3), the first filter will be select (filter 0). 34 | */ 35 | void AutoBPF::setNext() { 36 | 37 | if (this->currentFilter == 3) 38 | this->currentFilter = 0; 39 | else 40 | this->currentFilter++; 41 | 42 | this->setFilter(currentFilter); 43 | }; 44 | 45 | /** 46 | * @brief Switches to the previous BPF 47 | * @details if the current filter is the first (filter 0), the last filter will be select (filter 3). 48 | */ 49 | void AutoBPF::setPrevious() { 50 | if (this->currentFilter == 0) 51 | this->currentFilter = 3; 52 | else 53 | this->currentFilter--; 54 | 55 | this->setFilter(currentFilter); 56 | }; 57 | -------------------------------------------------------------------------------- /Arduino/pu2clr_autobpf_driver/AutoBPF.h: -------------------------------------------------------------------------------- 1 | /** 2 | * @file AutoBPF.h 3 | * @author Ricardo LIma Caratti (pu2clr@gmail.com) 4 | * @brief It is an Arduino Library to control the Auto Bandpass filter 5 | * @see Band Pass Filter circuit on https://github.com/pu2clr/auto_bpf_arduino 6 | * @version 1.0.1 7 | * @date 2020-08-07 8 | * 9 | * This library can be freely distributed using the MIT Free Software model. 10 | * 11 | * @copyright Copyright (c) 2020 Ricardo Lima Caratti 12 | */ 13 | 14 | #include 15 | 16 | /** 17 | * @brief Auto banpass filter class (AutoBPF) 18 | * @details This class implements the functions to help you to control the Bandpass filter circuit. 19 | * @details to know more about the Auto bandpass filter see: https://github.com/pu2clr/auto_bpf_arduino 20 | * 21 | */ 22 | class AutoBPF { 23 | 24 | protected: 25 | 26 | uint8_t s0; 27 | uint8_t s1; 28 | 29 | uint8_t currentFilter = 0; 30 | 31 | public: 32 | 33 | void setup(uint8_t pin_s0, uint8_t pin_s1); 34 | void setFilter(uint8_t filter); 35 | 36 | /** 37 | * @brief Returns the current bandpass filter 38 | * @details return a number between 0 and 3 corresponding the filter selected 39 | * @return uint8_t return 0, 1, 2 or 3 40 | */ 41 | inline uint8_t getCurrentFilter() { return currentFilter;}; 42 | 43 | /** 44 | * @brief Gets the s0 channel value 45 | * 46 | * @return uint8_t s0 value 47 | */ 48 | inline uint8_t getS0() { return currentFilter & 1; }; 49 | 50 | /** 51 | * @brief Gets the s1 channel value 52 | * 53 | * @return uint8_t s1 value 54 | */ 55 | inline uint8_t getS1() { return (currentFilter >> 1) & 1; }; 56 | 57 | 58 | void setNext(); 59 | void setPrevious(); 60 | 61 | }; 62 | -------------------------------------------------------------------------------- /Arduino/pu2clr_autobpf_driver/pu2clr_autobpf_driver.ino: -------------------------------------------------------------------------------- 1 | /** 2 | * This sketch is useful to check the circuit, to test the AutoBPF library and to guide the user. 3 | * See the Bandpass filter circuit on https://github.com/pu2clr/auto_bpf_arduino 4 | * 5 | * Author: Ricardo Lima Caratti 6 | */ 7 | #include "AutoBPF.h" // Bandpass filter library 8 | 9 | AutoBPF bpf; // Declare the Auto bandpass filter class. 10 | 11 | void setup() 12 | { 13 | Serial.begin(9600); 14 | 15 | showHelp(); 16 | 17 | bpf.setup(14, 15); // Selects Arduino pins 4 and 5 to control select the desired filter 18 | bpf.setFilter(0); // Setects the first filter (BPF). 19 | delay(10000); // 10s 20 | } 21 | 22 | void showHelp() { 23 | Serial.print("\n************************************"); 24 | Serial.print("\nBandpass filter controller\n"); 25 | Serial.print("\nType 0, 1, 2 or 3 to select the bandpass filter"); 26 | } 27 | 28 | void loop() 29 | { 30 | int aux; 31 | if (Serial.available() > 0) { 32 | char key = Serial.read(); 33 | if (key >= '0' && key <= '3') { 34 | aux = key - '0'; // Converts char digit number to integer value. 35 | 36 | Serial.print("\nYou have just selected the BPF "); 37 | Serial.print(aux); 38 | 39 | bpf.setFilter(aux); // Switching to the given PBF 40 | 41 | Serial.print("\nThe current BPF is "); // Get the current BPF from driver 42 | Serial.print(bpf.getCurrentFilter()); 43 | 44 | Serial.print("\nS0 is "); // Get the current BPF from driver 45 | Serial.print(bpf.getS0()); 46 | 47 | Serial.print("\nS1 is "); // Get the current BPF from driver 48 | Serial.print(bpf.getS1()); 49 | 50 | Serial.print("\n\nNow you can check the system (Circuit)...\n\n"); 51 | delay(500); 52 | showHelp(); 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Band Pass Filter controlled by Arduino](https://pu2clr.github.io/auto_bpf_arduino/) 2 | 3 | It is a HF band pass filter controlled by Arduino. It is designed for HF receivers. 4 | With this project, you can use a set of up to four HF bandpass filters that can be selected by Arduino. 5 | To do that you will need just two digital Arduino pins. 6 | 7 | This project includes a bandpass filter design based on [“Softrock Ensemble RX II (HF/LF) Auto Band Pass Filters“](http://www.wb5rvz.org/ensemble_rx_ii/index), an Arduino Library to control the filter, documentation and examples. 8 | 9 | Mr. Jim Regan, W0CHL, did a great job on auto bandpass filter. I recommend his design. Please, check Reagan's documentation on [https://github.com/JimReagans/Si4735-radio-PCB-s-and-bandpass-filter](https://github.com/JimReagans/Si4735-radio-PCB-s-and-bandpass-filter) 10 | 11 | 12 | All Arduino source code found here can be __freely distributed using the MIT Free Software model__. 13 | 14 | [Copyright (c) 2019 Ricardo Lima Caratti](https://pu2clr.github.io/auto_bpf_arduino/#mit-license). 15 | 16 | ## Be a member 17 | 18 | There is a __Facebook__ group called [__Si47XX for Radio Experimenters__](https://www.facebook.com/groups/532613604253401/) where the purpose is exchanging experiences with projects based on Silicon Labs SI47XX IC family. You will be welcome to the group [Si47XX for Radio Experimenters](https://www.facebook.com/groups/532613604253401/). 19 | 20 | 21 | ## Contents 22 | 23 | 1. [Preface](https://pu2clr.github.io/auto_bpf_arduino/#preface) 24 | 2. [Schematic](https://pu2clr.github.io/auto_bpf_arduino/schematic) 25 | 3. [Customizing LC bandpass filter L and C pairs calculation](https://pu2clr.github.io/auto_bpf_arduino/#customizing-lc-bandpass-filter-l-and-c-pairs-calculation) 26 | * [LC bandpass filter L and C pairs calculation](https://pu2clr.github.io/auto_bpf_arduino/#lc-bandpass-filter-l-and-c-pairs-calculation) 27 | * [Toroids and Inductor Formula](https://pu2clr.github.io/auto_bpf_arduino/#toroids-and-inductor-formula) 28 | 4. [Arduino Driver for Auto Band Pass filters](https://pu2clr.github.io/auto_bpf_arduino/#arduino-driver-for-auto-band-pass-filters) 29 | * Sketch setup 30 | * How to test your filter 31 | * [Source code](https://github.com/pu2clr/auto_bpf_arduino/tree/master/Arduino) 32 | 5. [Photos](https://pu2clr.github.io/auto_bpf_arduino/#photos) 33 | 6. [References](https://pu2clr.github.io/auto_bpf_arduino/#references) 34 | 35 | 36 | ## Preface 37 | 38 | Originally based on the [“Softrock Ensemble RX II (HF/LF) Auto Band Pass Filters“](http://www.wb5rvz.org/ensemble_rx_ii/index) by WB5RVZ, this project uses an Arduino controller instead an ATtiny85. I have developed an Arduino Library to control the Auto Band Pass filter device. You can see that on [Arduino/pu2clr_autobpf_driver](https://github.com/pu2clr/auto_bpf_arduino/tree/master/Arduino/pu2clr_autobpf_driver) folder. 39 | 40 | The RF input and output of the original filter has been modified to be easily attached to the SI4735, AKC6955, KT0915 and others DSP based receivers istead the [SoftRock Ensemble RX II device](http://www.wb5rvz.org/ensemble_rx_ii/index?projectId=16). 41 | 42 | 43 | The main idea of this project is to allow the same Arduino that controls a receiver based on the [SI473X](https://pu2clr.github.io/SI4735/), [AKC6955](https://pu2clr.github.io/AKC695X/), [KT0915](https://pu2clr.github.io/KT0915/) or [BK108X](https://pu2clr.github.io/BK108X/) devices select also the correct bandpass filter depending on the selected reception band. The Arduino sketch must have a band table with the appropriate filter information for the band. 44 | 45 | 46 | Mr. Jim Regan, W0CHL, did a great job on auto bandpass filter. I recommend his design. Please, check Reagan's documentation on [https://github.com/JimReagans/Si4735-radio-PCB-s-and-bandpass-filter](https://github.com/JimReagans/Si4735-radio-PCB-s-and-bandpass-filter). 47 | 48 | 49 | ![Ricardo's SI4732 receiver prototype 01](./images/F00_A.png) 50 | 51 | ### The videos below show an example of the Auto bandpass filter working. 52 | 53 | The two videos below were made using an Arduino Pro Mini 3.3V (8MHz) as the controller. 54 | 55 | 56 | #### The video below shows the test of the Auto bandpass filter cut frequencies 57 | 58 | [HF Auto Bandpass filter controlled by Arduino (first test)](https://youtu.be/M1PDRzVvAm0) 59 | 60 | {% include video01.html %} 61 | 62 |
63 | 64 | #### The video below shows the Auto bandpass filter working with an SI4732-A10 based receiver 65 | 66 | [HF auto bandpass filter controlled by Arduino (real test)](https://youtu.be/KuAmm0LjUGA) 67 | 68 | {% include video02.html %} 69 | 70 | 71 | 72 | 73 | 74 | ## MIT License 75 | 76 | Copyright (c) 2019 Ricardo Lima Caratti 77 | 78 | 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: 79 | 80 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 81 | 82 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ARRANTIES 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. 83 | 84 |
85 | 86 | 87 | 88 | 89 | # SCHEMATIC 90 | 91 | The schematic below uses two [FST3253](https://www.mouser.com/datasheet/2/149/FST3253-113358.pdf) or two [SN74CBT3253D](https://www.ti.com/lit/ds/symlink/sn74cbt3253.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&ts=1596797600884&ref_url=https%253A%252F%252Fbr.mouser.com%252F) device switches to select one of four bandpass filters. It shows a set of four band pass filters (T section bandpass filter setup). Two Arduino pins are used to select the right filter depending on frequency. 92 | 93 | 94 | ![Bandpass filter schematic](./images/schematic_01.png) 95 | 96 | 97 | 98 | * Filter 0 (1800KHz to 4MHz ) 99 | * L1 and L3: 4.6 uH; 35 turns; wire: #30; Toroid: T30-2(Red) 100 | * L2: 1.3uH; 24 Turns; wire #30; Toroid T30-2(Red) 101 | 102 | * Filter 1 (4MHz to 8MHz) 103 | * L4 and L6: 2.00 uH; 21 turns; wire: #30; Toroid: T30-2(Red) 104 | * L5: 0.46uH; 10 Turns; wire #30; Toroid T30-2(Red) 105 | 106 | * Filter 2 (8MHz to 16MHz) 107 | * L7 and L9: 1uH; 19 turns; wire #30; Toroid T25-6(Yellow) 108 | * L8: 0.27uH: 10 turns; wire #30; Toroid T25-6 c(Yellow) 109 | 110 | * Filter 3 (16MHz to 30MHz) 111 | * L10 and L12: 0.46uH: 13 turns; wire #30; Toroid T25-6 (Yellow) 112 | * L11: 0.13uH: 7 turns; wire #30; Toroid T25-6 (Yellow). 113 | 114 | 115 | ## Customizing LC bandpass filter L and C pairs calculation 116 | 117 | You can try other filters setup by calculating the components of each band pass filter. 118 | The basic circuit below represents a generic band pass filter used by this project. 119 | 120 | ![Generic LC Band Pass Filter Circuit](./images/lc_basic_bpf_circuit.png) 121 | 122 | 123 | ### LC bandpass filter L and C pairs calculation 124 | 125 | 126 | ![LC filter formula](./images/lc_filter_formula.png) 127 | 128 | 129 | #### Where: 130 | 131 | * LX1, LX2 and LX3 are the inductors (indutance in Henries) 132 | * CX1, CX2 and CX3 are the capacitors (capacitance in Farads) 133 | * fmax and fmin are cut off frequencies in Hertz 134 | * Zo is the characteristic impedance in ohms 135 | 136 | To check the most appropriate toroid for the inductor as well as the number of turns, see [Amidon iron powder toroids calculator](https://coil32.net/online-calculators/amidon-iron-powder-cores-calculator.html) 137 | 138 | You can find many tools to help you to calculate the values of the filter components on internet. The [Chebyshev Bandpass Filter Designer](https://www.changpuak.ch/electronics/chebyshev_bandpass.php), for example, can help you to find the values of the elements (capacitances and inductances) of each filter you want to setup. You will find more information below. 139 | 140 | 141 | ### Toroids and Inductor Formula 142 | 143 | You can build your own inductor by using toroids. The formula to do that is shown below. 144 | 145 | 146 | ![Toroid Inductor formula ](./images/l_calculation_totoid_formula.png) 147 | 148 | 149 | __Where AL and N are the factor and number of turns respectively__. 150 | 151 | 152 | #### Toroids parameters: 153 | 154 | * Select the material type. It can tell you the resonant circuit frequency range. Generally you will get a correspondente color to the material. Check the resonant frequency range you want to work. 155 | * Select the Dimension type of the toroid. Generally it is expressed by T-25, T-30, etc. 156 | * L is the indutance (pay attention to the unit). 157 | * N is the number of turns. 158 | 159 | 160 | #### There are great tools to calculate the inductors by using toroids. See the online tool shown below. 161 | 162 | 163 | ![Toroids online calculator](./images/inductor_calculator_site.png) 164 | 165 | [Go to Amidon iron powder toroids calculator](https://coil32.net/online-calculators/amidon-iron-powder-cores-calculator.html) 166 | 167 | 168 | ## Arduino Driver for Auto Band Pass filters 169 | 170 | If you are using Arduino, you can add in your sketch folder the files [AutoBPF.h and AutoBPF.cpp](https://github.com/pu2clr/auto_bpf_arduino/tree/master/Arduino/pu2clr_autobpf_driver). These files integrate the Arduino library for the Auto bandpass filter filter of this project. Check the folder 171 | [Arduino/pu2clr_autobpf_driver](https://github.com/pu2clr/auto_bpf_arduino/tree/master/Arduino/pu2clr_autobpf_driver). 172 | 173 | 174 | In your main sketch you have to declare the AutoBPF library as shown below. 175 | 176 | ```cpp 177 | #include "AutoBPF.h" // Bandpass filter library 178 | 179 | AutoBPF bpf; // Declare the Auto bandpass filter class. 180 | 181 | void setup() 182 | { 183 | . 184 | . 185 | . 186 | bpf.setup(4, 5); // Uses the Arduino pins 4 and 5 to select the desired filter 187 | bpf.setFilter(0); // Setects the first filter of the Auto Band Pass Filter. 188 | . 189 | . 190 | bpf.setFilter(3); // Setects the last filter of the Auto Band Pass Filter. 191 | . 192 | . 193 | } 194 | ``` 195 | 196 | 197 | ## Photos 198 | 199 | 200 | The photos below show Jim Reagan's board design of the Auto Band Pass filter. You can find more details about it on [https://github.com/JimReagans/Si4735-radio-PCB-s-and-bandpass-filter](https://github.com/JimReagans/Si4735-radio-PCB-s-and-bandpass-filter). 201 | 202 |
203 | 204 | ![Jim Reagan's board photo 01](./images/F01_A.png) 205 | 206 |
207 | 208 | ![Jim Reagan's board photo 02](./images/F01_B.png) 209 | 210 |
211 |
212 | 213 | The photos below show the SI4732 based receiver with the Auto Band Pass Filter controlled by Arduino. 214 | 215 |
216 | 217 | ![Ricardo's SI4732 receiver prototype 01](./images/F02_A.png) 218 | 219 |
220 | 221 | ![Ricardo's SI4732 receiver prototype 02](./images/F02_B.png) 222 | 223 | 224 | ### Know more about DSP receivers controlled by Arduino 225 | 226 | 1. [PU2CLR Si4735 Library for Arduino](https://pu2clr.github.io/SI4735/). This library was built based on “Si47XX PROGRAMMING GUIDE; AN332” and it has support to FM, AM and SSB modes (LW, MW and SW). It also can be used on all members of the SI47XX family respecting, of course, the features available for each IC version; 227 | 2. [PU2CLR SI4844 Arduino Library](https://github.com/pu2clr/SI4844). This is an Arduino library for the SI4844, BROADCAST ANALOG TUNING DIGITAL DISPLAY AM/FM/SW RADIO RECEIVER, IC from Silicon Labs. It is available on Arduino IDE. This library is intended to provide an easier interface for controlling the SI4844. 228 | 3. [PU2CLR AKC695X Arduino Library](https://pu2clr.github.io/AKC695X/). The AKC695X is a family of IC DSP receiver from AKC technology. The AKC6955 and AKC6959sx support AM and FM modes. On AM mode the AKC6955 and AKC6959sx work on LW, MW and SW. On FM mode they work from 64MHz to 222MHz. 229 | 4. [PU2CLR KT0915 Arduino Library](https://pu2clr.github.io/KT0915/). The KT0915 is a full band AM (LW, MW and SW) and FM DSP receiver that can provide you a easy way to build a high quality radio with low cost. 230 | 5. [PU2CLR RDA5807 Arduino Library](https://pu2clr.github.io/RDA5807/). The RDA5807 is a FM DSP integrated circuit receiver (50 to 115MHz) with low noise amplifier support. This device requires very few external components if compared with other similar devices. It also supports RDS/RBDS functionalities, direct auto gain control (AGC) and real time adaptive noise cancellation function. 231 | 6. [PU2CLR SI470X Arduino Library](https://pu2clr.github.io/SI470X/). It is a Silicon Labs device family that integrates the complete functionalities for FM receivers, including RDS (Si4703). 232 | 233 | #### More Arduino Projects by the author 234 | 235 | * [Multipurpose signal generator with SI5351](https://pu2clr.github.io/SI5351/). It is a multipurpose signal generator controlled by Arduino. This project uses the SI5351 from Silicon Labs. The Arduino sketch is configured to control the SI5351 with three channels from 32.768KHz to 160MHz and steps from 1Hz to 1MHz. 236 | * [Shortwave Arduino Transmiter](https://pu2clr.github.io/Small-Shortwave-Transmitter/). This project is about a shortwave transmitter from 3 MHz to 30 MHz. It uses the SI5351 oscillator from Silicon Labs controlled by Arduino. Also, you can use it with a crystal oscillator. In this case, you will not need the SI5351 device and Arduino. 237 | * [Android and iOS Bluetooth Remote Control for PU2CLR Arduino Library DSP receivers](https://pu2clr.github.io/bluetooth_remote_control/). This project is an extension of the Arduino library projects for: [SI4735](https://pu2clr.github.io/SI4735/); [AKC6959](https://pu2clr.github.io/AKC695X/) and [KT0915](https://pu2clr.github.io/KT0915/). It is a simple example that shows a way to use your smartphone as a remote control via Bluetooth. In order to follow the steps presented here, I am assuming that you have some knowledge in development for mobile devices. Also, you will need to be familiar with the Javascript programming language. The development environment used by this project is the [Apache Cordova](https://cordova.apache.org/docs/en/latest/guide/overview/index.html). Cordova is a open-source mobile development framework that allows you to develop cross-platform applications. That means you can code once and deploy the application in many system, including iOS and Android. 238 | Cordova provides an easy way to develop for iOS and Android. 239 | 240 | 241 | 242 | ## References 243 | 244 | 1. [SN74CBT3253DUAL 1-OF-4 FET MULTIPLEXER/DEMULTIPLEXER](https://www.ti.com/lit/ds/symlink/sn74cbt3253.pdf?HQS=TI-null-null-mousermode-df-pf-null-wwe&ts=1596797600884&ref_url=https%253A%252F%252Fbr.mouser.com%252F) 245 | 2. [FST3253Dual 4:1 Multiplexer/Demultiplexer Bus Switch](https://www.mouser.com/datasheet/2/149/FST3253-113358.pdf) 246 | 3. [Constant-K LC Band Pass Filter Circuit Design & Calculations](https://www.electronics-notes.com/articles/radio/rf-filters/constant-k-simple-bandpass-lc-rf-filter-design-calculations.php) 247 | 4. [LC Filters Design Tool](https://rf-tools.com/lc-filter/) 248 | 5. [Bandpass LC Filters](https://youtu.be/mv_T6eBp3Lk) 249 | 6. [Ensemble RX II (HF/LF)](http://www.wb5rvz.org/ensemble_rx_ii/index) 250 | 7. [Ensemble RX II (HF/LF) Auto Band Pass Filters](http://www.wb5rvz.org/ensemble_rx_ii/05_bpf) 251 | 8. [Chebyshev Bandpass Filter Designer](https://www.changpuak.ch/electronics/chebyshev_bandpass.php) 252 | 253 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-hacker -------------------------------------------------------------------------------- /_includes/video01.html: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /_includes/video02.html: -------------------------------------------------------------------------------- 1 | 3 | -------------------------------------------------------------------------------- /extras/custom_band_pass_filter_calc.s#1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | SPICE compatible library parts 147 | 148 | 149 | 150 | 151 | INDUCTOR 152 | 153 | 154 | >NAME 155 | >SPICEMODEL 156 | >VALUE 157 | >SPICEEXTRA 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | INDUCTOR 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | <b>WIMA Capacitors</b><p> 189 | <author>Created by librarian@cadsoft.de</author> 190 | 191 | 192 | <B>MKS4</B>, 13.4 x 4 mm, grid 10.16 mm 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | >NAME 210 | >VALUE 211 | 212 | 213 | <B>MKS4</B>, 13.4 x 5 mm, grid 10.16 mm 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | >NAME 231 | >VALUE 232 | 233 | 234 | <B>MKS4</B>, 13.4 x 6 mm, grid 10.16 mm 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | >NAME 252 | >VALUE 253 | 254 | 255 | <B>MKS4</B>, 18 x 5 mm, grid 15 mm 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | >NAME 273 | >VALUE 274 | 275 | 276 | <B>MKS4</B>, 18 x 6 mm, grid 15 mm 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | >NAME 294 | >VALUE 295 | 296 | 297 | <B>MKS4</B>, 18 x 7 mm, grid 15 mm 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | >NAME 315 | >VALUE 316 | 317 | 318 | <B>MKS4</B>, 18 x 8 mm, grid 15 mm 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | >NAME 336 | >VALUE 337 | 338 | 339 | <B>MKS4</B>, 18 x 9 mm, grid 15 mm 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | >NAME 357 | >VALUE 358 | 359 | 360 | <B>MKS2</B>, 5 x 2.5 mm, grid 2.54 mm 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | >NAME 380 | >VALUE 381 | 382 | 383 | <B>MKS2</B>, 5 x 4 mm, grid 2.54 mm 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | >NAME 403 | >VALUE 404 | 405 | 406 | <B>MKS2</B>, 5 x 5 mm, grid 2.54 mm 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | >NAME 426 | >VALUE 427 | 428 | 429 | <B>MKS2</B>, 5 x 6 mm, grid 2.54 mm 430 | 431 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | >NAME 449 | >VALUE 450 | 451 | 452 | <B>MKS4</B>, 27 x 10 mm, grid 22.5 mm 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | >NAME 470 | >VALUE 471 | 472 | 473 | <B>MKS4</B>, 27 x 11 mm, grid 22.5 mm 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | >NAME 491 | >VALUE 492 | 493 | 494 | <B>MKS4</B>, 27 x 6 mm, grid 22.5 mm 495 | 496 | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | >NAME 512 | >VALUE 513 | 514 | 515 | <B>MKS4</B>, 27 x 7 mm, grid 22.5 mm 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | 530 | 531 | 532 | >NAME 533 | >VALUE 534 | 535 | 536 | <B>MKS4</B>, 27 x 8 mm, grid 22.5 mm 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | >NAME 554 | >VALUE 555 | 556 | 557 | <B>MKS4</B>, 31.6 x 11 mm, grid 27.5 mm 558 | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | >NAME 575 | >VALUE 576 | 577 | 578 | <B>MKS4</B>, 31.6 x 13 mm, grid 27.5 mm 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | >NAME 596 | >VALUE 597 | 598 | 599 | <B>MKS4</B>, 31.6 x 15 mm, grid 27.5 mm 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | >NAME 617 | >VALUE 618 | 619 | 620 | <B>MKS4</B>, 31.6 x 17 mm, grid 27.5 mm 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | >NAME 638 | >VALUE 639 | 640 | 641 | <B>MKS4</B>, 31.6 x 20 mm, grid 27.5 mm 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | >NAME 659 | >VALUE 660 | 661 | 662 | <B>MKS4</B>, 31.6 x 9 mm, grid 27.5 mm 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | >NAME 680 | >VALUE 681 | 682 | 683 | <B>MKP4</B>, 42 x 15 mm, grid 37.5 mm 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | >NAME 701 | >VALUE 702 | 703 | 704 | <B>MKP4</B>, 42 x 19 mm, grid 37.5 mm 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | >NAME 722 | >VALUE 723 | 724 | 725 | <B>MKP4</B>, 42 x 20 mm, grid 37.5 mm 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | >NAME 743 | >VALUE 744 | 745 | 746 | <B>MKS2</B>, 7.5 x 2.5 mm, grid 5.08 mm 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | >NAME 764 | >VALUE 765 | 766 | 767 | <B>MKS2</B>, 7.5 x 3 mm, grid 5.08 mm 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | >NAME 785 | >VALUE 786 | 787 | 788 | <B>MKS2</B>, 7.5 x 4 mm, grid 5.08 mm 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | >NAME 806 | >VALUE 807 | 808 | 809 | <B>MKS2</B>, 7.5 x 4.5 mm, grid 5.08 mm 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | >NAME 827 | >VALUE 828 | 829 | 830 | <B>MKS2</B>, 7.5 x 5 mm, grid 5.08 mm 831 | 832 | 833 | 834 | 835 | 836 | 837 | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | >NAME 848 | >VALUE 849 | 850 | 851 | <B>MKS2</B>, 7.5 x 5.5 mm, grid 5.08 mm 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 | >NAME 869 | >VALUE 870 | 871 | 872 | <B>MKS2</B>, 7.5 x 7.2 mm, grid 5.08 mm 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | >NAME 890 | >VALUE 891 | 892 | 893 | <B>MKS3</B>, 10 x 3 mm, grid 7.62 mm 894 | 895 | 896 | 897 | 898 | 899 | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | >NAME 911 | >VALUE 912 | 913 | 914 | <B>MKS3</B>, 10 x 4 mm, grid 7.62 mm 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 | 931 | >NAME 932 | >VALUE 933 | 934 | 935 | <B>MKS3</B>, 10 x 5 mm, grid 7.62 mm 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | >NAME 953 | >VALUE 954 | 955 | 956 | <B>MKS3</B>, 10 x 6 mm, grid 7.62 mm 957 | 958 | 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | 969 | 970 | 971 | 972 | 973 | >NAME 974 | >VALUE 975 | 976 | 977 | <B>MKS2</B>, 5 x 3 mm, grid 2.54 mm 978 | 979 | 980 | 981 | 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | >NAME 997 | >VALUE 998 | 999 | 1000 | 1001 | 1002 | MKS4, 13.4 x 4 mm, grid 10.16 mm 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | MKS4, 13.4 x 5 mm, grid 10.16 mm 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | MKS4, 13.4 x 6 mm, grid 10.16 mm 1015 | 1016 | 1017 | 1018 | 1019 | 1020 | MKS4, 18 x 5 mm, grid 15 mm 1021 | 1022 | 1023 | 1024 | 1025 | 1026 | MKS4, 18 x 6 mm, grid 15 mm 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | MKS4, 18 x 7 mm, grid 15 mm 1033 | 1034 | 1035 | 1036 | 1037 | 1038 | MKS4, 18 x 8 mm, grid 15 mm 1039 | 1040 | 1041 | 1042 | 1043 | 1044 | MKS4, 18 x 9 mm, grid 15 mm 1045 | 1046 | 1047 | 1048 | 1049 | 1050 | MKS2, 5 x 2.5 mm, grid 2.54 mm 1051 | 1052 | 1053 | 1054 | 1055 | 1056 | MKS2, 5 x 4 mm, grid 2.54 mm 1057 | 1058 | 1059 | 1060 | 1061 | 1062 | MKS2, 5 x 5 mm, grid 2.54 mm 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | MKS2, 5 x 6 mm, grid 2.54 mm 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | MKS4, 27 x 10 mm, grid 22.5 mm 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | MKS4, 27 x 11 mm, grid 22.5 mm 1081 | 1082 | 1083 | 1084 | 1085 | 1086 | MKS4, 27 x 6 mm, grid 22.5 mm 1087 | 1088 | 1089 | 1090 | 1091 | 1092 | MKS4, 27 x 7 mm, grid 22.5 mm 1093 | 1094 | 1095 | 1096 | 1097 | 1098 | MKS4, 27 x 8 mm, grid 22.5 mm 1099 | 1100 | 1101 | 1102 | 1103 | 1104 | MKS4, 31.6 x 11 mm, grid 27.5 mm 1105 | 1106 | 1107 | 1108 | 1109 | 1110 | MKS4, 31.6 x 13 mm, grid 27.5 mm 1111 | 1112 | 1113 | 1114 | 1115 | 1116 | MKS4, 31.6 x 15 mm, grid 27.5 mm 1117 | 1118 | 1119 | 1120 | 1121 | 1122 | MKS4, 31.6 x 17 mm, grid 27.5 mm 1123 | 1124 | 1125 | 1126 | 1127 | 1128 | MKS4, 31.6 x 20 mm, grid 27.5 mm 1129 | 1130 | 1131 | 1132 | 1133 | 1134 | MKS4, 31.6 x 9 mm, grid 27.5 mm 1135 | 1136 | 1137 | 1138 | 1139 | 1140 | MKP4, 42 x 15 mm, grid 37.5 mm 1141 | 1142 | 1143 | 1144 | 1145 | 1146 | MKP4, 42 x 19 mm, grid 37.5 mm 1147 | 1148 | 1149 | 1150 | 1151 | 1152 | MKP4, 42 x 20 mm, grid 37.5 mm 1153 | 1154 | 1155 | 1156 | 1157 | 1158 | MKS2, 7.5 x 2.5 mm, grid 5.08 mm 1159 | 1160 | 1161 | 1162 | 1163 | 1164 | MKS2, 7.5 x 3 mm, grid 5.08 mm 1165 | 1166 | 1167 | 1168 | 1169 | 1170 | MKS2, 7.5 x 4 mm, grid 5.08 mm 1171 | 1172 | 1173 | 1174 | 1175 | 1176 | MKS2, 7.5 x 4.5 mm, grid 5.08 mm 1177 | 1178 | 1179 | 1180 | 1181 | 1182 | MKS2, 7.5 x 5 mm, grid 5.08 mm 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | MKS2, 7.5 x 5.5 mm, grid 5.08 mm 1189 | 1190 | 1191 | 1192 | 1193 | 1194 | MKS2, 7.5 x 7.2 mm, grid 5.08 mm 1195 | 1196 | 1197 | 1198 | 1199 | 1200 | MKS3, 10 x 3 mm, grid 7.62 mm 1201 | 1202 | 1203 | 1204 | 1205 | 1206 | MKS3, 10 x 4 mm, grid 7.62 mm 1207 | 1208 | 1209 | 1210 | 1211 | 1212 | MKS3, 10 x 5 mm, grid 7.62 mm 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | MKS3, 10 x 6 mm, grid 7.62 mm 1219 | 1220 | 1221 | 1222 | 1223 | 1224 | MKS2, 5 x 3 mm, grid 2.54 mm 1225 | 1226 | 1227 | 1228 | 1229 | 1230 | 1231 | 1232 | 1233 | 1234 | >NAME 1235 | >VALUE 1236 | 1237 | 1238 | 1239 | 1240 | 1241 | 1242 | 1243 | 1244 | <B>CAPACITOR</B><p> 1245 | naming: grid - package width 1246 | 1247 | 1248 | 1249 | 1250 | 1251 | 1252 | 1253 | 1254 | 1255 | 1256 | 1257 | 1258 | 1259 | 1260 | 1261 | 1262 | 1263 | 1264 | 1265 | 1266 | 1267 | 1268 | 1269 | 1270 | 1271 | 1272 | 1273 | 1274 | 1275 | 1276 | 1277 | 1278 | 1279 | 1280 | 1281 | 1282 | 1283 | 1284 | 1285 | 1286 | 1287 | 1288 | 1289 | 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1301 | 1302 | 1303 | 1304 | 1305 | 1306 | 1307 | 1308 | 1309 | 1310 | 1311 | 1312 | 1313 | 1314 | 1315 | 1316 | 1317 | 1318 | 1319 | 1320 | 1321 | 1322 | 1323 | 1324 | 1325 | 1326 | 1327 | 1328 | 1329 | 1330 | 1331 | 1332 | 1333 | 1334 | 1335 | 1336 | 1337 | 1338 | 1339 | 1340 | 1341 | 1342 | 1343 | 1344 | 1345 | 1346 | 1347 | 1348 | 1349 | 1350 | 1351 | 1352 | 1353 | 1354 | 1355 | 1356 | 1357 | 1358 | 1359 | 1360 | 1361 | 1362 | 1363 | 1364 | 1365 | 1366 | 1367 | 1368 | 1369 | 1370 | 1371 | 1372 | 1373 | 1374 | 1375 | 1376 | 1377 | 1378 | 1379 | 1380 | 1381 | 1382 | 1383 | 1384 | 1385 | 1386 | 1387 | 1388 | 1389 | 1390 | 1391 | 1392 | 1393 | 1394 | 1395 | 1396 | 1397 | 1398 | 1399 | 1400 | 1401 | 1402 | 1403 | 1404 | 1405 | 1406 | 1407 | 1408 | 1409 | 1410 | 1411 | 1412 | 1413 | 1414 | 1415 | 1416 | 1417 | 1418 | 1419 | 1420 | 1421 | 1422 | 1423 | 1424 | 1425 | 1426 | 1427 | 1428 | 1429 | 1430 | 1431 | 1432 | 1433 | 1434 | 1435 | 1436 | 1437 | 1438 | 1439 | 1440 | 1441 | 1442 | 1443 | 1444 | 1445 | 1446 | 1447 | 1448 | 1449 | 1450 | 1451 | 1452 | 1453 | 1454 | 1455 | 1456 | 1457 | 1458 | 1459 | 1460 | 1461 | 1462 | 1463 | 1464 | 1465 | 1466 | 1467 | 1468 | 1469 | 1470 | 1471 | 1472 | 1473 | 1474 | 1475 | 1476 | 1477 | 1478 | 1479 | 1480 | 1481 | 1482 | 1483 | 1484 | 1485 | 1486 | 1487 | 1488 | 1489 | 1490 | 1491 | 1492 | 1493 | 1494 | 1495 | 1496 | 1497 | 1498 | 1499 | 1500 | 1501 | 1502 | 1503 | 1504 | 1505 | 1506 | 1507 | 1508 | 1509 | 1510 | 1511 | 1512 | 1513 | 1514 | 1515 | 1516 | 1517 | 1518 | 1519 | 1520 | 1521 | 1522 | 1523 | 1524 | 1525 | 1526 | 1527 | 1528 | 1529 | 1530 | 1531 | 1532 | 1533 | 1534 | 1535 | 1536 | 1537 | 1538 | 1539 | 1540 | 1541 | 1542 | 1543 | 1544 | 1545 | 1546 | 1547 | 1548 | 1549 | 1550 | 1551 | 1552 | 1553 | 1554 | 1555 | 1556 | 1557 | 1558 | 1559 | 1560 | 1561 | 1562 | 1563 | 1564 | 1565 | 1566 | 1567 | 1568 | 1569 | 1570 | 1571 | 1572 | 1573 | 1574 | 1575 | 1576 | 1577 | 1578 | 1579 | 1580 | 1581 | 1582 | 1583 | 1584 | 1585 | 1586 | 1587 | 1588 | 1589 | 1590 | 1591 | 1592 | 1593 | 1594 | 1595 | 1596 | 1597 | 1598 | 1599 | 1600 | 1601 | 1602 | 1603 | 1604 | 1605 | 1606 | 1607 | 1608 | 1609 | 1610 | 1611 | 1612 | 1613 | 1614 | 1615 | 1616 | 1617 | 1618 | 1619 | 1620 | 1621 | 1622 | 1623 | 1624 | 1625 | 1626 | 1627 | 1628 | 1629 | 1630 | 1631 | 1632 | 1633 | 1634 | 1635 | 1636 | 1637 | 1638 | 1639 | 1640 | 1641 | 1642 | 1643 | 1644 | 1645 | 1646 | 1647 | 1648 | 1649 | 1650 | 1651 | 1652 | 1653 | 1654 | 1655 | 1656 | 1657 | 1658 | 1659 | 1660 | 1661 | 1662 | 1663 | 1664 | 1665 | 1666 | 1667 | 1668 | 1669 | 1670 | 1671 | 1672 | 1673 | 1674 | 1675 | 1676 | 1677 | 1678 | 1679 | 1680 | 1681 | 1682 | 1683 | 1684 | 1685 | 1686 | 1687 | 1688 | 1689 | 1690 | 1691 | 1692 | 1693 | 1694 | 1695 | 1696 | 1697 | 1698 | 1699 | 1700 | 1701 | 1702 | 1703 | 1704 | 1705 | 1706 | 1707 | 1708 | 1709 | 1710 | 1711 | 1712 | 1713 | 1714 | 1715 | 1716 | 1717 | 1718 | 1719 | 1720 | 1721 | 1722 | 1723 | 1724 | 1725 | 1726 | 1727 | 1728 | 1729 | 1730 | 1731 | 1732 | 1733 | 1734 | 1735 | 1736 | 1737 | 1738 | 1739 | 1740 | 1741 | 1742 | 1743 | 1744 | 1745 | 1746 | 1747 | 1748 | 1749 | 1750 | 1751 | 1752 | 1753 | 1754 | 1755 | 1756 | 1757 | 1758 | 1759 | 1760 | 1761 | 1762 | 1763 | 1764 | 1765 | 1766 | 1767 | 1768 | 1769 | 1770 | 1771 | 1772 | 1773 | 1774 | 1775 | 1776 | 1777 | 1778 | 1779 | 1780 | 1781 | 1782 | 1783 | 1784 | 1785 | 1786 | 1787 | <h3>SparkFun Power Symbols</h3> 1788 | This library contains power, ground, and voltage-supply symbols. 1789 | <br> 1790 | <br> 1791 | We've spent an enormous amount of time creating and checking these footprints and parts, but it is <b> the end user's responsibility</b> to ensure correctness and suitablity for a given componet or application. 1792 | <br> 1793 | <br>If you enjoy using this library, please buy one of our products at <a href=" www.sparkfun.com">SparkFun.com</a>. 1794 | <br> 1795 | <br> 1796 | <b>Licensing:</b> Creative Commons ShareAlike 4.0 International - https://creativecommons.org/licenses/by-sa/4.0/ 1797 | <br> 1798 | <br> 1799 | 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. 1800 | 1801 | 1802 | 1803 | 1804 | <h3>Digital Ground Supply</h3> 1805 | 1806 | 1807 | >VALUE 1808 | 1809 | 1810 | 1811 | 1812 | <h3>Ground Supply Symbol</h3> 1813 | <p>Generic signal ground supply symbol.</p> 1814 | 1815 | 1816 | 1817 | 1818 | 1819 | 1820 | 1821 | 1822 | 1823 | 1824 | 1825 | 1826 | 1827 | 1828 | 1829 | 1830 | 1831 | 1832 | 1833 | 1834 | 1835 | 1836 | 1837 | 1838 | 1839 | 1840 | 1841 | 1842 | 1843 | 1844 | 1845 | 1846 | 1847 | 1848 | 1849 | 1850 | 1851 | 1852 | 1853 | 1854 | 1855 | 1856 | 1857 | 1858 | 1859 | 1860 | 1861 | 1862 | 1863 | 1864 | 1865 | 1866 | 1867 | 1868 | 1869 | 1870 | 1871 | 1872 | 1873 | 1874 | 1875 | 1876 | 1877 | 1878 | 1879 | 1880 | 1881 | 1882 | 1883 | 1884 | 1885 | 1886 | 1887 | 1888 | 1889 | 1890 | 1891 | 1892 | 1893 | 1894 | 1895 | 1896 | 1897 | 1898 | 1899 | 1900 | 1901 | 1902 | 1903 | 1904 | 1905 | 1906 | 1907 | 1908 | 1909 | 1910 | 1911 | 1912 | 1913 | 1914 | 1915 | 1916 | 1917 | 1918 | 1919 | 1920 | 1921 | 1922 | 1923 | 1924 | 1925 | 1926 | 1927 | Since Version 8.2, EAGLE supports online libraries. The ids 1928 | of those online libraries will not be understood (or retained) 1929 | with this version. 1930 | 1931 | 1932 | Since Version 8.3, EAGLE supports URNs for individual library 1933 | assets (packages, symbols, and devices). The URNs of those assets 1934 | will not be understood (or retained) with this version. 1935 | 1936 | 1937 | Since Version 8.3, EAGLE supports the association of 3D packages 1938 | with devices in libraries, schematics, and board files. Those 3D 1939 | packages will not be understood (or retained) with this version. 1940 | 1941 | 1942 | Since Version 8.4, EAGLE supports properties for SPICE simulation. 1943 | Probes in schematics and SPICE mapping objects found in parts and library devices 1944 | will not be understood with this version. Update EAGLE to the latest version 1945 | for full support of SPICE simulation. 1946 | 1947 | 1948 | 1949 | -------------------------------------------------------------------------------- /images/F00_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/F00_A.png -------------------------------------------------------------------------------- /images/F01_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/F01_A.png -------------------------------------------------------------------------------- /images/F01_B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/F01_B.png -------------------------------------------------------------------------------- /images/F02_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/F02_A.png -------------------------------------------------------------------------------- /images/F02_B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/F02_B.png -------------------------------------------------------------------------------- /images/inductor_calculator_site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/inductor_calculator_site.png -------------------------------------------------------------------------------- /images/l_calculation_totoid_formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/l_calculation_totoid_formula.png -------------------------------------------------------------------------------- /images/lc_basic_bpf_circuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/lc_basic_bpf_circuit.png -------------------------------------------------------------------------------- /images/lc_filter_formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/lc_filter_formula.png -------------------------------------------------------------------------------- /images/schematic_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pu2clr/auto_bpf_arduino/26fee0193ec689293716807cd57d7f08023f6a2c/images/schematic_01.png --------------------------------------------------------------------------------