<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.webos-internals.org/index.php?action=history&amp;feed=atom&amp;title=Research_Pre_GSM_Modem</id>
	<title>Research Pre GSM Modem - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.webos-internals.org/index.php?action=history&amp;feed=atom&amp;title=Research_Pre_GSM_Modem"/>
	<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;action=history"/>
	<updated>2026-05-18T07:23:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6509&amp;oldid=prev</id>
		<title>StefanSchmidt: Script to trace modemuart communication</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6509&amp;oldid=prev"/>
		<updated>2009-10-16T00:35:16Z</updated>

		<summary type="html">&lt;p&gt;Script to trace modemuart communication&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:35, 16 October 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l338&quot; &gt;Line 338:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 338:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/usr/bin/TelephonyInterfaceLayerGsm connects to /dev/modemuart with a baudrate of 115200. Trying the same with screen shows me just rubbish. Seem to be the binary protocol. Make sure you rename the file before killing the process as it gets restarted automatically.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/usr/bin/TelephonyInterfaceLayerGsm connects to /dev/modemuart with a baudrate of 115200. Trying the same with screen shows me just rubbish. Seem to be the binary protocol. Make sure you rename the file before killing the process as it gets restarted automatically.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To strace TelephonyInterfaceLayerGsm and write out the relevant communication to /dev/modemuart we offer a small shell script below. Make sure your / is remounted rw for it.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#!/bin/sh&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#Make sure TelephonyInterfaceLayerGsm gets not restarted when we kill it&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mv /usr/bin/TelephonyInterfaceLayerGsm /usr/bin/TelephonyInterfaceLayerGsm-backup&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kill $(pidof TelephonyInterfaceLayerGsm)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sleep 2&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#I always had fd=10 for /dev/modemuart, be verbose on reads on writes on this fd&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;strace -x -s 10000 -f -F -o gsm.log -e read=10 -e write=10 TelephonyInterfaceLayerGsm-backup &amp;amp;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sleep 25&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kill $(pidof TelephonyInterfaceLayerGsm-backup)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sleep 2&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#Bring the system into a useable state again           &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mv /usr/bin/TelephonyInterfaceLayerGsm-backup /usr/bin/TelephonyInterfaceLayerGsm&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sh /etc/event.d/TelephonyInterfaceLayer&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>StefanSchmidt</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6476&amp;oldid=prev</id>
		<title>StefanSchmidt at 12:14, 14 October 2009</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6476&amp;oldid=prev"/>
		<updated>2009-10-14T12:14:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:14, 14 October 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l14&quot; &gt;Line 14:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 14:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PmModemPower: A simple shell script to turn on/reset the modem&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PmModemPower: A simple shell script to turn on/reset the modem&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PmModemUpdater: Flash the modem with a new firmware&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* PmModemUpdater: Flash the modem with a new firmware&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Through disassembling the PmLinuxModemCmd binary I found some binary sequences which indicates that the Pre communicates with the modem over a binary protocol.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The binary sequences are:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The binary sequences are:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>StefanSchmidt</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6470&amp;oldid=prev</id>
		<title>StefanSchmidt: some infos about TelephonyInterfaceLayerGsm</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6470&amp;oldid=prev"/>
		<updated>2009-10-13T18:19:06Z</updated>

		<summary type="html">&lt;p&gt;some infos about TelephonyInterfaceLayerGsm&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:19, 13 October 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l336&quot; &gt;Line 336:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 336:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  where  v - verbose output.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  where  v - verbose output.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== TelephonyInterfaceLayerGsm ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/usr/bin/TelephonyInterfaceLayerGsm connects to /dev/modemuart with a baudrate of 115200. Trying the same with screen shows me just rubbish. Seem to be the binary protocol. Make sure you rename the file before killing the process as it gets restarted automatically.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>StefanSchmidt</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6469&amp;oldid=prev</id>
		<title>StefanSchmidt: its /dev/modemuart not ttyS0</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6469&amp;oldid=prev"/>
		<updated>2009-10-13T18:13:50Z</updated>

		<summary type="html">&lt;p&gt;its /dev/modemuart not ttyS0&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:13, 13 October 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modem Ports ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Modem Ports ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are several ports for communicating with the modem on the Palm Pre:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;There are several ports for communicating with the modem on the Palm Pre:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* /dev/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ttyS0&lt;/del&gt;: Modem UART (UART Port)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* /dev/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;modemuart&lt;/ins&gt;: Modem UART (UART Port)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* /dev/tts/modem0 (Symlink for ttyACM0): USB Serial to Modem for AT commands (Data Port)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* /dev/tts/modem0 (Symlink for ttyACM0): USB Serial to Modem for AT commands (Data Port)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* /dev/tts/modemdiag (Symlink for ttyACM1): USB Serial to Modem for Diagnositics (DIAG Port)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* /dev/tts/modemdiag (Symlink for ttyACM1): USB Serial to Modem for Diagnositics (DIAG Port)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>StefanSchmidt</name></author>
	</entry>
	<entry>
		<id>http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6458&amp;oldid=prev</id>
		<title>StefanSchmidt: GSM modem information moved over from http://www.freesmartphone.org/index.php/PalmPreGSM</title>
		<link rel="alternate" type="text/html" href="http://wiki.webos-internals.org/index.php?title=Research_Pre_GSM_Modem&amp;diff=6458&amp;oldid=prev"/>
		<updated>2009-10-13T13:23:33Z</updated>

		<summary type="html">&lt;p&gt;GSM modem information moved over from http://www.freesmartphone.org/index.php/PalmPreGSM&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Modem Ports ==&lt;br /&gt;
