
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.alarmdecoder.com/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.alarmdecoder.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Bootloader_Protocol</id>
		<title>Bootloader Protocol - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.alarmdecoder.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Bootloader_Protocol"/>
		<link rel="alternate" type="text/html" href="http://www.alarmdecoder.com/wiki/index.php?title=Bootloader_Protocol&amp;action=history"/>
		<updated>2026-06-28T15:21:12Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.21.1</generator>

	<entry>
		<id>http://www.alarmdecoder.com/wiki/index.php?title=Bootloader_Protocol&amp;diff=493&amp;oldid=prev</id>
		<title>204.10.16.29: Created page with &quot;==Firmware File Format== There are two primary types of entries in the .hex file format: data lines and comments.    * Data lines start with a colon (:) and are comprised of b...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.alarmdecoder.com/wiki/index.php?title=Bootloader_Protocol&amp;diff=493&amp;oldid=prev"/>
				<updated>2015-06-18T22:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;==Firmware File Format== There are two primary types of entries in the .hex file format: data lines and comments.    * Data lines start with a colon (:) and are comprised of b...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Firmware File Format==&lt;br /&gt;
There are two primary types of entries in the .hex file format: data lines and comments.  &lt;br /&gt;
&lt;br /&gt;
* Data lines start with a colon (:) and are comprised of binary data in hexadecimal format.  &lt;br /&gt;
* Comments begin with a semi-colon. (;)  These should be ignored by the software doing the firmware upload.&lt;br /&gt;
&lt;br /&gt;
==Bootloader==&lt;br /&gt;
===Getting into the Bootloader===&lt;br /&gt;
During the boot process the AlarmDecoder will present a &amp;lt;tt&amp;gt;!boot&amp;lt;/tt&amp;gt; message.  If an '=' is sent to the device before the boot process is finished it is halted and the device drops into firmware upload mode where you will be presented with a &amp;lt;tt&amp;gt;!load&amp;lt;/tt&amp;gt; prompt.  If a previous firmware upload failed you will automatically be dropped into the boot loader.&lt;br /&gt;
&lt;br /&gt;
===Uploading Firmware===&lt;br /&gt;
After the &amp;lt;tt&amp;gt;!load&amp;lt;/tt&amp;gt; prompt is received you may begin uploading firmware.  This is done by sending the data lines from the firmware file, including the colon, to the device followed by a single carriage return.&lt;br /&gt;
&lt;br /&gt;
There are a few responses you should expect from each line that's sent:&lt;br /&gt;
* &amp;lt;tt&amp;gt;!0000:0000&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;!00FF:0000&amp;lt;/tt&amp;gt;, and &amp;lt;tt&amp;gt;!ae&amp;lt;/tt&amp;gt; - These are positive responses.&lt;br /&gt;
* &amp;lt;tt&amp;gt;!no&amp;lt;/tt&amp;gt; - Improperly formatted input.  Make sure the colon is present.&lt;br /&gt;
* &amp;lt;tt&amp;gt;!ce&amp;lt;/tt&amp;gt; - Checksum error.&lt;br /&gt;
* &amp;lt;tt&amp;gt;!ol&amp;lt;/tt&amp;gt; - Invalid memory location.&lt;br /&gt;
* &amp;lt;tt&amp;gt;!ok&amp;lt;/tt&amp;gt; - The firmware upload completed successfully.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Example successful upload:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt; !sn:ffffffff&lt;br /&gt;
&amp;lt; !boot...&lt;br /&gt;
&amp;gt; =&lt;br /&gt;
&amp;lt; !wait&lt;br /&gt;
&amp;lt; !load&lt;br /&gt;
&amp;gt; :10000000DDB4F6E10F4ED12382C4EE148E43CE8CC4&lt;br /&gt;
&amp;lt; !0000:0000&lt;br /&gt;
&amp;gt; :1000080039DAAB5279A08A5D82C4EE148E43CE8C65&lt;br /&gt;
&amp;lt; !0000:0000&lt;br /&gt;
&amp;gt; :10001000816CC9FB056D5FE26A8ECF031619661D00&lt;br /&gt;
&amp;lt; !0000:0000&lt;br /&gt;
&amp;gt; :1000200032008A3DAF0BC3742F809946F86CE50A05&lt;br /&gt;
&amp;lt; !0000:0000&lt;br /&gt;
[snip]&lt;br /&gt;
&amp;gt; :108E20003B4775916570AA7DF9E341A7B05E13F3E6&lt;br /&gt;
&amp;lt; !0000:0000&lt;br /&gt;
&amp;gt; :108E30004881D6FE809BADA8CC8AAD1409E3097B9E&lt;br /&gt;
&amp;lt; !0000:0000&lt;br /&gt;
&amp;gt; :0200000400F00A&lt;br /&gt;
&amp;lt; !ae&lt;br /&gt;
&amp;gt; :02000000FF00FF&lt;br /&gt;
&amp;lt; !00FF:0000&lt;br /&gt;
&amp;gt; :00000001FF&lt;br /&gt;
&amp;lt; !ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>204.10.16.29</name></author>	</entry>

	</feed>