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.
This project can be freely distributed using the MIT Free Software model.
Copyright (c) 2020 Ricardo Lima Caratti.
Contact: pu2clr@gmail.com.
Be a member of Facebook group DSP receivers for hobbyists
The Si5351 is an I2C configurable clock generator that is very appropriate for many electronic projects. It is also a great device for replacing crystal oscillators. This project uses a version of SI5351 that has three signal outputs that can vary from 8 KHz to 160 MHz. These outputs, can give you three distinct frequencies running at the same time. A great feature of the Si5351A is the possibility of using it with a microcontroller or platform like Arduino, PIC family and others. This small project is about a multipurpose signal generator controlled by Arduino or similar. For more information about SI5351A see Si5351A/B/C-B I2C-PROGRAMMABLE ANY-FREQUENCY CMOS CLOCKGENERATOR + VCXO.
Despite the square wave form generated by the Si5351 device, it is very appropriated for many transmitters and receivers applications. This project has been very useful for me during Arduino Library development for the DSP receivers SI473X, SI4844, AKC695X, KT0915 and otehrs. With this signal generator, I could test the external oscillator feature of these devices. Also, I used it to build a small shortwave transmitter to test the HF reception during the bad propagation and bad reception conditions due to my current location.
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. You can also be a member of group.io SI47XX for hobbyists
The Arduino sketch can be found on source folder - https://github.com/pu2clr/SI5351/tree/master/source. The software is configured to control the SI5351 from 32.768KHz to 160MHz and steps from 1Hz to 1MHz.
For SI5351 control, the Arduino sketch uses the Etherkit/si5351 Arduino library from Jason Milldrum;
For encoder control, the Arduino sketch uses the Rotary Encoder Class implementation from Ben Buxton (the source code is included together with this sketch)
See source folder for more detail.
The user interface of this generator consists of three push buttons and an encoder. One of that push buttons comes with the encoder device.
Pressing the encoder push button, you can select the current control (Step, Favorite frequencies or output clock). By pressing de left or right push buttons, you can select the parameter you want for each kind of control. The display will show you the current status of the signal generator.
The photos below show the multipurpose signal generator controlled by Arduino. This project uses an Arduino Nano. However, you can use any Arduino board. In this case, see the pinout of your Arduino.
Current output clock is CLK0; the current Step is 10Hz; and current frequency is 8000.010 KHz
The current control is output clock (select the output you want to setup by pressing the left or right push buttons); current clock is CLK2; current frequency is 32.768 KHz; and current step is 10 Hz.
The current frequency on output CLK2 is 28000 KHz (28MHz); the current control is Step (select the step you want by pressing left or right push buttons); in this case, the current step is 50 KHz.
The current control is Favorite (select the favorite frequency you want for the current channel by pressing the left or right push buttons); the current step is 1 KHz; and current frequency is 16MHz.
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.