There are several ports for communicating with the modem on the Palm Pre:&lt;br /&gt;
* /dev/ttyS0: Modem UART (UART Port)&lt;br /&gt;
* /dev/tts/modem0 (Symlink for ttyACM0): USB Serial to Modem for AT commands (Data Port)&lt;br /&gt;
* /dev/tts/modemdiag (Symlink for ttyACM1): USB Serial to Modem for Diagnositics (DIAG Port)&lt;br /&gt;
&lt;br /&gt;
== sysfs Entries ==&lt;br /&gt;
* Power Control: /sys/user_hw/pins/modem/power_on/level&lt;br /&gt;
&lt;br /&gt;
== Palm Programs for communicating with the modem ==&lt;br /&gt;
In /usr/bin are some interessting programs:&lt;br /&gt;
* PmLinuxModemCmd: You can do some operations on the modem from command line&lt;br /&gt;
* PmModemInfo: Shows you the IMEI and the version of the modem firmware&lt;br /&gt;
* PmModemPower: A simple shell script to turn on/reset the modem&lt;br /&gt;
* PmModemUpdater: Flash the modem with a new firmware&lt;br /&gt;
&lt;br /&gt;
Through disassembling the PmLinuxModemCmd binary I found some binary sequences which indicates that the Pre communicates with the modem over a binary protocol.&lt;br /&gt;
&lt;br /&gt;
The binary sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00014a1c &amp;lt;enableloopbackdataport&amp;gt;:&lt;br /&gt;
   14a1c:	31455441 	.word	0x31455441&lt;br /&gt;
	...&lt;br /&gt;
   159c0:	0a0d      	.short	0x0a0d&lt;br /&gt;
&lt;br /&gt;
000159c2 &amp;lt;loopback&amp;gt;:&lt;br /&gt;
   159c2:	0f88      	.short	0x0f88&lt;br /&gt;
   159c4:	00010000 	.word	0x00010000&lt;br /&gt;
   159c8:	7eb3d400 	.word	0x7eb3d400&lt;br /&gt;
&lt;br /&gt;
000159cc &amp;lt;identify&amp;gt;:&lt;br /&gt;
   159cc:	7e3b1c1d 	.word	0x7e3b1c1d&lt;br /&gt;
&lt;br /&gt;
000159d0 &amp;lt;getVer&amp;gt;:&lt;br /&gt;
   159d0:	1b0000fa 	.word	0x1b0000fa&lt;br /&gt;
   159d4:	00000009 	.word	0x00000009&lt;br /&gt;
   159d8:	00000000 	.word	0x00000000&lt;br /&gt;
   159dc:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
000159dd &amp;lt;testAlive&amp;gt;:&lt;br /&gt;
   159dd:	fa          	.byte	0xfa&lt;br /&gt;
   159de:	0000      	.short	0x0000&lt;br /&gt;
   159e0:	0000011b 	.word	0x0000011b&lt;br /&gt;
   159e4:	00000000 	.word	0x00000000&lt;br /&gt;
   159e8:	b74c      	.short	0xb74c&lt;br /&gt;
   159ea:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
