A few years ago, I bought a Chinese shower cabin which has installed the TR028 control system with radio. Unfortunately one nice day I found this system competely dead. Nobody could repair it so I bought another, cheaper shower radio. It died after about one year.
My family used to have a radio in the shower cabin, so I started studiyng how these radios were made. Inside the TR028 system I found a strange TEA5767 module. Some searches let me know that it is a small cheap FM radio module. In search results I found another interesting FM radio module - RDA5807. It's very similar to TEA5767, but has RDS, volume control and bass boost features. So my decision was to use RDA5807 in my new project.
I searched the Internet and found several projects where RDA5807 module was used:
- Main project which inspired my vision.
- Variation where I found a great signal strengh sign and more useful information.
- Another variation.
- Useful information (in russian).
It was possible to repeat one of these projects, but no one met my vision exactly.
- The device with touch screen to ensure water proof construction. (I used enclosure with touch panel from dead TR0289).
- Several favorite radio stations presets
- Volume control
- Automatic radio station seek feature
- Possibility to memorize seeked radio station
- A clock to see the current time.
- On/Off feature
- Light control
- Some minor information display like temperature inside a cabin, RDS.
On Aliexpress I bought RDA5807, Tiny RTC with 32kb EEPROM, PAM8403, NOKIA 5110 LCD, LM2596 modules for less than 10€ and started experiments.
- FM radio with 2 rows (!) RDS
- 6 presets for favorite radio stations
- Automatic or manual tuning
- Possibility to store favorite radio station to one of 6 presets
- Volume and bass boost control
- Shower cabin lights control
- A clock ant calendar
- RSSI (radio signal strengh indicator)
- Stereo mode indicator
- On/Off feature
For NOKIA 5110 display I found a nice library
Understood how the TR028 touch panel works. Actualy it's 2 columns X 7 rows keypad. To operate it I used this library.
Assembled board placed in the box. You can notice that I've desoldered the USB socket and soldered the cable directly. It's for possibility to connect a PC and future software improvements.
- The radio won't turn-on after power supply is connected. This prevents of radio playing if powerline is not stable or power was lost. To turn-on the radio first time you have to connect power supply and after few seconds press the power key. The radio will play last played radio station with volume at level 03. Operating mode will be VOLUME control. To turn-off the radio simly press the power key. The device will turn off LCD, LCD backlite, amplifier and LED / halogen lamp.
- To seek a radio station you can chose Auto or Manual tuning mode by pressing the "Mod" button. By pressing "<" or ">" buttons, the radio will search a radio station decresing or increasing frequency. To store a found radio station press the "Mem" button and you'll have 4 seconds to select one of six presets you like to store to.
- To see current date press the I (info) key. The date will be displayed 4 seconds. This part of code can be optimized because it uses a delay() function.
- To adjust the clock press and hold the D key for at least 2 sec when you hear a hour ending signals (time signals), or see last seconds of a hour on some accurate clock. Release the D key to set hh.00.00. If your clock was late from 15 to 1 minutes, minutes and seconds will be set to 00 and hours will be increased by 1 and if your clock was hurry from 1 to 15 minutes, only minutes and seconds will be set to 00 after adjustment procedure.
- The resonator on RTC module to have better accuracy but clock adjustment feature lets to solve this problem.
- The 5110 LCD to a bigger and brighter one. May be some 1, 8" or 2.0" color LCD because sometimes it's hard to read information on NOKIA 5110 LCD used in the project.
- The PAM8403 amplifier to PAM8610 which has 2x15W output power or TDA7297 with same characteristics.
I'm happy how my new project works. No problems were observed after 1 month of working except the clock accuracy.
I'm not a programmer so the code can be optimized better. My C/C++ programming experience is about one year, self learned. It's my first useful project using Arduino platform and the first project which I'm sharing on the hub. Please understand and forgive me for possible mistakes and my bad English.
If you have any questions do not hesistate to ask in comments or PM.
Update 1.: Minor hardware and software updates.
Hardware - installed a 2A fuse on 12V line. Just for safety reason.
Software - added the line 586
1; This restores mode to VOLUME after pressing the power key.
Unfortunately the LCD in my radio is going to die.
So I'm in search for cheap NOKIA 5110 LCD alternative. I won't install a new 5110 LCD because it's small and hard to read. I think I'll experiment with 1.8" TFT LCD. The good things - it's bigger, brighter, has better resolution. The bad things - I'm sure the 1.8" TFT will eat more resources which are critical.
Your advices regarding LCD replacemen are welcome.