Half of California is underwater. The parts that aren't have had trees falling into poles for months. PG&E is extremely active. You should check out the news sometime.Not that I am aware of. Only way to do that would be like setting up a fav list with tones.
Most likely the same as they do in my area,,,,, not much.. Seriously, where are you located?
Honestly, I have never heard of "having to enter tone squelch to receive voice". Tone squelch allows two or more users the ability to operate on the same freq without interfering with each other.
Where are these hundreds of Pseg freqs listed? Between any pc with Excel, Sentinel or @ProScan , you can usually get large amounts of data into these scanners.
.
In less than 5 minutes I was able to make a formula in Excel to increment by .0125, drag it down to 500 rows, copy and paste that into a new system in Sentinel.Half of California is underwater. The parts that aren't have had trees falling into poles for months. PG&E is extremely active. You should check out the news sometime.
Frequency ranges are here:
![]()
Pacific Gas and Electric (PGE) Trunking System, Various, California
Pacific Gas and Electric (PGE) Trunking System Profilewww.radioreference.com
I don't know what to tell you about your understanding of CTCSS's use cases but I can tell you that I am not a Windows user and Sentinel has absolutely no functionality that would enable one to create 500 channels in 12KHZ steps without spending many, many hours clicking around.
#!/usr/bin/env python3
import argparse
import gzip
import os
import shutil
# This is what passes for clever in many
# parts of the world.
UNIDEN_OBFUSCATION_KEY = 0xC
def xor_byte(byte) -> bytes:
order = 'little'
byte_as_int = int.from_bytes(byte, order)
key_as_int = UNIDEN_OBFUSCATION_KEY
xored = byte_as_int ^ key_as_int
return xored.to_bytes(1, order)
def decode_hpe_file(file_path: str):
path, _ = os.path.splitext(file_path)
temp_gzip_file = f"{path}__tmp_decoding.gz"
dest_file = f"{path}_decoded.txt"
print(f"Decoding to {dest_file}...")
# De-XOR to .gz
with open(file_path, "rb") as source:
with open(temp_gzip_file, "wb") as dest:
while (byte := source.read(1)):
dest.write(xor_byte(byte))
# Gunzip to .txt
with gzip.open(temp_gzip_file, "rb") as zipped:
with open(dest_file, "wb") as unzipped:
shutil.copyfileobj(zipped, unzipped)
os.remove(temp_gzip_file)
def encode_hpe_file(file_path: str):
path, _ = os.path.splitext(file_path)
temp_gzip_file = f"{path}_tmp_encoding.gz"
dest_file = f"{path}_encoded.hpe"
print(f"Encoding to {dest_file}...")
# Gzip with very minimal compression so Uniden's
# god-awful .NET code from the 90s can handle it.
with open(file_path, "rb") as source:
with gzip.open(temp_gzip_file, "wb", compresslevel=1) as zipped:
zipped.writelines(source)
# XOR to .hpe
with open(dest_file, "wb") as dest:
with open(temp_gzip_file, "rb") as zipped:
while (byte := zipped.read(1)):
dest.write(xor_byte(byte))
os.remove(temp_gzip_file)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Tool for dealing with Uniden's offshore cubicle software")
parser.add_argument('operation', choices=['encode', 'decode'])
parser.add_argument('filename')
args = parser.parse_args()
if args.operation == 'decode':
decode_hpe_file(args.filename)
elif args.operation == 'encode':
encode_hpe_file(args.filename)
they use hundreds of analog channels that can be a bit screechy if you don't tone squelch them to get to the actual voice transmissions.
Tone squelch allows two or more users the ability to operate on the same freq without interfering with each other
My understanding of ctcss tones is just what I wrote. It allows you to, with the correct tone, to listen to only one agency that may be using the freq shared with another agency. There are many agencies that share freqs and if agency 1, security company uses 179.9, and agency 2, PSEG, uses 169.6, and you are within range of both, then you would have to put in 196.6 to only hear PSEG. If you do not put in 196.6, and are in range of both agencies, you will hear both. But, like I mentioned earlier, you do not have to put in the tone to listen. Only if there is more than one agency on the freq.I don't know what to tell you about your understanding of CTCSS's use
If those are the freqs, the hundreds you menton, those are part of a trunked MPT-1327 Standard system. And there is only about 200. The system is Statewide meaning those freqs are used across the whole state, not just in your county. Infact, only a handful are used in each county. Meaning you would only receive the ones close to you.Frequency ranges are here:
![]()
Pacific Gas and Electric (PGE) Trunking System, Various, California
Pacific Gas and Electric (PGE) Trunking System Profilewww.radioreference.com
When does the need arise to use the tab delimited output from a hpe file?After a bit of digging I found someone who had reverse-engineered the .hpe file format
-After a bit of digging I found someone who had reverse-engineered the .hpe file format and turns out they're just mildly obfuscated .gz files which can be converted to plain text pretty easily.
You can set that up thru Sentinel also.
Hook scanner to pc. Read scanner into Sentinel. Edit profile. Click Custom Search tab.
Add your ranges and step sizes. I prepend a number in front of the name to make my tough life easier.
View attachment 137268
When done, write back to scanner.
Yes, I am aware that the last name does not match the lower and upper freqs.
.