uvk5-cec-chirp-driver/README.md
2024-04-22 18:55:34 +02:00

2.8 KiB

A CHIRP driver which supports the HF firmware from KD8CEC.

http://www.hamskey.com/2024/04/introduction-to-uv-k5-hf-05-fullband.html#more https://github.com/phdlee/uvk5cec

Starting with firmware version 0.5 HF.

The base of the chirp driver is based on https://www.universirius.com/preppers/quansheng-uv-k5-manuale-del-firmware-ijv_2-9r5/#Firmware-IJV

EEPROM content for 0.5 HF:

Address: 0x0D60 Content: for(uint16_t i = 0; i < sizeof(MR_ChannelAttributes); i++) { ChannelAttributes_t *att = &MR_ChannelAttributes[i]; if(att->__val == 0xff){ att->__val = 0; att->band = 0xf; } }

Address: 0x0E70 Content: 0: CHAN_1_CALL 1: SQUELCH_LEVEL 2: TX_TIMEOUT_TIMER 3: NOAA_AUTO_SCAN 4: KEY_LOCK 5: VOX_SWITCH 6: VOX_LEVEL 7: MIC_SENSITIVITY

Address: 0x0E78 Content: 0: BACKLIGHT_MAX (0x0f) & BACKLIGHT_MIN (0xf0 >> 4) 1: CHANNEL_DISPLAY_MODE 2: CROSS_BAND_RX_TX 3: BATTERY_SAVE 4: DUAL_WATCH 5: BACKLIGHT_TIME 6: TAIL_TONE_ELIMINATION 7: VFO_OPEN

Address: 0x0E80 Content: 0: ScreenChannel[0] 1: ScreenChannel[1] 2: MrChannel[0] 3: MrChannel[1] 4: FreqChannel[0] 5: FreqChannel[1] 6: NoaaChannel[0] 7: NoaaChannel[1]

Address: 0x0E90 Content: 0: BEEP_CONTROL (0x01) & KEY_M_LONG_PRESS_ACTION (>> 1) 1: KEY_1_SHORT_PRESS_ACTION 2: KEY_1_LONG_PRESS_ACTION 3: KEY_2_SHORT_PRESS_ACTION 4: KEY_2_LONG_PRESS_ACTION 5: SCAN_RESUME_MODE 6: AUTO_KEYPAD_LOCK 7: POWER_ON_DISPLAY_MODE

Address: 0x0E98 Content: 0: memcpy(&POWER_ON_PASSWORD, Data, 4)

Address: 0x0EA0 Content: 0: VOICE_PROMPT 1: S0_LEVEL 2: S9_LEVEL

Address: 0x0EA8 Content: 0: ALARM_MODE 1: ROGER 2: REPEATER_TAIL_TONE_ELIMINATION 3: TX_VFO 4: BATTERY_TYPE

Address: 0x0EB0 Content: EEPROM_WELCOMESTRING1 (16 byte) EEPROM_WELCOMESTRING2 (16 byte)

Address: 0x0ED0 Content: 0: DTMF_SIDE_TONE 1: DTMF_SEPARATE_CODE 2: DTMF_GROUP_CALL_CODE 3: DTMF_DECODE_RESPONSE 4: DTMF_auto_reset_time 5: DTMF_PRELOAD_TIME 6: DTMF_FIRST_CODE_PERSIST_TIME 7: DTMF_HASH_CODE_PERSIST_TIME

Address: 0x0ED8 Content: 0: DTMF_CODE_PERSIST_TIME 1: DTMF_CODE_INTERVAL_TIME 2: PERMIT_REMOTE_KILL

Address: 0x0EE0 Content: 0: memcpy(ANI_DTMF_ID, Data, sizeof(ANI_DTMF_ID))

Address: 0x0EE8 Content: 0: memcpy(KILL_CODE, Data, sizeof(KILL_CODE))

Address: 0x0EF0 Content: 0: memcpy(REVIVE_CODE, Data, sizeof(REVIVE_CODE))

Address: 0x0EF8 Content: 0: memcpy(DTMF_UP_CODE, Data, sizeof(DTMF_UP_CODE))

Address: 0x0F08 Content: 0: memcpy(DTMF_DOWN_CODE, Data, sizeof(DTMF_DOWN_CODE))

Address: 0x0F18 Content: 0: SCAN_LIST_DEFAULT 1: SCAN_LIST_ENABLED_1 2: SCANLIST_PRIORITY_CH1_1 3: SCANLIST_PRIORITY_CH2_1 4: SCAN_LIST_ENABLED_2 5: SCANLIST_PRIORITY_CH1_2 6: SCANLIST_PRIORITY_CH2_2

Address: 0x0F30 Content: bHasCustomAesKey: true/false

Address: 0x0F40 Content: 0: F_LOCK 1: 350TX 2: KILLED 3: 200TX 4: 500TX 5: 350EN 6: ScrambleEnable 7: live_DTMF_decoder

Address: CEC_EEPROM_START1 = 0x1D50 Content: LiveSeekMode CW_KEYTYPE CW_SPEED CW_TONE