Hamlib: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:


== Grig ==
== Grig ==
Grig is an app for controlling rigs and rotators.  
Grig is an app for controlling rigs and rotators.  


Getting started I want to set up Grig + the [[Kenwood TM-D710A]] on [[Plover]] (Ubuntu Linux), so that I can test Hamlib with that radio
Getting started I want to set up Grig + the [[Kenwood TM-D710A]] on [[Plover]] (Ubuntu Linux), so that I can test Hamlib with that radio


I am trying to use it in my Svxlink projects.
I am trying to use it in my [[SVXLink]] projects.


I need the latest versions of things to work on Plover, so I am building them from source code. I want to try building in Docker so that I can keep the changes to Plover contained.
I need the latest versions of things to work on Plover, so I am building them from source code. I want to try building in Docker so that I can keep the changes to Plover contained.
Line 42: Line 43:
rigctl -l | grep TH-D74
rigctl -l | grep TH-D74
rigctl -m 2042 -r /dev/ttyACM0 -u
rigctl -m 2042 -r /dev/ttyACM0 -u
Caps dump for model: 2042
Model name: TH-D74
Mfg name: Kenwood
Backend version: 20230318.3
Backend copyright: LGPL
Backend status: Stable
Rig type: Other Receiver Transmitter Handheld Transceiver APRS TNC DxCluster DxCluster
PTT type: Rig capable
DCD type: Rig capable
Port type: RS-232
Serial speed: 9600..9600 bauds, 8N1 XONXOFF
Write delay: 0mS, timeout 500mS, 3 retry
Post Write delay: 0mS
Has targetable VFO: Y
Has async data support: N
Announce: 0x0
Max RIT: -0.0kHz/+0.0kHz
Max XIT: -0.0kHz/+0.0kHz
Max IF-SHIFT: -0.0kHz/+0.0kHz
Preamp: None
Attenuator: None
AGC levels: 9=NONE
CTCSS: 67.0 71.9 74.4 77.0 79.7 82.5 85.4 88.5 91.5 94.8 97.4 100.0 103.5 107.2 110.9 114.8 118.8 123.0 127.3 131.8 136.5 141.3 146.2 151.4 156.7 162.2 167.9 173.8 179.9 186.2 192.8 203.5 210.7 218.1 225.7 233.6 241.8 250.3 Hz, 38 tones
DCS: None
Get functions: TONE TSQL
Set functions: TONE TSQL
Extra functions:
Get level: ATT(0..12/0) VOXDELAY(3..300/1) SQL(0..1/0.01) RFPOWER(0.05..1/0.01) VOXGAIN(0..1/0.01)
Set level: ATT(0..12/0) VOXDELAY(3..300/1) SQL(0..1/0.01) RFPOWER(0.05..1/0.01) VOXGAIN(0..1/0.01)
Extra levels:
Get parameters: TIME(0..0/0)
Set parameters: TIME(0..0/0)
Extra parameters:
Mode list: AM CW USB LSB FM WFM CWR FMN
VFO list: VFOA VFOB
VFO Ops:
Scan Ops:
Number of banks: 0
Memory name desc size: 6
Memories:
0..999:  MEM
  Mem caps: FREQ MODE WIDTH TXFREQ SPLIT RPTRSHIFT RPTROFS TS FUNC TONE CTCSS NAME
TX ranges #1 for TBD:
RX ranges #1 for TBD:
TX ranges #2 for TBD:
144000000 Hz - 148000000 Hz
VFO list: VFOA VFOB
Mode list: FM
Antenna list: ANT_NONE
Low power: 0.05 W, High power: 5 W
430000000 Hz - 440000000 Hz
VFO list: VFOA VFOB
Mode list: FM
Antenna list: ANT_NONE
Low power: 0.05 W, High power: 5 W
RX ranges #2 for TBD:
118000000 Hz - 174000000 Hz
VFO list: VFOA VFOB
Mode list: AM CW USB LSB FM WFM CWR FMN
Antenna list: ANT_NONE
320000000 Hz - 524000000 Hz
VFO list: VFOA VFOB
Mode list: AM CW USB LSB FM WFM CWR FMN
Antenna list: ANT_NONE
TX ranges #3 for TBD:
RX ranges #3 for TBD:
TX ranges #4 for TBD:
RX ranges #4 for TBD:
TX ranges #5 for TBD:
RX ranges #5 for TBD:
TX ranges #1 status for TBD: OK (0)
RX ranges #1 status for TBD: OK (0)
TX ranges #2 status for TBD: OK (0)
RX ranges #2 status for TBD: OK (0)
TX ranges #3 status for TBD: OK (0)
RX ranges #3 status for TBD: OK (0)
TX ranges #4 status for TBD: OK (0)
RX ranges #4 status for TBD: OK (0)
TX ranges #5 status for TBD: OK (0)
RX ranges #5 status for TBD: OK (0)
Tuning steps:
5.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
6.2500 kHz:  AM CW USB LSB FM WFM CWR FMN
10.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
12.5000 kHz:  AM CW USB LSB FM WFM CWR FMN
15.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
20.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
25.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
30.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
50.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
100.0000 kHz:  AM CW USB LSB FM WFM CWR FMN
Tuning steps status: OK (0)
Filters:
14.0000 kHz:  FM
7.0000 kHz:  FMN
9.0000 kHz:  AM
Bandwidths:
AM Normal: 9.0000 kHz, Narrow: 0.0 Hz, Wide: 0.0 Hz
FM Normal: 14.0000 kHz, Narrow: 0.0 Hz, Wide: 0.0 Hz
FMN Normal: 7.0000 kHz, Narrow: 0.0 Hz, Wide: 0.0 Hz
Spectrum scopes: None
Spectrum modes:
Spectrum spans:
Spectrum averaging modes:
Spectrum attenuator: None
Has priv data: Y
Has Init: Y
Has Cleanup: Y
Has Open: Y
Has Close: N
Can set Conf: N
Can get Conf: N
Can set Frequency: Y
Can get Frequency: Y
Can set Mode: Y
Can get Mode: Y
Can set VFO: Y
Can get VFO: Y
Can set PTT: Y
Can get PTT: N
Can get DCD: N
Can set Repeater Duplex: Y
Can get Repeater Duplex: Y
Can set Repeater Offset: Y
Can get Repeater Offset: Y
Can set Split Freq: Y
Can get Split Freq: Y
Can set Split Mode: E
Can get Split Mode: E
Can set Split VFO: Y
Can get Split VFO: Y
Can set Tuning Step: Y
Can get Tuning Step: Y
Can set RIT: N
Can get RIT: N
Can set XIT: N
Can get XIT: N
Can set CTCSS: Y
Can get CTCSS: Y
Can set DCS: Y
Can get DCS: Y
Can set CTCSS Squelch: Y
Can get CTCSS Squelch: Y
Can set DCS Squelch: N
Can get DCS Squelch: N
Can set Power Stat: N
Can get Power Stat: N
Can Reset: N
Can get Ant: N
Can set Ant: N
Can set Transceive: E
Can get Transceive: N
Can set Func: Y
Can get Func: Y
Can set Level: Y
Can get Level: Y
Can set Param: Y
Can get Param: Y
Can send DTMF: N
Can recv DTMF: N
Can send Morse: N
Can send Voice: N
Can decode Events: N
Can set Bank: N
Can set Mem: Y
Can get Mem: Y
Can set Channel: Y
Can get Channel: Y
Can ctl Mem/VFO: N
Can Scan: N
Can get Info: Y
Can get power2mW: N
Can get mW2power: N
Overall backend warnings: 0 
</pre>
</pre>


