Project

General

Profile

Bug #7279 » PX888K_tweak.txt

Infos for manual adding of memories in Chirp's img file for PX888K - Ti'R  , 11/20/2019 02:29 AM

 

Infos about Puxing PX888K .img file from Chirp for manual "tweaking" :
----------------------------------------------------------------------

----------------------------------------------------------------------
Memories partial infos :
------------------------
Stored on 16 bytes (00 to FF).
The bytes 00 to 03 contains the RX frequency.
The bytes 04 to 07 contains the TX frequency
The bytes 08 to 09 contains the CTSS/DCS code for RX
The bytes 0A to AB contains the CTSS/DCS code for TX
For CTSS or DCS code, if the first digit is 8, its DCS, else it's CTSS.
The bytes 0C and OD contains C8 00 (don't know (yet) why but they have to).

So the last memory is at offset 0x7F0 (2032d (16 x (128 - 1)) (128 - 1 because
first memory i s at offset 0)). And the 13 will be a 0xC0 (16 x (13 - 1)) = 192d.

Example : F RX F TX C R C T Exist ?
| | | | | | | | | |
Offset 0xC0 (mem 13) 44 60 81 25 44 60 43 75 82 43 11 88 C8 00 FF FF

F RX F TX C R (DCS) C T (CTCSS)
446.08125 446.04375 243 118.8

If T RX is different from F RX, it is seen as offset in Chirp.
----------------------------------------------------------------------


----------------------------------------------------------------------
Memories names infos :
----------------------
Stored on 6 bytes (00 to FF).
The first is at the offset 0x800
The second is at the offset 0x808
The nexts are at the offsets 0x810 / 0x818, 0x820 / 0x828 and so on with a multiple
of 16 up to the last. The 2 last are at offset 0xBF0 / 0xBF8.
800h = 2048d 2048 16 x ((128/2 - 1) = 1008 2048 + 1008 = 3056 3056d = BF0h

Example : C H - 1 3 C H - 1 4
| | | | | | | | | |
Offset 0x900 (mem 13/14) 50 4D 52 2D 31 33 FF FF 50 4D 52 2D 31 34 FF FF
----------------------------------------------------------------------


----------------------------------------------------------------------
Memory used/defined partial infos :
-----------------------------------

Important : If not set correcly, the memories are not seen in Chirp

Stored twice at offsets 0xC20 and 0xC30. Why twice i don't know.

They are calculated with the "powers of 2" (1, 2, 4, 8, 16, 32, 64, 128...) and they
are the sum of "2 powers of 0 to 7" for 8 memories for each byte up to 128 memories
(8 x 16 = 128). I wanted 32 mems, from 1 to 16 and from 21 to 36. Here are my details :

1 (mem 1++) 1 (mem 9) 1 (mem 17) 1 (mem 25) 1 (mem 33)
2 | 2 | 2 2 | 2 |
4 | 4 | 4 4 | 4 |
8 | 8 | 8 8 | 8 (mem 36--)
16 | 16 | 16 (mem 21++) 16 | 16
32 | 32 | 32 | 32 | 32
64 | 64 | 64 | 64 | 64
128 (mem 8) 128 (mem 16--) 128 (mem 24) 128 (mem 32) 128 (mem 40)

1+2+...+64+128 1+2+...+64+128 16+32+64+128 1+2+...+64+128 1+2+4+8
255 / FF 255 / FF 240 / F0 255 / FF 15 / 0F

So for me, the datas to write at offsets 0xC20 and 0xC30 are : FF FF F0 FF 0F
----------------------------------------------------------------------



I hope it's clear and i hope this can help ! ;-)

Ti'R.
    (1-1/1)