From 42593c894a920b10f5f9faa791eac9125d458efb Mon Sep 17 00:00:00 2001 From: Dalton Herrewynen Date: Wed, 19 Jul 2023 21:37:44 -0600 Subject: [PATCH 1/3] User guides --- examples/SI47XX_01_SERIAL_MONITOR/README.md | 138 +++++++++--------- .../{user_manual.txt => user_manual.md} | 26 ++-- .../user_manual.md | 35 +++++ .../user_manual.txt | 38 ----- .../OLED_ALL_IN_ONE/user_manual.md | 35 +++++ .../OLED_ALL_IN_ONE/user_manual.txt | 38 ----- 6 files changed, 150 insertions(+), 160 deletions(-) rename examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/{user_manual.txt => user_manual.md} (97%) create mode 100644 examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.md delete mode 100644 examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.txt create mode 100644 examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.md delete mode 100644 examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.txt diff --git a/examples/SI47XX_01_SERIAL_MONITOR/README.md b/examples/SI47XX_01_SERIAL_MONITOR/README.md index 38d1a6b8..f9574c74 100755 --- a/examples/SI47XX_01_SERIAL_MONITOR/README.md +++ b/examples/SI47XX_01_SERIAL_MONITOR/README.md @@ -4,17 +4,15 @@ This folder has some basic examples that will help you to test your board. __All sketches of this folder have been successfully tested on Pro Mini 3.3V, UNO (by using a voltage converter), Arduino Yún (by using a voltage converter), Arduino Micro (see the operating voltage of your Micro), Arduino Mega (by using a voltage converter), Arduino DUE, and ESP32 (Dev Kit and LOLIN32 WEMOS)__ - __Regarding SSB support, the SSB patch content is not part of this library__. The patches used here were made available by Mr. [Vadim Afonkin](https://youtu.be/fgjPGnTAVgM) on his [Dropbox repository](https://www.dropbox.com/sh/xzofrl8rfaaqh59/AAA5au2_CVdi50NBtt0IivyIa?dl=0). Please note that the author of this library does not encourage anyone to use the SSB patches content for commercial purposes. __In other words, while this library supports SSB patches, the patches themselves are not a part of this library__. - The table below shows the Si4735 and Arduino Pro Mini pin connections -| Si4735 pin | Arduino Pin | -| ----------------| ------------ | -| RESET (pin 15) | 12 | -| SDIO (pin 18) | A4 | -| SCLK (pin 17) | A5 | +| Si4735 pin | Arduino Pin | +| -------------- | ----------- | +| RESET (pin 15) | 12 | +| SDIO (pin 18) | A4 | +| SCLK (pin 17) | A5 | ## Example 01 - SI4735_01_POC @@ -30,28 +28,24 @@ __This sketch has been successfully tested on Pro Mini 3.3V, UNO (by using a vol I strongly recommend starting with this sketch. This example is a proof of concept of SI4735 Arduino Library. The sketch of this example 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 | -| ---------------- | ----------- | -| A or a | Select MW(AM) | -| F or f| Select FN | -| U or u | Frequency Up | -| D or d | Frequency Down | -| S | Seek - Goes to next station | -| s | Seek - Goes to previous station | -| + | Volume Up | -| - | Volume Down | -| 0 | Shows current status | -| 1 | SW band (from 1.7MHz to 30MHz) | -| 5-8 | Steps for SW: 5 to step 5kHz; 6 to 10kHz; 7 to 100kHz; 8 to 1000kHz | - - +| Keyboard command | Description | +| ---------------- | ------------------------------------------------------------------- | +| A or a | Select MW(AM) | +| F or f | Select FN | +| U or u | Frequency Up | +| D or d | Frequency Down | +| S | Seek - Goes to next station | +| s | Seek - Goes to previous station | +| + | Volume Up | +| - | Volume Down | +| 0 | Shows current status | +| 1 | SW band (from 1.7MHz to 30MHz) | +| 5-8 | Steps for SW: 5 to step 5kHz; 6 to 10kHz; 7 to 100kHz; 8 to 1000kHz | Click [here](https://github.com/pu2clr/SI4735/blob/master/examples/SI4735_01_POC/SI4735_01_POC.ino) to see this example. -
## Example 02 - SI4735_02_POC_SW @@ -61,35 +55,35 @@ This example shows how can you use SW features of the Si4735 Arduino Library. Li __This sketch has been successfully tested on Pro Mini 3.3V, UNO (by using a voltage converter), Arduino Yún (by using a voltage converter), Arduino Micro (see the operating voltage of your Micro), Arduino Mega (by using a voltage converter), Arduino DUE, and ESP32 (LOLIN32 WEMOS)__ ### SW Bands used by the example 02 -| Band | From (kHz) | To (kHz) | Default (kHz)| -| ---- | ---------- | -------- | ------------ | -| 60m | 4600| 5200| 4700| -| 49m | 5700| 6200| 6000| -| 40-41m | 7000 | 7500 | 7200| -| 31m | 9300 | 10000 | 9600 | -| 25m | 11400 | 12200 | 1800| -| 22m | 13500 | 13900 | 13600| -| 19m | 15000 | 15800 | 15200| -| 16m | 17400 | 17900 | 17600| -| 21m | 21400 | 21800 | 21500| -| 11m | 27000 | 27500 | 27220| +| Band | From (kHz) | To (kHz) | Default (kHz) | +| ------ | ---------- | -------- | ------------- | +| 60m | 4600 | 5200 | 4700 | +| 49m | 5700 | 6200 | 6000 | +| 40-41m | 7000 | 7500 | 7200 | +| 31m | 9300 | 10000 | 9600 | +| 25m | 11400 | 12200 | 1800 | +| 22m | 13500 | 13900 | 13600 | +| 19m | 15000 | 15800 | 15200 | +| 16m | 17400 | 17900 | 17600 | +| 21m | 21400 | 21800 | 21500 | +| 11m | 27000 | 27500 | 27220 | ### Controls used by the example 02 -| Keyboard command | Description | -| ---------------- | ----------- | -| A or a | Select MW(AM) | -| F or f | Select FN | -| U or u | Frequency Up | -| D or d | Frequency Down | -| S | Seek - Goes to next station | -| s | Seek - Goes to previous station | -| + | Volume Up | -| - | Volume Down | -| 1 | Previous SW band | -| 2 | Next SW band | -| 0 | Show current status | +| Keyboard command | Description | +| ---------------- | ------------------------------- | +| A or a | Select MW(AM) | +| F or f | Select FN | +| U or u | Frequency Up | +| D or d | Frequency Down | +| S | Seek - Goes to next station | +| s | Seek - Goes to previous station | +| + | Volume Up | +| - | Volume Down | +| 1 | Previous SW band | +| 2 | Next SW band | +| 0 | Show current status | Click [here](https://github.com/pu2clr/SI4735/blob/master/examples/SI4735_02_POC_SW/SI4735_02_POC_SW.ino) to see this example. @@ -101,12 +95,10 @@ The schematic below is the same shown at the main page of this project and shows ![Silicon Labs Schematic](../../extras/images/basic_schematic.png) - ### SI4735-D60 and SI4732-A10 pinout and replacement If you have a SI4732-A10 instead a SI4735-D60 device, [this section can help you](https://github.com/pu2clr/SI4735/tree/master/extras/schematic#si4735-and-si4732-pinout) - __See some shortwave antenna configuration on__ [Si47XX ANTENNA, SCHEMATIC, LAYOUT, AND DESIGN GUIDELINES; AN383](https://www.silabs.com/documents/public/application-notes/AN383.pdf)
@@ -142,33 +134,39 @@ Procced at your own risk. Features of this sketch: 1) Internal Arduino pull-up (no external resistors on schematic for buttons and encoder) + 2) Only SSB (LSB and USB) + 3) Audio bandwidth filter 0.5, 1, 1.2, 2.2, 3 and 4kHz + 4) Ten ham radio bands pre configured + 5) BFO Control -6) Frequency step switch (1, 5 and 10kHz) - Main Parts: - Encoder with push button - Seven bush buttons - OLED Display with I2C protocol - Arduino Pro mini 3.3V +6) Frequency step switch (1, 5 and 10kHz) + + Main Parts: + Encoder with push button + Seven bush buttons + OLED Display with I2C protocol + Arduino Pro mini 3.3V ### Commands that you can use via Arduino Serial Monitor -| key | Description | -| --- | ----------- | -| U | frequency up | -| D | frequency down | -| > | next band | -| < | previous band | -| W | sitches the filter bandwidth | -| B | increments the BFO | -| b | decrement the BFO | -| G | switches on/off the Automatic Gain Control | + +| key | Description | +| --- | --------------------------------------------------- | +| U | frequency up | +| D | frequency down | +| > | next band | +| < | previous band | +| W | sitches the filter bandwidth | +| B | increments the BFO | +| b | decrement the BFO | +| G | switches on/off the Automatic Gain Control | | S | switches the frequency increment and decrement step | -| s | switches the BFO increment and decrement step | -| X | shows the current status | -| H | shows this help | +| s | switches the BFO increment and decrement step | +| X | shows the current status | +| H | shows this help | For this example you can use the sketch below. diff --git a/examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/user_manual.txt b/examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/user_manual.md similarity index 97% rename from examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/user_manual.txt rename to examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/user_manual.md index 8666c895..1254f20f 100644 --- a/examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/user_manual.txt +++ b/examples/SI47XX_06_ESP32/LCD16x2_I2S_ALL_IN_ONE/user_manual.md @@ -1,26 +1,28 @@ User Manual - Commands 1. BAND SELECTION - + Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. - You will notice the control will go back to the VFO. + The control will revert back to the VFO. 2. STEP, MODE, AGC (Automatic Gain Control)/Attenuation, bandwidth, Soft Mute, AVC (Automatic Volume Control) and VOLUME - + 2.1. Press the encoder push button twice (within 1/2 second). 2.2. After that, the display will show you the Menu text. Rotate the encoder clockwise or counterclockwise + to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). + 2.3. After that, select the option you want to setup by pressing the encoder push button once again. 2.4. After that, rotate the encoder clockwise or counterclockwise to select the parameter. 2.5. Finally, you can press the button once again or wait for about 2 seconds. + The control will go back to the VFO. 3. VFO/BFO Switch (IT DOES NOT WORK ON DIGITAL MODE) - + 3.1. Press the encoder push button twice (within 1/2 second). 3.2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. 3.3. Press the encoder push button once again. @@ -28,32 +30,28 @@ Commands 3.5. If you press the button again or stop rotating the ancoder for about 2 seconds, the control will go back to the VFO. 4. SEEK - + 4.1. Select the menu by pressing twice the encoder push button. 4.2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down". 4.3. Press the encoder push button once on "Seek Up" or "Seek Down". - 5. RESET - + This sketch saves some current receiver and band parameters into the internal Arduino EEPROM (frequency, band, mode, volume and band parameters). For example: if you select an attenuation parameter or filter parameter or something else on a given band, those information will be saved into the internal Arduino EEPROM. This way, when you turn the receiver on again, that setup will be restored to that given band. To reset the EEPROM content, folow the steps below: - + 5.1. Turn the receiver off; 5.2. Press and keep pressing the encoder push button; 5.3. Turn the receiver on and wait for the message "EEPROM RESETED". - + ATTENTION: To save EEPROM write cycles, any receiver parameter change will only be saved after 10 seconds of inactivity; + Only modified parameters will be saved; If no parameter is modified, no writing will be made to the EEPROM; It you turn the receiver off before 10 seconds after any modification, the current data will not be saved; You need to wait for 10 seconds after any modification to save the current receiver setup. - - - ATTENTION: Try press and release the push button fastly. I mean, do not keep the button pressed for a long time. If you do that, you might alternate the command status (enable and disable) randomly. - diff --git a/examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.md b/examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.md new file mode 100644 index 00000000..548d8daa --- /dev/null +++ b/examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.md @@ -0,0 +1,35 @@ +# User Manual + +## Commands + +#### BAND SELECTION + + 1. Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. + 2. When the desired band is shown on the display, press the button once again or wait for about 2 seconds for the screen to revert to VF0. + +#### STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME + + 1. Double press the encoder button (Press the button twice within 1/2 second). + 2. The display will then show you the Menu text. Rotate the encoder clockwise or counterclockwise to select the desired option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). + 3. Select the desired option by pressing the encoder push button again. + 4. Rotate the encoder clockwise or counterclockwise to select the parameter. + 5. Finally, you can press the button once again or wait for about 2 seconds, the controls will then revert to VF0. + +#### VFO/BFO Switch + + 1. Double press the encoder button (Press the button twice within 1/2 second). + 2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. + - Note: This option is shown only available in SSB mode. + 3. Press the encoder push button again. + 4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). + 5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will revert back to VFO. + +#### SEEK + + 1. Select the menu by double pressing the encoder push button. + 2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down". + 3. Press the encoder push button once on "Seek Up" or "Seek Down". + +### ATTENTION: + +Try to quickly press and release the push button. If you hold down the button for too long, the board may randomly detect extra button presses. diff --git a/examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.txt b/examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.txt deleted file mode 100644 index 8ec22ff4..00000000 --- a/examples/SI47XX_06_ESP32/LCD20x4_ALL_IN_ONE_LUATOS_ESP32C3/user_manual.txt +++ /dev/null @@ -1,38 +0,0 @@ -User Manual - -Commands - -1. BAND SELECTION - - Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. - When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. - You will notice the control will go back to the VFO. - -2. STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME - - 2.1. Press the encoder push button twice (within 1/2 second). - 2.2. After that, the display will show you the Menu text. Rotate the encoder clockwise or counterclockwise - to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). - 2.3. After that, select the option you want to setup by pressing the encoder push button once again. - 2.4. After that, rotate the encoder clockwise or counterclockwise to select the parameter. - 2.5. Finally, you can press the button once again or wait for about 2 seconds. - The control will go back to the VFO. - -3. VFO/BFO Switch - - 3.1. Press the encoder push button twice (within 1/2 second). - 3.2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. - 3.3. Press the encoder push button once again. - 3.4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - 3.5. If you press the button again or stop rotating the ancoder for about 2 seconds, the control will go back to the VFO. - -4. SEEK - - 4.1. Select the menu by pressing twice the encoder push button. - 4.2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down". - 4.3. Press the encoder push button once on "Seek Up" or "Seek Down". - - -ATTENTION: Try press and release the push button quickly. If you hold the button too long, then the board - might alternate the command status (enable and disable) randomly. - diff --git a/examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.md b/examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.md new file mode 100644 index 00000000..1e5764c5 --- /dev/null +++ b/examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.md @@ -0,0 +1,35 @@ +# User Manual + +## Commands + +#### BAND SELECTION + + 1. Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. + 2. When the desired band is shown on the display, press the button once again or wait for about 2 seconds for the screen to revert to VF0. + +#### STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME + + 1. Double press the encoder button (Press the button twice within 1/2 second). + 2. The display will then show you the Menu text. Rotate the encoder clockwise or counterclockwise to select the desired option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). + 3. Select the desired option by pressing the encoder push button again. + 4. Rotate the encoder clockwise or counterclockwise to select the parameter. + 5. Finally, you can press the button once again or wait for about 2 seconds, the controls will then revert to VF0. + +#### VFO/BFO Switch + + 1. Double press the encoder button (Press the button twice within 1/2 second). + 2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. + - Note: This option is shown only available in SSB mode. + 3. Press the encoder push button again. + 4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). + 5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will revert back to VFO. + +#### SEEK + + 1. Select the menu by double pressing the encoder push button. + 2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down". + 3. Press the encoder push button once on "Seek Up" or "Seek Down". + +### ATTENTION: + +Try to quickly press and release the push button. If you hold down the button for too long, the board may randomly detect extra button presses. diff --git a/examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.txt b/examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.txt deleted file mode 100644 index e7976384..00000000 --- a/examples/SI47XX_06_ESP32/OLED_ALL_IN_ONE/user_manual.txt +++ /dev/null @@ -1,38 +0,0 @@ -User Manual - -Commands - -1. BAND SELECTION - - Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. - When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. - You will notice the control will go back to the VFO. - -2. STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME - - 2.1. Press the encoder push button twice (within 1/2 second). - 2.2. After that, the display will show you the Menu text. Rotate the encoder clockwise or counterclockwise - to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). - 2.3. After that, select the option you want to setup by pressing the encoder push button once again. - 2.4. After that, rotate the encoder clockwise or counterclockwise to select the parameter. - 2.5. Finally, you can press the button once again or wait for about 2 seconds. - The control will go back to the VFO. - -3. VFO/BFO Switch - - 3.1. Press the encoder push button twice (within 1/2 second). - 3.2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. - 3.3. Press the encoder push button once again. - 3.4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - 3.5. If you press the button again or stop rotating the ancoder for about 2 seconds, the control will go back to the VFO. - -4. SEEK - - 4.1. Select the menu by pressing twice the encoder push button. - 4.2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down". - 4.3. Press the encoder push button once on "Seek Up" or "Seek Down". - - -ATTENTION: Try press and release the push button quickly. If you hold the button too long, the board might - alternate the command status (enable and disable) randomly. - From 52146b72c2a253e77cced4d8213cfc6bd7f71282 Mon Sep 17 00:00:00 2001 From: Dalton Herrewynen Date: Fri, 27 Oct 2023 11:53:40 -0600 Subject: [PATCH 2/3] Spelling and grammar of documentation and comments --- examples/SI47XX_05_ATTINY85/README.md | 8 +- .../ALL_IN_ONE_7_BUTTONS/user_manual.md | 30 +++---- .../ALL_IN_ONE_ENCODER_RDS/user_manual.md | 80 +++++++++---------- .../README.md | 3 - .../SI47XX_03_RDS_TFT_ILI9225/user_manual.md | 45 +++++------ .../POC_LCD16x2/user_manual.md | 52 ++++++------ .../user_manual.md | 61 +++++++------- .../SI47XX_99_AUTO_BANDPASS_FILTER/README.md | 2 - .../user_manual.md | 24 ++++++ .../user_manual.md} | 20 +++-- .../user_manual.txt | 28 ------- .../TOOLS/SI47XX_70_CAPACITOR_TEST/README.md | 2 +- src/SI4735.cpp | 35 ++++---- 13 files changed, 180 insertions(+), 210 deletions(-) create mode 100644 examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md rename examples/{SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt => TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md} (50%) delete mode 100644 examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt diff --git a/examples/SI47XX_05_ATTINY85/README.md b/examples/SI47XX_05_ATTINY85/README.md index 7486a68a..f2299b5b 100755 --- a/examples/SI47XX_05_ATTINY85/README.md +++ b/examples/SI47XX_05_ATTINY85/README.md @@ -1,7 +1,7 @@ # Examples of using the Si4735 Arduino Library on ATtiny85 This folder shows how you can use de Si4735 Arduino Library on the very small ATtiny85. -See the examples below. +See the examples below. ## SI47XX 01 - SI47XX_01_ATTINY85_LCD_16x2_I2C - AM/FM receiver with ATtiny85 @@ -33,7 +33,7 @@ The pull-up resistor values may vary depending on the devices connected to the I -#### ATtiny85 AND EXTERNAL EEPROM SETUP +#### ATtiny85 AND EXTERNAL EEPROM SETUP ![Schematic ATtiny85 and Si4735](../../extras/images/schematic_attiny85_ssb_external_eeprom.png) @@ -45,7 +45,7 @@ The photo below show the Si4730 on adapter board with the basic components sugge ![Photo ATtiny85 and Si4730 on Adapter](https://github.com/pu2clr/SI4735/blob/master/extras/images/SI4730_on_adapterA.png) -
+
The photo below shows the Si4730 on adapter board connect attached on a mini breadboard. @@ -53,7 +53,7 @@ The photo below shows the Si4730 on adapter board connect attached on a mini bre
-The Si4730 and ATtiny85 FM radio prototype. +The Si4730 and ATtiny85 FM radio prototype. ![Photo ATtiny85 and Si4730](https://github.com/pu2clr/SI4735/blob/master/extras/images/SI4730_attiny85A.png) diff --git a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md index 8a93d503..503980f1 100644 --- a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md +++ b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md @@ -1,23 +1,25 @@ -##User manual - -1. BAND, MODE, AGC/Attenuation, bandwith and STEP +## User manual +1. BAND, MODE, AGC/Attenuation, bandwidth and STEP + Press the push button, and then rotate the encoder to select the option. - + For example: - - * To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. - The display will show you the current band. - * To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. - * And in a similar manner, you can alter AGC/Attenuation, STEP and Bandwith settings. - - __Tip:__ Try press and release the push button quickly. If you hold the button too long, the board may randomly alternate the command status (enable and disable). + + * To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. + The display will show you the current band. + + * To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. + + * And in a similar manner, you can alter AGC/Attenuation, STEP and Bandwith settings. + + __Tip:__ Try press and release the push button quickly. If you hold the button too long, the board may randomly alternate the command status (enable and disable). 2. SEEK COMMAND - + The seek button should be used to find a station. The seek direction is based on the last encoder movement. - If clockwise, the seek will go up; if counterclockwise, the seek will go down. + TO seek up, turn clockwise. To seek down, turn counterclockwise. 3. VFO/VFO Switch - + To control the VFO and BFO, used the encoder push button. The display will show if you are using VFO or BFO. diff --git a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md index 2f1efbd9..f41b5983 100644 --- a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md +++ b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md @@ -1,64 +1,56 @@ -##User Manual +# User Manual -You can control and select any function of this receiver using the encoder and push button of the encoder - -This receiver save all current status in the internal EEPROM of the ATmega328. This way, when you turn +You can control and select any function of this receiver using the encoder and push button under the encoder +This receiver saves its status in the internal EEPROM of the ATmega328. This way, when you turn the receiver on again, the last status will be restored. +## Commands -###Commands - -1. BAND SELECTION +### BAND SELECTION - Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. - When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. - You will notice the control will go back to the VFO. +1. Select the band by pressing the encoder push button once, and then rotate the encoder clockwise or counterclockwise to cycle through bands. +2. When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. The control will then revert back to the VFO. -2. STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute, Automatic Volume Control (AVC) and VOLUME +### STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute, Automatic Volume Control (AVC) and VOLUME - 2.1. Press the encoder push button twice (within 1/2 second). - 2.2. After that, the display will show you the Menu text. Rotate the encoder clockwise or counterclockwise - to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). - 2.3. After that, select the option you want to setup by pressing the encoder push button once again. - 2.4. After that, rotate the encoder clockwise or counterclockwise to select the parameter. - 2.5. Finally, you can press the button once again or wait for about 2 seconds. - The control will go back to the VFO. +1. Double press the encoder push button (Press twice within 1/2 second). +2. The display will show you the Menu text. Rotate the encoder clockwise or counterclockwise to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). +3. Select the option you want to setup by pressing the encoder push button once again. +4. Rotate the encoder clockwise or counterclockwise to select the parameter. +5. Finally, you can press the button once again or wait for about 2 seconds. The control will go back to the VFO. -3. VFO/BFO Switch +### VFO/BFO Switch - 3.1. Press the encoder push button twice (within 1/2 second). - 3.2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. - 3.3. Press the encoder push button once again. - 3.4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - 3.5. If you press the button again or stop rotating the ancoder for about 2 seconds, the control will go back to the VFO. +1. Double press the encoder push button (Press twice within 1/2 second). +2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. +3. Press the encoder push button again. +4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). +5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will go back to the VFO. -4. SEEK +### SEEK - 4.1. Select the menu by pressing twice the encoder push button. - 4.2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down". - 4.3. Press the encoder push button once on "Seek Up" or "Seek Down". +1. Select the menu by pressing twice the encoder push button. +2. Rotate the encoder clockwise or counterclockwise to select "Seek Up" or "Seek Down" +3. Press the encoder push button once on "Seek Up" or "Seek Down" to seek up or down. -5. RESET +### RESET - This sketch saves some current receiver and band parameters into the internal Arduino EEPROM (frequency, band, mode, volume and band parameters). - For example: if you select an attenuation parameter or filter parameter or something else on a given band, those information will be saved into the internal Arduino EEPROM. - This way, when you turn the receiver on again, that setup will be restored to that given band. - To reset the EEPROM content, folow the steps below: + This sketch saves some current receiver and band parameters into the internal Arduino EEPROM (frequency, band, mode, volume and band parameters). + For example: if you select an attenuation parameter or filter parameter or something else on a given band, those information will be saved into the internal Arduino EEPROM. + This way, when you turn the receiver on again, that setup will be restored to that given band. + To reset the EEPROM content, follow the steps below: - 5.1. Turn the receiver off - 5.2. Press and keep pressing the encoder push button - 5.3. Turn the receiver on and wait for the message "EEPROM RESET" +1. Turn the receiver off +2. Press and keep pressing the encoder push button +3. Turn the receiver on and wait for the "EEPROM RESET" message -###ATTENTION: +### ATTENTION: -To save EEPROM write cycles, any receiver parameter change will only be saved after 10 seconds of inactivity -Only modified parameters will be saved -If no parameter is modified, no writing will be made to the EEPROM -It you turn the receiver off before 10 seconds after any modification, the current data will not be saved; -You need to wait for 10 seconds after any modification to save the current receiver setup. +To save EEPROM write cycles: +- Any receiver parameter change will only be saved after 10 seconds of inactivity, allow the system 10 seconds after changing a parameter and powering down in order to save you settings. +- Only modified parameters will be saved to EEPROM. -###ATTENTION: +### ATTENTION: Try press and release the push button quickly. if you hold the button too long, the board may randomly alternate the command status (enable and disable). - diff --git a/examples/SI47XX_10_RDS/SI47XX_02_RDS_TFT_TOUCH_SHIELD_35/README.md b/examples/SI47XX_10_RDS/SI47XX_02_RDS_TFT_TOUCH_SHIELD_35/README.md index 84fc8355..a211aa4f 100644 --- a/examples/SI47XX_10_RDS/SI47XX_02_RDS_TFT_TOUCH_SHIELD_35/README.md +++ b/examples/SI47XX_10_RDS/SI47XX_02_RDS_TFT_TOUCH_SHIELD_35/README.md @@ -1,5 +1,2 @@ - All Arduino DUE/MEGA examples have RDS feature. See folder [examples/SI47XX_16_ARDUINO_DUE_MEGA](https://github.com/pu2clr/SI4735/tree/master/examples/SI47XX_16_ARDUINO_DUE_MEGA) - - diff --git a/examples/SI47XX_10_RDS/SI47XX_03_RDS_TFT_ILI9225/user_manual.md b/examples/SI47XX_10_RDS/SI47XX_03_RDS_TFT_ILI9225/user_manual.md index 252e6d91..a6624cff 100644 --- a/examples/SI47XX_10_RDS/SI47XX_03_RDS_TFT_ILI9225/user_manual.md +++ b/examples/SI47XX_10_RDS/SI47XX_03_RDS_TFT_ILI9225/user_manual.md @@ -1,28 +1,25 @@ - -User manual - -1. BAND, MODE, AGC/Attenuation, banddwith and STEP - - Press the desired command push button and after, rotate the encoder to select the option you want. For example: - To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. - The display will show you the current band. If you are on AM mode, you can use also the encoder push - button to select the band. - - To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. - - The same idea you can use to AGC/Attenuation, STEP and Bandwith. - - __Tip:__ Try press and release the push button quickly. If you hold the button too long, then the board may - randomly alternate the command status (enable and disable). - +# User manual + +1. BAND, MODE, AGC/Attenuation, bandwidth and STEP + + Press the desired command push button, and then rotate the encoder to select the option you want. + + For example: + To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. + The display will show you the current band. If you are on AM mode, you can use also the encoder push button to select the band. + + To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. + + The same method works to change the AGC/Attenuation, STEP, and Bandwidth settings. + + __Tip:__ Try press and release the push button quickly. If you hold the button too long, then the board may randomly alternate the command status (enable and disable). 2. SEEK COMMAND - - The seek button should be used to find a station. The seek direction is based on the last encoder movement. - If clockwise, the seek will go up; if counterclockwise, the seek will go down. - + + The seek button should be used to find a station. The seek direction is based on the last encoder movement. + If clockwise, the system seeks up. If counterclockwise, the system seeks down. 3. VFO/VFO Switch - - To control the VFO and BFO, used the encoder push button. The display will show if you are using VFO or BFO. - This action will only work on SSB mode. + + To control the VFO and BFO, used the encoder push button. The display will show if you are using VFO or BFO. + This action will only work on SSB mode. diff --git a/examples/SI47XX_11_NO_CRYSTAL/POC_LCD16x2/user_manual.md b/examples/SI47XX_11_NO_CRYSTAL/POC_LCD16x2/user_manual.md index 541ad178..0566ec22 100644 --- a/examples/SI47XX_11_NO_CRYSTAL/POC_LCD16x2/user_manual.md +++ b/examples/SI47XX_11_NO_CRYSTAL/POC_LCD16x2/user_manual.md @@ -1,4 +1,4 @@ -#User Manual +# User Manual This sketch was built to check the external active crystal oscillator instead of a passive crystal. @@ -14,46 +14,40 @@ If you are using a SI4735-D60 or SI4732-A10 based circuit, you can also use this original Pavleski's project. If you are using the original SI4730-D60 based circuit, the SSB will not work. However, the STEP, MODE, AGC, Attenuation, bandwidth, Soft Mute, Audio Volume and Shortwave will still work. -###Commands +### Commands -1. BAND SELECTION +#### BAND SELECTION - 1.1 Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. - 1.2 When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. - 1.3 The control will then go back to the VFO. + 1. Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. + 2. When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. + 3. The control will then go back to the VFO. -2. STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME +#### STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME - 2.1. Press the encoder push button twice (within 1/2 second). - 2.2. After that, the display will show you the Menu text. Rotate the encoder clockwise or counterclockwise - to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). - 2.3. After that, select the option you want to setup by pressing the encoder push button once again. - 2.4. After that, rotate the encoder clockwise or counterclockwise to select the parameter. - 2.5. Finally, you can press the button once again or wait for about 2 seconds. - The control will then go back to the VFO. + 1. Double press teh encoder push button (Press twice within 1/2 second). + 2. The display will show you the Menu text. Rotate the encoder clockwise or counterclockwise to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). + 3. Select the option you want to setup by pressing the encoder push button once again. + 4. Rotate the encoder clockwise or counterclockwise to select the desired parameter. + 5. Finally, you can press the button once again or wait for about 2 seconds. The control will then go back to the VFO. -3. VFO/BFO Switch +#### VFO/BFO Switch - 3.1. Press the encoder push button twice (within 1/2 second). - 3.2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. - 3.3. Press the encoder push button once again. - 3.4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - 3.5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will go back to the VFO. + 1. Double press teh encoder push button (Press twice within 1/2 second). + 2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. + 3. Press the encoder push button again. + 4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). + 5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will go back to the VFO. +#### SEEK -4. SEEK + 1. Select the menu by pressing twice the encoder push button. The seek direction is based on the last encoder movement. If clockwise, the system seeks up. If counterclockwise, the system seeks down. - 4.1. Select the menu by pressing twice the encoder push button. The seek direction is based on the last encoder - movement. If clockwise, the seek will go up. If counterclockwise, the seek will go down. + __ATTENTION:__ Try press and release the push button quickly. If you hold the button too long, the board may randomly alternate the command status (enable and disable). - __ATTENTION:__ Try press and release the push button quickly. If you hold the button too long, the board may - randomly alternate the command status (enable and disable). + After about 2 seconds, the current command or action is cancelled automatically and the interface goes back to VFO control. - After about 2 seconds, the current command or action is disabled automatically and the interface goes back - to VFO control. - -###TIPS: +### TIPS: You can adjust the time to disable a current command or action by changing the constant ELAPSED_COMMAND (#define ELAPSED_COMMAND 2000). The value 2000 means 2 seconds. Increase or decrease the value to find the speed you prefer. diff --git a/examples/SI47XX_12_MORSE_CODE_READOUT/user_manual.md b/examples/SI47XX_12_MORSE_CODE_READOUT/user_manual.md index c701994a..6ea33904 100644 --- a/examples/SI47XX_12_MORSE_CODE_READOUT/user_manual.md +++ b/examples/SI47XX_12_MORSE_CODE_READOUT/user_manual.md @@ -1,49 +1,44 @@ -#User Manual +# User Manual This skech demonstrates a way to report the current status of the receiver via Morse Code. However, the prototype used by this sketch is not intended for blind people. It is just an idea to inspire people to build receivers with accessibility features. -###Commands +### Commands -1. BAND SELECTION +#### BAND SELECTION + + 1. Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counter clockwise + 2. When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. The control will then revert back to VFO - 1.1 Select the band by pressing the encoder push button once and then rotate the encoder clockwise or counterclockwise. - 1.2 When the desired band is shown on display, you can press the button once again or wait for about 2 seconds. - The control will then go back to the VFO. +#### STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME + + 1. Double press the encoder push button (within 1/2 second) + 2. The display will now show you the Menu text. Rotate the encoder clockwise or counterclockwise to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc) + 3. Select the option you want to setup by pressing the encoder push button again + 4. Rotate the encoder clockwise or counterclockwise to select the desired parameter + 5. Finally, you can press the button once again or wait for about 2 seconds. The control will then revert back to VFO -2. STEP, MODE, AGC/Attenuation, bandwidth, Soft Mute and VOLUME +#### VFO/BFO Switch + + 1. Double press the encoder push button twice (within 1/2 second) + 2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode + 3. Press the encoder push button again + 4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset) + 5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will revert back to VFO - 2.1. Press the encoder push button twice (within 1/2 second). - 2.2. After that, the display will show you the Menu text. Rotate the encoder clockwise or counterclockwise - to select the option (STEP, MODE, AGC/Attenuation, bandwidth, VOLUME, etc). - 2.3. After that, select the option you want to setup by pressing the encoder push button once again. - 2.4. After that, rotate the encoder clockwise or counterclockwise to select the parameter. - 2.5. Finally, you can press the button once again or wait for about 2 seconds. - The control will go back to the VFO. +#### SEEK + + 1. Select the menu by pressing twice the encoder push button. The seek direction is based on the last encoder movement. Rotate clockwise to seek up, or counterclockwise to seek down. + +#### ATTENTION: -3. VFO/BFO Switch + Try to quickly press and release the push button. If you hold the button too long, the board may randomly alternate the command status (enable and disable). + After about 2 seconds, the current command or action is disabled automatically and the interface reverts back to VFO control. - 3.1. Press the encoder push button twice (within 1/2 second). - 3.2. Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. - 3.3. Press the encoder push button once again. - 3.4. Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - 3.5. If you press the button again or stop rotating the encoder for about 2 seconds, the control will go back to the VFO. - -4. SEEK - - 4.1. Select the menu by pressing twice the encoder push button. The seek direction is based on the last encoder - movement. If clockwise, the seek will go up. If counterclockwise, the seek will go down. - - ATTENTION: Try to press and release the push button quickly. If you hold the button too long, the board may randomly alternate - the command status (enable and disable). - After about 2 seconds, the current command or action is disabled automatically and the interface goes back - to VFO control. - -###TIPS: +#### TIPS: You can adjust the time to disable a current command or action by changing the constant ELAPSED_COMMAND (#define ELAPSED_COMMAND 2000). The value 2000 means 2 seconds. Adjust this value according to your preference. Try to refine the constant ELAPSED_CLICK (#define ELAPSED_CLICK 1500). This constant controls the time for double click on encoder push button. Smaller values demand more agility in the double click. - diff --git a/examples/SI47XX_99_AUTO_BANDPASS_FILTER/README.md b/examples/SI47XX_99_AUTO_BANDPASS_FILTER/README.md index 7bb38f13..0644e25a 100644 --- a/examples/SI47XX_99_AUTO_BANDPASS_FILTER/README.md +++ b/examples/SI47XX_99_AUTO_BANDPASS_FILTER/README.md @@ -2,10 +2,8 @@ The examples available here use a band pass filter (BPF) controlled by the same Arduino that controls the Si473X device. Two digital Arduino pins are used to control the BPF. All about the BPF project click [here](https://pu2clr.github.io/auto_bpf_arduino/). - ![Band Pass Filter controlled by Arduino](https://pu2clr.github.io/auto_bpf_arduino/images/schematic_01.png) - See videos: * [HF Auto Bandpass filter controlled by Arduino (first test)](https://youtu.be/M1PDRzVvAm0) diff --git a/examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md b/examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md new file mode 100644 index 00000000..d6d1e7b7 --- /dev/null +++ b/examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md @@ -0,0 +1,24 @@ +# User Manual + +### BAND, MODE, AGC/Attenuation, bandwidth, and STEP + +Press the desired command push button, and then, use the encoder to select the option you want. For example: +To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. +The display will show you the current band. If you are on AM mode, you can use also the encoder push +button to select the band. + +To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. + +The same method can be used to change the AGC/Attenuation, STEP, and Bandwidth settings. + +__Tip:__ Try to quickly press and release the push button. If you hold down the button for an extended time, the system could accidentally register extra button presses. + +### SEEK COMMAND + +The seek button should be used to find a station. The seek direction is based on the last encoder movement. +To seek up, turn clockwise. To seek down, turn counterclockwise. + +### VFO/VFO Switch + +To control the VFO and BFO, used the encoder push button. The display will show if you are using VFO or BFO. +__Note:__ This action only works in SSB mode. diff --git a/examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt b/examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md similarity index 50% rename from examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt rename to examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md index 0cd16b91..50b7eed4 100644 --- a/examples/SI47XX_99_AUTO_BANDPASS_FILTER/SI473X_02_AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt +++ b/examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.md @@ -1,28 +1,26 @@ +# User manual -User manual - -1. BAND, MODE, AGC/Attenuation, banddwith and STEP +### 1. BAND, MODE, AGC/Attenuation, bandwith and STEP Press the desired command push button and after, rotate the encoder to select the option you want. For example: To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. -The display will show you the current band. If you are on AM mode, you can use also the encoder push +The display will show you the current band. If you are in AM mode, you can use also the encoder push button to select the band. To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. -The same idea you can use to AGC/Attenuation, STEP and Banddwith. +Use the same procedure to set the AGC/Attenuation, STEP and Bandwith options. -Tip: Try press and release the push button fastly. I mean, do not keep the button pressed for a long time. - If you do that, you might alternate the command status (enable and disable) randomly. +**Tip:** Do not hold down the push button for too long, or the system may interpret it as repeated presses. This may cause it to rapidly toggle (enable and disable) the selected option. -2. SEEK COMMAND +### 2. SEEK COMMAND The seek button should be used to find a station. The seek direction is based on the last encoder movement. -If clockwise, the seek will go up; if counterclockwise, the seek will go down. +Rotate clockwise to seek upwards, rotate counterclockwise to seek down. -3. VFO/VFO Switch +### 3. VFO/VFO Switch To control the VFO and BFO, used the encoder push button. The display will show if you are using VFO or BFO. -It is importante to say the this action work only on SSB mode. +Note: This action only works in SSB mode. diff --git a/examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt b/examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt deleted file mode 100644 index 0cd16b91..00000000 --- a/examples/TOOLS/AUTO_BANDPASS_FILTER_TFT_ILI9225/user_manual.txt +++ /dev/null @@ -1,28 +0,0 @@ - -User manual - -1. BAND, MODE, AGC/Attenuation, banddwith and STEP - -Press the desired command push button and after, rotate the encoder to select the option you want. For example: -To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. -The display will show you the current band. If you are on AM mode, you can use also the encoder push -button to select the band. - -To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. - -The same idea you can use to AGC/Attenuation, STEP and Banddwith. - -Tip: Try press and release the push button fastly. I mean, do not keep the button pressed for a long time. - If you do that, you might alternate the command status (enable and disable) randomly. - - -2. SEEK COMMAND - -The seek button should be used to find a station. The seek direction is based on the last encoder movement. -If clockwise, the seek will go up; if counterclockwise, the seek will go down. - - -3. VFO/VFO Switch - -To control the VFO and BFO, used the encoder push button. The display will show if you are using VFO or BFO. -It is importante to say the this action work only on SSB mode. diff --git a/examples/TOOLS/SI47XX_70_CAPACITOR_TEST/README.md b/examples/TOOLS/SI47XX_70_CAPACITOR_TEST/README.md index ee3011fb..cd30d041 100755 --- a/examples/TOOLS/SI47XX_70_CAPACITOR_TEST/README.md +++ b/examples/TOOLS/SI47XX_70_CAPACITOR_TEST/README.md @@ -2,7 +2,7 @@ ## About SI4735_POC.ino -This project is a proof of concept for SI4735 device controlled by Arduino and the SI4735 Library. This Arduino Sketch only works on your IDE (Arduino IDE). However, you can replace the Serial Monitor functions that deal the SI4735 and arduino with functions that will manipulate the LCD, encoder and push buttons appropriated for your project. +This project is a proof of concept for SI4735 device controlled by Arduino and the SI4735 Library. This Arduino Sketch only works on your IDE (Arduino IDE). However, you can replace the Serial Monitor functions that deal the SI4735 and arduino with functions that will manipulate the LCD, encoder and push buttons appropriate for your project. [PU2CLR Si47XX API documentation](https://pu2clr.github.io/SI4735/extras/apidoc/html/) diff --git a/src/SI4735.cpp b/src/SI4735.cpp index c7e813b5..1e24bd32 100644 --- a/src/SI4735.cpp +++ b/src/SI4735.cpp @@ -105,7 +105,7 @@ si47x_status SI4735::getInterruptStatus() * @details To avoid excessive current consumption due to oscillation, GPO pins should not be left in a high impedance state. * * | GPIO Output Enable | value 0 | value 1 | - * | ---- ---------------| ------- | ------- | + * | --------------------| ------- | ------- | * | GPO1OEN | Output Disabled (Hi-Z) (default) | Output Enabled | * | GPO2OEN | Output Disabled (Hi-Z) (default) | Output Enabled | * | GPO3OEN | Output Disabled (Hi-Z) (default) | Output Enabled | @@ -144,7 +144,7 @@ void SI4735::setGpioCtl(uint8_t GPO1OEN, uint8_t GPO2OEN, uint8_t GPO3OEN) * @details To avoid excessive current consumption due to oscillation, GPO pins should not be left in a high impedance state. * * | GPIO Output Enable | value 0 | value 1 | - * | ---- ---------------| ------- | ------- | + * | --------------------| ------- | ------- | * | GPO1LEVEL | Output low (default) | Output high | * | GPO2LEVEL | Output low (default) | Output high | * | GPO3LEVEL | Output low (default) | Output high | @@ -392,7 +392,7 @@ void SI4735::setPowerUp(uint8_t CTSIEN, uint8_t GPO2OEN, uint8_t PATCH, uint8_t * | CTSIEN | Interrupt anabled or disabled | * | GPO2OEN | GPO2 Output Enable or disabled | * | PATCH | Boot normally or patch | - * | XOSCEN | 0 (XOSCEN_RCLK) = external active crystal oscillator. 1 (XOSCEN_CRYSTAL) = passive crystal oscillator; | + * | XOSCEN | 0 (XOSCEN_RCLK) = external active crystal oscillator. 1 (XOSCEN_CRYSTAL) = passive crystal oscillator | * | FUNC | defaultFunction = 0 = FM Receive; 1 = AM (LW/MW/SW) Receiver | * | OPMODE | SI473X_ANALOG_AUDIO (B00000101) or SI473X_DIGITAL_AUDIO (B00001011) | * @@ -632,7 +632,7 @@ void SI4735::setup(uint8_t resetPin, uint8_t defaultFunction) * @details On FM mode, the Antenna Tuning Capacitor is valid only when using TXO/LPI pin as the antenna input. * This selects the value of the antenna tuning capacitor manually, or automatically if set to zero. * The valid range is 0 to 191. Automatic capacitor tuning is recommended. - * For example, if the varactor is set to a value of 5 manually, when read back the value will be 1. + * For example, if the capacitor is set to a value of 5 manually, when read back the value will be 1. * @details on AM mode, If the value is set to anything other than 0, the tuning capacitance is manually set as 95 fF x ANTCAP + 7 pF. * ANTCAP manual range is 1–6143. Automatic capacitor tuning is recommended. In SW mode, ANTCAPH[15:8] (high byte) needs to be set to 0 and ANTCAPL[7:0] (low byte) needs to be set to 1. * @@ -946,7 +946,7 @@ uint16_t SI4735::getFrequency() /** * @ingroup group08 Frequency * - * @brief Gets the current status of the Si4735 (AM or FM) + * @brief Gets the current status of the Si4735 (AM or FM) * * @see Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 73 (FM) and 139 (AM) * @@ -1250,7 +1250,7 @@ void SI4735::seekPreviousStation() * @brief Seeks a station up or down. * @details Seek up or down a station and call a function defined by the developer to show the frequency. * @details The first parameter of this function is a name of your function that you have to implement to show the current frequency. - * @details If you do not want to show the seeking progress, you can set NULL instead the name of the function. + * @details If you do not want to show the seeking progress, you can set NULL instead the name of the function. * @details The code below shows an example using ta function the shows the current frequency on he Serial Monitor. You might want to implement a function that shows the frequency on your display device. * @details Also, you have to declare the frequency parameter that will be used by the function to show the frequency value. * @details __This function does not work on SSB mode__. @@ -1303,7 +1303,7 @@ void SI4735::seekStationProgress(void (*showFunc)(uint16_t f), uint8_t up_down) * @details Seek up or down a station and call a function defined by the developer to show the frequency and stop seeking process by the user. * @details The first parameter of this function is a name of your function that you have to implement to show the current frequency. * @details The second parameter is the name function that will check stop seeking action. Thus function should return true or false and should read a button, encoder or some status to make decision to stop or keep seeking. - * @details If you do not want to show the seeking progress, you can set NULL instead the name of the function. + * @details If you do not want to show the seeking progress, you can set NULL instead the name of the function. * @details If you do not want stop seeking checking, you can set NULL instead the name of a function. * @details The code below shows an example using ta function the shows the current frequency on he Serial Monitor. You might want to implement a function that shows the frequency on your display device. * @details Also, you have to declare the frequency parameter that will be used by the function to show the frequency value. @@ -1774,7 +1774,7 @@ void SI4735::disableFmDebug() * * @details Options: DCLK edge, data format, force mono, and sample precision. * - * ATTENTION: The document AN383; "Si47XX ANTENNA, SCHEMATIC, LAYOUT, AND DESIGN GUIDELINES"; rev 0.8; page 6; there is the following note: + * ATTENTION: The document AN383; "Si47XX ANTENNA, SCHEMATIC, LAYOUT, AND DESIGN GUIDELINES"; rev 0.8; page 6; has the following note: * Crystal and digital audio mode cannot be used at the same time. Populate R1 and remove C10, C11, and X1 when using digital audio. * * @see Si47XX PROGRAMINGGUIDE; AN332 (REV 1.0); page 195. @@ -1807,7 +1807,7 @@ void SI4735::digitalOutputFormat(uint8_t OSIZE, uint8_t OMONO, uint8_t OMODE, ui * @details before the DCLK/DFS is removed. FM_TUNE_FREQ command must be sent after the POWER_UP command to start * @details the internal clocking before setting this property. * - * ATTENTION: The document AN383; "Si47XX ANTENNA, SCHEMATIC, LAYOUT, AND DESIGN GUIDELINES"; rev 0.8; page 6; there is the following note: + * ATTENTION: The document AN383; "Si47XX ANTENNA, SCHEMATIC, LAYOUT, AND DESIGN GUIDELINES"; rev 0.8; page 6; has the following note: * Crystal and digital audio mode cannot be used at the same time. Populate R1 and remove C10, C11, and X1 when using digital audio. * * @see Si47XX PROGRAMINGGUIDE; AN332 (REV 1.0); page 196. @@ -2731,7 +2731,7 @@ char *SI4735::getRdsDateTime() * to the device every time the device is powered up. * * I would like to thank Mr Vadim Afonkin for making the SSBRX patches available for - * SI4735-D60/SI4732-A10 on his Dropbox repository. On this repository you have two files, + * SI4735-D60/SI4732-A10 on his Dropbox repository. In this repository you have two files, * amrx_6_0_1_ssbrx_patch_full_0x9D29.csg and amrx_6_0_1_ssbrx_patch_init_0xA902.csg. * The patch content of the original files is in hexadecimal format, stored in an * ASCII text file. @@ -2741,10 +2741,11 @@ char *SI4735::getRdsDateTime() * 0xFF = 255 (11111111); * * @details ATTENTION: The author of this project cannot guarantee that procedures shown - * here will work in your development environment. Proceed at your own risk. + * here will work in your development environment. * This library works with the I²C communication protocol to send an SSB extension PATCH to * SI4735-D60 and SI4732-A10 devices. Once again, the author disclaims any and all liability for any - * damage or effects this procedure may have on your devices. Procced at your own risk. + * damage or effects this procedure may have on your devices. The patch and procedures are provided with no + * warranty. Proceed at your own risk. * @see AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; pages 3 and 5 */ @@ -3565,11 +3566,11 @@ void SI4735::removeUnwantedChar(char *str, int size) { * 0xFF = 255 (11111111); * * @details ATTENTION: The author of this project cannot guarantee that procedures shown - * here will work in your development environment. Proceed at your own risk. - * This library works with the I²C communication protocol to send an SSB extension - * PATCH to SI4735-D60 and SI4732-A10 devices. Once again, the author disclaims any - * and all liability for any damage or effects this procedure may have on your devices. - * Proceed at your own risk. + * here will work in your development environment. + * This library works with the I²C communication protocol to send an SSB extension PATCH to + * SI4735-D60 and SI4732-A10 devices. Once again, the author disclaims any and all liability for any + * damage or effects this procedure may have on your devices. The patch and procedures are provided with no + * warranty. Proceed at your own risk. * @see AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; pages 3 and 5 */ From 4c06d62e3c2c8ed11b21ac24a6b153e38fad33aa Mon Sep 17 00:00:00 2001 From: Dalton Herrewynen Date: Sat, 11 May 2024 01:12:08 -0600 Subject: [PATCH 3/3] Typo fixes, some paragraph rewritten for grammar reasons. No changes to the actualy source code, documentation only. --- README.md | 62 ++++++++--------- examples/SI47XX_06_ESP32/README.md | 0 examples/SI47XX_06_ESP8266/README.md | 2 +- .../ALL_IN_ONE_7_BUTTONS/user_manual.md | 4 +- .../ALL_IN_ONE_ENCODER_RDS/README.md | 6 +- .../ALL_IN_ONE_ENCODER_RDS/user_manual.md | 2 +- examples/SI47XX_09_NOKIA_5110/README.md | 69 +++++++++---------- 7 files changed, 72 insertions(+), 73 deletions(-) mode change 100755 => 100644 examples/SI47XX_06_ESP32/README.md diff --git a/README.md b/README.md index 281df48a..8842fd15 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ | | | |----------|------------| -| ![SI4735 Prototypes](extras/images/multiplatform_SI47XX_photo_05.png) | This document is aimed at the Arduino developers, radio experimenters, hobbyists and anyone interested in building a receiver based on the Si473X IC family from Silicon Labs. This project is about an Arduino library for the SI473X BROADCAST AM, SSB and FM/RDS RADIO RECEIVERS. Frequency ranges of AM and SSB modes are 150kHz to 30MHz, and FM mode is 64 to 108 MHz. +| ![SI4735 Prototypes](extras/images/multiplatform_SI47XX_photo_05.png) | This document is aimed at the Arduino developers, radio experimenters, hobbyists and anyone interested in building a receiver based on the Si473X IC family from Silicon Labs. This project is an Arduino library for the SI473X BROADCAST AM, SSB and FM/RDS RADIO RECEIVERS. Frequency ranges of AM and SSB modes are 150kHz to 30MHz, and FM mode is 64 to 108 MHz.| @@ -171,7 +171,7 @@ The following video is a little joke that shows the trajectory of the constructi ## Your support is important. -If you want to support this library development, consider joining this project via Github. Alternatively, make suggestions on new features and report errors if you find them. Thank you! +If you want to support this library development, consider joining this project via GitHub. Alternatively, make suggestions on new features and report errors if you find them. Thank you! [Go to contents](https://pu2clr.github.io/SI4735/#contents) @@ -284,7 +284,7 @@ Do you need some old version (release) of this library? If so, [check here](htt ## Installing the most current version via arduino-cli -The commands below Install the latest version of the PU2CLR SI4735 Arduino Library from github. +The commands below Install the latest version of the PU2CLR SI4735 Arduino Library from GitHub. As said before, unlike a release (installed from Arduino IDE) this method installs the current version of the PU2CLR SI4535 Arduino Library (latest modifications even if not yet released). ### On macOS or Linux @@ -320,11 +320,11 @@ set ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true * examples/__install_all_libraries_and_boards.bat__ - Installs all libraries and all boards used by the examples * examples/__compile_all.bat__ - compiles all examples and save the binaries in your Downloads folder -## Bords setup on your Arduino IDE +## Boards setup on your Arduino IDE -It will be useful if you intend to use ESP32, ESP8266, Teensy, Raspbery PI PICO, Arduino DUE, ATTiny etc. +It will be useful if you intend to use ESP32, ESP8266, Teensy, Raspberry PI PICO, Arduino DUE, ATTiny etc. -On Arduino IDE, preferences, Aditional boards manager URls. See image below. +On Arduino IDE, preferences, Additional boards manager URLs. See image below. ![Installing boards used by examples](extras/images/arduino_board_install.jpg) @@ -366,7 +366,7 @@ After adding the Board URL you want to use, go to Tools menu, select the Boards ## About the SI4732 and SI4735 -The SI4732-A10 and SI4735-D60 are DSP receivers IC from Silcon Labs. They have great performance on AM, SSB (LW/MW/SW) from 150kHz to 30MHz and FM (VHF) from 64 to 108 MHz. __It is important to note that the engineers and programmers at Silicon Labs did an excellent job by implementing all the internal resources in this IC family. This library implements just the interface that allows you to use the SI473X resources with Arduino based board controller__. +The SI4732-A10 and SI4735-D60 are DSP receivers IC from Silicon Labs. They have great performance on AM, SSB (LW/MW/SW) from 150kHz to 30MHz and FM (VHF) from 64 to 108 MHz. __It is important to note that the engineers and programmers at Silicon Labs did an excellent job by implementing all the internal resources in this IC family. This library implements just the interface that allows you to use the SI473X resources with Arduino based board controller__. The SI473X can be programmed by sending commands and getting responses. You can control it via a microcontroller like Arduino using I²C communication protocol. To make the SI473X perform an action, the microcontroller has to send a set of bytes (command and arguments) that the device interprets and executes the given command. The image below illustrates the interaction between the MCU and the SI473X device.
@@ -405,11 +405,11 @@ This library has been written for the Arduino platform and has been successfully ### Arduino 5V and Si4735 -* __THE SI4735 IS A 3.3V PART. IF YOU ARE NOT USING A 3.3V VERSION OF ARDUINO or anothe board, YOU HAVE TO USE A KIND OF 5V-3.3V BIDIRECTIONAL CONVERTER. Also pay attention to the appropriated pinout of your board to select the correct interrupt (IRQ- if you are using), RST, SDIO and SCLK pins. The table below shows some Arduino board pinout.__ +* __THE SI4735 IS A 3.3V PART. IF YOU ARE NOT USING A 3.3V VERSION OF ARDUINO or another board, YOU HAVE TO USE A KIND OF 5V-3.3V BIDIRECTIONAL CONVERTER. Also pay attention to the appropriated pinout of your board to select the correct interrupt (IRQ- if you are using), RST, SDIO and SCLK pins. The table below shows some Arduino board pinout.__
-|Board | InterrupT (IRQ) Pins| I²C / TWI pins | successfully tested | Voltage converter | +|Board | Interrupt (IRQ) Pins| I²C / TWI pins | Successfully tested | Voltage converter | |------|---------------------| ---------------| ------------------- | ----------------- | | 328-based
(Nano, Uno or Mini 5V) | D2 and D3 | A4 (SDA/SDIO), A5 (SCL/SCLK) | Yes | Yes | | 328-based
(Pro Mini 3.3 / 8Mhz) | D2 and D3 | A4 (SDA/SDIO), A5 (SCL/SCLK) | Yes | No | @@ -428,7 +428,7 @@ This library has been written for the Arduino platform and has been successfully ### Schematic -The main purpose of the schematic below (prototype) is to test the Si4735 Arduino Library. It does not intend to be a real radio for exigent listeners. However, it is possible to start with it and then, if you wish, you can include some devices to the circuit to improve, for example, its sensibility beyond other desired features. +The schematic below is a basic reference implementation which can be used to test the functionality of the Si4735 Arduino library. If you wish to build a more polished radio suitable for real-world use, you should consider making some improvements to the supporting circuitry. [Click here to see a complete set of schematics and tips](https://pu2clr.github.io/SI4735/extras/schematic) The image below shows a version of Silicon Labs SSOP Typical Application Schematic connect to the host MCU (Arduino Pro Mini 3.3V). __Pay attention to the Si4735-D60 SEN pin (16). When the SEN pin is connected to the ground, the I²C bus address is 0x11. When the SEN pin is connected to +3.3V, the I²C bus address is 0x63. By default, the "Si4735 Arduino Library" uses the 0x11 I²C bus address (SEN pin connected to GND). If you want to use the address 0x63 (SEN connected on +3.3V), see the functions (methods) getDeviceI2CAddress, setDeviceI2CAddress and setDeviceOtherI2CAddress__. @@ -557,7 +557,7 @@ __Notes from Silicon Labs Broadcast AM/FM/SW/LW Radio Receiver documentation (pa | I²S | Serial bus interface used for connecting digital audio devices | Sketch |Name that Arduino environment uses for a program| | Interrupt |In this context, it is an Arduino Resource. Allows important tasks to be performed regardless of the flow of your program| -| C++ | A object-oriented programming (OOP) language. It is a superset of the C language with an additional concept of "classes." | +| C++ | A object-oriented programming (OOP) language. It is a super-set of the C language with an additional concept of "classes." | | programming guide | In this context it refers to [Si47XX PROGRAMMING GUIDE (REV 1.0)](https://web.engr.oregonstate.edu/~traylor/ece473/data_sheets/AN332.pdf)| | LNA | Low Noise Amplifier | | POC | Proof of Concept| @@ -640,20 +640,20 @@ This library has more than 120 functions. The table below shows the mains functi | setTuneFrequencyAntennaCapacitor | Only FM. Freeze Metrics During Alternate Frequency Jump. | | setI2CFastModeCustom | Sets the I²C bus to a given value. | | setI2CStandardMode | Sets I²C bus to 100kHz. | -| setAudioMuteMcuPin | This function sets the mcu digital pin you want to use to control the external audio mute circuit. | +| setAudioMuteMcuPin | This function sets the MCU digital pin you want to use to control the external audio mute circuit. | [Go to contents](https://pu2clr.github.io/SI4735/#contents) ### Defined Data Types and Structures -The Si47XX family works with many internal data that can be represented by data structure or defined data type in C/C++. These C/C++ resources have been used widely here. This approach made the library easier to build and maintain. Each data structure created here has its reference (name of the document and page on which it was based). In other words, to make the SI47XX device easier to deal with, some defined data types were created to handle byte and bits to process commands, properties and responses. __The goal of this approach is separating data from code__. +Working with the Si47XX family requires interacting with internal data. In order to simplify the maintenance and usage of the library, some structures and data types had to be defined. Each created data structure is listed below along with a reference to its documentation and the source material page. These data types greatly simplify the necessary handling of bits and bytes which the Si47XX family relies upon for commands, properties, and their appropriate responses. __The reason we do this is to separate code from data.__ All data types defined in Si4735 Arduino Library are explained [here](https://pu2clr.github.io/SI4735/extras/apidoc/html/) ### Public methods -This library was developed using the C++ language and the Object-oriented Programming approach. Methods are functions that belong to the class, in this case SI4735 class. Click [here](https://pu2clr.github.io/SI4735/extras/apidoc/html/group__group01.html) to go to API docummentation. +This library was developed using the C++ language and the Object-Oriented Programming approach. Methods are functions that belong to the class, in this case SI4735 class. Click [here](https://pu2clr.github.io/SI4735/extras/apidoc/html/group__group01.html) to go to API documentation. All methods defined in Si4735 class are explained [here](https://pu2clr.github.io/SI4735/extras/apidoc/html/). The list below refers to the method groups implemented by the Si4735 class. @@ -883,23 +883,23 @@ The schematic below shows the Digital Audio setup using an SI4735-D60 with an ES You can check the schematic above via [SI47XX_06_ESP32/DIGITAL_AUDIO_SERIAL_PLOTTER example](https://github.com/pu2clr/SI4735/tree/master/examples/SI47XX_06_ESP32/DIGITAL_AUDIO_SERIAL_PLOTTER) -The table below shows the SI4735, DAC MAX98357A and ESP32 wireup +The table below shows how to wire the SI4735, DAC MAX98357A, and ESP32 -| Si4735 | Function | DAC MAX98357A | ESP32 | +| Si4735 | Function | DAC MAX98357A | ESP32 | |-----------| ----------|-----------------|---------------------------------------| -| pin 1 | DOUT | DIN | SerialData / GPIO32 | -| pin 2 | DFS | RC | WordSelect / GPIO25 | -| pin 3 | DCLK | BCLK | ContinuousSerialClock) / GPIO33) | +| pin 1 | DOUT | DIN | SerialData / GPIO32 | +| pin 2 | DFS | RC | WordSelect / GPIO25 | +| pin 3 | DCLK | BCLK | ContinuousSerialClock) / GPIO33) | -The table below shows the SI4735, DAC CJMCU and ESP32 wireup +The table below shows how to wire up the SI4735, DAC CJMCU, and ESP32 -| Si4735 | Function | DAC MAX98357A | ESP32 | -|-----------| ----------|-----------------|---------------------------------------| -| pin 1 | DOUT | DIN | SerialData / GPIO32 | -| pin 2 | DFS | WSEL | WordSelect / GPIO25 | -| pin 3 | DCLK | BCLK | ContinuousSerialClock) / GPIO33) | +| Si4735 | Function | DAC MAX98357A | ESP32 | +|-----------|-----------|-----------------|----------------------| +| pin 1 | DOUT | DIN | SerialData / GPIO32 | +| pin 2 | DFS | WSEL | WordSelect / GPIO25 | +| pin 3 | DCLK | BCLK | ContinuousSerialClock) / GPIO33) | @@ -909,7 +909,7 @@ See the [API Documentation](https://pu2clr.github.io/SI4735/extras/apidoc/html/) ### Customizing PU2CLR Arduino Library -Maybe you need some Si47XX device functions that the __PU2CLR SI4735 Arduino Library__ has not yet implemented. Also, you may want to change some existent function behaviors. This topic describes some approaches to add new SI473X features to your application. +Maybe you need some Si47XX device functions that the __PU2CLR SI4735 Arduino Library__ has not yet implemented. Also, you may want to change some existing function behaviors. This topic describes some approaches to consider if you wish to add new SI473X features to your application. __Please, check the [API documentation](https://pu2clr.github.io/SI4735/extras/apidoc/html/) before implementing something you think is new. It is possible that what you want has already been implemented__. @@ -941,7 +941,7 @@ rx.getCommandResponse(1,response); #### Extending the SI4735 class -The best way to customize the PU2CLR SI4735 Arduino Library for your needs is extending the current version of the library by using C++ OOP approach. For example: +The best way to customize the PU2CLR SI4735 Arduino Library for your needs is extending the current version of the library by using C++ OOP approach. For example: ```cpp #include @@ -1111,9 +1111,9 @@ void setup() { ### When the receiver starts or when I switches it from FM to AM and vice-versa, I have loud click in the speaker -Some users may be uncomfortable with the loud popping of the speaker during some transitions caused by some Si47XX device commands. This problem occurs during the receivers transition from the power down to power up. Every time the user changes the mode (FM to AM or AM to FM, Si47XX devices mnust be powered down and powered back up which causes the click sound. +Some users may be uncomfortable with the loud popping of the speaker during some transitions caused by some Si47XX device commands. This problem occurs during the receivers transition from the power down to power up. Every time the user changes the mode (FM to AM or AM to FM, Si47XX devices must be powered down and powered back up which causes the click sound. -The SI473X devices have HIGH DC (DC bias) component in the analog audio output pins (SI4735-D60 pins 23 and 24). When the device goes to power down mode, the voltage on the audio pins drops to 0V. The device does it internally and there is no way to avoid that. When the device goes to power up, those audio pins suddenly go to the HIGH DC again. This transition causes the loud pop in the speaker. So far, the author of this library has not found an internal SI473X device solution to solve the loud popping of the speaker. The internal SI473X mute or volume commands will not stop the clicking sound. However, it is possible to solve this problem by adding an extra __mute__ circuit and control it by the MCU (Atmega, ESP32, STM32, ATtiny85 etc). +The SI473X devices have HIGH DC (DC bias) component in the analog audio output pins (SI4735-D60 pins 23 and 24). When the device goes to power down mode, the voltage on the audio pins drops to 0V. The device does it internally and there is no way to avoid that. When the device goes to power up, those audio pins suddenly go to the HIGH DC again. This transition causes the loud pop in the speaker. So far, the author of this library has not found an internal SI473X device solution to solve the loud popping of the speaker. The internal SI473X mute or volume commands will not stop the clicking sound. However, it is possible to solve this problem by adding an extra __mute__ circuit and control it by the MCU (Atmega, ESP32, STM32, ATTiny85 etc). The schematic below shows this approach. @@ -1123,7 +1123,7 @@ The schematic below shows this approach. Considering that you are using a MCU based on Atmega328. When the D14 (A0) is HIGH the Si47XX output audio will be drained to the ground. At that condition, no audio will be transferred to the amplifier input and, consequently, to the speaker. So, no loud click in the speaker. -When the D14 is LOW, most of signal audio output from the Si47XX will be transfered to the input of the amplifier. +When the D14 is LOW, most of signal audio output from the Si47XX will be transferred to the input of the amplifier. The code below shows all you have to do in your sketch to implement this resource. @@ -1252,7 +1252,7 @@ void loadSSB() ## Boards where this library has been successfully tested -This library can be useful to develop cross-platform software. So far, it has been successfully tested on the architectures shown below. +This library can be useful to develop cross-platform software. So far, it has been successfully tested on the architectures shown below. ![Silicon Labs Schematic](./extras/images/multiplatform_SI47XX_photo_05.png) diff --git a/examples/SI47XX_06_ESP32/README.md b/examples/SI47XX_06_ESP32/README.md old mode 100755 new mode 100644 diff --git a/examples/SI47XX_06_ESP8266/README.md b/examples/SI47XX_06_ESP8266/README.md index b633c34a..afc6f544 100644 --- a/examples/SI47XX_06_ESP8266/README.md +++ b/examples/SI47XX_06_ESP8266/README.md @@ -35,7 +35,7 @@ This sketch uses just the Serial Monitor as the human interface to test and vali * 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 -### ESP8266 / ESP12F wire up +### Circuit for ESP8266 / ESP12F #### SI4732-A10 and SI4735-G60 wire up diff --git a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md index 503980f1..859962fd 100644 --- a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md +++ b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_7_BUTTONS/user_manual.md @@ -11,9 +11,9 @@ * To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. - * And in a similar manner, you can alter AGC/Attenuation, STEP and Bandwith settings. + * Adjust the AGC/Attenuation, STEP, and Bandwidth settings using the same process. - __Tip:__ Try press and release the push button quickly. If you hold the button too long, the board may randomly alternate the command status (enable and disable). + __Tip:__ Press and release the push button quickly. If you hold the button down, the microcontroller will think the button is being rapidly pressed, this will make it rapidly alternate whichever setting the button was operating. Just a quick press and release is the best way to operate the button. 2. SEEK COMMAND diff --git a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/README.md b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/README.md index 52d7ba2a..f324bd6a 100644 --- a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/README.md +++ b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/README.md @@ -40,10 +40,10 @@ There are two boards very common on eBay and AlliExpress based on SI4730. * Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. * Press the encoder push button once again. * Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - * If you press the button again or stop rotating the ancoder for about 2 seconds, the control will go back to the VFO. + * If you press the button again or stop rotating the encoder for about 2 seconds, the control will go back to the VFO. - __ATTENTION__: Try press and release the push button quickly. If you hold the button too long, the board may randomly alternate the command status (enable and disable). + __ATTENTION__: Press and release the push button quickly. If you hold the button down, the microcontroller will think the button is being rapidly pressed, this will make it rapidly alternate whichever setting the button was operating. Just a quick press and release is the best way to operate the button. 4. EEPROM RESET - The main information of the receiver is stored into the Arduino EEPROM. This way, when you turn the receiver on, the last receiver status is recalled. To RESET the receiver to DEFAULT status, turn it on with the encoder pust button pressed. Check the message "EEPROM RESET". + The main information of the receiver is stored into the Arduino EEPROM. This way, when you turn the receiver on, the last receiver status is recalled. To RESET the receiver to DEFAULT status, turn it on with the encoder push button pressed. Check the message "EEPROM RESET". diff --git a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md index f41b5983..06f93b50 100644 --- a/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md +++ b/examples/SI47XX_09_NOKIA_5110/ALL_IN_ONE_ENCODER_RDS/user_manual.md @@ -53,4 +53,4 @@ To save EEPROM write cycles: ### ATTENTION: -Try press and release the push button quickly. if you hold the button too long, the board may randomly alternate the command status (enable and disable). +Press and release the push button quickly. If you hold the button down, the microcontroller will think the button is being rapidly pressed, this will make it rapidly alternate whichever setting the button was operating. Just a quick press and release is the best way to operate the button. diff --git a/examples/SI47XX_09_NOKIA_5110/README.md b/examples/SI47XX_09_NOKIA_5110/README.md index 8fcf093e..7c87a7e4 100644 --- a/examples/SI47XX_09_NOKIA_5110/README.md +++ b/examples/SI47XX_09_NOKIA_5110/README.md @@ -1,14 +1,14 @@ # Arduino / ATmega328 with Nokia 5110 -The schematics shown here use the SI4735-D60 device. If you use the SI4732-A10, please check ["SI4735-D60 and SI4732-A10 replacement" table](https://github.com/pu2clr/SI4735/tree/master/extras/schematic#si4735-and-si4732-pinout). +The schematics shown here use the SI4735-D60 device. If you use the SI4732-A10, please check the ["SI4735-D60 and SI4732-A10 replacement" table](https://github.com/pu2clr/SI4735/tree/master/extras/schematic#si4735-and-si4732-pinout). ## Example ALL_IN_ONE_7_BUTTONS (One encoder and 7 buttons) This example uses the Adafruit libraries __Adafruit_GFX__ and __Adafruit_PCD8544__. -The receiver works on VFH/FM (broadcast stations), and LW,MW and SW on AM and SSB modes. +The receiver works on VFH/FM (broadcast stations), and LW, MW and SW on AM and SSB modes. | FM | MW/AM | SW/AM | 40M/LSB | 10M/USB | | -- | ----- | ----- | ------- | ------- | @@ -52,8 +52,8 @@ The schematic below shows the Arduino board based on ATmega 328 and the Nokia 51 | | A | 2 | | | B | 3 | -* (*1) You have to press the push button and after, rotate the encoder to select the parameter. After you activate a command by pressing a push button, it will keep active for 2,5 seconds. -* (*2) The SEEK direction is based on the last movement of the encoder. If the last movement of the encoder was clockwise, the SEEK will be towards the upper limit. If the last movement of the encoder was counterclockwise, the SEEK direction will be towards the lower limit. +* (*1) You have to press the push button and after, rotate the encoder to select the parameter. After you activate a command by pressing a push button, it will keep active for 2,5 seconds. +* (*2) The SEEK direction is based on the last movement of the encoder. If the last movement of the encoder was clockwise, the SEEK will be towards the upper limit. If the last movement of the encoder was counterclockwise, the SEEK direction will be towards the lower limit. * (*3) - If you are using the SI4732-A10, check the corresponding pin numbers. * (*4) - If you are using the SI4735-D60, connect the SEN pin to the ground; If you are using the SI4732-A10, connect the SEN pin to the +Vcc. @@ -62,7 +62,7 @@ The schematic below shows the Arduino board based on ATmega 328 and the Nokia 51 ## User instructions -1. BAND, MODE, AGC/Attenuation, banddwith and STEP +1. BAND, MODE, AGC/Attenuation, bandwidth and STEP Press the the correspondent push button and after, rotate the encoder to select the option. For example: To switch the band, press the band button and then rotate the encoder clockwise or counterclockwise. @@ -70,16 +70,15 @@ The display will show you the current band. To switch the mode (AM, LSB or USB), press mode button and then rotate the encoder. -The same idea you can use to AGC/Attenuation, STEP and Banddwith. +You can adjust AGC/Attenuation, STEP, and Bandwidth in a similar fashion. -Tip: Try press and release the push button fastly. I mean, do not keep the button pressed for a long time. - If you do that, you might alternate the command status (enable and disable) randomly. +Tip: Press and release the push button quickly. If you hold the button down, the microcontroller will think the button is being rapidly pressed, this will make it rapidly alternate whichever setting the button was operating. Just a quick press and release is the best way to operate the button. 2. SEEK COMMAND The seek button should be used to find a station. The seek direction is based on the last encoder movement. -If clockwise, the seek will go up; if counterclockwise, the seek will go down. +Clockwise will cause a seek up, counterclockwise will cause a seek down. 3. VFO/VFO Switch @@ -90,7 +89,7 @@ To control the VFO and BFO, used the encoder push button. The display will show ## Example ALL_IN_ONE_ENCODER_RDS -This example uses the Adafruit librarie __LCD5110_Graph__ to control the Nokia 5110. +This example uses the Adafruit library __LCD5110_Graph__ to control the Nokia 5110 display. It is not available on Arduino IDE. To install __LCD5110_Graph__ library, download that library on [Rinky-Dink Eletronics](http://www.rinkydinkelectronics.com/library.php?id=47) site, unzip the file and move the folder unzipped to your Arduino Libraries folder. @@ -107,30 +106,30 @@ The schematic below shows the Arduino board based on ATmega 328 and the Nokia 51 ![Nokia 5110 schematic](../../extras/images/schematic_basic_Nokia5110_one_encoder.png) -## Wire up on Atmega328 based board (Arduino UNO, Nano or Pro mini) and SI4735-D60 +## Wireing with an Atmega328 based board (Arduino UNO, Nano or Pro mini) and SI4735-D60 -| Device name | Device Pin / Description | Arduino Pin | -| ---------------- | ----------------------------- | ------------ | -| Display NOKIA | | | -| | (1) RST (RESET) | 8 | -| | (2) CE or CS | 9 | -| | (3) DC or DO | 10 | -| | (4) DIN or DI or MOSI | 11 | -| | (5) CLK | 13 | -| | (6) VCC (3V-5V) | +VCC | -| | (7) BL/DL/LIGHT | +VCC | -| | (8) GND | GND | -| Si4735 | | | -| | (*3) RESET (pin 15) | 12 | -| | (*3) SDIO (pin 18) | A4 | -| | (*3) SCLK (pin 17) | A5 | -| | (*4) SEN (pin 16) | GND | -| Button | | | -| | Encoder Push button | 14 / A0 | -| Encoder | | | -| | A | 2 | -| | B | 3 | +| Device name | Device Pin / Description | Arduino Pin | +| ---------------- | ----------------------------- | ------------ | +| Display NOKIA | | | +| | (1) RST (RESET) | 8 | +| | (2) CE or CS | 9 | +| | (3) DC or DO | 10 | +| | (4) DIN or DI or MOSI | 11 | +| | (5) CLK | 13 | +| | (6) VCC (3V-5V) | +VCC | +| | (7) BL/DL/LIGHT | +VCC | +| | (8) GND | GND | +| Si4735 | | | +| | (*3) RESET (pin 15) | 12 | +| | (*3) SDIO (pin 18) | A4 | +| | (*3) SCLK (pin 17) | A5 | +| | (*4) SEN (pin 16) | GND | +| Button | | | +| | Encoder Push button | 14 / A0 | +| Encoder | | | +| | A | 2 | +| | B | 3 | @@ -159,13 +158,13 @@ The schematic below shows the Arduino board based on ATmega 328 and the Nokia 51 * Rotate the encoder clockwise or counterclockwise and go to the BFO option. This option is shown only on SSB mode. * Press the encoder push button once again. * Rotate the encoder clockwise or counterclockwise to increment or decrement the BFO (select the offset). - * If you press the button again or stop rotating the ancoder for about 2 seconds, the control will go back to the VFO. + * If you press the button again or stop rotating the encoder for about 2 seconds, the control will go back to the VFO. -__ATTENTION__: Try press and release the push button fastly. I mean, do not keep the button pressed for a long time. If you do that, you might alternate the command status (enable and disable) randomly. +__ATTENTION__: Press and release the push button quickly. If you hold the button down, the microcontroller will think the button is being rapidly pressed, this will make it rapidly alternate whichever setting the button was operating. Just a quick press and release is the best way to operate the button 4. EEPROM RESET - The main information of the receiver is stored into the Arduino EEPROM. This way, when you turn the receiver on, the last receiver status is rescued. To RESET the receiver to DEFAULT status, turn it on with the encoder pust button pressed. Check the message "EEPROM RESETED". + The main information of the receiver is stored into the Arduino EEPROM. This way, when you turn the receiver on, the last receiver status is rescued. To RESET the receiver to DEFAULT status, turn it on with the encoder push button pressed. Check the message "EEPROM RESETED".