I recently downloaded the spec and programming sheets on the new Six series and had a look. This chip set has some interesting new features. A Sensitivity Boost One thing was immediately apparent: the new chip has received a sensitivity boost. AM image rejection is 72dB. Impressive figures for a chip radio.
|Published (Last):||9 December 2013|
|PDF File Size:||13.41 Mb|
|ePub File Size:||11.29 Mb|
|Price:||Free* [*Free Regsitration Required]|
Added setProperty and getProperty methods. This will make it very easy for individuals to easily customize the functionality and properties of the Si chip. Consult the Si programmers manual for the register addresses, properties, and acceptable values. Added a new field to the Station struct that indicates when the radioText has changed or is being changed.
The radio text is usually left unchanged during a song so this could be used to detect that a new song is playing and you could create an event that triggers off of this flag. This boolean field should only stay high for one readRDS call. Fixed typo in serCommand method in SerLCD library increased stability of sketch by disabling interrupts during callback execution.
Note there is a known bug where after a cold start-up arduino completely discharged that the sketch will not complete the setup process it will stop at "Loading-Up". It will now detect more "good" quality stations by default. This is a single interrupt rotary encoder library. It is not prefect by any means but it is a step in the right direction.
Freeing up pin 2 means I can start working on utilizing the Si interrupt capabilities. The original rotary encoder library is left untouched and the two are interchangeable. By default the original is still being used, but in the future, I plan on fine tuning this library so that it is as responsive as the old one, but I have no plans on when that may be. For now you can download my pde file and the accompanying libraries with exception to the Si library which you can just grab the normal way in my GitHub downloads section.
If you have any questions pertaining to this project please let me know. I tried my best to comment most of the code without being overly verbose so some stuff is bound to cause a few people to scratch their heads. Hopefully this example will provide users with enough insight on how "one" might use the different features that exist in the library.
Note the hour and minute that are provided in the "Today" structure are local values and not the UTC values. This may change in the future. Fixed the hour and minute computation. These were being incorrectly computed due to a couple mathematical errors. This reduces redundancy and ultimately saves space. Added a private function that helps filter out non-printable characters from strings that are meant to be printed.
I think this might be useful for individuals that want to minimize their memory footprint and compile only the portions of the code that are actually being used. Just a thought I decided against throwing in a preamp into the mix and just went with an LMN The audio quality is very nice considering the parts being used. I plan to make another identical circuit so that I can get stereo output, but before I get into that, I will need to start thinking of an enclosure to start housing this stuff.
Also, one thing I forgot to show off last time was my scanFreq Labview program that communicates with the Arduino and runs through a series of tuneFrequency and getRSQ calls. The program takes the SNR information acquired from the chip and plots it versus frequency. This is makes for a very basic spectrum analyzer over the FM frequency band. I would not rely on the metrics too much but they certainly give you a general idea of what to expect for sound quality when tuning to a particular frequency.
The function below will interface with the Labview code perfectly assuming you define your Si class as "radio" and that you are using my latest version of the library. This effectively sets the look-up table to use for the Program Type.
Added setMode and getMode methods. The setMode method calls the "end" method which effectively powers down the Si and the changes then mode. The user is responsible for calling the "begin" method again. It seems that not many stations atleast where I live use this field. Note: 3 letter stations are currently not supported in this code but it is on my list of TODOs. My next update will be a small one which is to enable the "date" field in the Today structure.
This date field will contain the current year, month, and day. Also as a side note, I will be providing access to my Arduino Sketch in the near future.
I have also added a getRSQ method to the library that can be used to get the "Received Signal Quality" of the tuned station. Check out the video and see the basic block diagram of this project. When I get around to it, I will provide more details here. Things that need improving: You might have noticed in the video that the rotary encoder had an issue when I was attempting to change the frequency in "stepped" mode.
This is a bug that currently only exists while in this mode. Updating my code and cleaning up my wiring helped a lot. The SPI interface becomes a little unreliable.
Overall though this project, when powered from the USB port, is very reliable and user friendly. I have a few neat ideas for adding onto this project that I will share at a later time. The performance of the Radio shield is very good considering that the FM signal that I was receiving were coming from the line out that is wired to my amplifier and speakers , and the audio quality was exceptional.
Si4734/35 AM/FM/SW/LW Radio Receivers