Matlab code to read Meditation using Mindwave Mobile

Overall rating
Matlab code to read Meditation using Mindwave Mobile

ThinkGear™ is the technology inside every NeuroSky product or partner product that enables a device to interface with the wearers’ brainwaves.The ThinkGear Connector (TGC) runs as a background process on your computer and is responsible for directing headset data from the serial port to an open network socket. It includes the thinkgear module and eeg  sensor that touches the forehead (fp1 of the electrode postion recommended by 10/20 electrode system),  and the reference points located on the ear clip. Thinkgear module(TGAM1)  contains the onboard chip that processes all of the data and provides this data to software and applications in digital form.It is available on both Windows and Macintosh, any language or framework that contains a socket library should be able to communicate with it. Both the raw brainwaves and the eSense Meters (Attention and Meditation) and eyeblink  are calculated on the ThinkGear chip.


This unsigned one-byte value reports the current eSense Meditation meter of the user, which indicates the level of a user's mental “calmness” or “relaxation”. Its value ranges from 0 to 100. Note that Meditation is a measure of a person's mental levels, not physical levels, so simply relaxing all the muscles of the body may not immediately result in a heightened Meditation level. However, for most people in most normal circumstances, relaxing the body often helps the mind to relax as well. Meditation is related to reduced activity by the active mental processes in the brain, and it has long been an observed effect that closing one's eyes turns off the mental activities which process images from the eyes, so closing the eyes is often an effective method for increasing the Meditation meter level. Distractions, wandering thoughts, anxiety, agitation, and sensory stimuli may lower the Meditation meter levels. See “eSense Meters” above for details about interpreting eSense levels in general.

By default, output of this Data Value is enabled. It is typically output once a second


  Matlab code to read Meditation using Mindwave mobile


    %Clear Screen


    %Clear Variables

    clear all;

    %Close figures

    close all;


    %Preallocate buffer

    data_med = zeros(1,256);   


    %Comport Selection

    portnum1 = 7; 

    %COM Port #

    comPortName1 = sprintf('\\\\.\\COM%d', portnum1);



    % Baud rate for use with TG_Connect() and TG_SetBaudrate().

    TG_BAUD_115200  =   115200;


    % Data format for use with TG_Connect() and TG_SetDataFormat().

    TG_STREAM_PACKETS =     0;

    % Data type that can be requested from TG_GetValue().




    %load thinkgear dll



    %To display in Command Window

    fprintf('Thinkgear.dll loaded\n');



    %get dll version

    dllVersion = calllib('Thinkgear', 'TG_GetDriverVersion');


    %To display in command window

    fprintf('ThinkGear DLL version: %d\n', dllVersion );


    % Get a connection ID handle to ThinkGear

    connectionId1 = calllib('Thinkgear', 'TG_GetNewConnectionId');

    if ( connectionId1 < 0 )

        error( sprintf( 'ERROR: TG_GetNewConnectionId() returned %d.\n', connectionId1 ) );




    % Attempt to connect the connection ID handle to serial port "COM3"

    errCode = calllib('Thinkgear', 'TG_Connect',  connectionId1,comPortName1,TG_BAUD_115200,TG_STREAM_PACKETS );

    if ( errCode < 0 )

        error( sprintf( 'ERROR: TG_Connect() returned %d.\n', errCode ) );



    fprintf( 'Connected.  Reading Packets...\n' );






    %To display in Command Window


    disp('Reading Brainwaves');



    while i < 20

        if (calllib('Thinkgear','TG_ReadPackets',connectionId1,1) == 1)   %if a packet was read...

            if (calllib('Thinkgear','TG_GetValueStatus',connectionId1,TG_DATA_MEDITATION ) ~= 0)

                j = j + 1;

                i = i + 1;

                %Read attention Valus from thinkgear packets

                data_med(j) = calllib('Thinkgear','TG_GetValue',connectionId1,TG_DATA_MEDITATION );

                %To display in Command Window


                %Plot Graph




                %Delay to display graph






    %To display in Command Window

    disp('Loop Completed')

    %Release the comm port

    calllib('Thinkgear', 'TG_FreeConnection', connectionId1 );


Join the World's Largest Technical Community

we respect your privacy.