Compass Module AppMod (#29113) Electro-Mechanical Compass

Similar documents
Parallax Servo Controller (#28023) Rev B 16-Channel Servo Control with Ramping

Board Of Education, Revision C (28150)

In this activity, you will program the BASIC Stamp to control the rotation of each of the Parallax pre-modified servos on the Boe-Bot.

Chapter #5: Measuring Rotation

ZX-SERVO16. Features : Packing List. Before You Begin

HB-25 Motor Controller (#29144)

Directions for Wiring and Using The GEARS II (2) Channel Combination Controllers

Web Site: Forums: forums.parallax.com Sales: Technical:

Experiment #3: Micro-controlled Movement

Infrared Remote AppKit (#29122)

Mech 296: Vision for Robotic Applications. Logistics

PING))) Ultrasonic Distance Sensor (#28015)

Chapter 3: Assemble and Test Your Boe-Bot

Parallax MHz RF Transmitter (#27980) Parallax MHz RF Receiver (#27981)

Chapter #4: Controlling Motion

Controlling Your Robot

B Robo Claw 2 Channel 25A Motor Controller Data Sheet

the Board of Education

Introduction to the ME2110 Kit. Controller Box Electro Mechanical Actuators & Sensors Pneumatics

ME 2110 Controller Box Manual. Version 2.3

Professional Development Board (#28138)

High Speed Continuous Rotation Servo (# )

Feed-back loop. open-loop. closed-loop

B RoboClaw 2 Channel 30A Motor Controller Data Sheet

PAK-Vb/c PWM Coprocessor Data Sheet by AWC

Hitachi HM55B Compass Module (#29123)

RFID Reader Module (#28140) RFID 54 mm x 85 mm Rectangle Tag (#28141) RFID 50 mm Round Tag (#28142)

Contents. Part list 2 Preparartion 4 izebot. izebot Collision detection via Switch. izebot Serial Communication. izebot Remote Control

Web Site: Forums: forums.parallax.com Sales: Technical:

EE 314 Spring 2003 Microprocessor Systems

HexCrawler Kit Assembly, Tuning and Example Program

Chapter 2: Your Boe-Bot's Servo Motors

LaserPING Rangefinder Module (#28041)

PROGRAMMABLE CFE PULLER

G3P-R232. User Manual. Release. 2.06

AppKit: Using the LTC bit Analog-to-Digital Converter

Ocean Controls KT-5221 Modbus IO Module

Blue Point Engineering

Microcontroller interfacing

Nifty Networking Chips Link Stamps Far and Wide Use an RS-485 transceiver for reliable network comms

-- see ' ... ' Started... ' Updated MAR 2007

WEEK 5 Remembering Long Lists Using EEPROM

Serial 8-Servo Controller User s Guide

Get Your Motor Runnin

Servo Switch/Controller Users Manual

Simple Servo USER Instructions

' Turn off A/D converters (thereby allowing use of pins for I/O) ANSEL = 0

Advanced Mechatronics 1 st Mini Project. Remote Control Car. Jose Antonio De Gracia Gómez, Amartya Barua March, 25 th 2014

The Mechatronics Sorter Team Members John Valdez Hugo Ramirez Peter Verbiest Quyen Chu

WWVB Receiver/Decoder With Serial BCD or ASCII Interface DESCRIPTION FEATURES APPLICATIONS

Servo 8 Torque Board Doc V 1.2

Understanding Signals Student Guide

GP4 PC Servo Control Kit 2003 by AWC

UART2PPM. User s Guide. Version 2.04 dated 02/20/16. Gregor Schlechtriem

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range

Input/Output Control Using Interrupt Service Routines to Establish a Time base

TEAM DIGITAL. SC82 Servo Controller

Cost efficient design Operates in full sunlight Low power consumption Wide field of view Small footprint Simple serial connectivity Long Range

Project Final Report: Directional Remote Control

High Current DC Motor Driver Manual

A BS2px ADC Trick and a BS1 Controller Treat

WTDIN-M. eeder. Digital Input Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies

Figure 1. CheapBot Smart Proximity Detector

Hardware Guide. Control Made Simple. Model 401A Signal Generator

Serial Servo Controller

Jaguar Motor Controller (Stellaris Brushed DC Motor Control Module with CAN)

X3M. Multi-Axis Absolute MEMS Inclinometer Page 1 of 13. Description. Software. Mechanical Drawing. Features

Use and Copyright Microcontroller Motion Activity #1: Connecting and Testing the Servo Servo on Board of Education Rev. C Servo on Board of Education

THE NAVIGATION CONTROL OF A ROBOTIC STRUCTURE

User's Manual. ServoCenter 4.1. Volume 2: Protocol Reference. Yost Engineering, Inc. 630 Second Street Portsmouth, Ohio

QUASAR PROJECT KIT # /24 HOUR GIANT CLOCK

Need Analog Output from the Stamp? Dial it in with a Digital Potentiometer Using the DS1267 potentiometer as a versatile digital-to-analog converter

The "FISH" Quad Hand Sensor

PART. Maxim Integrated Products 1

PAK-VIIIa Pulse Coprocessor Data Sheet by AWC

WTDOT-M. eeder. Digital Output Module. Technologies FEATURES SPECIFICATIONS DESCRIPTION. Weeder Technologies

3V TRANSCEIVER 2.4GHz BAND

USING RS-232 to RS-485 CONVERTERS (With RS-232, RS-422 and RS-485 devices)

The SCX18.S provides dual high power regulators capable of supplying 3A to the connected servos from an external Li-Pol or

Thinking Robotics: Teaching Robots to Make Decisions. Jeffrey R. Peters and Rushabh Patel

TLE5014 Programmer. About this document. Application Note

Operation/Reference Guide NXP-CPI16. NetLinx Custom Panel Interface. Custom Panel Interfaces

Balancing Robot. Daniel Bauen Brent Zeigler

HexCrawler Kit Assembly, Tuning and Example Program

Wireless Technology in Robotics

'{$STAMP BS2} '{$PBASIC 2.5}

Stensat Transmitter Module

EVDP610 IXDP610 Digital PWM Controller IC Evaluation Board

MADEinUSA OPERATOR S MANUAL. RS232 Interface Rev. A

Multi-Vehicles Formation Control Exploring a Scalar Field

InnobotTM User s Manual

PIC Functionality. General I/O Dedicated Interrupt Change State Interrupt Input Capture Output Compare PWM ADC RS232

Checking Battery Condition and Multiplexing I/O Lines

Brushed DC Motor Control. Module with CAN (MDL-BDC24)

Dynamic Wireless Decorative Lights

SC16A SERVO CONTROLLER

The plan... CSE 6324 From control to actuators Michael Jenkin Office Hours: Sherman 1028 Wed 3-4. From the bottom up...

I-7088, I-7088D, M-7088 and M-7088D User Manual

The MP SERIES CONTROLLER. User s Manual. ISE, Inc.

SumoBot Mini-Sumo Robotics Assembly Documentation and Programming

Transcription:

599 Menlo Drive, Suite 100 Rocklin, California 95765, USA Office: (916) 624-8333 Fax: (916) 624-8003 General: info@parallax.com Technical: support@parallax.com Web Site: www.parallax.com Educational: www.parallax.com/sic Compass Module AppMod (#29113) Electro-Mechanical Compass Introduction Don t know where to take your project next? The Compass Module can give your application direction. Typically, most people are relegated to spending and arm and a leg to buy a GPS unit and then invest a ton of time writing software to interface to it. Thanks to the folks at the Dinsmore Instrument Company, this is no longer difficult, nor expensive. Their new little compass sensor provides a low cost, direct interface, direction sensor that is perfect for many applications. Additionally, we added a microprocessor to the system to make the module as useful and as easy to use as it can be. Packing List Verify that your Compass AppMod kit is complete in accordance with the list below: Compass Module AppMod 2x10 Pin male-female socket extension Aluminum Stand-off, 4-40 thread, 7/8 long, male-female 4-40 nut 4-40 pan-head screw, ¼ long Features Intuitively depicts eight directions with just four LEDs. Serial interface auto-bauds to any standard baudrate from 2400-38.4K. Direction feedback scheme signals when a particular heading is reached. Serial selectable low-power mode for battery powered applications. Serial selectable operational mode makes it easy and intuitive to read. How it Works The Dinsmore Compass Sensor is an electro-mechanical device. As a result, it is sensitive to shock and the relative angle that it operates at. The manufacturer of the module has dampened the mechanical movement of the compass to give it a liquid filled behavior. Roughly, it has a 3.5 second response time for a 90 rotation. The sensor needs to operate parallel to the ground, plus or minus 5. Considering all this, the sensor is perfect for a small, indoor robot, but may not be suitable for an RC airplane-based application. The on-board microcontroller handles the serial communication, reads the compass sensor, and controls the LEDs. Unlike a standard mechanical compass, the Compass Module AppMod is easy to read and intuitive to use in that when the W LED is on, the heading is west. A northeast heading is represented by both the N and E LEDs on. However, on a standard compass, when the needle points to the west your actual heading is east (this is because the needle of a standard compass always points north). Parallax, Inc. Compass Module AppMod (#29113) 3/2005 1

The serial interface provides a convenient, easy to use interface that uses only one I/O line. Some serial commands execute almost instantaneously, but others require some time to execute before the module is ready to receive another command. So, please pay careful attention to the examples included herein. Operational Modes The Compass Module has three user selectable operational modes: Stand Alone Mode, Low Power Mode, and Compass Emulation Mode. All modes are run-time selectable via serial commands. All of the serial commands are discussed in detail in the Commands section of the document. The Compass Module powers up in Stand Alone Mode. In Stand Alone Mode, the LEDs will update in real-time (as you move the module about) but will not respond to serial commands. Once you pulse the serial data line P5 low, the Compass Module will switch to Serial Mode and respond to subsequent valid serial commands. To revert back to Stand Alone Mode, you can either send an A command, or cycle power. In Low Power Mode, the LEDs will not illuminate although the Compass Module will still respond to serial commands. The Compass Module powers up in Normal Power Mode (LEDs enabled). If Low Power Mode is desired, the user may enable this mode by sending a C command. Current consumption of the Compass Module is detailed in the Electrical Specifications section of this document. In Compass Emulation Mode, the reported heading and the indication on the LEDs will behave just as a standard mechanical compass. In other words, the needle in the standard compass will simply point north always. In this case, it is up to the user to infer the actual heading. The default mode of the Compass Module is to indicate the actual heading, not behave as a simple compass. If Compass Emulation mode is desired, the user may enable this mode by sending the C command. Serial Protocol The host transmits commands serially to the Compass Module. The command syntax is structured to facilitate the allowed commands and prevent bus contention in the event that more than one AppMod is on the same serial line. The Compass Module uses I/O pin 5 (P5) for the serial interface. Since the Compass Module needs a little processing time both for power up and between some messages, it may be necessary to have a delay before each serial message. A pause 1 command provides an adequate delay.!cm0<cmd><x> Commands ARE case sensitive: Caps only! Command or configuration parameter. Command, i.e.? = heading, I = Initialize, etc. Unit ID (currently, only one Compass Module per bus is supported) AppMod Prefix (2 byte address denoting the type of AppMod addressed) Preface Character alerts units on the bus that this message is an AppMod command and serves to help the Compass Module sync up with the host. 2 Parallax, Inc. Compass Module AppMod (#29113) 3/2005

Switching to Serial Mode Here are three different ways to switch from Stand Alone mode to Serial Mode. Any one of these Methods will do the job. Just place one of them in the initialization area of your code (it should execute once). ' Method I HIGH 5 PULSOUT 5, 500 INPUT 5 ' Method II LOW 5 PAUSE 1 INPUT 5 ' Must initialize the line high ' Low going pulse for 1 msec. ' Return the line to high-z mode. ' Bring the line low ' for 1 msec. ' Return the line to high-z mode. ' Method III ' Use 9600 (or slower) baudrate SEROUT 5,84+$8000,[0] ' Sending a 0 pulses the serial line low. After the Compass Module is switched to Serial Mode, serial commands may be issued. Please refer to the Sample Programs section for working examples of how to use these commands. Commands A Switch the Compass Module from Serial Mode to Stand Alone Mode. SEROUT 5, 188+$8000, ["!CM0A"] This command will switch the Compass Module to Stand Alone Mode. The LEDs will update in realtime, but the module will not respond to serial commands. C Configure the Compass Module mode control bits. SEROUT 5, 188+$8000, ["!CM0C",%10] Enable Compass mode and LEDs With this command, the Compass Module s configuration may be altered under serial control by setting and/or clearing the mode control bits. Currently, only the Power Mode and the Operational Mode bits are implemented. The legend below shows the relative location of the configuration bits. Please note that this comand sets the mode as directed, clears the LEDs, and returns to wait for the next serial message. So, you will need to send another command, like the? command to see the LEDs if enabled. I Initialize the Compass Module. SEROUT 5, 188+$8000, ["!CM0I"] This command will perform a soft reset on the Compass Module. All internal registers will be cleared, all LEDs will be illuminated, and the Compass Module will remain in Serial Mode and Normal Power Mode. Parallax, Inc. Compass Module AppMod (#29113) 3/2005 3

Commands (continued)? Request the Compass Module to report its current heading and status. SEROUT 5, 32+$8000,["!CM0?"] Report the current heading and status After this message is sent, the Compass Module will update its LEDs and reply with a single byte. Use the line of code below to receive the reply. SERIN 5, 32+$8000, [heading] Receive heading from Compass Module The lower nibble (four bits) will contain an value that ranges from 0 7 that indicates the current heading. The chart below correlates the returned value to the respective heading. Lower Nibble Binary Value Heading 0 0000 N 1 0001 NE 2 0010 E 3 0011 SE 4 0100 S 5 0101 SW 6 0110 W 7 0111 NW Table 1 The upper four bits of the reply indicate the status of the unit. The legend below depicts the individual bit meanings. 0000 0000 Byte received from the Compass Module Heading in the lower nibble. Power Mode: 1 = LEDs off 0 = LEDs enabled Operation Mode: 1 = Compass Mode, 0 = Actual Indication Unused Bit Unused Bit Here s a mini sample program for the BS2 that will switch the Compass Module to serial mode, query the Compass Module, and echo the reply to the Debug window about four times per second. '{$STAMP BS2} '{$PBASIC 2.5} 'Stamp type declaration Heading VAR Byte PAUSE 200 'Wait for system to power up SEROUT 5,188+$8000,[0] 'Switch the TO Serial Mode DO SEROUT 5,32+$8000,["!CM0?"] 'Send the Query command SERIN 5,32+$8000,[Heading] 'Receive the reply DEBUG?Heading 'Send the reply to the debug screen PAUSE 200 'Repeat roughly four times per second LOOP 4 Parallax, Inc. Compass Module AppMod (#29113) 3/2005

Commands (continued) D Set the desired direction according to the parameter sent. The Compass Module will pulse the serial line low when the Compass Module arrives at the desired heading. The parameter is a number, 0 through 7 inclusive (from Table 1) that corresponds to the desired direction. SEROUT 5,188+$8000,["!CM0D",0] 'Desired direction is North This command will set the Compass Module s desired direction pointer to North. When the Compass Module s actual direction matches the desired direction pointer, the Compass Module will pulse the serial line low for approximately 25 ms. The idea here is that the stamp can set the desired direction in the Compass Module then start the Bot (or whatever it is mounted to) turning. While this is happening, the stamp monitors P5 for a low going pulse. The pulse is delayed by at least 750 us and is of sufficient length to allow the stamp to poll it while doing other things, like driving servos, checking whisker inputs, etc. When the stamp detects the pulse, it stops the Bot from turning and begins the next move, (whatever that may be). There are a couple of interesting situations that can arise during the course of operations. Here are the ones that we ve foreseen, for your review: Setting the desired direction to the current direction. When this occurs, the Compass Module will wait for 750 us then pulse the serial line low for 25 ms. Setting the desired direction to a direction that, for any reason, is not obtainable. Herein lies the problem that the Compass Module will wait forever, looking for a direction that it will never see. Consequently, it will not respond to any further serial commands. The way to back out of this situation is to have the stamp pulse the serial line low for 100uS. When the Compass Module is processing any desired direction command, it also monitors the serial line for a low-going pulse. The low going pulse in this case signals the Compass Module to reset itself (soft-boot). Here s a little program that shows how to use this command with a BoeBot and a BS2: ' ========================================================================= ' ' File... CompassModuleTest1.BS2 ' Purpose... Demonstrates data transmission with two SureLink modules ' Author... Parallax, Inc. ' E-mail... support@parallax.com ' Started... 11 NOV 2003 ' Updated... ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' -----[ I/O Definitions ]------------------------------------------------- ' -----[ Constants ]------------------------------------------------------- Parallax, Inc. Compass Module AppMod (#29113) 3/2005 5

West CON 6 Baud CON 84+$4000 ' -----[ Variables ]------------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- ' -----[ Program Code ]---------------------------------------------------- PAUSE 200 ' Wait for system to power up SEROUT 5, Baud, [0] ' Switch to serial mode DEBUG CR, "Turning to the west " GOSUB GoWest DEBUG CR,"We are now heading west!" END GoWest: SEROUT 5,Baud,["!CM0D",West] ' Signal when we're heading due west DO PAUSE 20 ' Wait pulse servo delay IF IN5 = 0 THEN Gwdone ' If not there yet, PULSOUT 12,725 ' rotate the 'Bot slowly PULSOUT 13,725 ' and check for pulse again. LOOP 'Else GWdone: RETURN ' return to main Sample Programs The first type of program that we should examine is one that puts the C command through its paces. ' {$STAMP BS2} ' {$PBASIC 2.5} Baud con 32+$8000 Init: PAUSE 200 Wait for system to power up. SEROUT 5, Baud, [0] Switch to Serial Mode DO SEROUT 5, Baud, ["!CM0C",%01] Disable Compass Mode, enable low power mode PAUSE 1000 SEROUT 5, Baud, ["!CM0C",%10] Enable Compass Mode, disable Low Power mode PAUSE 1000 SEROUT 5, Baud, ["!CM0C",%11] Enable Compass Mode, enable Low Power mode PAUSE 1000 SEROUT 5, Baud, ["!CM0C",%00] Disable Compass Mode, disable low power mode PAUSE 1000 note: same as an I command, and therefore LOOP there will be no visible indications 6 Parallax, Inc. Compass Module AppMod (#29113) 3/2005

One thing that would be desirable is, when commanding your Bot to turn to a particular direction, it should figure out which way is the best way (shortest way) to rotate to obtain the commanded position. Here s a modified version of a previous example that shows just how easy it is to do with a BS2 and a Compass Module: ' ========================================================================= ' ' File... CompassModuleTest2.BS2 ' Purpose... Makes robot rotate the shortest path to the desired heading ' Author... Parallax, Inc. ' E-mail... support@parallax.com ' Started... 11 NOV 2003 ' Updated... ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' Given a desired direction, the BOE Bot reads the Compass Module AppMod ' and determines which direction to rotate is shortest based on its initial ' direction. ' -----[ I/O Definitions ]------------------------------------------------- ' -----[ Constants ]------------------------------------------------------- MidL CON 744 MidR CON 746 Baud CON 32+$8000 ' -----[ Variables ]------------------------------------------------------- Speed VAR Word Act VAR Byte Des VAR Byte CW VAR Byte CCW VAR Byte Ctr VAR Byte ' -----[ Initialization ]-------------------------------------------------- Init: PAUSE 200 SEROUT 5,Baud,[0] Des = 4 'Initialize 'Set desired direction ' -----[ Program Code ]---------------------------------------------------- Parallax, Inc. Compass Module AppMod (#29113) 3/2005 7

ChkDir: SEROUT 5, Baud, ["!CM0?"] SERIN 5, Baud, 500,Init,[Act] IF Des = Act THEN ChkDir CW = Act CCW = Act Ctr = 0 Rloop: CW = (CW+1)&7 CCW = (CCW-1)&7 Ctr = Ctr + 1 Speed = -18 IF CCW = Des THEN Turn Speed = 15 IF CW = Des THEN Turn GOTO Rloop Turn: PULSOUT 13,MidL+Speed*Ctr PULSOUT 12,MidR+Speed*Ctr PAUSE 10 GOTO ChkDir 'Get current direction 'If Act <> Des ' then we need to figure out ' which is the best (shortest) ' direction to rotate. This ' is done using two counters: ' one that counts clockwise ' while the other counts in ' the counterclockwise direction. ' Based on which one reached the ' desired direction first, the ' speed (direction of rotation) ' is decided and the 'Bot turns ' until the desired direction is ' reached. Please note that the relative direction of the Compass Module may be 180 degrees out of phase with the actual bearing of the foundation upon which it may be mounted. For BoEBot users, this will be the case and you will need to re-assign the numbers that correlate to the directions such that North would be four instead of zero, etc. Electrical Specifications The Compass Module AppMod requires 6 24 Volts DC and will draw between 30 and 72mA depending on how many LEDs are on. As with all AppMods, the Compass Module AppMod has a special stack-through 2x10 header. This header allows you to connect the Compass Module to either the BOE-Bot, the Stamp Activity Board, the Super Carrier Board, and of course, other AppMods. We ve provided the pin out of the AppMod header below, as viewed from the top. If you will not be connecting this AppMod to a board with the mating stack-through header, all you need to do is: connect Vss to ground, connect Vin to the positive side of a 6-24 Vdc supply, and connect P5 to the serial host. Please note: P5 can tolerate a voltage swing from 0 to 5 Vdc only. Here s a top view of the stack-through header with the X1 on the VIN and VDD side: Vss P1 P3 P5 P7 P9 P11 P13 P15 Vin X1 Vss P0 P2 P4 P6 P8 P10 P12 P14 Vdd 8 Parallax, Inc. Compass Module AppMod (#29113) 3/2005

Programming Notes 1. Throughout the examples mentioned herein, I/O Pin 5 has been referenced as the serial pin for all serial communications. This is because, with respect to the AppMod header included on various products such as the Board of Education, the BOE-Bot, and the SuperCarrier Board, I/O Pin 5 has been hardwired to serve this function. 2. The examples mentioned herein assume the use of the BS2-IC. Different commands or parameters may be required if you are using something other than the BS2-IC. Please refer to the AppMod code section on the Parallax CD for code examples for the other stamps. 3. Please note that the 0 in the CM0? command is a numeric (ascii zero, 30h) and not an alphabet character. Care must be taken since the two characters look alike in many fonts. The zero has no function except for a placeholder in this AppMod. Others AppMods may use this character location to specify a module number such that multiple AppMods of the same type may share an I/O line. 4. If the Compass Module is sent a partial or erroneous message, it will eventually time out after about 2.3 seconds and reset itself. If it seems to ignore every message you send it, perhaps it was sent a desired direction command that remains unsatisfied. In this case, you can reset the Compass Module by pulsing its serial input line (P5) low for ~1 ms. 5. When using the D command, the Compass Module will pulse the serial data line (P5) low for approximately 750uS. This should allow plenty of time, no matter which stamp you use, for the stamp to detect the pulse. 6. On the other hand, when using multiple D commands, bear in mind that the Compass Module cannot receive serial commands while the serial data line is pulsed low. So, you may wish to add a little code to test that the D command reply has completed (serial data line is high at5vdc) before sending the next serial command. Connection and Orientation The Compass Module AppMod can be used with any base PC board that sports an AppMod header. Different base boards orient their AppMod headers differently. In general, you need to locate and match pin 1 to pin 1. If there is no label as such, you may look at the shape of the pad on the PC board. The square pad is pin 1. Here s a couple of photos that depict how to plug the Compass Module AppMod into the various base boards that offer AppMod headers. Board of Education/SuperCarrier BASIC Stamp Activity Board Parallax, Inc. Compass Module AppMod (#29113) 3/2005 9

Vin VDD VDD 11 NC 8 NC 5 NC 2 NC LM2940-5.0 1 3 VIN VOUT VDD VDD GND NO NO NO NO 2 Vdd 10 k 3 12 6 9 Vdd Vss 47 µf North East West South 1 2 3 4 5 6 7 8 9 Compass AppMod Schematic Rev. A PIC16C56A RA2 RA3 RTTC RCLR VSS RB0 RB1 RB2 RB3 RA1 RA0 OSC1 OSC2 VDD RB7 RB6 RB5 RB4 18 17 16 15 14 13 12 11 10 Vdd 10 k Vin 20 18 16 14 12 10 8 6 4 2 X1 19 17 15 13 11 9 7 5 3 1 AppMod header Vss S W E N 4.09 MHz Dinsmore Sensor NC = Normally Closed NO = Normally Open Vss Vss LEDs have built in current limit resistors Vss 10 Parallax, Inc. Compass Module AppMod (#29113) 3/2005