Skip to content

pu2clr/auto_bpf_arduino

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

It is a HF band pass filter controlled by Arduino. It is designed for HF receivers. With this project, you can use a set of up to four HF bandpass filters that can be selected by Arduino. To do that you will need just two digital Arduino pins.

This project includes a bandpass filter design based on “Softrock Ensemble RX II (HF/LF) Auto Band Pass Filters“, an Arduino Library to control the filter, documentation and examples.

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

All Arduino source code found here can be freely distributed using the MIT Free Software model.

Copyright (c) 2019 Ricardo Lima Caratti.

Be a member

There is a Facebook group called Si47XX for Radio Experimenters 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.

Contents

  1. Preface
  2. Schematic
  3. Customizing LC bandpass filter L and C pairs calculation
  4. Arduino Driver for Auto Band Pass filters
  5. Photos
  6. References

Preface

Originally based on the “Softrock Ensemble RX II (HF/LF) Auto Band Pass Filters“ 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 folder.

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.

The main idea of this project is to allow the same Arduino that controls a receiver based on the SI473X, AKC6955, KT0915 or 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.

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.

Ricardo's SI4732 receiver prototype 01

The videos below show an example of the Auto bandpass filter working.

The two videos below were made using an Arduino Pro Mini 3.3V (8MHz) as the controller.

The video below shows the test of the Auto bandpass filter cut frequencies

HF Auto Bandpass filter controlled by Arduino (first test)

{% include video01.html %}


The video below shows the Auto bandpass filter working with an SI4732-A10 based receiver

HF auto bandpass filter controlled by Arduino (real test)

{% include video02.html %}

MIT License

Copyright (c) 2019 Ricardo Lima Caratti

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:

The above copyright notice and 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 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.


SCHEMATIC

The schematic below uses two FST3253 or two SN74CBT3253D 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.

Bandpass filter schematic

  • Filter 0 (1800KHz to 4MHz )

    • L1 and L3: 4.6 uH; 35 turns; wire: #30; Toroid: T30-2(Red)
    • L2: 1.3uH; 24 Turns; wire #30; Toroid T30-2(Red)
  • Filter 1 (4MHz to 8MHz)

    • L4 and L6: 2.00 uH; 21 turns; wire: #30; Toroid: T30-2(Red)
    • L5: 0.46uH; 10 Turns; wire #30; Toroid T30-2(Red)
  • Filter 2 (8MHz to 16MHz)

    • L7 and L9: 1uH; 19 turns; wire #30; Toroid T25-6(Yellow)
    • L8: 0.27uH: 10 turns; wire #30; Toroid T25-6 c(Yellow)
  • Filter 3 (16MHz to 30MHz)

    • L10 and L12: 0.46uH: 13 turns; wire #30; Toroid T25-6 (Yellow)
    • L11: 0.13uH: 7 turns; wire #30; Toroid T25-6 (Yellow).

Customizing LC bandpass filter L and C pairs calculation

You can try other filters setup by calculating the components of each band pass filter. The basic circuit below represents a generic band pass filter used by this project.

Generic LC Band Pass Filter Circuit

LC bandpass filter L and C pairs calculation

LC filter formula

Where:

  • LX1, LX2 and LX3 are the inductors (indutance in Henries)
  • CX1, CX2 and CX3 are the capacitors (capacitance in Farads)
  • fmax and fmin are cut off frequencies in Hertz
  • Zo is the characteristic impedance in ohms

To check the most appropriate toroid for the inductor as well as the number of turns, see Amidon iron powder toroids calculator

You can find many tools to help you to calculate the values of the filter components on internet. The Chebyshev Bandpass Filter Designer, 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.

Toroids and Inductor Formula

You can build your own inductor by using toroids. The formula to do that is shown below.

Toroid Inductor formula

Where AL and N are the factor and number of turns respectively.

Toroids parameters:

  • 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.
  • Select the Dimension type of the toroid. Generally it is expressed by T-25, T-30, etc.
  • L is the indutance (pay attention to the unit).
  • N is the number of turns.

There are great tools to calculate the inductors by using toroids. See the online tool shown below.

Toroids online calculator

Go to Amidon iron powder toroids calculator

Arduino Driver for Auto Band Pass filters

If you are using Arduino, you can add in your sketch folder the files AutoBPF.h and AutoBPF.cpp. These files integrate the Arduino library for the Auto bandpass filter filter of this project. Check the folder Arduino/pu2clr_autobpf_driver.

In your main sketch you have to declare the AutoBPF library as shown below.

#include "AutoBPF.h"    // Bandpass filter library

AutoBPF bpf;            // Declare the Auto bandpass filter class.

void setup()
{
   .
   .
   .
    bpf.setup(4, 5);    // Uses the Arduino pins 4 and 5 to select the desired filter
    bpf.setFilter(0);   // Setects the first filter of the Auto Band Pass Filter.
    .
    .
    bpf.setFilter(3);   // Setects the last filter of the Auto Band Pass Filter.
    .
    .
}

Photos

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.


Jim Reagan's board photo 01


Jim Reagan's board photo 02



The photos below show the SI4732 based receiver with the Auto Band Pass Filter controlled by Arduino.


Ricardo's SI4732 receiver prototype 01


Ricardo's SI4732 receiver prototype 02

Know more about DSP receivers controlled by Arduino

  1. PU2CLR Si4735 Library for Arduino. 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;
  2. PU2CLR SI4844 Arduino Library. 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.
  3. PU2CLR AKC695X Arduino Library. 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.
  4. PU2CLR KT0915 Arduino Library. 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.
  5. PU2CLR RDA5807 Arduino Library. 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.
  6. PU2CLR SI470X Arduino Library. It is a Silicon Labs device family that integrates the complete functionalities for FM receivers, including RDS (Si4703).

More Arduino Projects by the author

  • Multipurpose signal generator with 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.
  • Shortwave Arduino Transmiter. 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.
  • Android and iOS Bluetooth Remote Control for PU2CLR Arduino Library DSP receivers. This project is an extension of the Arduino library projects for: SI4735; AKC6959 and 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. 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. Cordova provides an easy way to develop for iOS and Android.

References

  1. SN74CBT3253DUAL 1-OF-4 FET MULTIPLEXER/DEMULTIPLEXER
  2. FST3253Dual 4:1 Multiplexer/Demultiplexer Bus Switch
  3. Constant-K LC Band Pass Filter Circuit Design & Calculations
  4. LC Filters Design Tool
  5. Bandpass LC Filters
  6. Ensemble RX II (HF/LF)
  7. Ensemble RX II (HF/LF) Auto Band Pass Filters
  8. Chebyshev Bandpass Filter Designer