Bug #559
closedChirp does not correctly decode some ID-880H frequencies
100%
Description
In some Icom radios (including the ID-880H), a frequency multiplier "index" is stored along with a frequency "sub-value", in order to save space in the memory list.
For the ID-880H, the 3-bit index value (separate indicies for xmit and receive) should index into the following multiplier table:
static uint32_t const resolutions[ 8 ] = { 5000, 6250, 6250, 8333, 9000, 10, 10, 10 };
If the wrong table values are used, the wrong frequency is displayed. Eg, on the ID-880H, 121.5 MHz (the international distress/MayDay frequency) from the radio is displayed by Chirp as 67.5MHz, probably because 5000 (index 0) was used rather than 9000 (index 4). Perhaps you are assuming the multiplier is only a 2-bit value?
The ID-880H is a big-endian processor, and the first 24 bits of a memory location are (high-to-low bit order):
- 3-bits, rx multiplier index
- 3-bits, tx multiplier index
- 18-bits, receive frequency "sub-value".
I marked this as "Urgent", because potentially it could cause corruption of a user's frequencies. It is NOT urgent for me personally (I use Icom's software for the ID-880H).