Coder Social home page Coder Social logo

pu2clr / si4735 Goto Github PK

View Code? Open in Web Editor NEW
531.0 64.0 157.0 95.53 MB

SI473X Library for Arduino

License: MIT License

C++ 6.57% HTML 78.53% JavaScript 7.52% CSS 1.40% C 5.99%
si4735 arduino si4732 esp8266 esp32 ssb shortwave stm32 atmega328p raspberrypipico

si4735's Introduction

Hello, my name is Ricardo Caratti, and my academic and professional journey revolves around the intriguing fields of Computational Thinking and the maker movement. Currently, I am dedicated to research in educational technology at the Federal University of Ceará. My focus is on learning and developing methods to teach individuals how to effectively solve problems using a Computational Thinking approach. The crux of my research delves into understanding how educators perceive and integrate Computational Thinking into their teaching methodologies. This exploration is fundamental to my goal of enhancing problem-solving skills through educational technology. My main hobbies are electronics and amateur radio.

si4735's People

Contributors

efwob avatar frankboesing avatar mcgurk avatar neuronmaker avatar patomoi avatar pu2clr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

si4735's Issues

Error when adding library. Extra space after BOARD_NE928_10A_V_01?

C:\Users\djmurphy\AppData\Local\Temp\arduino_52537\SI4735-master80730\SI4735-master\extras\BOARD_NE928_10A_V_01 \NE928_Si4730_00.png (The system cannot find the path specified)
java.io.FileNotFoundException: C:\Users\djmurphy\AppData\Local\Temp\arduino_589957\SI4735-master457096\SI4735-master\extras\BOARD_NE928_10A_V_01 \NE928_Si4730_00.png (The system cannot find the path specified)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:162)
at processing.app.tools.ZipDeflater.deflate(ZipDeflater.java:50)
at processing.app.Base.handleAddLibrary(Base.java:2366)
at processing.app.Base$6.actionPerformed(Base.java:1114)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
C:\Users\djmurphy\AppData\Local\Temp\arduino_589957\SI4735-master457096\SI4735-master\extras\BOARD_NE928_10A_V_01 \NE928_Si4730_00.png (The system cannot find the path specified)

LW-MW-SW issue on ATS-20+

