Hi everyone,
Iād like to share my current TinyCLR project:
a fullāfeatured automotive DSP FM tuner driver for SITCore, based on the NXP TEF6686.
The TEF6686 is a modern FM DSP tuner used in highāend car radios.
This driver brings the chip natively into TinyCLR for the first time, enabling professionalāgrade FM radio reception directly from .NET code.
Repository:
https://github.com/Implicate-X/ImplicateX.TinyCLR.Drivers.Tuner.Tef668x
Overview
The driver implements the complete TEF6686 DSP pipeline:
-
RF front end
-
IF demodulation
-
Pilot tracking
-
Stereo matrix
-
Highācut / Highāblend
-
Softmute
-
Multipath management
-
RDS status
-
Audio processing flags
The result is a true TinyCLR FM tuner, technically far beyond typical hobbyālevel FM chips like Si47xx, RDA5807, BK1080, or QN8035.
Features
FM Tuning
-
10 kHz tuning steps
-
stable PLL lock
-
automatic IF correction
-
stereo pilot detection
DSP Status
The driver exposes all relevant DSP parameters:
-
softmute
-
highcut
-
stereo
-
sthiblend
-
softmuteActive
-
highcutActive
-
stereoProcessingActive
-
stHiBlendActive
This allows building a complete audio quality display, similar to automotive receivers.
RDS Status
-
RDS available
-
RDS loss
-
RDS data present
-
RDS synchronization
(Full RDS decoding will be added later.)
Signal Quality
-
stereo available
-
digital radio flag (DAB/DRM)
-
multipath indicators
-
noise floor tracking
TinyCLRāOptimized
-
pure I²C driver
-
no unsafe operations
-
no external dependencies
-
fully compatible with SITCore boards
Architecture
The TEF6686 outputs analog audio directly from its DSP.
In my setup, it is combined with a VS1053B webāradio decoder using an ADG888 analog switch:
TEF6686 ā analog out ā ADG888 ā vintage tuner audio path
VS1053B ā analog out ā ADG888 ā vintage tuner audio path
A frontāpanel BAND button (originally FM/AM) now switches between FM and Web Radio.
Example: Reading FM Status
FM frequency: 91.20 MHz
FM status tuned/raw: 0x03E8
FM status RDS/raw: 0x0200 available=False loss=False
FM status signal/raw: 0x8000
FM status signal: stereoAvailable=True digitalAvailable=False
FM status processing: softmute=0 highcut=378 stereo=847 sthiblend=1000
FM status processing/flags:
softmuteActive=False
highcutActive=True
stereoProcessingActive=True
stHiBlendActive=True
These values indicate:
-
stable stereo pilot
-
active DSP optimization
-
no softmute
-
slight highācut adjustment
-
full stereo width
-
RDS synchronization
The TEF6686 operates at automotiveāgrade quality, even with a simple whip antenna.
Roadmap
-
[ ] Full RDS decoder (PS, RT, PTY, PI, AF)
-
[ ] Stereo width visualizer
-
[ ] Multipath indicator
-
[ ] Automatic station scan
-
[ ] Sample TinyCLR UI (display)
-
[ ] Integration with VS1053B webāradio module
If anyone is interested in FM/DSP work on TinyCLR or wants to test the driver, feedback is very welcome.
This is an active project and will continue to evolveā¦



