<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.spiderboard.org/index.php?action=history&amp;feed=atom&amp;title=Compiling_and_Programming_PIC_Firmware</id>
		<title>Compiling and Programming PIC Firmware - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://www.spiderboard.org/index.php?action=history&amp;feed=atom&amp;title=Compiling_and_Programming_PIC_Firmware"/>
		<link rel="alternate" type="text/html" href="http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;action=history"/>
		<updated>2026-04-09T13:26:26Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;diff=225&amp;oldid=prev</id>
		<title>Js at 09:41, 2 April 2019</title>
		<link rel="alternate" type="text/html" href="http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;diff=225&amp;oldid=prev"/>
				<updated>2019-04-02T09:41:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;tr style=&#039;vertical-align: top;&#039; lang=&#039;en&#039;&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 09:41, 2 April 2019&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-l46&quot; &gt;Line 46:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 46:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Since the bootloader is write protected, it can only be updated using an ICSP device (ex. PICKit).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Since the bootloader is write protected, it can only be updated using an ICSP device (ex. PICKit).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; 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;* The ICSP pin header on the [[SpiderBase]] enables full access to the PIC16F1454 microcontroller.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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;* The ICSP pin header on the [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Spiderboard Baseboard|&lt;/ins&gt;SpiderBase]] enables full access to the PIC16F1454 microcontroller.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Js</name></author>	</entry>

	<entry>
		<id>http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;diff=224&amp;oldid=prev</id>
		<title>Js at 09:41, 2 April 2019</title>
		<link rel="alternate" type="text/html" href="http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;diff=224&amp;oldid=prev"/>
				<updated>2019-04-02T09:41:07Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;tr style=&#039;vertical-align: top;&#039; lang=&#039;en&#039;&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 09:41, 2 April 2019&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-l46&quot; &gt;Line 46:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 46:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Since the bootloader is write protected, it can only be updated using an ICSP device (ex. PICKit).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Since the bootloader is write protected, it can only be updated using an ICSP device (ex. PICKit).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; 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;* The ICSP pin header on the [[SpiderBase]] enables full access to the PIC16F1454 microcontroller.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Js</name></author>	</entry>

	<entry>
		<id>http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;diff=221&amp;oldid=prev</id>
		<title>Js: Created page with &quot; == About ==  SpiderSoM and MX10 implement a PIC16F1454 Microcontroller to enable access to UART, I2C and JTAG interfaces.&lt;br /&gt; The firmware consists of a...&quot;</title>
		<link rel="alternate" type="text/html" href="http://www.spiderboard.org/index.php?title=Compiling_and_Programming_PIC_Firmware&amp;diff=221&amp;oldid=prev"/>
				<updated>2019-04-02T09:34:31Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot; == About ==  &lt;a href=&quot;/index.php?title=Spiderboard_SoM&quot; title=&quot;Spiderboard SoM&quot;&gt;SpiderSoM&lt;/a&gt; and MX10 implement a PIC16F1454 Microcontroller to enable access to UART, I2C and JTAG interfaces.&amp;lt;br /&amp;gt; The firmware consists of a...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== About ==&lt;br /&gt;
&lt;br /&gt;
[[Spiderboard SoM|SpiderSoM]] and MX10 implement a PIC16F1454 Microcontroller to enable access to UART, I2C and JTAG interfaces.&amp;lt;br /&amp;gt;&lt;br /&gt;
The firmware consists of a bootloader and the user application and implements the USB DFU protocol to allow firmware updates.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.microchip.com/mplab/compilers XC8 Compiler]&lt;br /&gt;
* dfu-util (or similar)&lt;br /&gt;
&lt;br /&gt;
== Updating Firmware ==&lt;br /&gt;
&lt;br /&gt;
==== Downloading Sources ====&lt;br /&gt;
&lt;br /&gt;
The source for the PIC Firmware is available on [https://github.com/ARIES-Embedded/pic16f1-usb-firmware github].&lt;br /&gt;
&lt;br /&gt;
* Open a new terminal.&lt;br /&gt;
* Use git to download the sources:&lt;br /&gt;
*: $ &amp;lt;nowiki&amp;gt;git clone https://github.com/ARIES-Embedded/pic16f1-usb-firmware.git spider-firmware&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;firmware/&amp;#039;&amp;#039; contains the bootloader.&lt;br /&gt;
* &amp;#039;&amp;#039;example-apps/aries-firmware/&amp;#039;&amp;#039; contains the user firmware.&lt;br /&gt;
* &amp;#039;&amp;#039;tools/&amp;#039;&amp;#039; contains the 454hex2dfu utility to convert a .hex file to a .dfu file.&lt;br /&gt;
&lt;br /&gt;
==== Compiling Firmware ====&lt;br /&gt;
&lt;br /&gt;
* Change into the directory: &amp;#039;&amp;#039;example-apps/aries-firmware/&amp;#039;&amp;#039; and run make.&lt;br /&gt;
*: $ cd spider-firmware/example-apps/aries-firmware/&lt;br /&gt;
*: $ make&lt;br /&gt;
* If no errors occur a &amp;#039;&amp;#039;firmware.hex&amp;#039;&amp;#039; was created.&lt;br /&gt;
&lt;br /&gt;
==== Programming Firmware ====&lt;br /&gt;
&lt;br /&gt;
* The PIC firmware uses the USB DFU Protocol to allow firmware updates.&lt;br /&gt;
* First convert the .hex file into a .dfu file using the 454hex2dfu tool (needs to be build first).&lt;br /&gt;
*: $ cd ../../tools&lt;br /&gt;
*: $ make&lt;br /&gt;
*: $ ./454hex2dfu ../example-apps/aries-firmware/firmware.hex firmware.dfu&lt;br /&gt;
* Then use dfu-util to upload the new firmware to PIC.&lt;br /&gt;
*: $ dfu-util -d 04d8:efd0 -D firmware.dfu&lt;br /&gt;
* The PIC user mode uses USB VID:PID 04d8:efd0 and the bootloader 1209:2002.&lt;br /&gt;
* dfu-util first sets the PIC into bootloader and then starts uploading the new firmware.&lt;br /&gt;
* The PIC will remain in bootloader until it is reset per powercycle.&lt;br /&gt;
&lt;br /&gt;
== Updating Bootloader ==&lt;br /&gt;
&lt;br /&gt;
* Since the bootloader is write protected, it can only be updated using an ICSP device (ex. PICKit).&lt;/div&gt;</summary>
		<author><name>Js</name></author>	</entry>

	</feed>