Posts

Inspecting Uniden BC898T firmware

Image
https://techcoderadio.blogspot.com/2025/04/bearmock-python-3-and-virtual-serial.html    __MODEL = 'BC898T' __PORT = 'COM12' __SPEED = 9600 __TIMEOUT = 0  # non-blocking __READ_SLEEP_SECS = 0 __OUT = 'bc898t-decoded.s19' __ACTIONS = {     '\r': 'UNKNOWN COMMAND\r',  # Empty, just reply     '*SUM\r': 'CHECKSUM= DEADH\r',  # Fake checksum     '*SPD 1\r': 'SPEED 9600 bps\r',     '*SPD 2\r': 'SPEED 19200 bps\r',     '*SPD 3\r': 'SPEED 38400 bps\r',     '*SPD 4\r': 'SPEED 57600 bps\r',     '*SPD 5\r': 'SPEED 115200 bps\r',     '*PGL 11000000000\r': 'OK\r',     '*PGL 110000000\r': 'OK\r',     '*PGL 1000000000000000000\r': 'OK\r',     '*PGL 1100000\r': 'OK\r',   Comment out port.flush() if printing err messages after retrys. Notepad++ Remove first line Replace S224 with null Plugins: Convert HEX -...

Inspecting Uniden BC296D with Ghidra

Image
 After processing firmware with https://techcoderadio.blogspot.com/2025/04/bearmock-python-3-and-virtual-serial.html It is possible to inspect it with Ghidra (Motorola Hex, M16C 60), ASCII and disassembly    

ADALM-PLUTO Python RSSI band scope

Image
import adi import iio import serial import pandas as pd import matplotlib.pyplot as plt import csv from datetime import datetime sdr = adi.Pluto('ip:192.168.2.1') ctx = iio.Context('ip:192.168.2.1') phy = sdr.ctx.find_device("ad9361-phy") print(f"Product ID: {hex(phy.reg_read(0x37))}") data = [] log_data = [] cols = ['Frequency', 'RSSI', 'Timestamp'] plt.xlabel("Frequency") plt.ylabel("RSSI") plt.xticks(rotation = 90) plt.ion() start_freq = 446.0e6 # Hz freq = start_freq freq_step = 12500.0 # Hz counter = 0 num_steps = 16 sample_rate = 0.521e6  # Hz Minimum is 521 KSPS num_samples = 2**16 rssi_add = 128 loop = True sdr.rx_lo = int(freq) sdr.gain_control_mode_chan0 = "fast_attack" sdr.sample_rate = int(sample_rate) sdr.rx_rf_bandwidth = int(sample_rate) # filter width, just set it to the same as sample rate for now sdr.rx_buffer_size = num_samples try:     while (loop == True):         rssi = sdr._...

Gatsoo in 720 nm

Image
 

Some C# for processing bin files and some mod ideas for BC_VUP_V3

Visual Studio, dotPeek Do XOR op for the bin file and convert it to hex file   using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace FileBin {     internal class Program     {         static void Main(string[] args)         {             char[] ct = new char[16]             {                 '0',                 '1',                 '2',                 '3',                 '4',                 '5',                 '6',                 '7',       ...

Mods for BC_VUP_V3

Visual Studio 2022 dotPeek C#  After dotPeeking Uniden BC_VUP_V3 to VS solution it is quite easy to do some mods for it, e.g. modifying it to write firmware to file without Uniden radioscanner connected to COM port. Mainform.cs comment out CheckScanner() SelectCom.cs comment out !usscRemote.CanOpen ... replace if and else with code in else section usscRemote.cs TransferPacket, comment out ComPort.WriteLine and ComPort.ReadLine and add e.g. System.IO.File.AppendAllText(..., Packet ... WritingDialogbox.cs TransferFile add return; after analyzefirmware .. analyzefirmware, after while ... add e.g. File.AppendAllText(@..., str + Environment.NewLine, Encoding.ASCII); first case statement, add e.g. File.WriteAllText(@..., checksum.ToString(), Encoding.ASCII); bintostring, add e.g. File.AppendAllText(@..., stringBuilder.ToString(), Encoding.UTF8); analyzefirmwarebin, add e.g. File.AppendAllText(@..., checksum.ToString(), Encoding.ASCII); getstringinfoot add e.g. File.AppendAllText(@..., En...