000159eb &amp;lt;testAliveResp&amp;gt;:&lt;br /&gt;
   159eb:	1b          	.byte	0x1b&lt;br /&gt;
   159ec:	00000001 	.word	0x00000001&lt;br /&gt;
   159f0:	0000      	.short	0x0000&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
000159f3 &amp;lt;testAliveResp1&amp;gt;:&lt;br /&gt;
   159f3:	1c          	.byte	0x1c&lt;br /&gt;
   159f4:	00000002 	.word	0x00000002&lt;br /&gt;
   159f8:	0000      	.short	0x0000&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
000159fb &amp;lt;testAliveCDMA&amp;gt;:&lt;br /&gt;
   159fb:	fa          	.byte	0xfa&lt;br /&gt;
   159fc:	14080000 	.word	0x14080000&lt;br /&gt;
   15a00:	f904d200 	.word	0xf904d200&lt;br /&gt;
   15a04:	7e27      	.short	0x7e27&lt;br /&gt;
&lt;br /&gt;
00015a06 &amp;lt;testAliveRespCDMA&amp;gt;:&lt;br /&gt;
   15a06:	0122      	.short	0x0122&lt;br /&gt;
   15a08:	0000      	.short	0x0000&lt;br /&gt;
	...&lt;br /&gt;
&lt;br /&gt;
00015a0b &amp;lt;enterFTMmode&amp;gt;:&lt;br /&gt;
   15a0b:	29          	.byte	0x29&lt;br /&gt;
   15a0c:	73810003 	.word	0x73810003&lt;br /&gt;
   15a10:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a11 &amp;lt;CDMAdiagPortOnUART&amp;gt;:&lt;br /&gt;
   15a11:	fa          	.byte	0xfa&lt;br /&gt;
   15a12:	0000      	.short	0x0000&lt;br /&gt;
   15a14:	00002308 	.word	0x00002308&lt;br /&gt;
   15a18:	fbf1      	.short	0xfbf1&lt;br /&gt;
   15a1a:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a1b &amp;lt;CDMAdiagPortOnUSB&amp;gt;:&lt;br /&gt;
   15a1b:	fa          	.byte	0xfa&lt;br /&gt;
   15a1c:	23080000 	.word	0x23080000&lt;br /&gt;
   15a20:	29e20001 	.word	0x29e20001&lt;br /&gt;
   15a24:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a25 &amp;lt;resetCDMA&amp;gt;:&lt;br /&gt;
   15a25:	29          	.byte	0x29&lt;br /&gt;
   15a26:	0002      	.short	0x0002&lt;br /&gt;
   15a28:	6a59      	.short	0x6a59&lt;br /&gt;
   15a2a:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a2b &amp;lt;onlineMode&amp;gt;:&lt;br /&gt;
   15a2b:	fa          	.byte	0xfa&lt;br /&gt;
   15a2c:	00030000 	.word	0x00030000&lt;br /&gt;
   15a30:	00000000 	.word	0x00000000&lt;br /&gt;
   15a34:	09f00500 	.word	0x09f00500&lt;br /&gt;
   15a38:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a39 &amp;lt;offlineMode&amp;gt;:&lt;br /&gt;
   15a39:	fa          	.byte	0xfa&lt;br /&gt;
   15a3a:	0000      	.short	0x0000&lt;br /&gt;
   15a3c:	00000003 	.word	0x00000003&lt;br /&gt;
   15a40:	06000000 	.word	0x06000000&lt;br /&gt;
   15a44:	3b6b      	.short	0x3b6b&lt;br /&gt;
   15a46:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a47 &amp;lt;ATCGDCONT&amp;gt;:&lt;br /&gt;
   15a47:	41          	.byte	0x41&lt;br /&gt;
   15a48:	47432b54 	.word	0x47432b54&lt;br /&gt;
   15a4c:	4e4f4344 	.word	0x4e4f4344&lt;br /&gt;
   15a50:	0a0d3f54 	.word	0x0a0d3f54&lt;br /&gt;
