<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.robojackets.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JonJones</id>
	<title>RoboJackets Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.robojackets.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JonJones"/>
	<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/Special:Contributions/JonJones"/>
	<updated>2026-04-12T14:05:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=User:Petersonev&amp;diff=15081</id>
		<title>User:Petersonev</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=User:Petersonev&amp;diff=15081"/>
		<updated>2016-08-25T03:50:29Z</updated>

		<summary type="html">&lt;p&gt;JonJones: Created page with &amp;quot;Hey, I'm Evan :)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hey, I'm Evan :)&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=15045</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=15045"/>
		<updated>2016-07-16T08:40:01Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;ATTENTION:&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;THIS PAGE WAS ABANDONED DURING THE 2015 REDESIGN IN FAVOR OF THE ROBOCUP BOARD ON&amp;amp;nbsp;&amp;lt;/span&amp;gt;[https://trello.com/ &amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;TRELLO&amp;lt;/span&amp;gt;]&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
= Phase I: Technical Analysis =&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup:_Competition_2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for integrating serial identification to mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add connection header for ball sensor to control board&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test motor wire modifications before working on the entire batch of motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine kicker connections and integration&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA commands from the 2011 robot: ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;amp;lt;&amp;lt;/code&amp;amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;&amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt;&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add a writable register for enabling/disabling motor encoders&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon EC45Flat&amp;amp;nbsp;Custom Motor Drawing (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon&amp;amp;nbsp;EC45Flat&amp;amp;nbsp;Motor Datasheet (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://www.maxonmotor.com/maxon/view/product/motor/ecmotor/ec/ec16/400161 Maxon EC16 Motor Datasheet (30W)] '''PN: 400161'''&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Last Task:'' Place connectors onto the wires for all four (4) motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order motor controller boards&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' Underway&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully read sensor data from one of the potential motion processing chips&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' This may be abandoned because of the LED's precise timing for control&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense|RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Create a small microcontroller interface for the kicker board&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&amp;lt;/s&amp;gt;&lt;br /&gt;
***&amp;lt;s&amp;gt;''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;Can use the [http://arduino.cc/en/main/software Arduino IDE]&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 1: ''Use a small switch paired with a relay&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 2:'' Use standard mechanical switch&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research switching regular modules&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Test diamond dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;If diamond-shaped dribbler fails, test hourglass dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test heatshrink viability as dribbler material&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Verify notched dribbler effectiveness&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14955</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14955"/>
		<updated>2016-05-27T06:25:20Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;ATTENTION:&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;THIS PAGE WAS ABANDONED DURING THE 2015 REDESIGN IN FAVOR OF THE ROBOCUP BOARD ON&amp;amp;nbsp;&amp;lt;/span&amp;gt;[https://trello.com/ &amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;TRELLO&amp;lt;/span&amp;gt;]&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
= Phase I: Technical Analysis =&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup:_Competition_2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for integrating serial identification to mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add connection header for ball sensor to control board&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test motor wire modifications before working on the entire batch of motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine kicker connections and integration&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA commands from the 2011 robot: ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;amp;lt;&amp;lt;/code&amp;amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;&amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt;&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add a writable register for enabling/disabling motor encoders&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon EC45Flat&amp;amp;nbsp;Custom Motor Drawing (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon&amp;amp;nbsp;EC45Flat&amp;amp;nbsp;Motor Datasheet (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://www.maxonmotor.com/medias/sys_master/root/8816803217438/15-200-EN.pdf Maxon EC16 Motor Datasheet (30W)] '''PN: 400161'''&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Last Task:'' Place connectors onto the wires for all four (4) motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order motor controller boards&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' Underway&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully read sensor data from one of the potential motion processing chips&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' This may be abandoned because of the LED's precise timing for control&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense|RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Create a small microcontroller interface for the kicker board&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&amp;lt;/s&amp;gt;&lt;br /&gt;
***&amp;lt;s&amp;gt;''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;Can use the [http://arduino.cc/en/main/software Arduino IDE]&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 1: ''Use a small switch paired with a relay&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 2:'' Use standard mechanical switch&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research switching regular modules&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Test diamond dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;If diamond-shaped dribbler fails, test hourglass dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test heatshrink viability as dribbler material&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Verify notched dribbler effectiveness&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14954</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14954"/>
		<updated>2016-05-27T06:23:13Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  =&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;ATTENTION:&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;THIS PAGE WAS ABANDONED DURING THE 2015 REDESIGN IN FAVOR OF THE ROBOCUP BOARD ON&amp;amp;nbsp;&amp;lt;/span&amp;gt;[https://trello.com/ &amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;TRELLO&amp;lt;/span&amp;gt;]&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
= Phase I: Technical Analysis =&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup:_Competition_2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for integrating serial identification to mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add connection header for ball sensor to control board&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test motor wire modifications before working on the entire batch of motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine kicker connections and integration&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA commands from the 2011 robot: ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;amp;lt;&amp;lt;/code&amp;amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;&amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt;&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add a writable register for enabling/disabling motor encoders&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon EC45Flat&amp;amp;nbsp;Custom Motor Drawing (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon&amp;amp;nbsp;EC45Flat&amp;amp;nbsp;Motor Datasheet (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://www.maxonmotor.com/medias/sys_master/root/8816803217438/15-200-EN.pdf Maxon EC16 Motor Datasheet (30W)] '''PN: 400161'''&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Last Task:'' Place connectors onto the wires for all four (4) motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order motor controller boards&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' Underway&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully read sensor data from one of the potential motion processing chips&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' This may be abandoned because of the LED's precise timing for control&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense|RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Create a small microcontroller interface for the kicker board&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&amp;lt;/s&amp;gt;&lt;br /&gt;
***&amp;lt;s&amp;gt;''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;Can use the [http://arduino.cc/en/main/software Arduino IDE]&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 1: ''Use a small switch paired with a relay&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 2:'' Use standard mechanical switch&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research switching regular modules&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Test diamond dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;If diamond-shaped dribbler fails, test hourglass dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test heatshrink viability as dribbler material&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Verify notched dribbler effectiveness&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14953</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14953"/>
		<updated>2016-05-27T06:23:00Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=  =&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;ATTENTION:&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;THIS PAGE WAS ABANDONED DURING THE 2015 REDESIGN IN FAVOR OF THE ROBOCUP BOARD ON&amp;amp;nbsp;&amp;lt;/span&amp;gt;[https://trello.com/ &amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;TRELLO&amp;lt;/span&amp;gt;]&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Phase I: Technical Analysis =&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup:_Competition_2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for integrating serial identification to mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add connection header for ball sensor to control board&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test motor wire modifications before working on the entire batch of motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine kicker connections and integration&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA commands from the 2011 robot: ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;amp;lt;&amp;lt;/code&amp;amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;&amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt;&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add a writable register for enabling/disabling motor encoders&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon EC45Flat&amp;amp;nbsp;Custom Motor Drawing (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon&amp;amp;nbsp;EC45Flat&amp;amp;nbsp;Motor Datasheet (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://www.maxonmotor.com/medias/sys_master/root/8816803217438/15-200-EN.pdf Maxon EC16 Motor Datasheet (30W)] '''PN: 400161'''&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Last Task:'' Place connectors onto the wires for all four (4) motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order motor controller boards&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' Underway&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully read sensor data from one of the potential motion processing chips&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' This may be abandoned because of the LED's precise timing for control&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense|RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Create a small microcontroller interface for the kicker board&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&amp;lt;/s&amp;gt;&lt;br /&gt;
***&amp;lt;s&amp;gt;''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;Can use the [http://arduino.cc/en/main/software Arduino IDE]&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 1: ''Use a small switch paired with a relay&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 2:'' Use standard mechanical switch&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research switching regular modules&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Test diamond dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;If diamond-shaped dribbler fails, test hourglass dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test heatshrink viability as dribbler material&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Verify notched dribbler effectiveness&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14952</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14952"/>
		<updated>2016-05-27T06:22:46Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;ATTENTION:&amp;amp;nbsp;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;THIS PAGE WAS ABANDONED DURING THE 2015 REDESIGN IN FAVOR OF THE ROBOCUP BOARD ON&amp;amp;nbsp;&amp;lt;/span&amp;gt;[https://trello.com/ &amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;TRELLO&amp;lt;/span&amp;gt;]&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Phase I: Technical Analysis =&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup:_Competition_2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for integrating serial identification to mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add connection header for ball sensor to control board&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test motor wire modifications before working on the entire batch of motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine kicker connections and integration&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA commands from the 2011 robot: ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;amp;lt;&amp;lt;/code&amp;amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;&amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt;&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add a writable register for enabling/disabling motor encoders&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon EC45Flat&amp;amp;nbsp;Custom Motor Drawing (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon&amp;amp;nbsp;EC45Flat&amp;amp;nbsp;Motor Datasheet (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://www.maxonmotor.com/medias/sys_master/root/8816803217438/15-200-EN.pdf Maxon EC16 Motor Datasheet (30W)] '''PN: 400161'''&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Last Task:'' Place connectors onto the wires for all four (4) motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order motor controller boards&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' Underway&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully read sensor data from one of the potential motion processing chips&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' This may be abandoned because of the LED's precise timing for control&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense|RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Create a small microcontroller interface for the kicker board&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&amp;lt;/s&amp;gt;&lt;br /&gt;
***&amp;lt;s&amp;gt;''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;Can use the [http://arduino.cc/en/main/software Arduino IDE]&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 1: ''Use a small switch paired with a relay&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 2:'' Use standard mechanical switch&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research switching regular modules&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Test diamond dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;If diamond-shaped dribbler fails, test hourglass dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test heatshrink viability as dribbler material&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Verify notched dribbler effectiveness&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14951</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14951"/>
		<updated>2016-05-27T06:20:55Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== &amp;lt;span style=&amp;quot;color:#B22222;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;ATTENTION:&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;THIS PAGE WAS ABANDONED DURING THE 2015 REDESIGN IN FAVOR OF THE ROBOCUP BOARD ON&amp;amp;nbsp;&amp;lt;/span&amp;gt;[https://trello.com/ &amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;TRELLO&amp;lt;/span&amp;gt;]&amp;lt;span style=&amp;quot;background-color:#FFFFE0;&amp;quot;&amp;gt;.&amp;lt;/span&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
== Phase I: Technical Analysis ==&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup:_Competition_2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for integrating serial identification to mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add connection header for ball sensor to control board&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test motor wire modifications before working on the entire batch of motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine kicker connections and integration&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA commands from the 2011 robot: ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;amp;lt;&amp;lt;/code&amp;amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;&amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt;&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Add a writable register for enabling/disabling motor encoders&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon EC45Flat&amp;amp;nbsp;Custom Motor Drawing (50W)]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon&amp;amp;nbsp;EC45Flat&amp;amp;nbsp;Motor Datasheet (50W)]&amp;amp;nbsp;'''PN:&amp;amp;nbsp;339285X'''&lt;br /&gt;
&lt;br /&gt;
[http://www.maxonmotor.com/medias/sys_master/root/8816803217438/15-200-EN.pdf Maxon EC16 Motor Datasheet (30W)] '''PN: 400161'''&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Last Task:'' Place connectors onto the wires for all four (4) motors&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Order motor controller boards&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' Underway&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully read sensor data from one of the potential motion processing chips&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Update:'' This may be abandoned because of the LED's precise timing for control&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense|RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Create a small microcontroller interface for the kicker board&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&amp;lt;/s&amp;gt;&lt;br /&gt;
***&amp;lt;s&amp;gt;''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;Can use the [http://arduino.cc/en/main/software Arduino IDE]&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 1: ''Use a small switch paired with a relay&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;''Option 2:'' Use standard mechanical switch&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Research switching regular modules&amp;lt;/s&amp;gt;&lt;br /&gt;
**&amp;lt;s&amp;gt;[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Test diamond dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;If diamond-shaped dribbler fails, test hourglass dribbler shape&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Test heatshrink viability as dribbler material&amp;lt;/s&amp;gt;&lt;br /&gt;
*&amp;lt;s&amp;gt;Verify notched dribbler effectiveness&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;s&amp;gt;To Do&amp;lt;/s&amp;gt; =====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;s&amp;gt;Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=User:JonJones&amp;diff=14936</id>
		<title>User:JonJones</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=User:JonJones&amp;diff=14936"/>
		<updated>2016-05-15T04:58:53Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Contact:''' ==&lt;br /&gt;
&lt;br /&gt;
'''E-mail:&amp;amp;nbsp;'''&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;jonathan.jones@gatech.edu&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14880</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14880"/>
		<updated>2016-04-18T07:41:09Z</updated>

		<summary type="html">&lt;p&gt;JonJones: Reverted edits by Anifong (talk) to last revision by Nzhao&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Phase I: Technical Analysis ==&lt;br /&gt;
&lt;br /&gt;
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in this brainstorming stage.&lt;br /&gt;
&lt;br /&gt;
[[RoboCup: Competition 2014|Competition 2014]]&amp;amp;nbsp;documentation&lt;br /&gt;
&lt;br /&gt;
[[TDP|Team Description Papers]] (''TDP'')&lt;br /&gt;
&lt;br /&gt;
[https://redmine.robojackets.org/projects/board-tracker Electrical Board Error Logs]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-pcb Past Electrical Designs]&lt;br /&gt;
&lt;br /&gt;
== Phase II: Design ==&lt;br /&gt;
&lt;br /&gt;
During the design phase, specifications are determined for each section of the robot. Experimental&amp;amp;nbsp;results are documented here from all&amp;amp;nbsp;quantitative findings. This phase is also where the high-level ideas from ''Phase I'' are tracked to ensure completion.&lt;br /&gt;
&lt;br /&gt;
=== Microcontroller/FPGA Processing ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/Assembly-Language#debugging-an-mbed-project-using-the-keil mbed Debugging]&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Successfully communicate over [http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] with a current FPGA and mbed&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Build development board for testing FPGA configuration from [http://developer.mbed.org/handbook/LocalFileSystem mbed's flash storage]&lt;br /&gt;
**Tested and confirmed working&lt;br /&gt;
*Obtain [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&amp;amp;nbsp;for robot use&lt;br /&gt;
**''How:'' 15 mbeds donated by ECE department&lt;br /&gt;
&lt;br /&gt;
=== Mechanical/Electrical Integration ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/e/e1/RoboCup2014Design-MaxPCB_Dimensions.pdf Max PCB Dimensions]&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Determine best solution for integrating serial identification to mechanical bases&lt;br /&gt;
*Add connection header for ball sensor to control board&lt;br /&gt;
*Test motor wire modifications before working on the entire batch of motors&lt;br /&gt;
*Determine kicker connections and integration&lt;br /&gt;
**Tentative plans for a [http://en.wikipedia.org/wiki/PCI_Express PCI Express Mini] conenction on the motor board's edge&lt;br /&gt;
*Determine options using [http://www.camloc.us/camloc-quarter-turns-catalog.php quarter-turn screws] for electrical board attachment&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Research options for using Altium for schematic and board layout designs&lt;br /&gt;
**''Completed Task:'' Contact them for a 30 day trial&lt;br /&gt;
**''Outcome:'' Altium sponsorship with 6 &amp;quot;On-Demand&amp;quot; licenses for [http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
*Determine location and placement for dribbler motor header&lt;br /&gt;
*Update hall connection header to right angled one&lt;br /&gt;
*Add pin locations to all connection housings in CAD part files&lt;br /&gt;
*&amp;lt;s&amp;gt;Update the 14-pin connection header (female) for the control-to-motor board connection&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Update:'' Abandoned for different board-to-board connectors&lt;br /&gt;
*Finalize method for adjusting motor wire lengths when motors arrive&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;Unsolder from motor's PCB, trim to length, and resolder to motor's PCB&lt;br /&gt;
**''Reason:'' Did not want to delay ordering motors any futher &amp;amp; hand soldering results in higher yields compared against hand crimping&lt;br /&gt;
*Determine placement of battery location&lt;br /&gt;
**''Decision:'' Horizontally under all electronics&lt;br /&gt;
&lt;br /&gt;
=== Radio ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/teams/RoboJackets/code/RoboCup-SSL-2015-Firmware/ CC1101 C++ library]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;[http://developer.mbed.org/cookbook/nRF24L01-wireless-transceiver nRF24L01+ C++ library]&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current protocol &amp;lt;span style=&amp;quot;background-color:#FFFF00;&amp;quot;&amp;gt;[LINK TO BE CREATED &amp;amp; UPDATED]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1201 CC1201]&amp;amp;nbsp;transceivers with integrated [http://www.digikey.com/product-detail/en/ANT-916-CHP-T/ANT-916-CHP-TCT-ND/1534437 ANT-916-CHP] antenna&lt;br /&gt;
*Order [http://www.ti.com/product/cc1201 CC1201] samples from [http://www.ti.com/ TI]&lt;br /&gt;
**Current quantity: &amp;lt;code&amp;gt;21&amp;lt;/code&amp;gt;&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1201 CC1201] transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Research and determine best steps for structuring radio protocol with ''primary ''and ''seconday ''frequencies&lt;br /&gt;
**The Crazyflie project has basic&amp;amp;nbsp;[http://wiki.bitcraze.se/projects:crazyflie:firmware:comm_protocol radio documentation] for how they implemented real-time communication with room for expansion&lt;br /&gt;
*Test packet optimizations - [http://koti.kapsi.fi/jpa/nanopb/ Nanopb]&amp;amp;nbsp;is promosing for this&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain TI's [http://www.ti.com/tool/cc-debugger CC Debugger] for interfacing transceivers with [http://www.ti.com/tool/smartrftm-studio SmartRF Studio]&lt;br /&gt;
**''How:'' Digi-Key&lt;br /&gt;
*&amp;lt;s&amp;gt;Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds&amp;lt;/s&amp;gt;&lt;br /&gt;
**''Result:'' Task abandoned. Determined that a 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; frequency band provided only nominal benefits&lt;br /&gt;
*Test methods using breakout boards and compare data rates&lt;br /&gt;
**''Result:'' Packet processing (&amp;lt;code&amp;gt;~60 bytes&amp;lt;/code&amp;gt;) for receptions estimated to consume &amp;lt;code&amp;gt;0.2ms&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;0.3ms&amp;lt;/code&amp;gt; of processing time @ &amp;lt;code&amp;gt;60 packets/sec&amp;lt;/code&amp;gt;&lt;br /&gt;
*Determine optimal secondary frequency for base station updates&lt;br /&gt;
**''Decision:'' End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; transceiver&lt;br /&gt;
*Research integration options of the&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111&amp;amp;nbsp;]and&amp;amp;nbsp;[https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24LU1P nRF24LU1+]&lt;br /&gt;
**''Decision:'' Do not use SoC parts for the base station&lt;br /&gt;
**''Reason:'' Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)&lt;br /&gt;
*Order five (5)&amp;amp;nbsp;[http://www.ti.com/product/CC1111F32?keyMatch=cc1111&amp;amp;tisearch=Search-EN CC1111]&amp;amp;nbsp;transceivers from [http://www.ti.com/ TI]&lt;br /&gt;
*Successfully communicate using two (2) [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&amp;amp;nbsp;transceivers and two (2) [http://developer.mbed.org/platforms/mbed-LPC1768/ mbeds]&lt;br /&gt;
*Obtain breakout boards for [http://www.ti.com/product/cc1101?keyMatch=cc1101&amp;amp;tisearch=Search-EN CC1101]&lt;br /&gt;
**''How:'' Added [http://en.wikipedia.org/wiki/SMA_connector SMA]&amp;amp;nbsp;antenna connector to breakout boards from 2008 fleet&lt;br /&gt;
*Obtain breakout boards for [https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P nRF24L01+]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
[[File:RadioPrototype.png|500px|RadioPrototype.png]]&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
A few minor changes to the FPGA's [http://en.wikipedia.org/wiki/Verilog Verilog] code must be made for the 2015 redesign. This includes migrating the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] interface with the kicker board to the [http://developer.mbed.org/platforms/mbed-LPC1768/ mbed] platform &amp;amp; enhancing encoder connections to support the new [http://en.wikipedia.org/wiki/Differential_signaling differential signals].&lt;br /&gt;
&lt;br /&gt;
==== Setting up a computer for Verilog development ====&lt;br /&gt;
&lt;br /&gt;
#Create an account on [http://www.xilinx.com/ Xilinx's website]&lt;br /&gt;
#The Xilinx program is called '''[http://www.xilinx.com/products/design-tools/ise-design-suite/ise-webpack.html ISE Design Suite]''' (this is on [http://www.ece-help.gatech.edu/labs/virtual.html ECE's virtual lab pool] computers - can connect to it from anywhere).&lt;br /&gt;
#*The desired download link is found under the '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;background-color:#FFFFFF;&amp;quot;&amp;gt;ISE Design&amp;lt;/span&amp;gt; Suite&amp;lt;/span&amp;gt;''' heading&lt;br /&gt;
#*The current version at the time of this writing is ''14.7 ''(size: ~6GB)&lt;br /&gt;
#*The '''&amp;lt;span style=&amp;quot;color:#FF8C00;&amp;quot;&amp;gt;ISE Design Suite&amp;lt;/span&amp;gt;''' is no longer supported&lt;br /&gt;
#*The newer version of Xilinx's software is called [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools.html Vivado Design Tools], but it&amp;amp;nbsp;does not support the [http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Spartan-3E] FPGA&lt;br /&gt;
#Install the program to your computer&lt;br /&gt;
#*The installer will prompt you to select an edition to install&lt;br /&gt;
#**Select ''ISE WebPACK''&lt;br /&gt;
#Obtain a license at the Xilinx page for [http://www.xilinx.com/getlicense license management]&lt;br /&gt;
#*Open the link sent to you after requesting a license&lt;br /&gt;
#*Navigate to the &amp;lt;span style=&amp;quot;color:#000080;&amp;quot;&amp;gt;'''Manage Licenses'''&amp;lt;/span&amp;gt; tab&lt;br /&gt;
#*Download the license called &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;ISE WebPACK License&amp;lt;/span&amp;gt;&lt;br /&gt;
#Save the downloaded license file to the &amp;lt;code&amp;gt;~/.Xilinx &amp;lt;/code&amp;gt;directory of your computer&lt;br /&gt;
#*The program will require you to locate the license's path at first startup&lt;br /&gt;
&lt;br /&gt;
==== Mandatory user-provided files for Verilog synthesis ====&lt;br /&gt;
&lt;br /&gt;
*[https://en.wikipedia.org/wiki/Verilog Verilog ]files(s)&lt;br /&gt;
**Defines the HDL implementation&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;.v&amp;lt;/code&amp;gt;&lt;br /&gt;
*[http://www.xilinx.com/support/documentation/sw_manuals/xilinx11/cgd.pdf Xilinx Constraint File]&lt;br /&gt;
**Defines parameters for correct synthesis to the hardware (pin mappings)&lt;br /&gt;
**File Extension: &amp;lt;code&amp;gt;''.ucf''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FPGA Commands ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Command&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Read/Write&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read Only&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Receive Data Readings&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Read/Write&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Set motor speeds&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x00 Read) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | FPGA Version (&amp;lt;code&amp;gt;0x04 &amp;lt;/code&amp;gt;in 2014)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 1 Count (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 1 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 2 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Encoder 2 Count (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 3 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Encoder 4 Count (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor Fault&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Status&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Voltage&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 1&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;13&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Hall Count 2&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;14&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 3&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 4&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;16&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&amp;lt;br/&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Hall Count 5&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Example SPI Transfer (0x01 Write) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 500px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Array Index&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Bit(s)&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Definition&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Packet Type (&amp;lt;code&amp;gt;0x01&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (LSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Drive Mode&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 1 Speed (MSB)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 2 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 2 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 3 Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;6&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;&amp;lt;var&amp;gt;Reserved&amp;lt;/var&amp;gt; (Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 3 Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Speed (LSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;3&amp;quot; | &amp;lt;code&amp;gt;8&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt;)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Motor 4 Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 0..1&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Motor 4 Speed (MSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;9&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Dribbler Motor Speed (LSB)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; rowspan=&amp;quot;5&amp;quot; | &amp;lt;code&amp;gt;10&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Charge&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Chipper Enable (&amp;lt;code&amp;gt;1=Chip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0=Kick&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 5..4&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;var&amp;gt;Reserved &amp;lt;/var&amp;gt;(Always 0)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 3..2&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Drive Mode&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 1..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; text-align: center;&amp;quot;&amp;gt;Dribbler Motor Speed (MSB)&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | &amp;lt;code&amp;gt;11&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 7..0&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | Kicker Power (&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0xFF=6ms&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Required Pins ====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;MOSI&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;MISO&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;SCK&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;nCS&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;PROG_B&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 1.2;&amp;quot;&amp;gt;To Do&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
*Research the options for interfacing a 7-segment LED into the FPGA for battery voltage &amp;amp; error code displays&lt;br /&gt;
*Transition the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] bus lines to the microcontroller&lt;br /&gt;
*Update Verilog for new [http://en.wikipedia.org/wiki/Differential_signaling differential encoder signals] ('''A+''', '''A-''', '''B+''', '''B-''')&lt;br /&gt;
**( ''('''A+''') + ('''A-''') == 0'' ) should be true for no errors&lt;br /&gt;
**Balanced signal standard:&amp;amp;nbsp;[http://en.wikipedia.org/wiki/RS-422 &amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;EIA RS 422&amp;lt;/span&amp;gt;]&lt;br /&gt;
*Update [https://en.wikipedia.org/wiki/Verilog Verilog] for [https://redmine.robojackets.org/issues/355 driving a bootstrap circuit]&lt;br /&gt;
*Add a writable register for enabling/disabling motor encoders&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Obtain [http://www.digilentinc.com/Products/Detail.cfm?NavTop=2&amp;amp;NavSub=423&amp;amp;Prod=S3EBOARD&amp;amp;CFID=7334243&amp;amp;CFTOKEN=db388705151e1ac-29BC204A-5056-0201-0218C3C976F487B0 Spartan-3E development board]&lt;br /&gt;
**''How:'' Found a used board on eBay&lt;br /&gt;
*Determine required pins for connecting FPGA&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Document steps for synthesizing [https://en.wikipedia.org/wiki/Verilog Verilog ]files&lt;br /&gt;
**''Documented above''&lt;br /&gt;
*Successfully configured an FPGA from the [https://developer.mbed.org/handbook/LocalFileSystem mbed's on board flash storage]&lt;br /&gt;
*Successfully synthesized a &amp;lt;code&amp;gt;Hello World&amp;lt;/code&amp;gt;&amp;amp;nbsp;Verilog file using Xilinx's [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html ISE Webtools]&lt;br /&gt;
*Determine what communications occur over the [https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus SPI] bus&lt;br /&gt;
**''Documented in the tables above''&lt;br /&gt;
*Finalized that the 2015 motors will use the current FPGA&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://www.xilinx.com/support/documentation/data_sheets/ds312.pdf Xilinx Spartan-3E]&lt;br /&gt;
**''Reason:'' FPGA is only used for motor control &amp;amp; no futher capabilities are needed&lt;br /&gt;
&lt;br /&gt;
=== Motors ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf Maxon 50W Custom Motor Drawing]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf Maxon 50W Motor Datasheet]&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Successfully control one of the new 50W motors with an mbed and Spartan-3E interface&lt;br /&gt;
*Modify four (4) of&amp;amp;nbsp;the sample motors to accomidate integration into a prototyped robot&lt;br /&gt;
**''Last Task:'' Place connectors onto the wires for all four (4) motors&lt;br /&gt;
*Order motor controller boards&lt;br /&gt;
**''Update:'' Underway&lt;br /&gt;
*[https://redmine.robojackets.org/issues/341 Test different circuits] and document data result set to wiki&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order 3 [http://www.ti.com/product/drv8301?keyMatch=drv8301&amp;amp;tisearch=Search-EN DRV8301]&amp;amp;nbsp;Pre-Drivers from [http://www.ti.com/ TI]&lt;br /&gt;
**''Update:'' Many samples from TI are in the electrical room now&lt;br /&gt;
*Finalize the protyping designs of single motor controllers&lt;br /&gt;
*Order motors&lt;br /&gt;
&lt;br /&gt;
=== Motion Sensing &amp;amp; Motion Control ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/components/MPU-9250/ MPU-9250 C++ library]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/users/onehorse/code/MPU6050IMU/ MPU-6050 C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/bitcraze/crazyflie-firmware/blob/master/drivers/src/mpu6050.c Craxyflie's C code&amp;amp;nbsp;[MPU-6050]]&lt;br /&gt;
&lt;br /&gt;
[http://developer.mbed.org/cookbook/PID PID C++ library]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/RoboJackets/robocup-software/issues/118 GitHub Issue] for motion controlling unit&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Determine best integration options for using motion processor sensor readings for enhancing on-board motion control&lt;br /&gt;
*Successfully read sensor data from one of the potential motion processing chips&lt;br /&gt;
*Determine if the [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050] is should replace the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] according to the benefits of having a 3-axis magnometer&lt;br /&gt;
*Integrate the [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250] into the [&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;C] data bus lines from the mbed&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Order breakout boards (3) for [http://www.invensense.com/mems/gyro/mpu6050.html MPU-6050]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order breakout board for [http://www.invensense.com/mems/gyro/mpu9250.html MPU-9250]&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
&lt;br /&gt;
=== Error Detection &amp;amp; Indication ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Determine best solution for controlling the [http://www.adafruit.com/products/1655 WS2812B]&amp;amp;nbsp;&amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#00cc00;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000CD;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''Update:'' This may be abandoned because of the LED's precise timing for control&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;span style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;Completed&amp;lt;/span&amp;gt; ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;line-height: 20.7999992370605px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Determine error LED interface locations with the I/O expander&lt;br /&gt;
*''Decision:''&amp;amp;nbsp;Motor 1, Motor 2, Motor 3, Motor 4, Dribbler Motor, Power Section, Radio Section, IMU Section&amp;amp;nbsp;[Required&amp;amp;nbsp;LEDs: 8&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;Order a [https://www.sparkfun.com/products/9544 Bus Pirate]&amp;lt;/code&amp;gt;&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Order breakout board for &amp;lt;span style=&amp;quot;color:#FF0000;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color: rgb(0, 204, 0); line-height: 20.7999992370605px;&amp;quot;&amp;gt;G&amp;lt;/span&amp;gt;&amp;lt;span style=&amp;quot;color:#0000FF;&amp;quot;&amp;gt;B&amp;lt;/span&amp;gt; LED&lt;br /&gt;
**''How:'' Sparkfun&lt;br /&gt;
*Create breakout board for&amp;amp;nbsp;[http://www.microchip.com/wwwproducts/Devices.aspx?product=MCP23017 MCP23017]&amp;amp;nbsp;and place on [https://github.com/RoboJackets/robocup-pcb GitHub repository]&lt;br /&gt;
&lt;br /&gt;
=== Ball Sense ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
''Main Article: [[RC15BallSense]]''&lt;br /&gt;
&lt;br /&gt;
The ball sensor is a pair of a laser diode and a phototransistor.&lt;br /&gt;
&lt;br /&gt;
=== Kicker Board &amp;amp; Detection ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Create a small microcontroller interface for the kicker board&lt;br /&gt;
**''Original Plan:'' Use a [http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/msp/ultra-low_power/msp430g2x_i2x/overview.page MSP430G2x]&amp;amp;nbsp;from [http://www.ti.com/ TI]&lt;br /&gt;
**''Updated Plan:'' Use one of Atmel's [http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx ATtiny] microcontrollers&lt;br /&gt;
***''Why:'' Much easier to implement a custom [http://en.wikipedia.org/wiki/In-system_programming ISP] with the mbed&lt;br /&gt;
****Can use the [http://arduino.cc/en/main/software Arduino IDE]&lt;br /&gt;
****[http://developer.mbed.org/cookbook/mAVRISP mbed library] already exists&lt;br /&gt;
**''Why: ''To allow for more disjoint kicker board development in future years. An attempt to perform more consistent soldnoid discharges with the microcontroller will&amp;amp;nbsp;be attempted this year.&lt;br /&gt;
*Use a&amp;amp;nbsp;[[RC15MechanicalBaseIdentification|Serial Identification Chip]]&amp;amp;nbsp;for unique detection of mechanical bases&lt;br /&gt;
*[https://redmine.robojackets.org/issues/352 Measure the current] from kicker board currently used&lt;br /&gt;
**Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone)&amp;amp;nbsp;equipped&amp;amp;nbsp;with a [http://en.wikipedia.org/wiki/Silicon-controlled_rectifier silicon-controlled rectifier] and [http://en.wikipedia.org/wiki/Shunt_(electrical) shunt resistor] for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.&lt;br /&gt;
*Update the kicker board to accommodate&amp;amp;nbsp;the new battery's voltage of 18.5V&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Generate snapshots of the 2011 kicker board graphs for reference&lt;br /&gt;
**''Where: ''Exported oscilliscope data saved in the firmware directory on software's GitHub repository. Python scripts exist for analyzing the data.&lt;br /&gt;
*Determine the number of capacitors that will be used&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;&amp;lt;font face=&amp;quot;monospace&amp;quot;&amp;gt;four (&amp;lt;code&amp;gt;4&amp;lt;/code&amp;gt;) &amp;lt;code&amp;gt;820uF&amp;lt;/code&amp;gt; capacitors&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Battery &amp;amp; Power ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration]&lt;br /&gt;
**''Option 1: ''Use a small switch paired with a relay&lt;br /&gt;
**''Option 2:'' Use standard mechanical switch&lt;br /&gt;
*Research switching regular modules&lt;br /&gt;
**[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Change the first switching regulator to accomidate for the higher voltage battery&lt;br /&gt;
**New part number:&amp;amp;nbsp;[http://www.ti.com/product/lm25010 LM25010]&lt;br /&gt;
*Finalized the new design's battery selection&lt;br /&gt;
**Result:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__9944__ZIPPY_Flightmax_2200mAh_5S1P_40C.html Zippy Flightmax 2200mAh 5S 40C]&lt;br /&gt;
&lt;br /&gt;
==== Battery Accessories ====&lt;br /&gt;
&lt;br /&gt;
*Connector:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10414__Male_XT60_connectors_5pcs_bag_GENUINE.html XT60 (Male)]&lt;br /&gt;
*Connector Lead:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10254__XT60_Male_w_12AWG_Silicon_Wire_10cm_5pcs_bag_.html XT60 12AWG 10cm]&lt;br /&gt;
*Charging Cable:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10266__Charge_Cable_w_Male_XT60_gt_4mm_Banana_plug.html XT60 Banana Plug]&lt;br /&gt;
*Balancing Board:&amp;amp;nbsp;[http://www.hobbyking.com/hobbyking/store/__10360__Quattro_4x6S_Charge_Balance_board.html Charge/Balance Board]&lt;br /&gt;
&lt;br /&gt;
==== All Batteries ====&lt;br /&gt;
&lt;br /&gt;
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.&lt;br /&gt;
&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__24844__Zippy_K_Flightmax_2500mah_5S1P_20C_Lipoly_Battery.html Zippy Flightmax 2500mAh 5S 20C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9939__ZIPPY_Flightmax_1800mAh_5S1P_40C.html Zippy Flightmax 1800mAh 5S 40C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__25516__ZIPPY_Compact_2450mAh_5S_35C_Lipo_Pack.html Zippy Compact 2450mAh 5S 35C]&lt;br /&gt;
*[http://www.hobbyking.com/hobbyking/store/__9461__Turnigy_2200mAh_5S_30C_Lipo_Pack.html Turnig 2200mAh 5S 30C]&lt;br /&gt;
*[http://www.cheapbatterypacks.com/product/813/1699/Thunder-Power-PL25-Series-2000mah-185v-5S-16C-LiPo-Battery-Pack.aspx Thunder Power 2000mAh 5S 16C]&lt;br /&gt;
&lt;br /&gt;
=== Dribbler ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
*Test diamond dribbler shape&lt;br /&gt;
*If diamond-shaped dribbler fails, test hourglass dribbler shape&lt;br /&gt;
*Test heatshrink viability as dribbler material&lt;br /&gt;
*Verify notched dribbler effectiveness&lt;br /&gt;
&lt;br /&gt;
==== Completed ====&lt;br /&gt;
&lt;br /&gt;
*Created prototype of and tested notched dribbler&lt;br /&gt;
*Tested viability of electrical tape as dribbler material&lt;br /&gt;
*Created prototype of diamond-shaped dribbler with heatshrink&lt;br /&gt;
&lt;br /&gt;
==== Testing Results ====&lt;br /&gt;
&lt;br /&gt;
*Electrical tape is ineffective as a dribbler material. Fails to impart spin on the ball and leaves residue&lt;br /&gt;
*Notch in center of dribbler is highly effective at keeping ball centered on dribbler. Increases tolerance for robot movement without losing control of the ball. Seems to be an improvement over current plain dribbler design.&lt;br /&gt;
&lt;br /&gt;
== Phase III: Production ==&lt;br /&gt;
&lt;br /&gt;
The final phase for creating the new fleet of robots involves outlining the steps and procedures for robot manufacturing and assebly. Future members can use this area as a reference for the fleet's required maintenance. It may also be benefitial for strengthening tolerances in future fleet builds.&lt;br /&gt;
&lt;br /&gt;
=== Electronics Assembly ===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== General ====&lt;br /&gt;
&lt;br /&gt;
*Sparkfun's [https://learn.sparkfun.com/tutorials/electronics-assembly PCB assembly]&amp;amp;nbsp;process&lt;br /&gt;
*EEVblog on [https://www.youtube.com/watch?v=imdtXcnywb8 anti-static bags] for component storage&lt;br /&gt;
&lt;br /&gt;
==== Solder Paste Stencil Creation ====&lt;br /&gt;
&lt;br /&gt;
SparkFun uses [http://www.soldermask.com/ SolderMask, Inc] for their stencil needs&lt;br /&gt;
&lt;br /&gt;
*Laser cutting kapton film&lt;br /&gt;
**Material: [http://www.mcmaster.com/#2271k3/=v8lsob Kapton Polyimide Film]&lt;br /&gt;
***''Size:'' &amp;lt;code&amp;gt;12&amp;quot; x 12&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***''Thickness:'' &amp;lt;code&amp;gt;0.005&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
**Test Equiptment&lt;br /&gt;
***''Laser Cutter:'' [http://www.troteclaser.com/en-US-US/Laser-Machines/Mid-Size/Pages/Speedy300.aspx Trotec Speedy 300] (&amp;lt;code&amp;gt;140W&amp;lt;/code&amp;gt;)&lt;br /&gt;
**Test Results&lt;br /&gt;
***Will '''not '''produce required results for making a stencil&lt;br /&gt;
*Chemical etching aluminum&lt;br /&gt;
**Untested but very promosing&lt;br /&gt;
&lt;br /&gt;
==== Prototype PCB&amp;amp;nbsp;Etching ====&lt;br /&gt;
&lt;br /&gt;
===== To Do =====&lt;br /&gt;
&lt;br /&gt;
*Etch [http://www.ti.com/product/cc1201 CC1201] radio module boards once design is complete&lt;br /&gt;
&lt;br /&gt;
===== Completed =====&lt;br /&gt;
&lt;br /&gt;
*Order UV curing lamp&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Order UV soldermask paints&lt;br /&gt;
**''How:'' eBay&lt;br /&gt;
*Obtain necessary etching chemicals&lt;br /&gt;
**''Decision:''&amp;amp;nbsp;[http://en.wikipedia.org/wiki/Hydrogen_peroxide Hydrogen Peroxide] &amp;amp; [http://en.wikipedia.org/wiki/Hydrochloric_acid Muriatic Acid]&lt;br /&gt;
[[Category:RoboCup]] [[Category:Electrical]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=User:JonJones&amp;diff=14879</id>
		<title>User:JonJones</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=User:JonJones&amp;diff=14879"/>
		<updated>2016-04-18T07:38:43Z</updated>

		<summary type="html">&lt;p&gt;JonJones: Removed protection from &amp;quot;User:JonJones&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Contact:''' ==&lt;br /&gt;
&lt;br /&gt;
'''E-mail:&amp;amp;nbsp;'''&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;jonathan.jones@gatech.edu&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;line-height: 1.6;&amp;quot;&amp;gt;'''Cell:''' &amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;478-737-4460&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14026</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14026"/>
		<updated>2015-02-09T05:12:46Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14025</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14025"/>
		<updated>2015-02-08T17:42:53Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14000</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=14000"/>
		<updated>2015-01-28T00:53:40Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13998</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13998"/>
		<updated>2015-01-28T00:37:19Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13997</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13997"/>
		<updated>2015-01-28T00:37:01Z</updated>

		<summary type="html">&lt;p&gt;JonJones: Transclude Ball Sens information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup&amp;diff=13984</id>
		<title>RoboCup</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup&amp;diff=13984"/>
		<updated>2015-01-26T05:02:12Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:RoboCup-Competition-2014 DisplayBot.jpg|thumb|right|420px|RoboJackets Current Design at Joao Pessoa, Brazil]]&lt;br /&gt;
&lt;br /&gt;
The Georgia Tech RoboJackets RoboCup Small-Size League team competes in a 6-on-6 AI-driven soccer match against teams from around the world.&amp;lt;br/&amp;gt;The field is equipped with two overhead cameras, which act as the primary information source for the selection of plays and tactics.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;If you haven't already, subscribe to the [https://lists.gatech.edu/sympa/subscribe/robojackets-robocup RoboCup Mailing List].&lt;br /&gt;
&lt;br /&gt;
== Important Items ==&lt;br /&gt;
&lt;br /&gt;
*The [[RoboCup: Redesign 2014-2015|2014-2015 Redesign]]&lt;br /&gt;
*[[TDP|Team Description Papers (TDP)]]&lt;br /&gt;
*[http://inventory.robojackets.org/ Electrical Inventory]&lt;br /&gt;
*[http://wiki.robojackets.org/mediawiki/images/e/ef/DISPOSAL-OF-LIPO-BATTERIES.pdf Battery Disposal] &amp;lt;!--* [[BoardOrderRequest|Board Order Requests]]--&amp;gt;&lt;br /&gt;
*[http://robocupssl.cpe.ku.ac.th/ RoboCup Small Size League (SSL) Website]&lt;br /&gt;
*[http://learn.robojackets.org/ RoboJackets Learning]&lt;br /&gt;
*[[RoboCup System Archive|System Archive]]&lt;br /&gt;
&lt;br /&gt;
== Electrical ==&lt;br /&gt;
&lt;br /&gt;
[[Electrical Room Equipment]]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/index.php?title=Special:MultiCategorySearch&amp;amp;&amp;amp;wpInCategory1=RoboCup&amp;amp;wpInCategory2=Electrical&amp;amp;limit=500&amp;amp;offset=0 List of RoboCup Electrical Wiki Pages]&lt;br /&gt;
&lt;br /&gt;
[[Be A Great EE|How to be a Great Electrical Engineer]]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Electrical 2015|RoboCup Electrical 2015]]&lt;br /&gt;
&lt;br /&gt;
=== Control Board 2011 ===&lt;br /&gt;
&lt;br /&gt;
[[RoboCup: Control Board 2011|Control Board 2011c Reference Page]]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/c/c3/RC_LightDecoder.jpg LED Indicator Reference Sheet]&lt;br /&gt;
&lt;br /&gt;
=== Reflow Oven ===&lt;br /&gt;
&lt;br /&gt;
[[RoboCup: Reflow Soldering Oven|Reflow Oven Project]]&lt;br /&gt;
&lt;br /&gt;
=== Design Programs ===&lt;br /&gt;
&lt;br /&gt;
[http://www.cadsoftusa.com/download-eagle/ CadSoft EAGLE]&lt;br /&gt;
&lt;br /&gt;
*Schematic/PCB editor&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html Xilinx ISE Design Suite]&lt;br /&gt;
&lt;br /&gt;
*Verilog synthesis&lt;br /&gt;
*FPGA pin configurations&lt;br /&gt;
&lt;br /&gt;
[https://www.pentalogix.com/viewmate.php ViewMate]&lt;br /&gt;
&lt;br /&gt;
*Solder paste stencil editing/verification&lt;br /&gt;
**Download free trial and ''print ''to a PDF for keeping a [http://en.wikipedia.org/wiki/Vector_graphics vector] formatted file&lt;br /&gt;
&lt;br /&gt;
[http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
&lt;br /&gt;
*Schematic/PCB editor&lt;br /&gt;
*Same guys from [http://www.circuitmaker.com/#why_circuitmaker circuitmaker.com]&lt;br /&gt;
*PCB symbol font [http://techdocs.altium.com/sites/default/files/wiki_attachments/231684/2014Mar29_Font-Truetype.zip download]&lt;br /&gt;
&lt;br /&gt;
=== Learning Resources ===&lt;br /&gt;
&lt;br /&gt;
[[RoboJackets Electrical Training]]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Electrical Videos|RoboCup Electrical Video Tutorials]]&lt;br /&gt;
&lt;br /&gt;
== Mechanical ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/index.php?title=Special:MultiCategorySearch&amp;amp;&amp;amp;wpInCategory1=RoboCup&amp;amp;wpInCategory2=Mechanical&amp;amp;limit=500&amp;amp;offset=0 List of all RoboCup Mechanical Works]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Mechanical 2015|RoboCup Mechanical 2015]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/index.php?title=Special:MultiCategorySearch&amp;amp;&amp;amp;wpInCategory1=RoboCup&amp;amp;wpInCategory2=Software&amp;amp;limit=500&amp;amp;offset=0 List of all RoboCup Software Works]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Software]]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Live Robot Execution|Manual Drive Control]]&lt;br /&gt;
&lt;br /&gt;
[[RC14IMU|IMU]]&lt;br /&gt;
&lt;br /&gt;
== Example Matches ==&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=nl9YupK0Y7U SKUBA(blue) vs. ZJUNlict(yellow)]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=vguuLGDdSnU Parsian(yellow) vs. KIKS(blue)]&lt;br /&gt;
&lt;br /&gt;
== Reference Documents ==&lt;br /&gt;
&lt;br /&gt;
[[Research Papers]]&lt;br /&gt;
&lt;br /&gt;
[[Resources for Learning|General Resources for Learning]]&lt;br /&gt;
&lt;br /&gt;
[[RCResources|RoboCup-Specific Resources for Learning]]&lt;br /&gt;
[[Category:RoboCup]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13980</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13980"/>
		<updated>2015-01-25T10:41:29Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=File:RadioPrototype.png&amp;diff=13979</id>
		<title>File:RadioPrototype.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=File:RadioPrototype.png&amp;diff=13979"/>
		<updated>2015-01-25T10:40:32Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13978</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13978"/>
		<updated>2015-01-25T10:09:30Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13977</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13977"/>
		<updated>2015-01-25T10:05:54Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13976</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13976"/>
		<updated>2015-01-25T10:04:42Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13975</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13975"/>
		<updated>2015-01-25T10:03:16Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13974</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13974"/>
		<updated>2015-01-25T10:01:29Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13973</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13973"/>
		<updated>2015-01-25T09:58:47Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13972</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13972"/>
		<updated>2015-01-25T09:57:41Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13971</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13971"/>
		<updated>2015-01-25T09:53:47Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13970</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13970"/>
		<updated>2015-01-25T09:49:29Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13969</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13969"/>
		<updated>2015-01-25T09:48:54Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13968</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13968"/>
		<updated>2015-01-25T09:46:47Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13967</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13967"/>
		<updated>2015-01-25T09:45:58Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13966</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13966"/>
		<updated>2015-01-25T09:45:32Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13965</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13965"/>
		<updated>2015-01-25T09:44:53Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13964</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13964"/>
		<updated>2015-01-25T09:44:14Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13963</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13963"/>
		<updated>2015-01-25T09:39:48Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13962</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13962"/>
		<updated>2015-01-25T09:39:08Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13961</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13961"/>
		<updated>2015-01-25T09:38:30Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13960</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13960"/>
		<updated>2015-01-25T09:35:00Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13959</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13959"/>
		<updated>2015-01-25T09:31:42Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13958</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13958"/>
		<updated>2015-01-25T09:27:20Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13957</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13957"/>
		<updated>2015-01-25T09:26:28Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13956</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13956"/>
		<updated>2015-01-25T09:25:27Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13955</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13955"/>
		<updated>2015-01-25T09:18:41Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13954</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13954"/>
		<updated>2015-01-25T09:15:33Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13953</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13953"/>
		<updated>2015-01-25T09:10:29Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13952</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13952"/>
		<updated>2015-01-25T09:09:02Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13951</id>
		<title>RoboCup: Redesign 2014-2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Redesign_2014-2015&amp;diff=13951"/>
		<updated>2015-01-25T08:59:55Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Control_Board_2011&amp;diff=13935</id>
		<title>RoboCup: Control Board 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Control_Board_2011&amp;diff=13935"/>
		<updated>2015-01-24T02:05:11Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup:_Control_Board_2011&amp;diff=13934</id>
		<title>RoboCup: Control Board 2011</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup:_Control_Board_2011&amp;diff=13934"/>
		<updated>2015-01-24T01:58:02Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=RoboCup&amp;diff=13933</id>
		<title>RoboCup</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=RoboCup&amp;diff=13933"/>
		<updated>2015-01-24T01:55:15Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:RoboCup-Competition-2014 DisplayBot.jpg|thumb|right|420px|RoboJackets Current Design at Joao Pessoa, Brazil]]&lt;br /&gt;
&lt;br /&gt;
The Georgia Tech RoboJackets RoboCup Small-Size League team competes in a 6-on-6 AI-driven soccer match against teams from around the world.&amp;lt;br/&amp;gt;The field is equipped with two overhead cameras, which act as the primary information source for the selection of plays and tactics.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;If you haven't already, subscribe to the [https://lists.gatech.edu/sympa/subscribe/robojackets-robocup RoboCup Mailing List].&lt;br /&gt;
&lt;br /&gt;
== Important Items ==&lt;br /&gt;
&lt;br /&gt;
*The [[RoboCup: Redesign 2014-2015|2014-2015 Redesign]]&lt;br /&gt;
*[[TDP|Team Description Papers (TDP)]]&lt;br /&gt;
*[http://inventory.robojackets.org/ Electrical Inventory]&lt;br /&gt;
*[http://wiki.robojackets.org/mediawiki/images/e/ef/DISPOSAL-OF-LIPO-BATTERIES.pdf Battery Disposal] &amp;lt;!--* [[BoardOrderRequest|Board Order Requests]]--&amp;gt;&lt;br /&gt;
*[http://robocupssl.cpe.ku.ac.th/ RoboCup Small Size League (SSL) Website]&lt;br /&gt;
*[http://learn.robojackets.org/ RoboJackets Learning]&lt;br /&gt;
*[[RoboCup System Archive|System Archive]]&lt;br /&gt;
&lt;br /&gt;
== Electrical ==&lt;br /&gt;
&lt;br /&gt;
[[Electrical Room Equipment]]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/index.php?title=Special:MultiCategorySearch&amp;amp;&amp;amp;wpInCategory1=RoboCup&amp;amp;wpInCategory2=Electrical&amp;amp;limit=500&amp;amp;offset=0 List of RoboCup Electrical Wiki Pages]&lt;br /&gt;
&lt;br /&gt;
[[Be A Great EE|How to be a Great Electrical Engineer]]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Electrical 2015|RoboCup Electrical 2015]]&lt;br /&gt;
&lt;br /&gt;
=== Control Board 2011 ===&lt;br /&gt;
&lt;br /&gt;
[[RoboCup: Control Board 2011|Control Board 2011c Reference Page]]&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/images/c/c3/RC_LightDecoder.jpg LED Indicator Reference Sheet]&lt;br /&gt;
&lt;br /&gt;
=== Reflow Oven ===&lt;br /&gt;
&lt;br /&gt;
[[RoboCup: Reflow Soldering Oven|Reflow Oven Project]]&lt;br /&gt;
&lt;br /&gt;
=== Design Programs ===&lt;br /&gt;
&lt;br /&gt;
[http://www.cadsoftusa.com/download-eagle/ CadSoft EAGLE]&lt;br /&gt;
&lt;br /&gt;
*Schematic/PCB editor&lt;br /&gt;
&lt;br /&gt;
[http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html Xilinx ISE Design Suite]&lt;br /&gt;
&lt;br /&gt;
*Verilog synthesis&lt;br /&gt;
*FPGA pin configurations&lt;br /&gt;
&lt;br /&gt;
[https://www.pentalogix.com/viewmate.php ViewMate]&lt;br /&gt;
&lt;br /&gt;
*Solder paste stencil editing/verification&lt;br /&gt;
**Download free trial and ''print ''to a PDF for keeping a [http://en.wikipedia.org/wiki/Vector_graphics vector] formatted file&lt;br /&gt;
&lt;br /&gt;
[http://www.altium.com/altium-designer/overview Altium Designer]&lt;br /&gt;
&lt;br /&gt;
*Schematic/PCB editor&lt;br /&gt;
*Same guys from [http://www.circuitmaker.com/#why_circuitmaker circuitmaker.com]&lt;br /&gt;
&lt;br /&gt;
=== Learning Resources ===&lt;br /&gt;
&lt;br /&gt;
[[RoboJackets Electrical Training]]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Electrical Videos|RoboCup Electrical Video Tutorials]]&lt;br /&gt;
&lt;br /&gt;
== Mechanical ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/index.php?title=Special:MultiCategorySearch&amp;amp;&amp;amp;wpInCategory1=RoboCup&amp;amp;wpInCategory2=Mechanical&amp;amp;limit=500&amp;amp;offset=0 List of all RoboCup Mechanical Works]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Mechanical 2015|RoboCup Mechanical 2015]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.robojackets.org/mediawiki/index.php?title=Special:MultiCategorySearch&amp;amp;&amp;amp;wpInCategory1=RoboCup&amp;amp;wpInCategory2=Software&amp;amp;limit=500&amp;amp;offset=0 List of all RoboCup Software Works]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Software]]&lt;br /&gt;
&lt;br /&gt;
[[RoboCup Live Robot Execution|Manual Drive Control]]&lt;br /&gt;
&lt;br /&gt;
[[RC14IMU|IMU]]&lt;br /&gt;
&lt;br /&gt;
== Example Matches ==&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=nl9YupK0Y7U SKUBA(blue) vs. ZJUNlict(yellow)]&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=vguuLGDdSnU Parsian(yellow) vs. KIKS(blue)]&lt;br /&gt;
&lt;br /&gt;
== Reference Documents ==&lt;br /&gt;
&lt;br /&gt;
[[Research Papers]]&lt;br /&gt;
&lt;br /&gt;
[[Resources for Learning|General Resources for Learning]]&lt;br /&gt;
&lt;br /&gt;
[[RCResources|RoboCup-Specific Resources for Learning]]&lt;br /&gt;
[[Category:RoboCup]]&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.robojackets.org/index.php?title=Electrical_Room_Equipment&amp;diff=13833</id>
		<title>Electrical Room Equipment</title>
		<link rel="alternate" type="text/html" href="https://wiki.robojackets.org/index.php?title=Electrical_Room_Equipment&amp;diff=13833"/>
		<updated>2015-01-06T19:39:25Z</updated>

		<summary type="html">&lt;p&gt;JonJones: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Test Instruments ==&lt;br /&gt;
&lt;br /&gt;
*Digital Multimeters&lt;br /&gt;
[[File:Fluke 115 Multimeter.jpg|thumb|none|225px|[http://en-us.fluke.com/products/digital-multimeters/fluke-115-digital-multimeter.html Fluke 115] Multimeter]][[File:Fluke 7III Multimeter.jpg|thumb|none|225px|Fluke 7III Multimeter]][[File:Extech 38389 Clamp Multimeter.jpg|thumb|none|225px|Extech 38389 Clamp Meter]]&lt;br /&gt;
[[File:HP 34401A Multimeter.jpg|thumb|none|300px|HP 34401A Bench Multimeter]]&lt;br /&gt;
&lt;br /&gt;
*Power Supplies&lt;br /&gt;
[[File:Mastech HY3005D-3 Powers Spply.jpg|thumb|none|300px|Mastech HY3005D-3 Variable Power Supply]][[File:Extech 382213 Power Supply.jpg|thumb|none|300px|Extech 382213 Variable Power Supply]]&lt;br /&gt;
&lt;br /&gt;
*Oscilliscope&lt;br /&gt;
[[File:HP 54602B Oscilliscope.jpg|thumb|none|225px|HP 54602B Oscilliscope]]&lt;br /&gt;
&lt;br /&gt;
*Function Generator&lt;br /&gt;
[[File:MP 33120A Function Generator.jpg|thumb|none|300px|HP 33120A Function Generator]]&lt;br /&gt;
&lt;br /&gt;
*Logic Analyzer&lt;br /&gt;
[[File:Saleae logic16 Logic Analyzer.jpg|thumb|none|225px|Saleae logic16 Logic Analyzer]][[File:Logic16 ScreenshoSat.jpg|thumb|none|300px|Screenshot showing the Saleae's logic16 capturing program]]&lt;br /&gt;
&lt;br /&gt;
*Digital Temperature Probe&lt;br /&gt;
&lt;br /&gt;
[[File:Temperature Probe.jpg|thumb|none|225px|Temperature Probe]]&lt;br /&gt;
*USB JTAG Adapter (Amontec JTAGkey clone - uses [http://www.ftdichip.com/Products/FT2232D.htm FT2232C])&lt;br /&gt;
*Measurement Station&lt;br /&gt;
[[File:EE Bench PC.jpg|thumb|none|300px|Bench Computer]]&lt;br /&gt;
&lt;br /&gt;
== Soldering ==&lt;br /&gt;
&lt;br /&gt;
*Soldering Stations&lt;br /&gt;
[[File:Weller WES51 Soldering Station.jpg|thumb|none|225px|Weller WES51 Soldering Station]][[File:Hakko 939 Soldering Station.jpg|thumb|none|225px|Hakko 939 Soldering Station]][[File:Hakko FA-400 Soldering Fan.jpg|thumb|none|225px|Hakko FA-400 Solder Fan]]&lt;br /&gt;
&lt;br /&gt;
*Hot Air&lt;br /&gt;
[[File:Aoyue Hot Air Station.jpg|thumb|none|225px|Aoyue Hot Air Rework Station]]&lt;br /&gt;
*Toaster Reflow Oven&lt;br /&gt;
*Anti-static Workbench&lt;br /&gt;
*Cold Storage Refrigerator&lt;br /&gt;
&lt;br /&gt;
== PCB Inspection ==&lt;br /&gt;
&lt;br /&gt;
*Bench Microscope&lt;br /&gt;
[[File:Circuit Inspection Microscope.jpg|thumb|none|225px|PCB Inspection Station]][[File:Aven ZipScope.jpg|thumb|none|225px|Aven USB ZipScope]]&lt;br /&gt;
&lt;br /&gt;
*PCB Holder &amp;amp; Bench Vise&lt;br /&gt;
[[File:Bench Clamps .jpg|thumb|none|300px|Benchtop Vise]]&lt;br /&gt;
&lt;br /&gt;
== Hand Tools ==&lt;br /&gt;
&lt;br /&gt;
*Wire Crimpers&lt;br /&gt;
[[File:Molex 638111000 Swall Gauge Crimpers.jpg|thumb|none|300px|Molex [http://www.digikey.com/product-search/en?KeyWords=63811-1000&amp;amp;WT.z_header=search_go 63811-1000] Crimpers]]&lt;br /&gt;
[[File:Molex Ratching Crimpers.jpg|thumb|none|300px|Molex Crimpers]]&lt;br /&gt;
[[File:Large AWG Wire Crimpers 2.jpg|thumb|none|300px|Large Wire Crimpers]]&lt;br /&gt;
&lt;br /&gt;
*Heat Gun&lt;br /&gt;
[[File:Steinel HL1910E Hot Air Gun.jpg|thumb|none|225px|Steinel HL1910 Heat Gun]]&lt;br /&gt;
&lt;br /&gt;
== Desired Equipment ==&lt;br /&gt;
*[http://www.rigolna.com/products/digital-oscilloscopes/ds2000a/ds2072a/ Rigol DS2072] Oscilloscope with firmware upgrade&lt;br /&gt;
*[https://www.sparkfun.com/products/9544 Bus Pirate]&lt;br /&gt;
*Soldering Helping Hands&lt;/div&gt;</summary>
		<author><name>JonJones</name></author>
		
	</entry>
</feed>