Quite simply, a INITialization String is a set of modem AT commands combined into one string.
You could send the following three commands to the modem one at a time:
AT &F
AT &C1
AT &D2
Or you could combine the three commands together to form a "string" as follows:
AT &F &C1 &D2 {Spaces added for readability, they may be used but are not necessary to separate the commands}
The above string is considered a INITialization String.
What is the default INITialization String for my modem?
The default INITialization String that will work for all modems is as follows:
AT &F &C1 &D2 {Spaces added for readability, they may be used but are not necessary to separate the commands} There is one additional command that you may want to include in the INITialization String to instruct the modem to respond with the true carrier rate when establishing a connection. This command may vary from one model to another. Models based on one of Rockwell's chipsets may use either of the following commands:
S95=3
W2
You should add one of the above commands to the end of the default INITialization String. Your new string would be one of the following:
AT &F &C1 &D2 S95=3 {Spaces added for readability, they may be used but are not necessary to separate the commands}
AT &F &C1 &D2 W2 {Spaces added for readability, they may be used but are not necessary to separate the commands}
What is special about the INITialization String?
You can use the same generic INITialization String for all models. The string will enable error correction and compression on all models that support hardware error correction and compression. Since the &F command will set all commands to the most commonly used by software and will enable all error correction and compression on models that support it. You will not need to add or even know what your modems AT commands to turn on error correction and compression are.
Why are the &C1 and &D2 commands included in the INITialization String?
There are just two commands that most software require that may not be the factory default values. The two commands are &C1 and &D2. These two commands are very important for the correct operation of the modem when using most software.
The &C1 command is required if the software uses the Carrier Detect pin to determine if a carrier is present and thus connected or online. If the modem setting was &C0, the software would assume that the modem was online and connected before you even dialed.
The &D2 command is required if the software lowers the DTR signal to instruct the modem to hang up (most software does this when you use the software's hang-up comand). This is new communications software's most popular method of instructing the modem to hang up.
There is one other method that the communication software may use to hang up the modem. With this method the software must send the escape sequence (+++) to the modem and wait for the modem to respond with OK. After the modem responds OK, the software can send the command that instructs the modem to hang up, the ATH command.
Some "Smart" communications software will do both. It will first attempt to force the modem to hang up by lowering the Data Terminal Ready signal. If the carrier is still detected after a few seconds the software will issue the escape sequence (+++) to the modem and then the ATH command.
Will the default INITialization string work with games like DOOM?
Yes, the majority of the time, for most users, the Default INITialization string! will work with most all online game programs.
If the modem you are trying to connect to requires that you send a special command to your modem before attempting the call, the INITialization string will not work! There is NOT one INITialization string that will work for all modems and all users all the time.
Following are a few examples of why you would need to change the INIT strings:
The modem you are calling is not using error-correction. You may need to disable error-correction on your modem. This command may vary between different chipsets used. The command to disable error-correction for Rockwell based modems that support hardware error-correction is &Q6. Read your AT command manual for more information. The software you are using requires that error-correction be turned off. You may need to disable error-correction on your modem. This command may vary between different chipsets used. The command to disable error-correction for Rockwell based modems that support hardware error-correction is &Q6. Read your AT command manual for more information. The modem you are calling is a lower speed modem than your modem. You may need to limit the modems top speed for the attempted connection. The command to perform this function varies widely between different chipsets. Even Rockwell chipset modems have changed their methods. Rockwell currently supports 3 main commands to limit the modems top speed. For newer Rockwell based modems you should use the +MS command. Read your AT command manual for more information.
What is the purpose of an INITialization String?
A INITialization String sets up the modem for operation with your communication software. The INITialization string could vary greatly depending upon the requirements of the software.
One of your communication programs may require that a modem setting be different from another communication program that you use. Most recent communication software wants the high speed modem to be setup to respond in the same manor. Thus you should be able to use the same INITialization String for all your communications software.
In the past, software programs had a variety of different requirements including some that wanted the modem to respond with numeric codes instead of the widely adopted verbal responses. While other software wanted the Carrier Detect pin to stay high at all times.
If the software you are using wanted the Carrier Detect pin to stay high at all times, the default INITialization String would not work correctly with the software. In this case you would need to change the INITialization String by replacing the &C1 command with the &C0 command in the INITialization String. But you could not just randomly add the command without knowing a little about AT commands:
Note: Most all new communication software monitors the Carrier Detect pin to determine when the carrier has been lost.
What a INITialization String Can do
It can turn error correction on or off. {On models that support
hardware error correction/compression} It can limit the top speed that the modem
will attempt. {On high speed
14,400bps and above models) It can change the way the modem responds. {Numeric
or verbal responses, Connect message at DTE or DCE rate, etc...} It can turn of
dial tone detection to allow the modem to dial when the dial tone is not a
standard frequency and thus is not detected as a dial tone by the modem.
What a INITialization String Can't do
It can't enable error correction or compression with a RPI modem
without using the WinRPI driver.
It can't get rid of hardware conflict. It can't change the ability to recognize
the telephone phone system signals used in other countries. (i.e. BUSY signal,
DIAL TONE signal etc...)
How do I add AT commands to the default INITialization String?
In most cases, when adding commands to the default INITialization String it is best if the command is added to the end of the string.
Note: Many software programs put a code, that represents the enter key, into the INITialization String. The most common codes are ^M (This is used by AOL) and $0D. If your software uses a code at the end of the string, THIS CODE MUST BE THE LAST CHARACTERS IN THE INITialization STRING. Following are a couple of example INITialization Strings with the code for the enter key.
AT &F &C1 &D2 ^M {Spaces added for readability, they may be used but are not necessary to separate the commands} AT &F &C1 &D2 $0D {Spaces added for readability, they may be used but are not necessary to separate the commands}
Example of an incorrectly adding a command to the INITialization String
If you wanted to add the &C0 command to the default INITialization String because the software requires that the Carrier Detect pin stay high at all times, you should not add the &C0 command at the beginning of the default INITialization String. If you did you would end up with the following INITialization String:
AT &C0 &F &C1 &D2 {Spaces added for readability, they may be
used but are not necessary to separate the commands}
The above string has a couple of problems. Once you know that the modem will process the AT commands in the string one by one from the left to the right you can easily see that the &C0 command will be overwritten by the &C1 command. The other problem may be harder to detect unless you know the purpose of the &F command. If you want to include the &F command, make sure that it is the first command in the string following the AT.
It is strongly recommended that the &F command is the first command in the string unless you are adding the commands to the extra settings field in the advanced modem properties window for use with Win95/98 dialup networking, in which case you should not include the &F command because it will override all the other commands sent by the Windows driver.
Following is how the modem will react to each command individually:
AT&C0 {Set Carrier Detect Pin to stay high at all times}
This is the setting the software requires
AT&F {Restore the preset factory defaults} This could override the &C0
command AT&C1 {Set the Carrier Detect Pin to follow the Carrier} This will
override the &C0 command AT&D2 {Set modem to disconnect when the Data
Terminal Ready signal is off} You should also also check to see if the command
you want to add is already in the current INITialization String. This is not
very important if you add the command to the end of the INITialization String
because of the way that the command line is processed. If your INITialization
String consists of the following, the &C value would be set to &C0
correctly, but you sent a larger INITialization String than was required to
perform the task and it will show your lack of knowledge of modem AT commands.
AT&F &C1 &D2 &C0
Example of correctly adding a command to the INITialization String
Previously it was stated that you should put all new commands at
the end of the INITialization String. But since we are changing the value of a
command that was in the original INITialization String from &C1 to &C0,
it makes more sense to leave the command in the original position in the
INITialization String.
Using this logic, the correct INITialization String to use for software that wanted the Carrier Detect pin to stay high at all times would be as follows:
AT &F &C0 &D2
Of course the INITialization String could also be:
AT &F &D2 &C0
Example INITialization String to speed up tone dialing
With the knowledge you have gained from reading to this point you can easily modify your INITialization String to change as many default values as you wish. If you now wanted to change the default INITialization String to speed up the tone, (DTMF), dialing. All you would need to do is look up the S register setting in your AT command manual and make the change. After looking in the AT command manual we find that S11 controls the tone dialing speed. We also noticed that the range for S register 11 is 50-255. To set the modem to dial as quickly as possible we add S11=50 to the INITialization String and our new INITialization String is as follows:
AT &F &C1 &D2 S11=50
Restoring the Factory Defaults
The &F command will restore the factory default settings of all the commands and registers. Once programmed in the factory, the default settings can never change!
The &F command will turn on error correction and compression on all high speed modems that support hardware error correction and compression. This is the command that causes the Default INITialization String to enable error correction and compression on all high speed modems that support hardware error correction and compression.
If you are using a RPI model that uses software error correction, the &F command will set the modem to use speed buffering. Speed Buffering allows the modem to accept information from the computer at the highest speed the modem UART will handle, (57,600 or 115,200 bps in most cases), and use flow control to stop receiving data as soon as the buffer is full.
The &F command will also set many other commands to values that have been determined to be the most commonly needed by software.
How to determine what the factory default values are
To determine what the &F factory default values are for your model, send the following commands to the modem while in terminal mode:
AT&F {Restore the preset factory defaults}
AT&V {View the Active and stored profiles}
The &V command will instruct your modem to display the Active and stored
profiles of the modem. The Active profile contains the modems current settings.
The stored profile(s) contain the settings that have been stored into the modems
N.V. Ram.
Not all the settings may be displayed by the &V command. The settings that are displayed have been determined by the chipset manufactures programmers. If a setting is not displayed you may be able to query a bit mapped S register and use the value returned to determine the setting by reading the AT command manual for your modem. If you are still unsure of a setting, don't rely on the &F command. Include the command, that you do not know what the Factory Default value is, in the INITialization String.
Why you should use the &F command in your INITialization String
The main reasons why you should use the &F command in your INITialization String are as follows:
It will reduce the amount of commands required in your INITialization String in most cases. It gives you a starting point. If you did not know what the settings of every command and register were, you would need to send each command to the modem to ensure the proper setup. Since a INITialization String can not contain more than 40 characters, you would not be able to send all the commands with one INITialization String. It will automatically turn on error correction and compression on models that support it.
This page was last updated on Sunday, December 03, 2000 .
If you have any comments, suggestions or questions Email: [email protected] or [email protected].