&lt;br /&gt;
00015a54 &amp;lt;ATE0E1Cmd&amp;gt;:&lt;br /&gt;
   15a54:	30455441 	.word	0x30455441&lt;br /&gt;
   15a58:	30453145 	.word	0x30453145&lt;br /&gt;
   15a5c:	30453145 	.word	0x30453145&lt;br /&gt;
   15a60:	30453145 	.word	0x30453145&lt;br /&gt;
   15a64:	0a0d3145 	.word	0x0a0d3145&lt;br /&gt;
&lt;br /&gt;
00015a68 &amp;lt;ATCmd&amp;gt;:&lt;br /&gt;
   15a68:	0a0d5441 	.word	0x0a0d5441&lt;br /&gt;
&lt;br /&gt;
00015a6c &amp;lt;Charging90mA&amp;gt;:&lt;br /&gt;
   15a6c:	1b0000fa 	.word	0x1b0000fa&lt;br /&gt;
   15a70:	00000006 	.word	0x00000006&lt;br /&gt;
   15a74:	00180000 	.word	0x00180000&lt;br /&gt;
   15a78:	f0f30000 	.word	0xf0f30000&lt;br /&gt;
   15a7c:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a7d &amp;lt;Charging500mA&amp;gt;:&lt;br /&gt;
   15a7d:	fa          	.byte	0xfa&lt;br /&gt;
   15a7e:	0000      	.short	0x0000&lt;br /&gt;
   15a80:	0000061b 	.word	0x0000061b&lt;br /&gt;
   15a84:	18000000 	.word	0x18000000&lt;br /&gt;
   15a88:	2b000100 	.word	0x2b000100&lt;br /&gt;
   15a8c:	7ee9      	.short	0x7ee9&lt;br /&gt;
&lt;br /&gt;
00015a8e &amp;lt;Charging1A&amp;gt;:&lt;br /&gt;
   15a8e:	00fa      	.short	0x00fa&lt;br /&gt;
   15a90:	00061b00 	.word	0x00061b00&lt;br /&gt;
   15a94:	00000000 	.word	0x00000000&lt;br /&gt;
   15a98:	00070018 	.word	0x00070018&lt;br /&gt;
   15a9c:	bdfb      	.short	0xbdfb&lt;br /&gt;
   15a9e:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015a9f &amp;lt;getQPSTConfig&amp;gt;:&lt;br /&gt;
   15a9f:	0c          	.byte	0x0c&lt;br /&gt;
   15aa0:	417e3a14 	.word	0x417e3a14&lt;br /&gt;
   15aa4:	43512454 	.word	0x43512454&lt;br /&gt;
   15aa8:	0d474d44 	.word	0x0d474d44&lt;br /&gt;
   15aac:	51245441 	.word	0x51245441&lt;br /&gt;
   15ab0:	474d4443 	.word	0x474d4443&lt;br /&gt;
   15ab4:	2454410d 	.word	0x2454410d&lt;br /&gt;
   15ab8:	4d444351 	.word	0x4d444351&lt;br /&gt;
   15abc:	067e0d47 	.word	0x067e0d47&lt;br /&gt;
   15ac0:	7e7e954e 	.word	0x7e7e954e&lt;br /&gt;
&lt;br /&gt;
00015ac4 &amp;lt;getESN&amp;gt;:&lt;br /&gt;
   15ac4:	00000026 	.word	0x00000026&lt;br /&gt;
	...&lt;br /&gt;
   15b48:	7ed2ad00 	.word	0x7ed2ad00&lt;br /&gt;
&lt;br /&gt;
00015b4c &amp;lt;CDMAPcmLoopbackOn&amp;gt;:&lt;br /&gt;
   15b4c:	000e0b4b 	.word	0x000e0b4b&lt;br /&gt;
   15b50:	00010003 	.word	0x00010003&lt;br /&gt;
   15b54:	0001000c 	.word	0x0001000c&lt;br /&gt;
   15b58:	7e00      	.short	0x7e00&lt;br /&gt;
&lt;br /&gt;
00015b5a &amp;lt;CDMAPcmLoopbackOff&amp;gt;:&lt;br /&gt;
   15b5a:	0b4b      	.short	0x0b4b&lt;br /&gt;
   15b5c:	0003000e 	.word	0x0003000e&lt;br /&gt;
   15b60:	000c0001 	.word	0x000c0001&lt;br /&gt;
   15b64:	7e000000 	.word	0x7e000000&lt;br /&gt;
