Difference between revisions of "RoboCup: Redesign 2014-2015"
| Line 438: | Line 438: | ||
| *Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration] | *Determine power switch [https://redmine.robojackets.org/issues/345 placement and integration] | ||
| + | **''Option 1: ''Use a small switch paired with a relay | ||
| + | **''Option 2:'' Use standard mechanical switch | ||
| *Research switching regular modules | *Research switching regular modules | ||
| − | **[http://www.digikey.com/product-detail/en/OKI-78SR-5 | + | **[http://www.digikey.com/product-detail/en/OKI-78SR-5/1.5-W36-C/811-2196-5-ND/2259781 OKI-78SR] module | 
| ==== Completed ==== | ==== Completed ==== | ||
Revision as of 05:26, 25 January 2015
Contents
Phase I: Techanical Analysis
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.
Competition 2014 documentation
Team Description Papers (TDP)
Phase II: Design
During the design phase, specifications are determined for each section of the robot. Experimental results are documented here from all quantitative findings. This phase is also where the high-level ideas from Phase I are tracked to ensure completion.
Logical Controlling Unit
To Do
- Successfully communicate over SPI with a current FPGA and mbed
Completed
- Build development board for testing FPGA configuration from mbed's flash storage
- Tested and confirmed working
 
- Obtain mbeds for robot use
- How: 15 mbeds donated by ECE department
 
Mechanical/Electrical Integration
To Do
- Research options for using Altium for schematic and board layout designs
- Contact them for a 30 day trial
 
- Determine best solution for integrating serial identification to mechanical bases
- Add connection header for ball sensor to control board
- Test motor wire modifications before working on the entire batch of motors
- Determine kicker connections and integration
- Determine options using quarter-turn screws for electrical board attachment
Completed
- Determine location and placement for dribbler motor header
- Update hall connection header to right angled one
- Add pin locations to all connection housings in CAD part files
- Update the 14-pin connection header (female) for the control-to-motor board connection
- Finalize method for adjusting motor wire lengths when motors arrive
- Decision: Unsolder from motor's PCB, trim to length, and resolder to motor's PCB
- Reason: Did not want to delay ordering motors any futher & hand soldering results in higher yields compared against hand crimping
 
- Determine placement of battery location
Radio
Current protocol [LINK TO BE CREATED & UPDATED]
To Do
- Obtain breakout boards for CC1201 transceivers with integrated ANT-916-CHP antenna
- Order numerous CC1201 samples from TI
- Current quantity: 21
 
- Current quantity: 
- ?Successfully communicate using two (2) CC1201 transceivers and two (2) mbeds
- Research and determine best steps for structuring radio protocol with primary and seconday frequencies
- The Crazyflie project has basic radio documentation for how they implemented real-time communication with room for expansion
 
- Test packet optimizations - Nanopb is promosing for this
Completed
- Successfully communicate using two (2) nRF24L01+ transceivers and two (2) mbeds
- Result: Task abandoned. Determined that a 2nd frequency band provided only nominal benefits
 
- Test methods using breakout boards and compare data rates
- Result: Packet processing (~60 bytes) for receptions estimated to consume0.2msto0.3msof processing time @60 packets/sec
 
- Result: Packet processing (
- Determine optimal secondary frequency for base station updates
- Decision: End result's data rate is only nominally benefitial for high-throughput broadcasting. No 2nd transceiver
 
- Research integration options of the CC1111 and nRF24LU1+
- Decision: Do not use SoC parts for the base station
- Reason: Keep radio software on the mbed platform's C++ libraries (SoC would require additional C code for the base station)
 
- Order five (5) CC1111 transceivers from TI
- Successfully communicate using two (2) CC1101 transceivers and two (2) mbeds
- Obtain breakout boards for CC1101
- How: Added SMA antenna connector to breakout boards from 2008 fleet
 
- Obtain breakout boards for nRF24L01+
- How: eBay
 
FPGA
A few minor changes to the FPGA's Verilog code must be made for the 2015 redesign. This includes migrating the [2C] interface with the kicker board to the mbed platform & enhancing encoder connections to support the new differential signals.
Setting up a computer for Verilog development
- Create an account on Xilinx's website
- The Xilinx program is called ISE Design Suite (this is on ECE's virtual lab pool computers - can connect to it from anywhere).
- The desired download link is found under the ISE Design Suite heading
- The current version at the time of this writing is 14.7 (size: ~6GB)
- The ISE Design Suite is no longer supported
- The newer version of Xilinx's software is called Vivado Design Tools, but it does not support the Spartan-3E FPGA
 
- Install the program to your computer
- The installer will prompt you to select an edition to install
- Select ISE WebPACK
 
 
- The installer will prompt you to select an edition to install
- Obtain a license at the Xilinx page for license management
- Open the link sent to you after requesting a license
- Navigate to the Manage Licenses tab
- Download the license called ISE WebPACK License
 
- Save the downloaded license file to the ~/.Xilinxdirectory of your computer- The program will require you to locate the license's path at first startup
 
Mandatory user-provided files for Verilog synthesis
- Verilog files(s)
- Defines the HDL implementation
- File Extension: .v
 
- Xilinx Constraint File
- Defines parameters for correct synthesis to the hardware (pin mappings)
- File Extension: .ucf
 
FPGA Commands
| Command | Read/Write | Definition | 
|---|---|---|
| 0x00 | Read Only | Receive Data Readings | 
| 0x01 | Read/Write | Set motor speeds | 
Example SPI Transfer (0x00 Read)
| Array Index | Bit(s) | Definition | 
|---|---|---|
| 0 | 7..0 | FPGA Version ( 0x04 in 2014) | 
| 1 | 7..0 | Encoder 1 Count (LSB) | 
| 2 | 7..0 | Encoder 1 Count (MSB) | 
| 3 | 7..0 | Encoder 2 Count (LSB) | 
| 4 | 7..0 | Encoder 2 Count (MSB) | 
| 5 | 7..0 | Encoder 3 Count (LSB) | 
| 6 | 7..0 | Encoder 3 Count (MSB) | 
| 7 | 7..0 | Encoder 4 Count (LSB) | 
| 8 | 7..0 | Encoder 4 Count (MSB) | 
| 9 | 7..0 | Motor Fault | 
| 10 | 7..0 | Kicker Status | 
| 11 | 7..0 | Kicker Voltage | 
| 12 | 7..0 | Hall Count 1 | 
| 13 | 7..0 | Hall Count 2 | 
| 14 | 7..0 | Hall Count 3 | 
| 15 | 7..0 | Hall Count 4 | 
| 16 | 7..0 | Hall Count 5 | 
Example SPI Transfer (0x01 Write)
| Array Index | Bit(s) | Definition | 
|---|---|---|
| 0 | 7..0 | Packet Type ( 0x01) | 
| 1 | 7..0 | Motor 1 Speed (LSB) | 
| 2 | 7..4 | Reserved (Always  | 
| 3..2 | Motor 1 Drive Mode | |
| 1..0 | Motor 1 Speed (MSB) | |
| 3 | 7..0 | Motor 2 Speed (LSB) | 
| 4 | 7..4 | Reserved (Always 0x00) | 
| 3..2 | Motor 2 Drive Mode | |
| 1..0 | Motor 2 Speed (MSB) | |
| 5 | 7..0 | Motor 3 Speed (LSB) | 
| 6 | 7..4 | Reserved (Always 0x00) | 
| 3..2 | Motor 3 Drive Mode | |
| 1..0 | Motor 3 Speed (MSB) | |
| 7 | 7..0 | Motor 4 Speed (LSB) | 
| 8 | 7..4 | Reserved (Always 0x00) | 
| 3..2 | Motor 4 Drive Mode | |
| 0..1 | Motor 4 Speed (MSB) | |
| 9 | 7..0 | Dribbler Motor Speed (LSB) | 
| 10 | 7 | Kicker Charge | 
| 6 | Chipper Enable ( 1=Chip,0=Kick) | |
| 5..4 | Reserved (Always 0) | |
| 3..2 | Dribbler Motor Drive Mode | |
| 1..0 | Dribbler Motor Speed (MSB) | |
| 11 | 7..0 | Kicker Power (<, 0xFF=6ms) | 
Required Pins
- MOSI
- MISO
- SCK
- nCS
- PROG_B
To Do
- Transition the [2C] bus lines to the microcontroller
- Update Verilog for new differential encoder signals (A+, A-, B+, B-)
- ( (A+) + (A-) == 0 ) should be true for no errors
 
- Update Verilog for driving a bootstrap circuit
- Add a writable register for enabling/disabling motor encoders
Completed
- Obtain Spartan-3E development board
- How: Found a used board on eBay
 
- Determine required pins for connecting FPGA
- Documented above
 
- Document steps for synthesizing Verilog files
- Documented above
 
- Successfully configured an FPGA from the mbed's on board flash storage
- Successfully synthesized a Hello WorldVerilog file using Xilinx's ISE Webtools
- Determine what communications occur over the SPI bus
- Documented in the tables above
 
- Finalized that the 2015 motors will use the current FPGA
- Decision: Xilinx Spartan-3E
- Reason: FPGA is only used for motor control & no futher capabilities are needed
 
Motors
Maxon 50W Custom Motor Drawing
To Do
- Successfully control one of the new 50W motors with an mbed and Spartan-3E interface
- Modify four (4) of the sample motors to accomidate integration into a prototyped robot
- Last Task: Place connectors onto the wires for all four (4) motors
 
- Order motor controller boards
- Update: Underway
 
- Test different circuits and document data result set to wiki
Completed
- Order 3 DRV8301 Pre-Drivers from TI
- Update: Many samples from TI are in the electrical room now
 
- Finalize the protyping designs of single motor controllers
- Order motors
Motion Sensing & Motion Control
To Do
Completed
- Order breakout board for MPU-9250
Error Detection & Indication
To Do
- Determine best solution for controlling the WS2812B RGB LED
Completed
- Order a Bus Pirate
- Order breakout board for RGB LED
- Create breakout board for MCP23017 and place on GitHub repository
Kicker Board & Detection
To Do
- Create a small microcontroller interface for the kicker board
- Original Plan: Use a MSP430G2x from TI
- Updated Plan: Use one of Atmel's ATtiny microcontrollers
- Why: Much easier to implement a custom ISP with the mbed
- Can use the Arduino IDE
- mbed library already exists
 
 
- Why: Much easier to implement a custom ISP with the mbed
 
- Generate snapshots of the 2011 kicker board graphs for reference
- Use a Serial Identification Chip for unique detection of mechanical bases
- Measure the current from kicker board currently used
- Data exists for the 2011 kicker board. There is a 2011 kicker board (barebone) equipped with a silicon-controlled rectifier and shunt resistor for capturing oscilliscope data for this. Use a digital oscilliscope and export sampled data for waveform recreation/analysis.
 
- Update the kicker board to accommodate the new battery's voltage of 18.5V
Completed
- Determine the number of capacitors that will be used
- Decision: 4
 
- Decision: 
Battery & Power
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.
To Do
- Determine power switch placement and integration
- Option 1: Use a small switch paired with a relay
- Option 2: Use standard mechanical switch
 
- Research switching regular modules
- OKI-78SR module
 
Completed
- Change the first switching regulator to accomidate for the higher voltage battery
- New part number: LM25010
 
- Finalized the new design's battery selection
- Result: Zippy Flightmax 2200mAh 5S 40C
 
Battery Accessories
- Connector: XT60 (Male)
- Connector Lead: XT60 12AWG 10cm
- Charging Cable: XT60 Banana Plug
- Balancing Board: Charge/Balance Board
All Batteries
The following list contains batteries that were considered and known about during the battery selction period. The list is not inclusive.
- Zippy Flightmax 2500mAh 5S 20C
- Zippy Flightmax 1800mAh 5S 40C
- Zippy Compact 2450mAh 5S 35C
- Turnig 2200mAh 5S 30C
- Thunder Power 2000mAh 5S 16C
Phase III: Production
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.
Electronics Assembly
General
- Sparkfun's PCB assembly process
- EEVblog on anti-static bags for component storage
Solder Paste Stencil Creation
SparkFun uses SolderMask, Inc for their stencil needs
- Laser cutting kapton film
- Material: Kapton Polyimide Film
- Size: 12" x 12"
- Thickness: 0.005"
 
- Size: 
- Test Equiptment
- Laser Cutter: Trotec Speedy 300 (140W)
 
- Laser Cutter: Trotec Speedy 300 (
- Test Results
- Will not produce required results for making a stencil
 
 
- Material: Kapton Polyimide Film
- Chemical etching aluminum
- Untested but very promosing
 
- Untested but very promosing
