The Elektor DSP-Radio from 2010 was from the first time open to additional features thanks to the great software programmed in BASCOM by Burkhard Kainka that is very well documented. Now I found the time to add some features to the original firmware. The main goal was to implement the decoding and automatic display of "Radiotext" .Radiotext is a feature of RDS that many FM-stations are using to display additional information .
Another goal was to extend the handling of the scan-function and of the preset memory stations and to control the RS-232 functions with the encoder and the push-buttons. Following is a list of the implemented enhancements:
- automatic decoding and display of Radiotext as scrolling text
- AUTOSCAN-function for FM and AM (separate for each band); scans complete band and stores all found stations in memory
- 50 memory-positions for FM, 10 for LW, 10 for MW, 3x10 for SW
- station-name of AM-stations can be input with the rotary encoder (up to 10 digits)
- additional SW-BC-Bands added according to Wikipedia-entry
- all 16 important properties of the Si4735 can be set with the onboard rotary encoder
- all parameters/properties and the last setting are stored in EEPROM and automatically recalled after power-on
- nearly 100% downward-compatibility to original firmware (all RS-232 commands are unchanged)
- decoding of a lot of additional RDS-infos over USB/serial output
- manual frequency step can be set to 10kHz(FM) / 1kHz(AM) for fine frequency tuning
- PWM-output for analog panel meter can in FM-Mode be changed from signal strength (RSSI) to stereo-signal (=channel separation), frequency-offset (tuning-error) or SNR
- European RDS character-set nearly fully implemented by mapping to EADOGM character set
- Special characters on LCD defined for indicating Stereo-reception, RDS-reception and Radiotext-reception
- 10 predefined LW and MW-stations in EEPROM (EEP-File in Intel-Hex format)
I had to switch to an ATMega 328P to implement all of the features. In the end even this controller (the "biggest" ATMega-type in 28pin-DIP package) had not sufficient memory for all additional features I had in mind. The ATMega 328P is pin- and function-compatible to the ATMega 168 but with larger Flash-ROM, RAM ans EEPROM. It can be directly swapped with the original ATMega 168 and be programmed in place, because the DSP-Radio has the standard Atmel SPI-programming header on board.
The source-files, HEX- and EEP-Files, explanation and extensive feature list is attached. Please feel free to try out and report any bugs or suggestions. Due to the many new features I couldn't test all of the new features in depth.
A user on the MCS Bascom-Forum gave me a hint, that SiLabs had made some changes in a new version if the Si4735. Especially some register-adresses are changed. I think that most users of the Elektor DSP-Radio have the "old" version of the chip. Pleade give me a note if You have the new one (-D60) so I can prepare a patched firmware file.
Kind regards Roger