Posts

Inspecting Alinco DJ-G29T firmware

Image
Alinco DJ-G29T firmware updater softwate  DJ-G29T ver.1.10NEW.msi => unzip, Instal01,cab => unzip File named PO1_A3 ... contains compiled code and data section in Motorola S-record format. Remove lines before and after data section and with some Python scripts clean the data section. import re import argparse import sys def clean_file(path: str) -> None:     try:         with open(path, 'r', encoding='ansi') as f:             text = f.read()     except FileNotFoundError:         print(f"File not found: {path}", file=sys.stderr)         sys.exit(1)     cleaned = re.sub(r'[^S0-9A-F\r\n]+', '', text)     with open(path, 'w', encoding='ansi', newline='') as f:         f.write(cleaned) def main() -> None:     parser = argparse.ArgumentParser(         description='Keep characters S,0-9,A-F'   ...

Inspecting some Uniden scanners firmware strings

Image
with srecparser.py https://techcoderadio.blogspot.com/2026/04/motorola-s-record-old-python-code.html     Uniden BR330T BCT15 BCD396T  

Inspecting Uniden BC898T firmware

Image
run BearMock to get decoded Motorola S-record format file https://techcoderadio.blogspot.com/2025/04/bearmock-for-python-3.html CPU is probably M16C/60N Ghidra:

Inspecting Uniden BCT8 firmware

Image
run BearMock to get decoded Motorola S-record format file https://techcoderadio.blogspot.com/2025/04/bearmock-for-python-3.html CPU is probably M16C/60N Ghidra:  

Motorola S-record - old Python code enhanced #2

https://techcoderadio.blogspot.com/2025/04/motorola-s-record-old-python-code.html https://github.com/gabtremblay/pysrec Code optimized New option -a which stores data section as ASCII Tested with Python 3.14.4 #!/usr/bin/python # srecparser.py # # Copyright (C) 2011 Gabriel Tremblay - initnull hat gmail.com # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA...

Enhancing old heatmap.py

Python 3.14.3 original code: https://github.com/keenerd/rtl-sdr-misc/blob/master/heatmap/heatmap.py   Enhanced code. Optimizations and works with latest pillow (12.x.x) versions #! /usr/bin/env python # fix for the pillow 12 from PIL import Image, ImageDraw, ImageFont import os, sys, gzip, math, argparse, colorsys, datetime from collections import defaultdict urlretrieve = lambda a, b: None try:     import urllib.request     urlretrieve = urllib.request.urlretrieve except:     import urllib     urlretrieve = urllib.urlretrieve # todo: # matplotlib powered --interactive # arbitrary freq marker spacing # ppm # blue-less marker grid # fast summary thing # gain normalization # check pil version for brokenness vera_url = "https://github.com/keenerd/rtl-sdr-misc/raw/master/heatmap/Vera.ttf" vera_path = os.path.join(sys.path[0], "Vera.ttf") tape_height = 25 tape_pt = 10 if not os.path.isfile(vera_path):     urlretrieve(vera_url, vera_path)...

Inspecting Uniden BC-246T firmware

Image
run BearMock to get decoded Motorola S-record format file https://techcoderadio.blogspot.com/2025/04/bearmock-for-python-3.html CPU is probably M16C/60N Ghidra: