February19,2016
TheNeuroSkyproductfamiliesconsistofhardwareand
softwarecomponentsforsimpleintegrationofthisbiosensor
technologyintoconsumerandindustrialendapplications.
Allproductsaredesignedandmanufacturedtomeetconsumer
thresholdsforquality,pricing,andfeaturesets.NeuroSky
setsitselfapartbyprovidingbuildingblockcomponent
solutionsthatofferfriendlysynergieswithrelatedandcomplementary
technologicalsolutions.
NOWARRANTIES:THENEUROSKYPRODUCTFAMILIES
ANDRELATEDDOCUMENTATIONISPROVIDED"AS
IS"WITHOUTANYEXPRESSORIMPLIEDWARRANTY
OFANYKINDINCLUDINGWARRANTIESOFMERCHANTABILITY,
NONINFRINGEMENTOFINTELLECTUALPROPERTY,
INCLUDINGPATENTS,COPYRIGHTSOROTHERWISE,
ORFITNESSFORANYPARTICULARPURPOSE.INNO
EVENTSHALLNEUROSKYORITSSUPPLIERSBELIABLE
FORANYDAMAGESWHATSOEVER(INCLUDING,WITHOUT
LIMITATION,DAMAGESFORLOSSOFPROFITS,BUSINESS
INTERRUPTION,COSTOFREPLACEMENTGOODSOR
LOSSOFORDAMAGETOINFORMATION)ARISINGOUT
OFTHEUSEOFORINABILITYTOUSETHENEUROSKY
PRODUCTSORDOCUMENTATIONPROVIDED,EVEN
IFNEUROSKYHASBEENADVISEDOFTHEPOSSIBILITY
OFSUCHDAMAGES.,SOMEOFTHEABOVELIMITATIONS
MAYNOTAPPLYTOYOUBECAUSESOMEJURISDICTIONS
PROHIBITTHEEXCLUSIONORLIMITATION
OFLIABILITYFORCONSEQUENTIALORINCIDENTAL
DAMAGES.
USAGEOFTHENEUROSKYPRODUCTSISSUBJECT
TOANENDUSERLICENSEAGREEMENT.
MadeforiPod,MadeforiPhone,andMadefor
iPadmeanthatanelectronicaccessoryhasbeendesigned
toconnectspecificallytoiPod,iPhone,oriPad,respectively,
andhasbeencertifiedbythedevelopertomeetApple
performancestandards.Appleisnotresponsiblefor
theoperationofthisdeviceoritscompliancewithsafety
andregulatorystandards.Pleasenotethattheuseof
thisaccessorywithiPod,iPhone,oriPadmayaffect
wirelessperformance.
Contents
IntroductiontoMDT
IntroductiontoMDTforAndroid
Usage
ReferencesandBugreports
IntroductiontoMDT
Ifyouhaveanyquestions,letusknowat support@neurosky.com .
IntroductiontoMDTforAndroid
The
MDTforAndroid
includes:
ApplicationStandards,StreamSDKforAndroid
and
EEGAlgorithmSDKforAndroid andEULA:
ApplicationStandards
DocumentandIconImages
EULA
EndUserLicenseAgreement
StreamSDK
forAndroidisusedtohelpconnectyourAndroidapptoa
NeuroSkyheadsetviabluetooth,andreceivedatafromheadset.Itcontainsthe
followsfile:
StreamSDKforAndroidDevelopmentGuide
ChangeLog.txt
libStreamSDK.jar
libNSUART.so
SampleProject
demo(.apkfile)
EEGAlgorithmSDKforAndroid isusedtoanalyzeandfurtherinterpretEEG
datafromNeuroSkysheadsetorTGAMmodule.ItincludesAttention,Meditation
andEyeBlinkDetection.Thesethreealgorithmsarefreetousewithinyour
application.Itcontainsthefollowsfile:
EEGAlgorithmSDKforAndroid:DevelopmentGuide
EEGAlgorithmSDKlibrary:libs/
<CPUARCH>/libNskAlgo.so(compatibleCPUarchitectures:arm64v8a,armeabi,
armeabiv7a,mips,mips64,x86,x86_64)
EEGAlgorithmSDKJavainterface:jar/
NskAlgoSdk.jar
AlgoSDKSampleproject
IfyouwantmoreinformationaboutotherEEGalgorithms,pleasecontactusat
support@neurosky.com .
Fordetails,pleasecheckwithineachpackage.
Usage
EachSDKincludesasampleprojectanddocumentswhichteachyouhowtousethem.
InordertomaketheintegrationprogressforSDKsmoresmooth,pleasereviewthe
documentsofSDKs.Forexample,review StreamSDKforAndroidDevelopmnent
Guide.pdf tostartwiththeStreamSDK.ForEEGAlgorithmSDK,pleasereview
eeg_algorithm_sdk_for_android_development_guide.pdf .
ApplicationStandards.pdf isveryuserful.Ittellsyouhowtousetheiconstomarkthe
statusofconnectioninyourproject.
HereisacodesnippetwhichshowshowtousetheseSDKtogether(Thiscodesnippet
isfrom
EEGAlgorithmSDK ssampleproject):
privateTgStreamHandlercallback=newTgStreamHandler(){
@Override
publicvoidonStatesChanged(intconnectionStates){
//codeforhandlestatechanges
}
@Override
publicvoidonRecordFail(intflag){
//Youcanhandletherecorderrormessagehere
Log.e(TAG,"onRecordFail:"+flag)
}
@Override
publicvoidonChecksumFail(byte[]payload,intlength,intchecksum){
//Youcanhandlethebadpacketshere.
}
@Override
publicvoidonDataReceived(intdatatype,intdata,Objectobj){
//Youcanhandlethereceiveddatahere
//Youcanfeedtherawdatatoalgosdkhereifnecessary.
//Log.i(TAG,"onDataReceived")
switch(datatype){
caseMindDataType.CODE_ATTENTION:
shortattValue[]={(short)data}
nskAlgoSdk.NskAlgoDataStream(NskAlgoDataType.NSK_ALGO_DATA_TYPE_ATT.value,
attValue,1)
break
caseMindDataType.CODE_MEDITATION:
shortmedValue[]={(short)data}
nskAlgoSdk.NskAlgoDataStream(NskAlgoDataType.NSK_ALGO_DATA_TYPE_MED.value,
medValue,1)
break
caseMindDataType.CODE_POOR_SIGNAL:
shortpqValue[]={(short)data}
nskAlgoSdk.NskAlgoDataStream(NskAlgoDataType.NSK_ALGO_DATA_TYPE_PQ.value,
pqValue,1)
break
caseMindDataType.CODE_RAW:
raw_data[raw_data_index++]=(short)data
if(raw_data_index==512){
nskAlgoSdk.NskAlgoDataStream(NskAlgoDataType.NSK_ALGO_DATA_TYPE_EEG.value,
raw_data,raw_data_index)
raw_data_index=0
}
break
default:
break
}
}
}
TgStreamHandlerisusedtogetinformationreturnedbyStreamSDK,and
onDataReceivedfunctionisusedtoreceivedata.YoucanpassthedatatoEEGSDK
here.
ReferencesandBugreports
Youcangetthelatestdeveloperinformationfromhere:
http://developer.neurosky.com/
LearnaboutNeuroSkysEEGDataTypeshere:
http://developer.neurosky.com/docs/doku.php?id=thinkgear_communications_protocol
YoumayfindsomeadditionalusefulinformationintheKnowledgeBase:
http://support.neurosky.com/kb
Ifyoufindanybugs,pleasecontactusat:
support@neurosky.com