Goodspeed's Codeplug Tool
This is a CAT and memory programming library for the Kenwood TH-D72, TH-D74 and TH-D710 written in portable Java, with a command-line interface for use on desktop computers.
A matching frontend for Android is available in a separate git repo as CATTool, which calls this library as a dependency.
73 de Knoxville,
The jSerialComm library is
used to provide a serial port connection for the CLI tool. It is
embedded in the repo and statically linked into
Code compiles with the latest Java, but Java 8 compatibility is
strictly maintained for use in Android. TCP connections are
supported, both for hardware network serial port servers and quick and
dirty ones built with
Development is performed in Eclipse, but it's easy to build from the command line with Apache Ant.
dell% ant clean jar Buildfile: build.xml clean: [delete] Deleting directory build compile: [mkdir] Created dir: build/classes [unzip] Expanding: lib/jSerialComm-2.6.2.jar into build/classes [javac] Compiling 9 source files to build/classes jar: [jar] Building jar: CodePlugTool.jar BUILD SUCCESSFUL Total time: 1 second
The CLI is unstable at this point, but generally you provide a driver
d74) and a port name (
ttyACM0) as your parameters, then a verb or
to to direct the tool around. Run the tool with no parameters to see
a list of available drivers, ports, and verbs.
Usage is presented when run without parameters.
dell% java -jar CodePlugTool.jar Usage: cpt [driver] [port/file] [verbs] Drivers: Kenwood d74 -- TH-D74 Tri-Band HT d710 -- TM-D710 Mobile Yaesu 991a -- Yaesu FT-991A Others csv -- Chirp's CSV format. Ports: ttyS0 -- Physical Port S0 ttyS2 -- Physical Port S2 ttyS1 -- Physical Port S1 ttyUSB1 -- USB-to-Serial Port (cp210x) ttyUSB0 -- USB-to-Serial Port (cp210x) Verbs: info -- Prints the radio's info. dump -- Dumps the radio's channels to the console. upload foo.csv -- Uploads a CSV file from CHIRP to the radio. download foo.csv -- Downloads a CSV file from the radio. raw 'ME 000' -- Runs a raw command and prints the result.
Viewing the radio settings,
dell% java -jar CodePlugTool.jar d74 ttyACM0 info Model: TH-D74,K,4 Version: 1.09 Serial: B9A10175 Callsign: NOCALL Frequency: 224380000
Viewing the channels,
dell% java -jar CodePlugTool.jar d74 ttyACM0 dump 000 146.010000 MHz 100 147.315000 MHz (TX +0.600000 MHz) 101 146.895000 MHz (TX -0.600000 MHz) T100.000000 102 145.410000 MHz (TX -0.600000 MHz) T127.300000 103 147.240000 MHz (TX +0.600000 MHz) T114.800000 104 144.940000 MHz (TX 147.440000 MHz) 105 146.925000 MHz (TX -0.600000 MHz) T114.800000 106 145.450000 MHz (TX -0.600000 MHz) T141.300000 107 146.790000 MHz (TX -0.600000 MHz) 108 147.045000 MHz (TX -0.600000 MHz) T151.400000 ...
Flashing a CSV file from Chirp to a Kenwood TH-D74,
dell% head knoxville.csv Location,Name,Frequency,Duplex,Offset,Tone,rToneFreq,cToneFreq,DtcsCode,DtcsPolarity,Mode,TStep,Skip,Comment,URCALL,RPT1CALL,RPT2CALL,DVCODE 0,,146.010000,,0.600000,,88.5,88.5,023,NN,FM,5.00,,,,,, 100,,147.315000,+,0.600000,,88.5,88.5,023,NN,FM,5.00,,Rogersville,,,, 101,W4KEV,146.895000,-,0.600000,Tone,100.0,88.5,023,NN,FM,5.00,,Dandridge,,,, 102,W4KEV,145.410000,-,0.600000,Tone,127.3,127.3,023,NN,FM,5.00,,"Greeneville, Bald Mtn",,,, 103,KE4KQI,147.240000,+,0.600000,Tone,114.8,114.8,023,NN,FM,5.00,,Sneedville,,,, 104,K4HXD,144.940000,split,147.440000,,88.5,88.5,023,NN,DV,5.00,,Knoxville,CQCQCQ,,,0 105,W4GZX,146.925000,-,0.600000,Tone,114.8,88.5,023,NN,Auto,5.00,,"Cleveland, CARC Clubhouse",,,, 106,KQ4E,145.450000,-,0.600000,Tone,141.3,141.3,023,NN,Auto,5.00,,Morristown,,,, 107,N4AW,146.790000,-,0.600000,,88.5,88.5,023,NN,FM,5.00,,"Pickens, Sassafrass Mountain",,,, dell% java -jar CodePlugTool.jar d74 ttyACM0 upload knoxville.csv 000 146.010000 MHz 100 147.315000 MHz (TX +0.600000 MHz) 101 146.895000 MHz (TX -0.600000 MHz) T100.000000 102 145.410000 MHz (TX -0.600000 MHz) T127.300000 103 147.240000 MHz (TX +0.600000 MHz) T114.800000 104 144.940000 MHz (TX 147.440000 MHz) 105 146.925000 MHz (TX -0.600000 MHz) T114.800000 106 145.450000 MHz (TX -0.600000 MHz) T141.300000 107 146.790000 MHz (TX -0.600000 MHz) 108 147.045000 MHz (TX -0.600000 MHz) T151.400000 109 145.490000 MHz (TX -0.600000 MHz) T167.900000 110 147.240000 MHz (TX +0.600000 MHz) T151.400000 ...
CommandLineInterface for quick examples of communicating
with a radio. Better examples are on the way.
If you use this code, you owe me one India Pale Ale. If you complain that this isn't in the spirit of Free Software, you owe me a dozen of them.