Go to file
2024-04-22 19:12:46 +02:00
debug Added memory dump and chirp log. 2024-04-22 19:12:46 +02:00
README.md Added some newlines. 2024-04-22 18:58:58 +02:00
uvk5_CEC_05_HF_DO4KLA.py Debug messages enabled 2024-04-22 19:12:27 +02:00

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