<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>shapeshifter.se &#187; hayes</title>
	<atom:link href="http://www.shapeshifter.se/tag/hayes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shapeshifter.se</link>
	<description>Mostly miscellaneous technical mumbo-jumbo.</description>
	<lastBuildDate>Mon, 11 Jul 2011 14:19:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>List of AT commands</title>
		<link>http://www.shapeshifter.se/2008/04/30/list-of-at-commands/</link>
		<comments>http://www.shapeshifter.se/2008/04/30/list-of-at-commands/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 12:22:41 +0000</pubDate>
		<dc:creator>fli</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[at command]]></category>
		<category><![CDATA[hayes]]></category>
		<category><![CDATA[option]]></category>
		<category><![CDATA[qualcomm]]></category>

		<guid isPermaLink="false">http://www.shapeshifter.se/?p=49</guid>
		<description><![CDATA[This is a list of AT commands, or actually Hayes commands. This is not a complete list of all commands, instead if focuses mostly on commands that are needed for GPRS/3G/UMTS/HSDPA and a few other more &#8220;exotic&#8221; commands that aren&#8217;t too well known. I wrote this mainly for myself, but I figure other might find [...]]]></description>
			<content:encoded><![CDATA[<p>This is a list of AT commands, or actually Hayes commands. This is not a complete list of all commands, instead if focuses mostly on commands that are needed for GPRS/3G/UMTS/HSDPA and a few other more &#8220;exotic&#8221; commands that aren&#8217;t too well known. I wrote this mainly for myself, but I figure other might find it useful as well.</p>
<p><span id="more-49"></span></p>
<p><!-- WSA: rules for context 'adsense-post-top' did not apply --></p>
<h3>PIN</h3>
<p><strong>Command</strong>: AT+CPIN?<strong> </strong><br />
<strong>Response</strong>: +CPIN: &lt;code&gt;<br />
<strong>Description</strong>: Check PIN status.</p>
<p>&lt;code&gt; can have several values, these are the more common ones</p>
<dl>
<dt>READY</dt>
<dd>Not waiting for PIN (no PIN or PIN already entered)</dd>
<dt>SIM PIN</dt>
<dd>Waiting for SIM PIN code.</dd>
<dt>SIM PUK</dt>
<dd>Waiting for SIM PUK code.</dd>
</dl>
<p><strong>Command</strong>: AT+CPIN=&lt;pin&gt;[,&lt;newpin&gt;]<br />
<strong>Response</strong>: OK | +CME ERROR: &lt;error&gt;<br />
<strong>Description</strong>: Enter/change PIN.</p>
<p><strong>Example</strong></p>
<blockquote><p>&gt;AT+CPIN?<br />
+CPIN: SIM PIN<br />
OK</p>
<p>&gt;AT+CPIN=&#8221;1234&#8243;<br />
OK</p>
<p>&gt;AT+CPIN?<br />
+CPIN: READY<br />
OK</p></blockquote>
<h3>Network registration</h3>
<p><strong>Command</strong>: AT+CREG?, AT+CREG=? , AT+CREG=&lt;n&gt;<br />
<strong>Response</strong>: +CREG: &lt;n&gt;,&lt;stat&gt;,[,&lt;lac&gt;,&lt;ci&gt;[,&lt;AcT&gt;]] | +CME ERROR<br />
<strong>Description</strong>: Get network registration status and controls unsolicited status callback, which when turned on will send a +CREG message with the new network status when something changes.</p>
<p>&lt;n&gt;</p>
<ol start="0">
<li>Disable unsolicited status callback.</li>
<li>Enable unsolicited status callback, +CREG: &lt;stat&gt;</li>
<li>Enable unsolicited status callback, +CREG: &lt;stat&gt;,[,&lt;lac&gt;,&lt;ci&gt;[,&lt;AcT&gt;]]</li>
</ol>
<p>&lt;stat&gt;</p>
<ol start="0">
<li>Not registered, not searching</li>
<li>Registered to home network</li>
<li>Not registered, searching for network</li>
<li>Registration denied</li>
<li></li>
<li>Registered, roaming</li>
</ol>
<p>&lt;lac&gt; Location area code<br />
&lt;ci&gt; UTRAN/GERAN cell ID</p>
<p>&lt;AcT&gt; Network access type</p>
<ol start="0">
<li>GSM</li>
<li>Compact GSM</li>
<li>UTRAN</li>
<li>GSM with EGPRS</li>
<li>UTRAN with HSDPA</li>
<li>UTRAN with HSUPA</li>
<li>UTRAN with HSDPA and HSUPA</li>
</ol>
<p>UTRAN is a short for UMTS Terrestrial Radio Access Network</p>
<p>The following example shows that full unsolicited status callback is enabled, that the device is registered to its home network followed by an location area code followed by the UTRAN cell ID.  Unfortunately this device does not show access type with this command.</p>
<p><strong>Example:</strong></p>
<blockquote><p>&gt;AT+CREG=2<br />
OK<br />
&gt;AT+CREG?<br />
+CREG: 2,1,&#8221;048A&#8221;,&#8221;58B2&#8243;<strong><br />
</strong></p></blockquote>
<p><strong>Command</strong>: AT+COPS?,<br />
<strong>Response</strong>: +COPS: (&lt;mode&gt;,[&lt;format&gt;,&lt;oper&gt;[,&lt;AcT&gt;]]),&#8230;, (&lt;modeN&gt;,[&lt;formatN&gt;,&lt;operN&gt;[,&lt;AcTN&gt;]])</p>
<p><strong>Command</strong>: AT+COPS=?<br />
<strong>Response</strong>: +COPS: &lt;stat&gt;, long &lt;oper&gt;, short &lt;oper&gt;, numeric &lt;oper&gt;, &lt;AcT&gt;</p>
<p><strong>Response</strong>: +CME ERROR:<br />
<strong>Command</strong>:  AT+COPS=&lt;mode&gt;,[&lt;format&gt;,&lt;oper&gt;[,&lt;AcT&gt;]]<br />
<strong>Response</strong>: OK | +CME ERROR</p>
<p><strong>Description</strong>: Get/set current GSM/UMTS network operator, list available operators. This can be used to change for example access type and switch network.</p>
<p>&lt;mode&gt;</p>
<ol start="0">
<li>Automatic network selection (&lt;oper&gt; ignored)</li>
<li>Manual network selection, &lt;oper&gt; must be present, &lt;AcT&gt; is optional.</li>
<li>Deregister from network.</li>
<li>Set &lt;format only, no registration/deregistration.</li>
<li>Manual selection with automatic fall back (enters automatic mode if manual selection fails).</li>
</ol>
<p>&lt;format&gt;</p>
<ol start="0">
<li>Long alphanumeric string</li>
<li>Short alphanumeric string</li>
<li>Numeric ID</li>
</ol>
<p>&lt;oper&gt;<br />
String (based on &lt;format&gt;) that identifies the operator.</p>
<p>&lt;stat&gt;</p>
<ol start="0">
<li>Unknown</li>
<li>Available</li>
<li>Current</li>
<li>Forbidden</li>
</ol>
<p>&lt;AcT&gt; Network access type</p>
<ol start="0">
<li>GSM</li>
<li>Compact GSM</li>
<li>UTRAN</li>
<li>GSM with EGPRS</li>
<li>UTRAN with HSDPA</li>
<li>UTRAN with HSUPA</li>
<li>UTRAN with HSDPA and HSUPA</li>
</ol>
<p>The following example shows that the devices is connected to the operator called &#8220;3&#8243;  using UTRAN (which is UMTS, also called 3G).  Listing available networks shows the current network, an additional UTMS network called Sweden3G that is forbidden and a GSM network called &#8220;3&#8243; that is available.</p>
<p><strong>Example:</strong></p>
<blockquote><p>&gt;AT+COPS?<br />
+COPS: 0,0,&#8221;3&#8243;,2</p>
<p>AT+COPS=?<br />
+COPS: (2,&#8221;3&#8243;,&#8221;3&#8243;,&#8221;24004&#8243;,2),(1,&#8221;3&#8243;,&#8221;3&#8243;,&#8221;24008&#8243;,0),(3,&#8221;Sweden 3G&#8221;,&#8221;Sweden3G&#8221;,&#8221;2)</p></blockquote>
<p><strong>Command</strong>: AT+COPN<br />
<strong>Response</strong>: +COPN: &lt;numeric1&gt;,&lt;alpha1&gt;, &#8230;, +COPN: &lt;numericN&gt;,&lt;alphaN&gt;<br />
<strong>Description</strong>: Read operator names stored in device memory.</p>
<p><strong>Example:</strong></p>
<blockquote><p><strong> </strong>+COPN: &#8220;20408&#8243;,&#8221;NL KPN&#8221;<br />
+COPN: &#8220;20412&#8243;,&#8221;NL Telfort&#8221;<br />
+COPN: &#8220;20416&#8243;,&#8221;T-Mobile NL&#8221;<br />
+COPN: &#8220;20420&#8243;,&#8221;Orange NL&#8221;<br />
&#8230;<br />
+COPN: &#8220;24002&#8243;,&#8221;3 SE&#8221;<br />
+COPN: &#8220;24004&#8243;,&#8221;SWEDEN&#8221;<br />
+COPN: &#8220;24005&#8243;,&#8221;Sweden 3G&#8221;<br />
+COPN: &#8220;24008&#8243;,&#8221;Telenor SE&#8221;<br />
+COPN: &#8220;24010&#8243;,&#8221;S COMVIQ&#8221;</p></blockquote>
<h3>Define PDP (Packet Data Protocol) context</h3>
<p><strong>Command</strong>: AT+CGDCONT=&lt;cid&gt; [,&lt;pdptype&gt; [,&lt;apn&gt;[,&lt;pdpaddr&gt; [,&lt;dcomp&gt;[,&lt;hcomp]]]]]<br />
<strong>Response</strong>: OK | ERROR</p>
<p><strong>Command</strong>: AT+CGDCONT?<br />
<strong>Response</strong>: +CGDCONT: &lt;cid1&gt;,&lt;pdptype1&gt;,&lt;apn1&gt;,&lt;pdpaddr1&gt;&lt;dcomp1&gt;,&lt;hcomp1&gt;, &#8230;, &lt;cidN&gt;,&lt;pdptypeN&gt;,&lt;apnN&gt;,&lt;pdpaddrN&gt;&lt;dcompN&gt;</p>
<p><strong>Command</strong>: AT+CGDCONT=?<br />
<strong>Response</strong>: +CGDCONT: (&lt;cid_range&gt;),&lt;pdptype&gt;,,,(&lt;dcomp_range&gt;),(&lt;hcomp_range&gt;)<br />
<strong>Description</strong>: Allows configuration of one or several packet data protocol context which forms the base of a data connection.</p>
<p>&lt;cid&gt; PDP context ID, minimum value is 1, maximum value depends on device and can be found with the =? command.</p>
<p>&lt;pdptype&gt; String parameter identifying the protocol type<br />
IP &#8211; Internet Protocol<br />
IPV6 &#8211; Internet Protocol, version 6<br />
PPP &#8211; Point to Point Protocol</p>
<p>&lt;apn&gt; String that identifies the Access Point Name in the packet data network.</p>
<p>&lt;pdpaddr&gt; Requested address, if null (0.0.0.0) an address is requested dynamically.</p>
<p>&lt;dcomp&gt; PDP data compression control, off by default.</p>
<p>&lt;hcomp&gt; PDP header compression control, off by default.</p>
<p><strong>Example</strong>:</p>
<blockquote><p>&gt; AT+CGDCONT=1,&#8221;IP&#8221;,&#8221;bredband.tre.se&#8221;<br />
OK</p>
<p>&gt;AT+CGDCONT?<br />
+CGDCONT: 1,&#8221;IP&#8221;,&#8221;bredband.tre.se&#8221;,&#8221;0.0.0.0&#8243;,0,0</p>
<p>&gt;AT+CGDCONT=?<br />
+CGDCONT: (1-16),&#8221;IP&#8221;,,,(0-2),(0-4)<br />
+CGDCONT: (1-16),&#8221;PPP&#8221;,,,(0-2),(0-4)<br />
+CGDCONT: (1-16),&#8221;IPV6&#8243;,,,(0-2),(0-4)</p></blockquote>
<h3>PDP Authentication</h3>
<p><strong>Command</strong>: AT$QCPDPP=&lt;cid&gt;,&lt;auth_type&gt;,&lt;auth_name&gt;,&lt;auth_pwd&gt;<br />
<strong>Response</strong>: OK | ERROR<br />
<strong>Description</strong>: A Qualcomm command, defines authentication parameters for the PDP context id &lt;cid&gt;.</p>
<p>&lt;auth_type&gt;</p>
<ol start="0">
<li>None</li>
<li>PAP</li>
<li>CHAP</li>
</ol>
<p>&lt;auth_name&gt; and  &lt;auth_pwd&gt; are strings with the authentication information.</p>
<h3>Signal quality</h3>
<p><strong>Command</strong>: AT+CSQ<br />
<strong>Response</strong>: +CSQ: &lt;rssi&gt;,&lt;ber&gt;<br />
<strong>Description</strong>: Returns signal quality.</p>
<p>&lt;rssi&gt; Received Signal Strength Indicator</p>
<dl>
<dt>0</dt>
<dd>-113 dBm or less</dd>
<dt>1</dt>
<dd>-111 dBm</dd>
<dt>2 to 30</dt>
<dd>-109 to -53 dBm</dd>
<dt>31</dt>
<dd>-51 dBm or greater</dd>
<dt>99</dt>
<dd>not known or not detectable</dd>
<dl>
<p>&lt;ber&gt; Bit Error Rate, in percent 0..7.<br />
99 not known or not detectable</p>
<p>A note on the RSSI (received signal strength), dBm is a decibel (logarithmic) scale with a reference of 1 milliwatt thus 0 dBm equals a received signal of 1 mW.<br />
Signal strength is usually lower than 1 mW and therefore below 0, so the larger (closer to 0) the better signal strength.<br />
You can convert the RSSI to dBM with<br />
<img src='http://s.wordpress.com/latex.php?latex=dBm%20%3D%20%28rssi%20%5Ctimes%202%29%20-%20113&#038;bg=FAFAFA&#038;fg=000000&#038;s=0' alt='dBm = (rssi \times 2) - 113' title='dBm = (rssi \times 2) - 113' class='latex' /></p>
<p><strong>Example</strong></p>
<blockquote><p>&gt;AT+CSQ=?<br />
+CSQ: (0-31,99),(99)<br />
OK</p>
<p>&gt;AT+CSQ<br />
+CSQ: 14,99</p></blockquote>
<h3>Manufacturer/model/revision identification</h3>
<p><strong>Command</strong>: AT+GMI<strong></strong><br />
<strong>Response</strong>: Manufacturer Identification string</p>
<p><strong>Command</strong>: AT+GMM<br />
<strong>Response</strong>: Model Identification string</p>
<p><strong>Command</strong>: AT+GMR<br />
<strong>Response</strong>: Revision Identification string</p>
<p><strong>Example</strong>:</p>
<blockquote><p>&gt;AT+GMI<br />
Option N.V.<br />
OK</p>
<p>&gt;AT+GMM<br />
GTM378<br />
OK</p>
<p>&gt;AT+GMR<br />
2.4.6Hd (Date: Oct 04 2007, Time: 11:59:08)</p></blockquote>
<h3>Option N.V. proprietary AT-style commands</h3>
<p><strong>Command</strong>: AT_OWANCALL=&lt;pdp context&gt;,&lt;enabled&gt;[,&lt;callback enabled&gt;]<br />
<strong>Response</strong>: OK<br />
<strong>Description</strong>: Used to initiate UMTS/HSDPA connections.</p>
<p>&lt;pdp context&gt; &#8211; Existing, valid, PDP context that specifies the intended APN to connect to.<br />
&lt;enabled&gt; &#8211; 1 = Enable connection, 0 = Disable connection (disconnect)<br />
&lt;callback enabled&gt; &#8211; 1 = Asynchronous callback when connection is established, 0 = silent</p>
<p><strong>Example</strong>:</p>
<blockquote><p>&gt;AT_OWANCALL=1,1,1<br />
OK<br />
_OWANCALL: 1, 1</p>
<p>&gt;AT_OWANCALL=1,0<br />
OK<br />
_OWANCALL: 1, 0</p></blockquote>
<p><strong>Command</strong>: AT_OWANDATA=&lt;pdp context&gt;<br />
<strong>Response</strong>: _OWANDATA: &lt;pdp context&gt;, &lt;ip address&gt;, &lt;route?&gt;, &lt;nameserver 1&gt;, &lt;nameserver 2&gt;, &lt;unknown&gt;, &lt;unknown&gt;, &lt;speed&gt;<br />
<strong>Description</strong>: Retrieve IP configuration from an established connection previously created with AT_OWANCALL</p>
<p><strong>Example</strong>:</p>
<blockquote><p>&gt;AT_OWANDATA=1<br />
_OWANDATA: 1, 79.138.181.171, 0.0.0.0, 80.251.192.244, 80.251.192.245, 0.0.0.0, 0.0.0.0, 72000</p></blockquote>
<h3>References</h3>
<p><a href="http://www.shapeshifter.se/wp-content/uploads/2008/04/27007-830.pdf">3GPP TS 27.007 V8.3.0 (2008-03) &#8211; AT command set for User Equipment (UE)</a><br />
<a href="http://www.3gpp.org/ftp/Specs/html-info/27007.htm">Specification details at 3gpp.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shapeshifter.se/2008/04/30/list-of-at-commands/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
	</channel>
</rss>