I recently bought an ATS-20+ on aliexpress (https://www.aliexpress.com/item/1005001989352273.html).
The ATS-20+ model is a slightly modified version of the ATS-20. It has a dedicated USB-C port for recharge, a different knob and (I believe) an ESD protection on the antenna side. The board is labeled as "ATS-20+ SI4732 20220115".

I tested it briefly in SW band with the default firmware (it arrived with version 1.x.x installed). Reception was good, and I successfully tuned to a station 6000km away using a simple random wire antenna (not bad!)

Since I upgraded the firmware to SI473X_ALL_IN_ONE_OLED_RDS_CHINESE_V7 version, I receive only static on LW-MW-SW, while FM is working correctly.

I checked the track and the cap between the antenna and AM pin on the Si chip and all seems good.

I did a lot of research, but I couldn't find mentions of ATS-20+ firmware upgrades (nor failed, nor successful).

Do you have any idea of what could have gone wrong? Is there any test I can run to better understand the problem?

@pu2clr Thank you for your awesome project, and thank you in advance for your help!

Shrinking Band Table

I want to find out if it is going to hurt the radio in any way to shrink the band table to just this:

Band band[] = {
{FM_BAND_TYPE, 8400, 10800, 10570, 3, 0, "VHF"}, // FM 84-108 MHZ; default 105.7; step 3; bw auto
{LW_BAND_TYPE, 100, 520, 300, 1, 4, "LW"}, // LW
{MW_BAND_TYPE, 520, 1720, 810, 3, 4, "MW"}, // AM/MW from 520 to 1720kHz; default 810kHz; default step frequency index is 3 (10kHz); default bandwidth index is 4 (3kHz)
{SW_BAND_TYPE, 1700, 30000, 10000, 0, 5, "HFALL"}, //all HF use if you need an all freq band
};

Wanting to conserve space on it's little nano.

Feature request: Hamlib command support

Hi!

Thanks for the awesome work with si47xx library.

Could it be possible to implement an arduino ide example which uses hamlib rigctl protocol style commands and replies (RPRT 0 / 1) to set/get freq, mode, rssi and bw.

This would make possible to use this nice little receiver with nearly all ham digimode applications with simple netcat tcp <> serial bridge redirector.

Thanks for the really great and well documented library!

br, Jarno OH3GAI

patch_ssb_compressed: no such file or directory?

i've been trying to update my generic ats-20 receiver but seems like you used to have patch_ssb_compressed.h inside the examples subfolders and now i only see one in root of the repo. i tried copying patch_ssb_compressed.h to working dir but there's still an issue importing the file. Please see below for details:

working dir: examples\SI47XX_03_OLED_I2C\SI47XX_03_ALL_IN_ONE_NEW_INTERFACE_V20
arduino ide error output: C:\Users\Maks\Src\git\cloned\SI4735\examples\SI47XX_03_OLED_I2C\SI47XX_03_ALL_IN_ONE_NEW_INTERFACE_V20\SI47XX_03_ALL_IN_ONE_NEW_INTERFACE_V20.ino:81:10: fatal error: patch_ssb_compressed.h: No such file or directory #include <patch_ssb_compressed.h> // Compressed SSB patch version (saving almost 1KB) ^~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.

Seek jumps over stations

Hi, congrats to this great library!

I use the SI7435-D60, connected to a Teensy 4.0 - will try digital Audio (I2S) later

When seeking, it often misses stations. When retrying several times, it find the "missing" station. Tried with FM so far.

What can I do, or, what can be the problem?

Proposal: CAT serial/USB interface

Hi guys,

I was wondering if it would be possible to implement a CAT interface via USB or UART (in such case via a MAX232 adapter) to pilot the radio from a PC.

I don't know if the Arduino while running the radio-code can also "listen" to the USB or to the UART and run some function, like on old microcomputers the UART I/O was triggering an interrupt that could be trapped.
Or maybe in the main loop we still have some milliseconds to spare?

Would that be technically feasible?

SI47XX_03_ALL_IN_ONE_NEW_INTERFACE.ino black screen / no status.

When running the example SI47XX_03_ALL_IN_ONE_NEW_INTERFACE.ino, the screen turns to black right after splash text.

Expected behavior
Status from the Si4735 device.

  • Arduino IDE version: 1.8.9
  • Arduino: Nano
  • Display: OLED 0.91

Additional context
Running the example SI47XX_02_ALL_IN_ONE_OLED.ino, the display shows the status just fine.

Thank you
PU5KNB - Guilherme.

Error compiling for board Arduino Pro or Pro Mini(Sketch too big)

hello todey try use this project All Band Receiver with SSB Support Using arduino pro mini3.3v and Si4735 after try upload code SI47XX_03_TFT_ATMEGA328_ST7735.ino to my ardunio pro mini i have this error
Sketch uses 33078 bytes (107%) of program storage space. Maximum is 30720 bytes.
text section exceeds available space in board
Global variables use 1079 bytes (52%) of dynamic memory, leaving 969 bytes for local variables. Maximum is 2048 bytes.
Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it.
Error for board Arduino Pro or Pro Mini.

Typos in function names?

Describe the bug
Some of the abbreviations in function names appear to be misspelled.

To Reproduce
Look at he following functions:

setSBBSidebandCutoffFilter()
setSeekAmSrnThreshold()
setSeekFmSrnThreshold()

Expected behavior
I am assuming this is not intentional. Please disregard if it is.

Correct function names:

setSSBSidebandCutoffFilter()
setSeekAmSNRThreshold()
setSeekFmSNRThreshold()

Since a lot of people use this code, it would probably be the easiest to make some #defines that point to the correct function name.
Also, the AVR C-compiler supports throwing warning messages during compilation time, so they can be added as well.

Screenshots
[not needed]

** Please, add the following information):**

  • Arduino IDE version - I use PlatformIO, but this is independent of the development environment
  • Arduino Board - Nano
  • Library version - 2.1.3

Additional context
I don't think it needs any more elaboration.

Otherwise, congrats on this huge amount of code written, you literally started a revolution! :)

ATS-20+ SSB mode noise issue

I received an ATS-20+ this week and upgraded its firmware to SI473X_ALL_IN_ONE_OLED_RDS_CHINESE_V8. Thank you very much Ricardo. Fantastic job!!!

