Skip to content

Commit

Permalink
Examples
Browse files Browse the repository at this point in the history
  • Loading branch information
Ricardo Lima Caratti committed Jan 20, 2020
1 parent d823aec commit f43e3f3
Show file tree
Hide file tree
Showing 10 changed files with 64 additions and 12 deletions.
28 changes: 25 additions & 3 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,11 @@ Test and validation of the SI4735 Arduino Library. The main advantages of using
* You do not need connect any push buttons or encoders to change volume and frequency;
* The Arduino IDE is all you need to control the radio.

__This sketch has been successfully tested on Pro Mini 3.3V; UNO (by using a voltage converter); Arduino Mega (by using a voltage converter) and ESP32 (LOLIN32 WEMOS)__

So, I strongly recommend starting with this sketch. This example is a proof of concept of SI4735 Arduino Library. The [SI4735_POC.ino](https://github.com/pu2clr/SI4735/tree/master/examples/SI4735_POC) sketch uses just the __Serial Monitor__ and works only on your __Arduino IDE__. However, you can easily replace the Serial Monitor functions to the device functions that you want to use.


### Controls used by example 01

| Keyboard command | Description |
Expand All @@ -53,6 +56,8 @@ Click [here](https://github.com/pu2clr/SI4735/blob/master/examples/SI4735_01_POC

This example shows how can you use SW features of the Si4735 Arduino Library. Like the previous exemple (Proof of Concept), the [SI4735_POC_SW.ino](examples/SI4735_POC_SW/SI4735_POC_SW.ino) sketch __works only on Arduino IDE__. It uses the Serial Monitor to get the commands and show the information.

__This sketch has been successfully tested on Pro Mini 3.3V; UNO (by using a voltage converter); Arduino Mega (by using a voltage converter) and ESP32 (LOLIN32 WEMOS)__


### SW Bands used by the example 02
| Band | From (KHz) | To (KHz) | Default (KHz)|
Expand Down Expand Up @@ -105,6 +110,8 @@ __See some shortwave antenna configuration on__ [Si47XX ANTENNA, SCHEMATIC, LAY
It is a example that shows how to set up a LCD and SI4735 on the same I2C bus.
This sketch uses the Rotary Encoder Class implementation from Ben Buxton. The source code is included together with this sketch. This sketch also uses the LiquidCrystal I2C Library by Frank de Brabander. You can install LiquidCrystal I2C via Manage Libraries on your Arduino IDE.

__This sketch has been successfully tested on Pro Mini 3.3V.__

Click [here](https://github.com/pu2clr/SI4735/blob/master/examples/SI4735_03_LCD_20x4_I2C/SI4735_03_LCD_20x4_I2C.ino) to see this example.


Expand All @@ -116,6 +123,8 @@ __Click [here](https://youtu.be/vzunuxam_Lg) to see a video about this example__

This sketch uses the Rotary Encoder Class implementation from Ben Buxton. The source code is included together with this sketch. This sketch also uses the SSD1306Ascii Arduino Library by Bill Greiman. You can install SSD1306Ascii via Manage Libraries on your Arduino IDE. The photo below show this example on a protoboard.

__This sketch has been successfully tested on Pro Mini 3.3V.__

Click [here](https://github.com/pu2clr/SI4735/blob/master/examples/SI4735_04_OLED_I2C/SI4735_04_OLED_I2C.ino) to see this example.

![Silicon Labs Schematic](../extras/images/prot_oled_01.png)
Expand All @@ -134,15 +143,15 @@ The schematic below is a sugestion to connect a I2C Display (OLED or LCD 20x4 or

__Pay attention to the your I2C device voltage. The system can become unstable if you are using a wrong voltage__.


<BR>



## Example 05 - Bandwidth filter test (9 band SW Receiver with OLED)

This example is a 11 band SW receiver based on SI4735. It shows the selection of the bandwidth of the channel filter for AM reception (in this case SW). The choices are: 6, 4, 3, 2, 2.5, 1.8, or 1 (kHz). With this resource, you can separate two stations in adjacent channels. __You can use the same schematic shown for the examples 03 and 04__.

__This sketch has been successfully tested on Pro Mini 3.3V.__


Click [here](https://github.com/pu2clr/SI4735/blob/master/examples/SI4735_05_SW_OLED_FILTER_TEST/SI4735_05_SW_OLED_FILTER_TEST.ino) to see this example.

Expand All @@ -154,6 +163,8 @@ __Click [here](https://youtu.be/dN1s3RoXGos) to see a video about this example__

This example shows how can you use SSB features of the Si4735 Arduino Library. It uses the Serial Monitor to get the commands and show the information.

__This sketch has been successfully tested on Pro Mini 3.3V; UNO (by using a voltage converter); Arduino Mega (by using a voltage converter) and ESP32 (LOLIN32 WEMOS)__

This sketch will download a SSB patch to your SI4735 device (patch_full.h or patch_init.h). It can take up to 15KB of the Arduino memory.

In this context, a patch is a piece of software used to change the behavior of the SI4735 device.
Expand Down Expand Up @@ -211,6 +222,8 @@ For the example 06 you can use the sketch below.

This sketch uses the Rotary Encoder Class implementation from Ben Buxton. The source code is included together with this sketch.

__This sketch has been successfully tested on Pro Mini 3.3V.__

This sketch will download a SSB patch to your SI4735 device (patch_content.h). It will take about 15KB of the Arduino memory.

In this context, a patch is a piece of software used to change the behavior of the SI4735 device.
Expand Down Expand Up @@ -266,6 +279,8 @@ __Click [here](https://youtu.be/W2Ssjb9P_f4) to see a video about this example__
This sketch uses the Rotary Encoder Class implementation from Ben Buxton. The source code is included together with this sketch.
This sketch will download a SSB patch to your SI4735 device (patch_content.h). It will take about 15KB of the Arduino memory.

__This sketch has been successfully tested on Pro Mini 3.3V.__

Features of this sketch:

1) __Internal Arduino pull-up (no external resistors on schematic for buttons and encoder)__;
Expand Down Expand Up @@ -305,6 +320,8 @@ Pay attention on the push buttons added on this example. The table below shows t
This example uses two display I2C devices and the Si4735 connected on the same I2C bus.
It is an simple AM and FM radio. The schematic is the same used on Example 10. See below.

__This sketch has been successfully tested on Pro Mini 3.3V.__

<BR>

![Protoboard with OLED as a S Meter](https://github.com/pu2clr/SI4735/blob/master/extras/images/protoboard_AM_FM_SMETER.png)
Expand All @@ -316,6 +333,8 @@ It is an simple AM and FM radio. The schematic is the same used on Example 10. S
Like the Example 09, this example uses two display and the SI4735 connect on the same I2C bus.
This radio has 11 bands.

__This sketch has been successfully tested on Pro Mini 3.3V.__

<BR>

![Schematic for I2C display device](https://github.com/pu2clr/SI4735/blob/master/extras/images/basic_schematic_with_buttons_internal_pullup_i2c.png)
Expand All @@ -330,7 +349,10 @@ __See some shortwave antenna configuration on__ [Si47XX ANTENNA, SCHEMATIC, LAY

## Example 11 - SI4735 all in one with SSB Support

__Under construction...__
This sketch implements an FM/LW/MW/SW - SSB radio.

__This sketch has been successfully tested on Pro Mini 3.3V.__


### Features
* This example implements AM (MW and SW), FM and SSB.
Expand Down
14 changes: 10 additions & 4 deletions examples/SI4735_01_POC/SI4735_01_POC.ino
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
/*
Test and validation of the SI4735 Arduino Library.
The main advantages of using this sketch are:
1) It is a easy way to check if your circuit is working;
2) You do not need to connect any display device to make your radio works;
3) You do not need connect any push buttons or encoders to change volume and frequency;
4) The Arduino IDE is all you need to control the radio.
1) It is a easy way to check if your circuit is working;
2) You do not need to connect any display device to make your radio works;
3) You do not need connect any push buttons or encoders to change volume and frequency;
4) The Arduino IDE is all you need to control the radio.
This sketch has been successfully tested on:
1) Pro Mini 3.3V;
2) UNO (by using a voltage converter);
3) Arduino Mega (by using a voltage converter); and
4) ESP32 (LOLIN32 WEMOS)
I strongly recommend starting with this sketch.
Schematic: https://github.com/pu2clr/SI4735/blob/master/extras/images/basic_schematic.png
Expand Down
14 changes: 10 additions & 4 deletions examples/SI4735_02_POC_SW/SI4735_02_POC_SW.ino
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,16 @@
This example shows how can setup the radio on SW by using the Si4735 Arduino Library.
The main advantages of using this sketch are:
1) It is a easy way to check if your circuit is working;
2) You do not need to connect any display device to make your radio works;
3) You do not need connect any push buttons or encoders to change volume and frequency;
4) The Arduino IDE is all you need to control the radio.
1) It is a easy way to check if your circuit is working;
2) You do not need to connect any display device to make your radio works;
3) You do not need connect any push buttons or encoders to change volume and frequency;
4) The Arduino IDE is all you need to control the radio.
This sketch has been successfully tested on:
1) Pro Mini 3.3V;
2) UNO (by using a voltage converter);
3) Arduino Mega (by using a voltage converter); and
4) ESP32 (LOLIN32 WEMOS)
Schematic: https://github.com/pu2clr/SI4735/blob/master/extras/images/basic_schematic.png
Expand Down
2 changes: 2 additions & 0 deletions examples/SI4735_03_LCD_20x4_I2C/SI4735_03_LCD_20x4_I2C.ino
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
together with this sketch) and LiquidCrystal I2C Library by Frank de Brabander (https://github.com/johnrickman/LiquidCrystal_I2C).
Look for LiquidCrystal I2C on Manager Libraries.
This sketch has been successfully tested on Pro Mini 3.3V.
Schematic: https://github.com/pu2clr/SI4735/blob/master/extras/images/basic_schematic_with_buttons_internal_pullup_i2c.png
By Ricardo Lima Caratti, Nov 2019.
Expand Down
3 changes: 2 additions & 1 deletion examples/SI4735_04_OLED_I2C/SI4735_04_OLED_I2C.ino
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
It is AM and FM radio.
Rotary Encoder: This sketch uses the Rotary Encoder Class implementation from Ben Buxton. The source code is included together with this sketch.
Schematic: https://github.com/pu2clr/SI4735/blob/master/extras/images/basic_schematic_with_buttons_internal_pullup_i2c.png
This sketch has been successfully tested on Pro Mini 3.3V.
Schematic: https://github.com/pu2clr/SI4735/blob/master/extras/images/basic_schematic_with_buttons_internal_pullup_i2c.png
By Ricardo Lima Caratti, Nov 2019.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
It shows the selection of the bandwidth of the channel filter for AM reception (in this case SW).
The choices are: 6, 4, 3, 2, 2.5, 1.8, or 1 (kHz).
This sketch has been successfully tested on Pro Mini 3.3V.
Rotary Encoder: This sketch uses the Rotary Encoder Class implementation from Ben Buxton.
The source code is included together with this sketch.
Expand Down
8 changes: 8 additions & 0 deletions examples/SI4735_07_SSB_OLED_TEST/SI4735_07_SSB_OLED_TEST.ino
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
/*
SS4735 SSB Support example with OLED-I2C and Encoder.
This sketch has been successfully tested on:
1) Pro Mini 3.3V;
2) UNO (by using a voltage converter);
3) Arduino Mega (by using a voltage converter); and
4) ESP32 (LOLIN32 WEMOS)
This sketch has been successfully tested on Pro Mini 3.3V.
This sketch uses the Rotary Encoder Class implementation from Ben Buxton. The source code is included together with this sketch.
This sketch will download a SSB patch to your SI4735 device (patch_content.h). It will take about 15KB of the Arduino memory.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
together with this sketch) and LiquidCrystal I2C Library by Frank de Brabander (https://github.com/johnrickman/LiquidCrystal_I2C).
Look for LiquidCrystal I2C on Manager Libraries.
__This sketch has been successfully tested on Pro Mini 3.3V.__
This sketch will download a SSB patch to your SI4735 device (patch_content.h). It will take about 15KB of the Arduino memory.
In this context, a patch is a piece of software used to change the behavior of the SI4735 device.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
You also need to install Adafruit_GFX (https://github.com/adafruit/Adafruit-GFX-Library) and
Adafruit_SH1106 (https://github.com/wonho-maker/Adafruit_SH1106).
This sketch has been successfully tested on Pro Mini 3.3V.
By Ricardo Lima Caratti, Nov 2019.
*/

Expand Down
1 change: 1 addition & 0 deletions examples/SI4735_11_ALL_IN_ONE/SI4735_11_ALL_IN_ONE.ino
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
This sketch was tested on Arduino Pro Mini 3.3V
This sketch uses LiquidCrystal/LCD with I2C and Encoder.
This sketch has been successfully tested on Pro Mini 3.3V.
This sketch uses the Rotary Encoder Class implementation from Ben Buxton (the source code is included
together with this sketch) and LiquidCrystal I2C Library by Frank de Brabander (https://github.com/johnrickman/LiquidCrystal_I2C).
Expand Down

0 comments on commit f43e3f3

Please sign in to comment.