This page describes the device driver and the device window for the Comstream CM701 Satellite Modem for configurations using a single 5MBit / 512kBit Modem card and - optionally - a framer/buffer card and a Reed-Solomon card. This driver does not work with the old type of the lo-speed modem card.
Although this driver is capable to handle a CM701 equipped with a single modem card in a SCPC configuration, it is optimized for applications which make use of the framer option board or the Reed-Solomon codec. The driver does not allow to have an additional modem card, modulator or demodulator installed beside the primary card as it does not use slot addressing with the commands sent to the modem.
The driver automatically recognizes the presence of a framer/buffer or a Reed-Solomon card and enables the parameter settings belonging to these option cards at the user interface. For your convenience, the modem driver uses the "Primary Data Rate" macros of the CM701. These macros automatically compute and set the input/output data rates for the framer and the Reed-Solomon option modules when you enter a data rate value.
Comstream CM701 device driver overview
The Comstream CM701 satellite modem may be operated in many different configurations. The modular architecture of this device permits to compose a modem from modulator, demodulator and option cards as well as to run up to three modem cards in one device frame.
With the sat-nms software, there is a family of device drivers which cover the most usual configurations for the CM701. Basically there are two groups of drivers: The first one covers applications which make use of the option cards like the framer/buffer card for IDR or the Reed-Solomon codec. This group is limited to single channel (one modulator, one demodulator) usage.
The other group covers multi-channel applications which run up to three modem, modulator oder demodulator cards in one device frame. These drivers are limited to plain SCPC applications, they do not support any option cards. You may put two modem cards and a modulator card in a CM701, these cards will be treated individual devices with the sat-nms software. Below there is a list of the available drivers for the CM701:
| driver name | group | description |
|---|---|---|
| Comstream-CM701 | SINGLE-CH | This is the CM701 device driver, covering a 'traditional' modem configuration of one modulator, one demodulator and optionally a frame/buffer card or a Reed-Solomon option card. The doppler buffer option card is supported, too. |
| Comstream-CM701-MC | SINGLE-CH | Like the Comstream-CM701 driver this one also supports option cards. It is used with configurations that use a 5MBit modem card instead of the modulator / demodulator cards. |
| Comstream-Modulator | MULTI-CH | This driver controls a single modulator card (together with an IO card). |
| Comstream-Demodulator | MULTI-CH | This driver controls a single demodulator card (together with an IO card). |
| Comstream-Modem-Card-SCPC | MULTI-CH | This is a driver for the recent version of the modem card (5Mbit or 512 kBit). |
| Comstream-LoSpeed-Modem-SCPC | MULTI-CH | This is a driver for the old 512 kBit model of the modem card. You may identify this card by the label "Low Speed Modem / Buffer". |
Modem cards, modulator cards and demodulator cards may be mixed in one CM701 frame if they are operated with a driver marked as MULTI-CH.
Device window pages
The following table shows which device window pages are available with this individual device type. Tool-bar functions not mentioned here are described at the general description of device windows .
--- The IF parameters (frequency, level, etc.) and some global modem settings.
--- The modulator settings, transmit clocking.
--- The demodulator settings, receive clocking, doppler buffer.
--- The TX interface settings.
--- The Reed-Solomon settings.
--- The framer option board settings.
--- The RX interface settings.
--- The receive quality.
--- The faults page.
--- The device info page.
--- The maintenance page. The configuration parameters described below are set at this page.Configuration parameters
At the maintenance page of the device window there are a couple of configuration parameters which must be set to make the software talk to the CM701.
See the Comstream manual for mode details.
Communication protocol / Interface type
The recommended communication protocol for the CM701 is the Comstream-Packet-Protocol (The driver works with the Comstream-ASCII-Protocol , too, but there are several issues when using the ASCII protocol (unsolicited "ST/FL" reports, multi-line terminal commands). You are free to use either a RS232 or a RS485 interface to access the modem.
Commonly Asked Questions
The CM701 does not seamlessly fit into the M&C software concept at some points. Commonly asked questions arising from these issues are answered below.
Variables defined by this device driver
| name | type | flags | range |
|---|---|---|---|
| info.driver | TEXT | R/O | StringRange R/O |
| lowLevel.cmd | TEXT | StringRange | |
| lowLevel.reply | TEXT | R/O | StringRange R/O |
| faults.99 | ALARM | R/O | AlarmFlagRange R/O (Communication) |
| faults.commstat | TEXT | R/O | StringRange R/O |
| info.type | TEXT | R/O | StringRange R/O |
| info.port | TEXT | R/O | StringRange R/O |
| info.frame | TEXT | R/O | StringRange R/O |
| config.type | CHOICE | SAVE SETUP | EnumRange (512 kBit 5 MBit) |
| config.faultMask | INTEGER | SETUP | IntegerRange (0 .. 0) |
| config.faultLogMask | INTEGER | SETUP | IntegerRange (0 .. 0) |
| config.txAutoOn | CHOICE | SETUP | EnumRange (OFF LAST) |
| config.txFaultOff | CHOICE | SETUP | EnumRange (IGNORE TX-OFF) |
| config.vsatMode | CHOICE | SETUP | EnumRange (SCPC VSAT) |
| config.demodLength | CHOICE | SETUP | EnumRange (SHORT LONG AUTO) |
| info.id | TEXT | R/O | StringRange R/O |
| info.config | TEXT | R/O | StringRange R/O |
| info.slot.5 | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| info.slot.6 | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| info.slot.7 | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| info.slot.modem | TEXT | R/O | StringRange R/O |
| info.slot.rs | TEXT | R/O | StringRange R/O |
| info.slot.framer | TEXT | R/O | StringRange R/O |
| info.signal.on | CHOICE | R/O | EnumRange R/O (OFF ON) |
| reset | TEXT | NOPRESET | StringRange |
| modemType | CHOICE | EnumRange (SCPC BUFFER IDR IBS E1 D&I T1 D&I) | |
| refClkSrc | CHOICE | EnumRange (INT) | |
| loopBack | CHOICE | EnumRange (OFF IF NEAR FAR) | |
| duplexMode | CHOICE | EnumRange (DUPLEX TX-ONLY RX-ONLY) | |
| tx.frequency | FLOAT | DoubleRange (52.000 .. 176.000) | |
| tx.power | FLOAT | DoubleRange (-25.0 .. -5.0) | |
| tx.on | CHOICE | EnumRange (OFF ON) | |
| tx.mod.dataRate | INTEGER | IntegerRange (4800 .. 512000) | |
| tx.mod.symbolRate | INTEGER | R/O | IntegerRange R/O (4800 .. 512000) |
| tx.mod.type | CHOICE | EnumRange (QPSK BPSK) | |
| tx.mod.fec | CHOICE | EnumRange (NONE 1/2-SEQ 3/4-SEQ 1/2-VIT 3/4-VIT 7/8-VIT) | |
| tx.mod.clockSource | CHOICE | EnumRange (EXTERNAL INTERNAL LOOP) | |
| tx.mod.cwMode | CHOICE | EnumRange (MOD C/W) | |
| tx.mod.spectrumInvert | CHOICE | EnumRange (NRM INV) | |
| tx.mod.scrambling | CHOICE | EnumRange (OFF COMSTRM IDR IBS R/S IDR-AUTO I-R/S-AUTO I-R/S-MAN) | |
| tx.mod.filter | CHOICE | EnumRange (COMSTRM INTELSAT EUTELSAT) | |
| tx.mod.differential | CHOICE | EnumRange (OFF STANDARD QPSK-UNC) | |
| tx.ifc.clockPhase | CHOICE | EnumRange (TT-CLK ST-CLK) | |
| tx.ifc.dataPhase | CHOICE | EnumRange (NRM INV) | |
| tx.ifc.hardware | CHOICE | EnumRange (V.35 RS-530 RS-232 NONE) | |
| tx.ifc.handshake | CHOICE | EnumRange (IGNORE RESPOND) | |
| rx.frequency | FLOAT | DoubleRange (52.000 .. 176.000) | |
| rx.dem.dataRate | INTEGER | IntegerRange (4800 .. 512000) | |
| rx.dem.symbolRate | INTEGER | R/O | IntegerRange R/O (4800 .. 512000) |
| rx.dem.type | CHOICE | EnumRange (QPSK BPSK) | |
| rx.dem.fec | CHOICE | EnumRange (NONE 1/2-SEQ 3/4-SEQ 1/2-VIT 3/4-VIT 7/8-VIT) | |
| rx.dem.clockSource | CHOICE | EnumRange (TT-CLK EXT-CONN RT-CLK ST-CLK) | |
| rx.dem.spectrumInvert | CHOICE | EnumRange (NRM INV) | |
| rx.dem.scrambling | CHOICE | EnumRange (OFF COMSTRM IDR IBS R/S IDR-AUTO I-R/S-AUTO I-R/S-MAN) | |
| rx.dem.filter | CHOICE | EnumRange (COMSTRM INTELSAT EUTELSAT) | |
| rx.dem.differential | CHOICE | EnumRange (OFF STANDARD QPSK-UNC) | |
| rx.dem.sweepMode | CHOICE | EnumRange (STOP NORMAL FAST) | |
| rx.dem.sweepOffset | INTEGER | IntegerRange (-30000 .. 30000) | |
| rx.dem.sweepRange | INTEGER | IntegerRange (0 .. 500000) | |
| rx.buf.size | INTEGER | IntegerRange (64 .. 262144) | |
| rx.buf.mode | CHOICE | EnumRange (OFF ON) | |
| rx.meter.signal | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| rx.meter.ber | TEXT | R/O | StringRange R/O |
| rx.meter.ebno | FLOAT | R/O | DoubleRange R/O (0.0 .. 21.0) |
| rx.meter.bufFill | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| rx.limit.ebno | FLOAT | DoubleRange (0.0 .. 21.0) | |
| rx.ifc.dataPhase | CHOICE | EnumRange (NRM INV) | |
| rx.ifc.hardware | CHOICE | R/O | EnumRange R/O (V.35 RS-530 RS-232 NONE) |
| rx.ifc.handshake | CHOICE | R/O | EnumRange R/O (IGNORE RESPOND) |
| tx.rs.bypass | CHOICE | EnumRange (OFF TX RX RX+TX) | |
| tx.rs.interleave | INTEGER | IntegerRange (1 .. 16) | |
| tx.rs.wordSize | INTEGER | IntegerRange (1 .. 239) | |
| rx.rs.bypass | CHOICE | R/O | EnumRange R/O (OFF TX RX RX+TX) |
| rx.rs.interleave | INTEGER | IntegerRange (1 .. 16) | |
| rx.rs.wordSize | INTEGER | IntegerRange (1 .. 239) | |
| rx.rs.ber | TEXT | R/O | StringRange R/O |
| tx.frm.t1FrameFormat | CHOICE | EnumRange (T1ESF T1D4) | |
| tx.frm.dropSlots1 | TEXT | StringRange | |
| tx.frm.dropSlots2 | TEXT | StringRange | |
| tx.frm.dropSlots3 | TEXT | StringRange | |
| tx.frm.dropSlots4 | TEXT | StringRange | |
| tx.frm.idrOvhEnable | CHOICE | EnumRange (OFF ON) | |
| tx.frm.idrOvhMode | CHOICE | EnumRange (AUDIO DATA) | |
| tx.frm.audioGain | CHOICE | EnumRange (-25 dB -21 dB -17 dB -12 dB -9 dB -3 dB +1 dB +5 dB) | |
| tx.frm.e1IbsSignaling | CHOICE | EnumRange (OFF ON) | |
| rx.frm.e1EnableCrc | CHOICE | EnumRange (OFF ON) | |
| rx.frm.insertSlots1 | TEXT | StringRange | |
| rx.frm.insertSlots2 | TEXT | StringRange | |
| rx.frm.insertSlots3 | TEXT | StringRange | |
| rx.frm.insertSlots4 | TEXT | StringRange | |
| rx.frm.audioGain | CHOICE | EnumRange (-25 dB -21 dB -17 dB -12 dB -9 dB -3 dB +1 dB +5 dB) | |
| rx.frm.e1IbsSignaling | CHOICE | EnumRange (OFF ON) | |
| rx.frm.frameAlignment | CHOICE | EnumRange (3 Frames 4 Frames) | |
| rx.frm.relayEnable | CHOICE | EnumRange (OFF ON) | |
| faults.01 | ALARM | R/O | AlarmFlagRange R/O (Tx power) |
| faults.02 | ALARM | R/O | AlarmFlagRange R/O (TxIF synth) |
| faults.03 | ALARM | R/O | AlarmFlagRange R/O (RxIF synth) |
| faults.04 | ALARM | R/O | AlarmFlagRange R/O (Tx bit timing) |
| faults.05 | ALARM | R/O | AlarmFlagRange R/O (Rx AGC range) |
| faults.06 | ALARM | R/O | AlarmFlagRange R/O (Bit time sync) |
| faults.07 | ALARM | R/O | AlarmFlagRange R/O (Carr track sync) |
| faults.08 | ALARM | R/O | AlarmFlagRange R/O (Decoder sync) |
| faults.09 | ALARM | R/O | AlarmFlagRange R/O (Acquisition) |
| faults.10 | ALARM | R/O | AlarmFlagRange R/O (Rx carr range) |
| faults.11 | ALARM | R/O | AlarmFlagRange R/O (RxBT range) |
| faults.12 | ALARM | R/O | AlarmFlagRange R/O (NVRAM) |
| faults.13 | ALARM | R/O | AlarmFlagRange R/O (Rx buffer overflow) |
| faults.14 | ALARM | R/O | AlarmFlagRange R/O (Rx buffer underflow) |
| faults.15 | ALARM | R/O | AlarmFlagRange R/O (M&C) |
| faults.16 | ALARM | R/O | AlarmFlagRange R/O (Relay monitor 3) |
| faults.17 | ALARM | R/O | AlarmFlagRange R/O (Relay monitor 4) |
| faults.18 | ALARM | R/O | AlarmFlagRange R/O (Doppler output clock) |
| faults.19 | ALARM | R/O | AlarmFlagRange R/O (Relay monitor 5) |
| faults.20 | ALARM | R/O | AlarmFlagRange R/O (V. option Tx summary) |
| faults.22 | ALARM | R/O | AlarmFlagRange R/O (V. option Rx summary) |
| faults.23 | ALARM | R/O | AlarmFlagRange R/O (V. option Tx hardware) |
| faults.24 | ALARM | R/O | AlarmFlagRange R/O (V. option Rx hardware) |
| faults.25 | ALARM | R/O | AlarmFlagRange R/O (Tx FIFO full) |
| faults.27 | ALARM | R/O | AlarmFlagRange R/O (Low Eb/No) |
| faults.30 | ALARM | R/O | AlarmFlagRange R/O (H. option Tx hardware) |
| faults.31 | ALARM | R/O | AlarmFlagRange R/O (H. option Rx hardware) |
| faults.32 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #1) |
| faults.33 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #2) |
| faults.34 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #3) |
| faults.35 | ALARM | R/O | AlarmFlagRange R/O (Tx Alarm #4) |
| faults.36 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #1) |
| faults.37 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #2) |
| faults.38 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #3) |
| faults.39 | ALARM | R/O | AlarmFlagRange R/O (Rx Alarm #4) |
| internal.st | INTEGER | R/O | IntegerRange R/O (0 .. 0) |
| internal.stx | INTEGER | R/O | IntegerRange R/O (0 .. 0) |