diff --git a/TEF6686_ESP32.ino b/TEF6686_ESP32.ino index b9f5933..b290be7 100644 --- a/TEF6686_ESP32.ino +++ b/TEF6686_ESP32.ino @@ -1,179 +1,3 @@ -/* -******************************************************************************** - Advanced Tuner software for NXP TEF668x ESP32 - (c) 2023 Sjef Verhoeven pe5pvb@het-bar.net - Based on Catena / NXP semiconductors API -******************************************************************************** - v1.00 - Release - v1.01 - Add interrupt on both Rotary pins - - Add default settings - - Add Standby function - - Forced reboot after XDR-GTK disconnect - v1.02 - Fixed signalstrenght display when - value is 0 after boot or isn't changed - after menu close - - Added stepsize option - - Show "<" when signallevel is below - 0dBuV. Showing negative value is very - unstable. - - Cosmetic improvements - v1.03 - When signallevel is < set value all - statusses will only be updated - every 0.5 seconds. Threshold can be - set in the menu. RDS is then disabled - This will also improve I2C and ADC - noise on low level signals. - - System can now show negative dBuV. - v1.04 - Optimised TEF initialisation - - Fix on peakhold modulation meter - - Added Stereo squelch (turn knob right) - - Added Squelch off (turn knob left) - - Show current Squelch threshold - v1.05 - Fixed bug: Patch was not loaded - correctly into tuner after boot - - In Low level mode, RDS logo disabled - - Fix Stereo/mono toggle when using - XDR-GTK - - Fixed Squelch level readout when - leaving menu. This could cause auto- - scan to not work. - - Fix: RDS logo was not disabled in low - signal level mode - - Changed advice for TFT frequency to - reduce unwanted noise - - Optimised soft-boot - v1.06 - Slow down I2C speed to reduce noise - - Fix auto scan when squelch level is - below 0dBuV - - Fix show Hz (not kHz) on high cut - corner frequency - v1.07 - Added multipath suppresion (iMS) and - Channel Equalizer (EQ) - - Long press rotary to toggle iMS and EQ - - Added standby LED on D19 - - XDR-GTK: Use the antenna rotor buttons - to start scan up or down - - XDR-GTK: Enable IF+ to force low - signal level mode - - XDR-GTK: DX1 = Normal - DX2 = iMS enabled - DX3 = EQ enabled - DX4 = Both enabled - - Small modifications on XDR-GTK routine - for compatibility with modified - XDR-GTK TEF6686 edition - - Fixed small bug with displaytext in - scan mode - v1.08 - Fixed interrupted canvas lines on TFT - - Added function to mute TFT using XDR- - GTK. Use RF+ to use this function - - Level offset is still as set when - using XDR-GTK - - Detach interrupts when writing - frequency to display, to prevent - display crash - - Fixed bug when squelch is set to -1 - - Fixed bug that volume offset was reset - to 0 after changing frequency - v1.09 - Stereo indication didn't work when RF+ - was set in XDR-GTK - - Minor fix: When for some reason the - signallevel was an invalid value, now - the limit is -10 to +120dBuV - - No more short mute when changing frequency - - tuned indication only on when signal - valid. - - In Auto mode frequency is now shown and - direction can be changed on the fly. - to stop searching, just press any key. - - Minor bugfix in low signal lever timer. - v1.10 - Stand-by function was bricked after last update. - - Code optimised for compiler v2.0.0. - - Startup frequency was always 100.0MHz. Fixed. - v1.11 - Maximum frequency changed to 108MHz. (110MHz is not possible). - - Added AM reception. - - Hold BW button during boot to change direction of - rotary encoder. - - Hold Mode button during boot to flip the screen. - - When RT was too long the canvas was overwritten. - v1.12 - Stand-by key caused an issue when in menu mode. - - Canvas was broken on some points in the screen. - - Added possibility to connect analog signalmeter (thanks David DSP) - - Added slow signalmeter riding (thanks David DSP) - - S-meter for AM is corrected to the right values. - v1.13 - Fix for frequency offset in AM. - - Fix for flickering signalmeter when fluctuation is < 1dBuV. - - Added support for David DSP's converter board. - v1.14 - Bugfix: When signallevel drops down in digits, old digits were still displayed. - v1.15 - Fix AM bandwidth setting on F6805 chipset - - Added microcode for whole TEF668x family (Lithio) - - Added C/N readout - - S-meter and modulation meter update (Thanks David DSP) - - Added splash screen with tuner info - - Fixed problem when tuning beyond bandlimits on AM - - FM level calibrated - - Function added to choose between regular and optical rotary encoder (hold rotary button during boot) - v1.16 - Fixed some bugs to make the script compatible with new boardmanagers (v2.x) - - Rewritten rotary encoder routines - - New RDS routine - - Massive code cleanup - - Fixed canvas when changing bands - - Radiotext auto scroll when it does not fit in the window - - Added RDS CT (clock only) - - Added FullSearchRDS for TEF6687 & TEF6689 - - Added AM/FM indicator - - Fixed S-meter averaging - - Improved XDRGTK RDS output - - On signal dropout, RDS PTY, PI and PS stays on screen in blue -******************************************************************************** - - Analog signalmeter: - to meter - | - R V - IO27 -------=====-----=====---| - 1 k 5 k POT - -******************************************************************************** - Setup: - During boot: - Hold BW button to change rotary encoder direction - Hold Mode button the flip screen - Hold Standby button to calibrate analogue s-meter - Hold rotary button to switch between normal and optical rotary encoder - - Manual: - STANDBY SHORT PRESS: Switch band - STANDBY LONG PRESS: Standby - ROTARY SHORT PRESS: Set stepsize or navigate - ROTARY LONG PRESS: Toggle iMS & EQ - MODE SHORT PRESS: Switch between auto/manual - or exit menu - MODE LONG PRESS: Open menu - BW SHORT PRESS: Switch bandwidth setting - BW LONG PRESS: Switch mono, or auto stereo -* *********************************************** - - - Use this settings in TFT_eSPI User_Setup.h - #define ILI9341_DRIVER - #define TFT_CS 5 - #define TFT_DC 17 - #define TFT_RST 16 - #define LOAD_GLCD - #define LOAD_FONT2 - #define LOAD_FONT4 - #define LOAD_FONT6 - #define LOAD_FONT7 - #define LOAD_FONT8 - #define LOAD_GFXFF - #define SMOOTH_FONT - #define SPI_FREQUENCY 10000000 - - ALL OTHER SETTINGS SHOULD BE REMARKED!!!! - -*/ - #include "src/TEF6686.h" #include "src/constants.h" #include