The radio is working great in all modes and the buttons behaving as documented in the User Manual. However, I noticed the following minor issue when the radio is in SSB mode.

If AGC is enabled, the radio has a faint white noise even when muted. If I change AGC to any 'Atxx' value (At20 for example) the white noise disappears immediately. However, as soon as I change the frequency (from 14250 to 14251, for example) the white noise returns but it disappears again as soon as I change the attenuation to another value such as At21, but the noise reappears when the frequency is changed again and so on.

I would also point out that if the setting is AGC, the white noise is always there. The only way to get rid of it is by setting it to an Atxx value with the caveat explained above.

I don't see this problem or hear this noise at all in the AM, MW, LW or FM modes.

Has anybody else noticed this issue?

Incorrect sign of time zone offset in getRdsTime()

Describe the bug
getRdsTime() returns a string such as 13:51 -02:00 but it should be 13:51 +02:00
My time zone is +02:00 and the FM station broadcasts correct time zone (verified using another radio)

To Reproduce
Watch what getRdsTime() returns for your time zone

Expected behavior
Returned time zone should be +02:00 instead of -02:00

Screenshots
On another radio:
image
On pu2clr:
image

Please, add the following information):

  • Arduino IDE version - none, just Microchip Studio
  • Arduino Board - none, just a bare atmega328 chip
  • Library version - latest

Additional context
In getRedTime() method, fix this line:
offset_sign = (dt.refined.offset_sense == 1) ? '+' : '-';
like this:
offset_sign = (dt.refined.offset_sense == 1) ? '-' : '+';

Chip 4735 not tune

Hi, I have some problems tuning to frequencies.
In the downloaded sketch SI4735_01_POC there is always one response from the console:

The Si473X I2C address is 0x11
You are tuned on 0.00MHz MONO [SNR:0dB Signal:0dBuV]
SI4735 connection diagram is typical, published in your repository.
I checked the connections, everything is correct, I connected RESET to 7GPIO, GPIO8 used is setAudioMuteMcuPin().
I do not use the module, SI4735-D60 is soldered on the SSOP24 board, quartz, capacitors and a resistor are also soldered there.

What is your opinion, what is the problem?

SW_BAND frequencies should be displayed with MHz (not kHz)

Describe the bug
If I select the 40 meter band and tune the radio to 7.150 the display shows kHz. This should be MHz

To Reproduce
Tune the radio to any if the SW_BAND frequencies and observe the display.

Expected behavior
The frequencies (7.xxx, 14.xxx, etc) are MHz.

Additional information

  • Arduino IDE, version 2.3.2
  • SI473X_ALL_IN_ONE_OLED_RDS_CHINESE_V8r and SI473X_ALL_IN_ONE_OLED_RDS_CHINESE_V9
  • ATS-20+ w/Arduino Nano

OLED_ALL_IN_ONE_TWO_ENCODERS.ino encoder 2

#define ENCODER1_PIN_A 13 // GPIO13
#define ENCODER1_PIN_B 14 // GPIO14
#define ENCODER1_PUSH_BUTTON 27 // GPIO27

#define ENCODER2_PIN_A 25 // GPIO25
#define ENCODER2_PIN_B 26 // GPIO26
#define ENCODER2_PUSH_BUTTON 27 // GPIO32

Is 27 correct or should be 32?

Kits AliExpress Encoder Wrong Direction

Describe the bug
Direction of encoder wrong. rotating left frequency increase. rotating right frequency decrease. Is same bug for all other functions.

To Reproduce
Spin the encoder watch the display to see wrong direction.

Expected behavior
Rotating left frequency decrease, rotating right frequency increase. Should be same for all other functions.

Screenshots
If applicable, add screenshots or photo to help explain your problem.

** Please, add the following information):**

  • Arduino IDE version: 2.0.3
  • Arduino Board: Nano
  • Library version: 0.29.0

Additional context
Please fix it in the code.
Thanks.

ATS 20+ PPM Correction

I noticed ATS 20+ has a frequency error of 1 khz on the 20m band which set to a correct frequency the BFO offset is +1.1khz. Is it possible to implement PPM correction in the sketch? Could it be set linear? I hope we get to see this implemented.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.