Well that's extensive but I want to try Grig. Let's see what that takes.
Well, that generates extensive output but I want to try Grig. Let's see what that takes.


=== Build Grig (in Docker?) ===
=== Build Grig (in Docker?) ===
Line 226: Line 51:
cd ~/docker
cd ~/docker
git clone https://github.com/fillods/grig.git
git clone https://github.com/fillods/grig.git
cd grig/docker-build
cp ../Hamlib/bootstrap .
docker buildx build -t grig-build .
docker run --rm -ti -u root -v $(pwd):/home/homebuild/build -v /usr/local/grig:/usr/local/grig hamlib-build
cd ..
 
docker run --rm -ti -u root -v $(pwd):/home/grig/build -v /usr/local/grig:/usr/local/grig grig-build
This fails for me. Nearly worked, darn.
 
I went over to [[Bellman]] and built at the command line, the normal way, both Hamlib and Grig.
This installed into /usr/local/*
 
I think I can just copy everything over to Plover. Both are using Ubuntu. This worked.


grig -m 2042 -r /dev/ttyACM0 -p


Use rigctl -l to find the ID code (2042 for the TH-D74).


[[Category: Radio]]
[[Category: Radio]]

Latest revision as of 18:47, 28 June 2024

A library for radio and rig control.

https://github.com/Hamlib/Hamlib

Grig

Grig is an app for controlling rigs and rotators.

Getting started I want to set up Grig + the Kenwood TM-D710A on Plover (Ubuntu Linux), so that I can test Hamlib with that radio

I am trying to use it in my SVXLink projects.

I need the latest versions of things to work on Plover, so I am building them from source code. I want to try building in Docker so that I can keep the changes to Plover contained.

Build Hamlib in Docker

It comes with instructions, here: https://github.com/Hamlib/Hamlib/tree/master/docker-build This will build and install hamlib in /usr/local/hamlib-alpha/.

cd ~/docker
https://github.com/Hamlib/Hamlib.git
cd Hamlib/docker-build/
# Install the toolchain in an image
docker buildx build -t hamlib-build .
cd ..
# Use the toolchain to actually compile and install hamlib on the host.
docker run --rm -ti -u root -v $(pwd):/home/hamlib/build -v /usr/local/hamlib-alpha:/usr/local/hamlib-alpha hamlib-build
/usr/local/hamlib-alpha/bin/rigctl

That gives me a command line program rigctl. Use a "?" to get a list of commands. Now I need to plug in a rig to ctl. Here's a man page for it. https://www.mankier.com/1/rigctl

Other commands installed include ampctl ampctld rigctlcom rigctld rigctlsync rigctltcp rigmem rigsmtr rigswr rigtestlibusb rotctl rotctld


I am trying my Kenwood TH-D74A because it's sitting right next to me. Also, it has a built-in USB port. Very modern. On Plover it looks like it's showing up on /dev/ttyACM0

rigctl -l | grep TH-D74
rigctl -m 2042 -r /dev/ttyACM0 -u

Well, that generates extensive output but I want to try Grig. Let's see what that takes.

Build Grig (in Docker?)

cd ~/docker git clone https://github.com/fillods/grig.git cp ../Hamlib/bootstrap . docker run --rm -ti -u root -v $(pwd):/home/homebuild/build -v /usr/local/grig:/usr/local/grig hamlib-build

This fails for me. Nearly worked, darn.

I went over to Bellman and built at the command line, the normal way, both Hamlib and Grig. This installed into /usr/local/*

I think I can just copy everything over to Plover. Both are using Ubuntu. This worked.

grig -m 2042 -r /dev/ttyACM0 -p

Use rigctl -l to find the ID code (2042 for the TH-D74).