From 1e98661ce4c5f01a8c368a61af1d88a437f6924a Mon Sep 17 00:00:00 2001 From: Michael Black W9MDB Date: Sun, 3 Jan 2021 13:33:15 -0600 Subject: [PATCH] Add FT-897D https://github.com/Hamlib/Hamlib/issues/384 --- include/hamlib/riglist.h | 1 + rigs/yaesu/ft897.c | 141 +++++++++++++++++++++++++++++++++++++++ rigs/yaesu/yaesu.c | 1 + rigs/yaesu/yaesu.h | 1 + 4 files changed, 144 insertions(+) diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index 97de42c95..c424e3a34 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -119,6 +119,7 @@ #define RIG_MODEL_FTDX101D RIG_MAKE_MODEL(RIG_YAESU, 40) #define RIG_MODEL_FT818 RIG_MAKE_MODEL(RIG_YAESU, 41) #define RIG_MODEL_FTDX10 RIG_MAKE_MODEL(RIG_YAESU, 42) +#define RIG_MODEL_FT897D RIG_MAKE_MODEL(RIG_YAESU, 43) /* diff --git a/rigs/yaesu/ft897.c b/rigs/yaesu/ft897.c index b3dbafc67..95b95134f 100644 --- a/rigs/yaesu/ft897.c +++ b/rigs/yaesu/ft897.c @@ -329,6 +329,147 @@ const struct rig_caps ft897_caps = .vfo_op = ft897_vfo_op, }; +const struct rig_caps ft897d_caps = +{ + RIG_MODEL(RIG_MODEL_FT897D), + .model_name = "FT-897D", + .mfg_name = "Yaesu", + .version = "20210103.0", + .copyright = "LGPL", + .status = RIG_STATUS_BETA, + .rig_type = RIG_TYPE_TRANSCEIVER, + .ptt_type = RIG_PTT_RIG, + .dcd_type = RIG_DCD_RIG, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 4800, + .serial_rate_max = 38400, + .serial_data_bits = 8, + .serial_stop_bits = 2, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = FT897_WRITE_DELAY, + .post_write_delay = FT897_POST_WRITE_DELAY, + .timeout = FT897_TIMEOUT, + .retry = 0, + .has_get_func = RIG_FUNC_NONE, + .has_set_func = RIG_FUNC_LOCK | RIG_FUNC_TONE | RIG_FUNC_TSQL, + .has_get_level = RIG_LEVEL_STRENGTH | RIG_LEVEL_RFPOWER | RIG_LEVEL_SWR | RIG_LEVEL_RAWSTR, + .has_set_level = RIG_LEVEL_NONE, + .has_get_parm = RIG_PARM_NONE, + .has_set_parm = RIG_PARM_NONE, + .level_gran = {}, /* granularity */ + .parm_gran = {}, + .ctcss_list = common_ctcss_list, + .dcs_list = common_dcs_list, /* only 104 supported */ + .preamp = { RIG_DBLST_END, }, + .attenuator = { RIG_DBLST_END, }, + .max_rit = Hz(9990), + .max_xit = Hz(0), + .max_ifshift = Hz(0), + .targetable_vfo = 0, + .transceive = RIG_TRN_OFF, + .bank_qty = 0, + .chan_desc_sz = 0, + .chan_list = { RIG_CHAN_END, }, + .vfo_ops = RIG_OP_TOGGLE, + + .rx_range_list1 = { + {kHz(100), MHz(56), FT897_ALL_RX_MODES, -1, -1}, + {MHz(76), MHz(108), RIG_MODE_WFM, -1, -1}, + {MHz(118), MHz(164), FT897_ALL_RX_MODES, -1, -1}, + {MHz(420), MHz(470), FT897_ALL_RX_MODES, -1, -1}, + RIG_FRNG_END, + }, + .tx_range_list1 = { + FRQ_RNG_HF(1, FT897_OTHER_TX_MODES, W(10), W(100), FT897_VFO_ALL, FT897_ANTS), + FRQ_RNG_6m(1, FT897_OTHER_TX_MODES, W(10), W(100), FT897_VFO_ALL, FT897_ANTS), + + /* AM class */ + FRQ_RNG_HF(1, FT897_AM_TX_MODES, W(2.5), W(25), FT897_VFO_ALL, FT897_ANTS), + FRQ_RNG_6m(1, FT897_AM_TX_MODES, W(2.5), W(25), FT897_VFO_ALL, FT897_ANTS), + FRQ_RNG_2m(1, FT897_OTHER_TX_MODES, W(5), W(50), FT897_VFO_ALL, FT897_ANTS), + /* AM class */ + FRQ_RNG_2m(1, FT897_AM_TX_MODES, W(2.5), W(25), FT897_VFO_ALL, FT897_ANTS), + FRQ_RNG_70cm(1, FT897_OTHER_TX_MODES, W(2), W(20), FT897_VFO_ALL, FT897_ANTS), + /* AM class */ + FRQ_RNG_70cm(1, FT897_AM_TX_MODES, W(0.5), W(5), FT897_VFO_ALL, FT897_ANTS), + RIG_FRNG_END, + }, + + + .rx_range_list2 = { + {kHz(100), MHz(56), FT897_ALL_RX_MODES, -1, -1}, + {MHz(76), MHz(108), RIG_MODE_WFM, -1, -1}, + {MHz(118), MHz(164), FT897_ALL_RX_MODES, -1, -1}, + {MHz(420), MHz(470), FT897_ALL_RX_MODES, -1, -1}, + RIG_FRNG_END, + }, + .tx_range_list2 = { + FRQ_RNG_HF(2, FT897_OTHER_TX_MODES, W(10), W(100), FT897_VFO_ALL, FT897_ANTS), + /* AM class */ + FRQ_RNG_HF(2, FT897_AM_TX_MODES, W(2.5), W(25), FT897_VFO_ALL, FT897_ANTS), + FRQ_RNG_2m(2, FT897_OTHER_TX_MODES, W(5), W(50), FT897_VFO_ALL, FT897_ANTS), + /* AM class */ + FRQ_RNG_2m(2, FT897_AM_TX_MODES, W(2.5), W(25), FT897_VFO_ALL, FT897_ANTS), + FRQ_RNG_70cm(2, FT897_OTHER_TX_MODES, W(2), W(20), FT897_VFO_ALL, FT897_ANTS), + /* AM class */ + FRQ_RNG_70cm(2, FT897_AM_TX_MODES, W(0.5), W(5), FT897_VFO_ALL, FT897_ANTS), + RIG_FRNG_END, + }, + + .tuning_steps = { + {FT897_SSB_CW_RX_MODES, 10}, + {FT897_SSB_CW_RX_MODES, 100}, + {FT897_AM_FM_RX_MODES, 10}, + {FT897_AM_FM_RX_MODES, 100}, + RIG_TS_END, + }, + + /* filter selection is not supported by CAT functions + * per testing by Rich Newsom, WA4SXZ + */ + .filters = { +// {RIG_MODE_SSB, kHz(2.2)}, +// {RIG_MODE_CW, kHz(2.2)}, +// {RIG_MODE_CWR, kHz(2.2)}, +// {RIG_MODE_RTTY, kHz(2.2)}, +// {RIG_MODE_AM, kHz(6)}, +// {RIG_MODE_FM, kHz(15)}, +// {RIG_MODE_PKTFM, kHz(15)}, +// {RIG_MODE_FM, kHz(9)}, +// {RIG_MODE_PKTFM, kHz(9)}, +// {RIG_MODE_WFM, kHz(230)}, /* ?? */ + RIG_FLT_END, + }, + + .rig_init = ft897_init, + .rig_cleanup = ft897_cleanup, + .rig_open = ft897_open, + .rig_close = ft897_close, + .get_vfo = ft857_get_vfo, + .set_vfo = ft857_set_vfo, + .set_freq = ft897_set_freq, + .get_freq = ft897_get_freq, + .set_mode = ft897_set_mode, + .get_mode = ft897_get_mode, + .set_ptt = ft897_set_ptt, + .get_ptt = ft897_get_ptt, + .get_dcd = ft897_get_dcd, + .set_rptr_shift = ft897_set_rptr_shift, + .set_rptr_offs = ft897_set_rptr_offs, + .set_split_vfo = ft897_set_split_vfo, + .get_split_vfo = ft897_get_split_vfo, + .set_rit = ft897_set_rit, + .set_dcs_code = ft897_set_dcs_code, + .set_ctcss_tone = ft897_set_ctcss_tone, + .set_dcs_sql = ft897_set_dcs_sql, + .set_ctcss_sql = ft897_set_ctcss_sql, + .set_powerstat = ft817_set_powerstat, + .get_level = ft897_get_level, + .set_func = ft897_set_func, + .vfo_op = ft897_vfo_op, +}; + /* ---------------------------------------------------------------------- */ int ft897_init(RIG *rig) diff --git a/rigs/yaesu/yaesu.c b/rigs/yaesu/yaesu.c index a2af869e2..c421f430e 100644 --- a/rigs/yaesu/yaesu.c +++ b/rigs/yaesu/yaesu.c @@ -114,6 +114,7 @@ DECLARE_INITRIG_BACKEND(yaesu) rig_register(&ftdx101d_caps); rig_register(&ft818_caps); rig_register(&ftdx10_caps); + rig_register(&ft897d_caps); return RIG_OK; } diff --git a/rigs/yaesu/yaesu.h b/rigs/yaesu/yaesu.h index 8e84fc275..2392d6dd7 100644 --- a/rigs/yaesu/yaesu.h +++ b/rigs/yaesu/yaesu.h @@ -55,6 +55,7 @@ extern const struct rig_caps ft767gx_caps; extern const struct rig_caps ft817_caps; extern const struct rig_caps ft857_caps; extern const struct rig_caps ft897_caps; +extern const struct rig_caps ft897d_caps; extern const struct rig_caps ft847_caps; extern const struct rig_caps ft840_caps; extern const struct rig_caps ft890_caps;