&lt;br /&gt;
00015b68 &amp;lt;GSMPcmLoopbackOn&amp;gt;:&lt;br /&gt;
   15b68:	000e0b4b 	.word	0x000e0b4b&lt;br /&gt;
   15b6c:	000b0003 	.word	0x000b0003&lt;br /&gt;
   15b70:	0001000c 	.word	0x0001000c&lt;br /&gt;
   15b74:	7e00      	.short	0x7e00&lt;br /&gt;
&lt;br /&gt;
00015b76 &amp;lt;GSMPcmLoopbackOff&amp;gt;:&lt;br /&gt;
   15b76:	0b4b      	.short	0x0b4b&lt;br /&gt;
   15b78:	0003000e 	.word	0x0003000e&lt;br /&gt;
   15b7c:	000c000b 	.word	0x000c000b&lt;br /&gt;
   15b80:	7e000000 	.word	0x7e000000&lt;br /&gt;
&lt;br /&gt;
00015b84 &amp;lt;Dial&amp;gt;:&lt;br /&gt;
   15b84:	000000fa 	.word	0x000000fa&lt;br /&gt;
   15b88:	00000000 	.word	0x00000000&lt;br /&gt;
   15b8c:	04000000 	.word	0x04000000&lt;br /&gt;
	...&lt;br /&gt;
   15bf0:	34000000 	.word	0x34000000&lt;br /&gt;
   15bf4:	31363830 	.word	0x31363830&lt;br /&gt;
   15bf8:	32333837 	.word	0x32333837&lt;br /&gt;
   15bfc:	00000037 	.word	0x00000037&lt;br /&gt;
	...&lt;br /&gt;
   15c30:	0a000000 	.word	0x0a000000&lt;br /&gt;
	...&lt;br /&gt;
   15c58:	0000      	.short	0x0000&lt;br /&gt;
   15c5a:	7e          	.byte	0x7e&lt;br /&gt;
&lt;br /&gt;
00015c5b &amp;lt;disableloopbackdataport&amp;gt;:&lt;br /&gt;
   15c5b:	41          	.byte	0x41&lt;br /&gt;
   15c5c:	0d304554 	.word	0x0d304554&lt;br /&gt;
   15c60:	0a          	.byte	0x0a&lt;br /&gt;
&lt;br /&gt;
00015c61 &amp;lt;ATDT&amp;gt;:&lt;br /&gt;
   15c61:	41          	.byte	0x41&lt;br /&gt;
   15c62:	4454      	.short	0x4454&lt;br /&gt;
   15c64:	37313654 	.word	0x37313654&lt;br /&gt;
   15c68:	37323338 	.word	0x37323338&lt;br /&gt;
   15c6c:	0a0d      	.short	0x0a0d&lt;br /&gt;
&lt;br /&gt;
00015c6e &amp;lt;testAlive_1&amp;gt;:&lt;br /&gt;
   15c6e:	00fa      	.short	0x00fa&lt;br /&gt;
   15c70:	00011b00 	.word	0x00011b00&lt;br /&gt;
   15c74:	00000001 	.word	0x00000001&lt;br /&gt;
   15c78:	7ead8101 	.word	0x7ead8101&lt;br /&gt;
&lt;br /&gt;
00015c7c &amp;lt;onlineMode_1&amp;gt;:&lt;br /&gt;
   15c7c:	030000fa 	.word	0x030000fa&lt;br /&gt;
   15c80:	00000000 	.word	0x00000000&lt;br /&gt;
   15c84:	4f020000 	.word	0x4f020000&lt;br /&gt;
   15c88:	5d7d      	.short	0x5d7d&lt;br /&gt;
   15c8a:	7e          	.byte	0x7e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PmModemUpdater ===&lt;br /&gt;
 Usage:&lt;br /&gt;
 PmModemUpdater -h                     Print usage&lt;br /&gt;
 PmModemUpdater -v                     Detect current modem firmware version&lt;br /&gt;
 PmModemUpdater -p  /path/to/firmware.tar  Check the firmware package info&lt;br /&gt;
 PmModemUpdater -b		      Backup NV items from device to /var/firmware/palm_nv_backup.txt &lt;br /&gt;
 PmModemUpdater -r /path/to/nvfile     Load NV items from nvfile   		&lt;br /&gt;
 PmModemUpdater&amp;lt;firmware.tar           Update the firmware using a tar file as input&lt;br /&gt;
 PmModemUpdater&amp;lt;firmware.tar  -f       Force an update even the modem has the same version than tar file&lt;br /&gt;
 PmModemUpdater&amp;lt;firmware.tar  -s xx xx Force the modem to be flashed (RESCUE MODE)&lt;br /&gt;
 PmModemUpdater  -i            	      Start a data/voice test on your umts modem directly&lt;br /&gt;
 PmModemUpdater  -e            	      Ignore stop/start TIL/WAND&lt;br /&gt;
 PmModemUpdater  -o            	      silent mode which means no verbose output at all&lt;br /&gt;
 PmModemUpdater&amp;lt;firmware.tar -m        Force the modem to be flashed (INFINITE USB RESCUE MODE) on USB&lt;br /&gt;
