Hey all,
Please forgive me if this has been previously discovered and documented; I stumbled upon it a couple of days ago while trying different variations of the 'cdb 2' serial command to enable debug mode that I first saw implemented in HPe-rc.
Anyway, sending 'cdb\t1\r' to the HP-1's serial port (note the tab and the carriage return) enables what appears to be a four-level slicing mode that outputs the ASCII characters '0', '1', '2', or '3' to the serial port at a rate of about 4.8 kB/s when tuned to a P25 channel. The scanner continues to work in interactive mode, so I can hold channels, select systems, and otherwise operate the HP-1 as normal. I do notice that the slicer output doesn't appear to be just a raw slicer sampling the baseband at 4.8 kS/s; for instance, when I tune away from the control channel to an unmodulated channel, the slicer output stutters or just stops. But it does appear to work very well when following a P25 system. To confirm that the HP-1 was in fact sending slicer data, I looked first for P25 frame syncs as documented in TIA-102.BAAA. When I got a bunch of positive hits, I wrote a really basic TSBK decoder and fed the serial port data into it. The samples were successfully parsed on my local system:
These are TSBKs I was able to decode with the slicer output from the HP-1. The CRCs match in about 90% of the packets (I haven't implemented error correction in my rate 1/2 trellis decoder, so it's very sensitive to noise right now), so I'm fairly confident that this is what I've got.
My long-term plan for this is to have a process on a Raspberry Pi decoding trunked control channel data from the HP-1 and using that to tune a BC796D for voice decoding, then sampling and streaming the audio to the local network. (The RPi probably doesn't have the horsepower to run DSD; besides, I've heard mixed reviews, and I happen to have the extra scanner onhand.) The idea is to create a kind of custom trunked radio monitor that I can control through a webserver on the RPi that's far more capable than the HP-1's native interface. With a dedicated tuner fixed on the control channel, I can monitor for priority channels and watch system activity while listening to a selected channel on the 796, etc. I just need to find a good reference for P25 control channel messages details (nothing too fancy needed--basic voice channel grants and such).
I have Extreme!!!11! version 2.01 of the HP-1 firmware, btw.
Please forgive me if this has been previously discovered and documented; I stumbled upon it a couple of days ago while trying different variations of the 'cdb 2' serial command to enable debug mode that I first saw implemented in HPe-rc.
Anyway, sending 'cdb\t1\r' to the HP-1's serial port (note the tab and the carriage return) enables what appears to be a four-level slicing mode that outputs the ASCII characters '0', '1', '2', or '3' to the serial port at a rate of about 4.8 kB/s when tuned to a P25 channel. The scanner continues to work in interactive mode, so I can hold channels, select systems, and otherwise operate the HP-1 as normal. I do notice that the slicer output doesn't appear to be just a raw slicer sampling the baseband at 4.8 kS/s; for instance, when I tune away from the control channel to an unmodulated channel, the slicer output stutters or just stops. But it does appear to work very well when following a P25 system. To confirm that the HP-1 was in fact sending slicer data, I looked first for P25 frame syncs as documented in TIA-102.BAAA. When I got a bunch of positive hits, I wrote a really basic TSBK decoder and fed the serial port data into it. The samples were successfully parsed on my local system:
Code:
28 00 00 00 00 05 5d a1 45 56 a1 f5 [a1f5]
02 00 01 ad 00 65 00 d5 09 02 67 96 [6796]
00 90 0c 6a 0c 71 0c 6a 0c 71 c6 27 [c627]
00 90 04 63 04 63 04 61 04 63 70 42 [7042]
3b 00 00 be e0 91 3e 00 41 70 a0 26 [a026]
34 00 45 05 a0 14 01 e9 4f ac 75 6c [756c]
3a 00 00 31 3e 01 01 00 41 70 14 e9 [14e9]
00 90 05 ca 05 cd 05 cd 05 cd a0 62 [a062]
09 90 14 00 00 00 00 00 00 00 04 64 [0464]
05 90 40 00 00 00 00 00 00 00 27 13 [2713]
These are TSBKs I was able to decode with the slicer output from the HP-1. The CRCs match in about 90% of the packets (I haven't implemented error correction in my rate 1/2 trellis decoder, so it's very sensitive to noise right now), so I'm fairly confident that this is what I've got.
My long-term plan for this is to have a process on a Raspberry Pi decoding trunked control channel data from the HP-1 and using that to tune a BC796D for voice decoding, then sampling and streaming the audio to the local network. (The RPi probably doesn't have the horsepower to run DSD; besides, I've heard mixed reviews, and I happen to have the extra scanner onhand.) The idea is to create a kind of custom trunked radio monitor that I can control through a webserver on the RPi that's far more capable than the HP-1's native interface. With a dedicated tuner fixed on the control channel, I can monitor for priority channels and watch system activity while listening to a selected channel on the 796, etc. I just need to find a good reference for P25 control channel messages details (nothing too fancy needed--basic voice channel grants and such).
I have Extreme!!!11! version 2.01 of the HP-1 firmware, btw.