High Resolution AMR Compass Dr. Andy Peczalski Professor Beth Stadler Pat Albersman Jeff Aymond Dan Beckvall Marcus Ellson Patrick Hermans Honeywell
Agenda Introduction/Abstract – Marcus E MATLAB Simulations – Marcus E Software – Pat H Hardware – Jeff A Testing – Pat A Results – Dan B Will just go down the line Honeywell
Abstract This project’s purpose is to improve the accuracy of a digital compass by using multiple compass IC’s. These will work together to collectively improve the accuracy of the overall system. Using the HMC6532 compass (discussed later) Using most accurate regions of each IC (discussed later) Honeywell
Increased precision and repeatability is also desired. Abstract One benchmark is to try to increase the accuracy of the system by the number of sensors used. Increased precision and repeatability is also desired. In our case, 10 sensors in an attempt to have 10x accuracy. Precision and repeatability to be discussed later. Honeywell
Customized software to manage the implementation is also necessary. Abstract Customized hardware is necessary to implement the multiple sensor system. Customized software to manage the implementation is also necessary. Hardware to be discussed later. Software to be discussed later as well. Honeywell
MATLAB Used to simulate single and multiple sensors before our hardware was complete Provided a vehicle to test the performance of our heading calculation algorithms 1702 lines of MATLAB simulations Image from mathworks Honeywell
Sensor Placement The placement of the sensors must create a system accurate across 360 degrees Each individual bridge of each sensor can be simulated independently in MATLAB Multiple arrangements can be simulated to determine the best implementation 2 bridges per sensor offset 90 degrees from each other. Linear region is the most accurate. Honeywell
Orientation Simulations Single IC Senor Output Wave Form: Start by showing the singe IC output. Describe in some detail the linear and non linear region and why the non linear region is bad. First Spacing idea was that it takes the wave from 360 degrees to repeat and we want to space NumICs in that region. Therefore: 360/NumIC = 360/10 = 36 Degree Spacing This creates what appears to be an evenly distributed field, but note that optimal axes intersect (draw a line at zero) and are spaced 18 degrees apart. Data Appears Evenly Spaced ICs at: 0, 36, 72, 108, 144, 180, 216, 252, 288, 324 Degrees Honeywell
Orientation Simulations Single IC Senor Output Wave Form: Next we realized that if we space each linear region (aka each color) evenly and such that none overlapped we should create a more dense and evenly spaced region of linear regions. Since there is a linear region every 90 degrees and we have: 90/NumICs = 90/10 = 9 Degree Spacing Data Evenly Spaced ICs at: 0, 9, 18, 27, 36, 45, 54, 63, 72, 81 Degrees Honeywell
MATLAB C VB Software Three software realms involved with this project: Honeywell
C Written in MPLab CCS complier Run on PIC 18f4550 1326 Lines of C Version 8.0 CCS complier Version 4 Run on PIC 18f4550 1326 Lines of C 2532 Lines of Assembly Ccsinfo.com Microchip.com Honeywell
Sensor Communication Sensor Commands Heading Calibrate Re-address Adjusted voltages Raw voltages Calibrate Re-address Number of Summed measurements Talk on the ability to change ram and EEPROM values Image from philips Honeywell
Serial Communication Allows Compass to display results Very helpful in debugging Allows for VB to control sensor Easy to implement in CCS 115200 Baud allowable from the 20Mhz crystal Baud of 115200 from the 20Mhz crystal Image from wikipedia Honeywell
Honeywell
Honeywell
Weighted Averaging Honeywell Baud of 115200 from the 20Mhz crystal Image from wikipedia Honeywell
Baud of 115200 from the 20Mhz crystal Image from wikipedia Honeywell
VB Provides an end-user interface Synchronizes the compass and the rotation table Allows for automated data acquisition Provides a repeatable test benching system Requires a third board to handle adjusted ground on PMC 4733 Lines Done by dan Pmc interface voltage problem Honeywell
Done by dan Honeywell
Done by dan Honeywell
Honeywell Serial Serial Personal Computer (VB) PMC Controller PIC18F4520 (C) Rot. Table Parallel Sensors I2C Honeywell
Final Hardware Abstract Initial Design Problems with Initial Design Changes Made Proposed Final Design First look at high level overview of HW Brief look at our initial design Describe what problems we ran into with the hardware Talk about changes made Give a proposed final design Honeywell
Abstract One compass, two boards Main Board Daughter Board Microcontroller Daughter Board Sensors MB is the brains DB has the sensors Honeywell
Initial Design Main Board This is what MB looks like Honeywell
Main Board Essentially a controller board Microcontroller RS-232 Communication I2C Communication Interfacing Daughter Board Front Panel Features Honeywell
Initial Design Daughter Board This is what DB looks like Honeywell
Daughter Board Three functional systems Sensor array Power MUX Laser Features Honeywell
Daughter Board Dimensions Constraint: One of the dimensions must be less than 3.5” Opening of zero-gauss chamber is 3.5” in diameter 3.132” Zero Gauss Chamber provided by Honeywell Honeywell 3.492”
The Daughter Board meets size requirements Dimensions Constraint: One of the dimensions must be less than 3.5” Opening of gauss-free chamber is 3.5” in diameter 0.73” Laser mount height is 0.73” 3.132” The Daughter Board meets size requirements Honeywell
Daughter Board HMC6352 Honeywell Feedback Networks Power LED Clock Look at HMC6352 Ground Data Decoupling Capacitor Honeywell
Daughter Board I2C Bus Clock Data I2C bus Honeywell
Daughter Board Power MUX Design challenge: Need to assign unique address to each sensor Each sensor is factory installed with address 0x42 In order to change addresses, a command must be sent to a sensor on the bus This command message contains: How to change address of individual sensor if every sensor is receiving the command? Start Address [Ack] Command Stop Honeywell
Daughter Board Power MUX Solution: Need to isolate communication to individual sensor How? Burn-in Socket Use a network of jumpers Multiplex I2C to each sensor Multiplex power to each sensor Honeywell Photo taken from http://www.locknest.com/newsite/products/qfn/index.htm
Daughter Board Power MUX We chose to multiplex power Advantages Saves power Simplifies troubleshooting Disadvantages Signal loss through MUX Other unknowns… Honeywell
Problems with Initial Design Main Board None Daughter Board I2C bus When powered off, the sensors interfere with I2C bus 5V data signal is pulled down to 2.5V Therefore communication will not work Problems not related to design Sensor 3 will not communicate Will not hinder project; algorithm will still work Slight loss of sensitivity at sensor 3’s axes of sensitivity (27° and 117 °) Sensors interfere with I2C bus because when they are powered off, they have a low resistance (because of the PIC?) Honeywell
Changes to Initial Design I2C bus fix Remove MUX and feed power to all sensors Cut I2C traces Add jumpers to I2C vias and address them one by one Connect all jumpers to I2C bus Honeywell
Changes to Initial Design Other changes No laser mount Laser mounted directly to plexi-glass case Saves cost ($25) Honeywell
Changes to Initial Design Other changes Main Board Layout Before After Honeywell
Proposed Final Design Due to I2C bus issues, our current design does not work Two options Power all sensors and use burn-in or jumpers socket to isolate sensors Multiplex I2C bus Honeywell
Proposed Final Design Option 1: Power all sensors and use socket/jumpers Advantages No MUX needed Reduces surface area of board Reduces signal loss of MUX Sleep mode on sensors Save power I2C bus has not been tested in this mode Honeywell
Proposed Final Design Option 1: Power all sensors and use socket/jumpers Disadvantages Sockets can be expensive Footprint of HMC6352 is not common Hard to find socket No disadvantages if we add jumpers Honeywell
Proposed Final Design Advantages Disadvantages Option 2: Multiplex I2C bus Advantages No need for a socket Sleep mode to save power (not tested) Disadvantages Side effects of multiplexing I2C unknown Honeywell
Testing Prototype Final Honeywell
Test Setup Honeywell
Precision Repeatability Accuracy ß field Honeywell Compare Compare Talk about the zero gauss chamber Rotating sensor array to find the B field with each sensor. ß field Compare Honeywell
Prototype Testing Given one sensor CCS compiler Honeywell
Final Testing Elements of Final testing Pretesting (zero gauss values) Pretesting (offsets) Testing (accuracy, precision, repeatability) Honeywell
Pre-testing (zero gauss) Place sensors in the zero gauss chamber Rotate 360 deg. while taking readings Analyze data and get zero gauss values Honeywell
Pre-testing (offsets) Place sensors in artificial magnetic field Run VB script that finds sensor locations Finds zero gauss value of each chip Works using relativity Bang bang control Analyze data and find chip placements Hardcode this to software Honeywell
Raw voltage readings with offsets Honeywell
Raw voltage readings with offsets Honeywell
Accuracy Test Procedure Determine the B field Take measurement Find the zero crossing on each axis B field should be 90 degrees from zero crossing Average the 20 axes results Take measurement Compare result to actual Rotate to different position Repeat steps 2-5 113 deg 23 deg Honeywell
Results Results Comprise of: Determining Specs Comparison of Specs to Controls Ways to improve Future for Nanowires? Honeywell
Results: Specs - Repeatability Comprised of 5 readings taken at 0, 90, 180,270 Our Product: Min = +- 0.015 Max = +-0.089 Control: Min = +- 0.033 Max = +-0.051 Honeywell = +- 0.030 Max = +- 0.120 Honeywell
Results: Specs - Precision This is for rotating 1 Deg for full 360, and graphed is the error in displayed amount moved Honeywell
Results: Specs - Accuracy THe PMC is set to be with respect to true direction, the error in respected headings is graphed The accraucy will be the worst of these errors. Honeywell
How Can We Improve Currently using arcTan(x/y) to compute heading This assumes we have X and Y which need to be 90 degrees apart In practice this is not true, we found this is actually only within +-8 degrees Use different algorithms, better weighting More Sensors Honeywell
Future For Nanowires? Nanowires are inherently less accurate Means greater room for improvement Small enough to use more than 10 bridges Weighting should have more of an effect Will have completely different obstacles All in all, from the results of this feasibility test they look very promising Honeywell
Conclusion Questions/ Comments? Demo Upstairs? Honeywell