&lt;br /&gt;
=== pmmodempower ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 for i in &amp;quot;$*&amp;quot;&lt;br /&gt;
    if [ &amp;quot;$i&amp;quot; = &amp;quot;on&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
	echo Powering On Modem&lt;br /&gt;
	echo 1 &amp;gt; /sys/user_hw/pins/modem/power_on/level&lt;br /&gt;
    fi&lt;br /&gt;
    if [ &amp;quot;$i&amp;quot; = &amp;quot;off&amp;quot; ]&lt;br /&gt;
    then &lt;br /&gt;
	echo Powering Off Modem&lt;br /&gt;
	echo 0 &amp;gt; /sys/user_hw/pins/modem/boot_mode/level&lt;br /&gt;
	echo 0 &amp;gt; /sys/user_hw/pins/modem/power_on/level&lt;br /&gt;
    fi&lt;br /&gt;
    if [ &amp;quot;$i&amp;quot; = &amp;quot;cycle&amp;quot; ]&lt;br /&gt;
    then&lt;br /&gt;
	echo Powering Off Modem&lt;br /&gt;
	echo 0 &amp;gt; /sys/user_hw/pins/modem/boot_mode/level&lt;br /&gt;
	echo 0 &amp;gt; /sys/user_hw/pins/modem/wakeup_modem/level&lt;br /&gt;
	echo 0 &amp;gt; /sys/user_hw/pins/modem/power_on/level&lt;br /&gt;
	sleep 2&lt;br /&gt;
	echo Powering On Modem&lt;br /&gt;
	echo 1 &amp;gt; /sys/user_hw/pins/modem/power_on/level&lt;br /&gt;
	#echo Waiting for MODEM_WAKE_APP Low&lt;br /&gt;
	#while [ &amp;quot;$appwake&amp;quot; != &amp;quot;0&amp;quot; ]&lt;br /&gt;
	#do&lt;br /&gt;
	#    appwake=`cat /sys/user_hw/pins/modem/wakeup_app/level`&lt;br /&gt;
	#done&lt;br /&gt;
	#echo Waiting for MODEM_WAKE_APP Pulse High&lt;br /&gt;
	#appwake=`cat /sys/user_hw/pins/modem/wakeup_app/level`&lt;br /&gt;
	#while [ &amp;quot;$appwake&amp;quot; != &amp;quot;1&amp;quot; ]&lt;br /&gt;
	#do&lt;br /&gt;
	#    appwake=`cat /sys/user_hw/pins/modem/wakeup_app/level`&lt;br /&gt;
	#done&lt;br /&gt;
	#while [ &amp;quot;$appwake&amp;quot; != &amp;quot;0&amp;quot; ]&lt;br /&gt;
	#do&lt;br /&gt;
	#    appwake=`cat /sys/user_hw/pins/modem/wakeup_app/level`&lt;br /&gt;
	#done&lt;br /&gt;
	echo Asserting APP_WAKE_MODEM&lt;br /&gt;
	echo 1 &amp;gt; /sys/user_hw/pins/modem/wakeup_modem/level&lt;br /&gt;
    fi&lt;br /&gt;
 done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== PmLinuxModemCmd ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 usage: PmLinuxModemCmd &amp;lt;Port&amp;gt; &amp;lt;[a][b][c][d &amp;lt;number&amp;gt;][e][f][ftm][h][g][i][k &amp;lt;#pkts&amp;gt;][l][m][n][o][pcmloopback &amp;lt;radio&amp;gt; &amp;lt;state&amp;gt;][q][r][s][t][u &amp;lt;#pkts&amp;gt;][zr][zt][zl][1] [5][9]]&amp;gt; [v]&lt;br /&gt;
 where: &amp;lt;Port&amp;gt;:&lt;br /&gt;
           /dev/ttyS0         - Modem UART. - UART PORT&lt;br /&gt;
           /dev/tts/modem0    - USB Serial to Modem for AT commands - DATA PORT.&lt;br /&gt;
           /dev/tts/modemdiag - USB Serial to Modem for Diagnostics - DIAG PORT.&lt;br /&gt;
 where:&lt;br /&gt;
       e - empty read buffer from specified port.&lt;br /&gt;
       u - Loopback mode performance test. Next argument &amp;lt;#pkts&amp;gt;&lt;br /&gt;
  UART PORT COMMANDS: (/dev/ttyS0) &lt;br /&gt;
       b  - Send loopback mode command for 256 bytes. UART goes into loopback mode until power cycle.&lt;br /&gt;
       d  - Send commands to dial a phone number. Phone number in the format 4086178327.&lt;br /&gt;
       f  - Send offline mode and read pkt.&lt;br /&gt;
       ftm - Enter modem FTM mode (both CDMA and GSM modems).&lt;br /&gt;
       i  - Send identify command.&lt;br /&gt;
       l  - Send testalive then loop forever doing ( onlinemode, offlinemode, sleep  to UART.&lt;br /&gt;
       m  - Disable loopback mode.&lt;br /&gt;
       o  - Send online mode and read pkt.&lt;br /&gt;
       pcmloopback - control PCM loopback. &amp;lt;radio&amp;gt; = GSM/CDMA &amp;lt;state&amp;gt; = on/off.&lt;br /&gt;
       q  - Send test alive, online mode and then read pkts.&lt;br /&gt;
       r  - Get firmware version.&lt;br /&gt;
       t  - Send test alive and read pkt.&lt;br /&gt;
       1  - Send command to enable 1A charging.&lt;br /&gt;
       5  - Send command to enable 500mA charging.&lt;br /&gt;
       9  - Send command to enable 90mA charge.&lt;br /&gt;
       zs - CDMA reset modem.&lt;br /&gt;
       zt - CDMA send test alive and read pkts.&lt;br /&gt;
       zdiagonusb - CDMA put diag port on USB diag.&lt;br /&gt;
       zdiagonuart- CDMA put diag port on UART.&lt;br /&gt;
  DATA PORT COMMANDS: (/dev/tts/modem0) &lt;br /&gt;
       a - Send AT\n.&lt;br /&gt;
       c - Send ATCGDCONT\n.&lt;br /&gt;
       h - Send Echo command.&lt;br /&gt;
       k - Test loopback perf using command (ATE1\n).&lt;br /&gt;
  DIAG PORT COMMANDS: (/dev/tts/modemdiag) &lt;br /&gt;
       g  - Get QPST serial port config from DIAG port.&lt;br /&gt;
       s  - Get ESN from DIAG port.&lt;br /&gt;
       zl - CDMA put modemdiag into loopback. &lt;br /&gt;
       zr - CDMA Read performance tests. Takes two arguments &amp;lt;numpkts&amp;gt; and &amp;lt;pktSize&amp;gt;.&lt;br /&gt;
               Eg. %s /dev/tts/modemdiag zr &amp;lt;NumPkts&amp;gt; &amp;lt;PktSize&amp;gt; [v] &lt;br /&gt;
       zw - CDMA Write performance tests. Takes two arguments &amp;lt;numpkts&amp;gt; and &amp;lt;pktSize&amp;gt;.&lt;br /&gt;
               Eg. %s /dev/tts/modemdiag zw &amp;lt;NumPkts&amp;gt; &amp;lt;PktSize&amp;gt; [v] &lt;br /&gt;
       zu - CDMA Performance tests of the diag port after putting it into loopback. Takes two arguments &amp;lt;numpkts&amp;gt; and &amp;lt;pktSize&amp;gt;. &lt;br /&gt;
               Eg. %s /dev/tts/modemdiag zu &amp;lt;NumPkts&amp;gt; &amp;lt;PktSize&amp;gt; [v] &lt;br /&gt;
 where  v - verbose output.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>StefanSchmidt</name></author>
	</entry>
</feed>