InvenSenseInc.1197BorregasAve.,Sunnyvale,CA94089U.S.A.Tel:+1(408)988-7339Fax:+1(408)988-8104Website::1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY“REVISIONCONTROLLEDCOPY.”ThisinformationfurnishedbyInvenSenseisbelievedtobeaccurateandreliable.However,noresponsibilityisassumedbyInvenSenseforitsuse,orforanyinfringementsorpatentsorotherrightsofthirdpartiesthatmayresultfromitsuse.Specificationsaresubjecttochangewithoutnotice.CertainintellectualpropertyownedbyInvenSenseanddescribedinthisdocumentispatentprotected.NolicenseisgrantedbyImplicationorotherwiseunderanypatentorpatentrightsofInvenSense.ThisisanunpublishedworkprotectedundertheUnitedStatescopyrightlaws.ThisworkcontainsproprietaryandconfidentialinformationofInvenSenseInc.Use,disclosureorreproductionwithouttheexpresswrittenauthorizationofInvenSenseInc.isprohibited.Trademarksthatareregisteredtrademarksarethepropertyoftheirrespectivecompanies.Thispublicationsupersedesandreplacesallinformationpreviouslysupplied.InvenSensesensorsshouldnotbeusedorsoldforthedevelopment,storing,productionandutilizationofanyconventionalormass-destructiveweaponsoranyotherweaponsorlifethreateningapplications,aswellastobeusedinanyotherlifecriticalapplicationssuchasmedical,transportation,aerospace,nuclear,undersea,power,disasterandcrimepreventionequipment.Copyright©2010InvenSenseCorporation.EmbeddedMotionDriverv5.1.1APIsSpecificationeMDv5.1.1APIsSpecificationDoc:SW-EMD-REL-5.1.1DocRev:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY(eMD),andcorrespondswithEmbeddedMotionDriverReleasev5.1.1.TheeMDcontainsthecodeforconfiguringtheInvenSensedevicesandusingtheDMPhardwarefeatures.AllofthesourcecodeisinANSICandcanbecompiledinCorC++environments.AllfunctionsavailableintheeMDaredescribedinthisdocument,includingallparametersinvolvedinthefunctioncalls.Formoreinformationonhowtousethesefunctionsinaspecificapplication,refertoInvenSenseApplicationNotes.eMDv5.1.1APIsSpecificationDoc:SW-EMD-REL-5.1.1DocRev:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY’soutputformatintheLATEX.Heading,footer,andgeneraldocumentformatarecustomizedfromthestandardheadertemplateprovidedbyDoxygen.Thedocumentissubdividedinthevarioussections,eachdescribingthemainsourceModulescomposingtheeMDandimplementingspecificfeatures.Everysectionstartswithabriefdescriptionandanoverviewofthefunctionscomposingthemodule.EachofthosefunctionsisalsofullydocumentedintheanalogousFunctionDocumentationsection.Clickingonthefunctionprototypewillleadtotheportionoftextfulldocumentatingit.ThisEmbeddedMotionDriverFunctionalSpecificationisbestviewedinaPDFviewer,asitprovidestexthyper-linksandbookmarksontheleft-handsideforeaseofbrowsing.ThereisanAlphabeticalIndexofthemodulesandtheirfunctionsavailableatthebottomofthisdocument.eMDv5.1.1APIsSpecificationDoc:SW-EMD-REL-5.1.1DocRev:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARYficationDoc:SW-EMD-REL-5.1.1DocRev:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY:092012forMotionDriverbyDoxygeneMDv5.1.1APIsSpecificationDoc:SW-EMD-REL-5.1.1DocRev:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY•fileinv_mpu.cAnI2C-baseddriverforInvensensegyroscopes.•fileinv_mpu_dmp_android.cDMPimageandinterfacefunctions.Functions•intdmp_enable_6x_lp_quat(unsignedcharenable)Generate6-axisquaternionsfromtheDMP.•intdmp_enable_feature(unsignedshortmask)EnableDMPfeatures.•intdmp_enable_gyro_cal(unsignedcharenable)CalibratethegyrodataintheDMP.•intdmp_enable_lp_quat(unsignedcharenable)Generate3-axisquaternionsfromtheDMP.eMDv5.1.1APIsSpecificationDoc:SW-EMD-REL-5.1.1DocRev:1.0Date:12/14/2012CONFIDENTIAL&PROPRIETARY•intdmp_enable_no_motion_detection(unsignedcharenable)Detectaccel-basednomotionevents.•intdmp_get_fifo_rate(unsignedshortrate)GetDMPoutputrate.•intdmp_get_pedometer_step_count(unsignedlongcount)Getcurrentstepcount.•intdmp_get_pedometer_walk_time(unsignedlongtime)Getdurationofwalkingtime.•intdmp_load_android_firmware(void)LoadtheDMPwiththisimage.•intdmp_read_fifo(shortgyro,shortaccel,longquat,unsignedlongtimestamp,shortsensors,unsignedcharmore)GetonepacketfromtheFIFO.•intdmp_register_android_orient_cb(void(func)(unsignedchar))Registerafunctiontobeexecutedonaandroidorientationevent.•intdmp_register_no_motion_cb(void(func)(void))Registerafunctiontobeexec