Skip to content

Commit ca4004b

Browse files
authored
Add support for ANT Neuro devices (#306)
* initial commit for ant neuro devices Signed-off-by: Andrey Parfenov <a1994ndrey@gmail.com>
1 parent c58cdb9 commit ca4004b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2934
-36
lines changed

.github/workflows/deploy_cpp_libs.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
max-parallel: 16
4848
matrix:
4949
build_type: [Release, Debug]
50-
os: [ubuntu-18.04, macos-10.15]
50+
os: [ubuntu-18.04, macos-11.0]
5151

5252
steps:
5353
- name: Clone Repository
@@ -56,15 +56,20 @@ jobs:
5656
uses: jwlawson/actions-setup-cmake@v1.4
5757
with:
5858
cmake-version: '3.16.x'
59+
- name: Install Ninja
60+
if: (matrix.os == 'macos-11.0')
61+
uses: seanmiddleditch/gha-setup-ninja@master
62+
with:
63+
version: 1.10.2
5964
# compile for macos and linux
6065
- name: Compile BrainFlow for MacOS
61-
if: (matrix.os == 'macos-10.15')
66+
if: (matrix.os == 'macos-11.0')
6267
run: |
6368
mkdir $GITHUB_WORKSPACE/build
6469
cd $GITHUB_WORKSPACE/build
65-
cmake -DWARNINGS_AS_ERRORS=ON -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/artifacts/macos_$BUILD -DCMAKE_BUILD_TYPE=$BUILD ..
66-
make
67-
make install
70+
cmake -G Ninja -DWARNINGS_AS_ERRORS=ON -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/artifacts/macos_$BUILD -DCMAKE_BUILD_TYPE=$BUILD ..
71+
ninja
72+
ninja install
6873
env:
6974
BUILD: ${{ matrix.build_type }}
7075
- name: Compile BrainFlow in ManyLinux

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,6 @@ ASALocalRun/
338338
.env
339339
.vscode/
340340

341-
build*
342-
!tools/*
343341
installed*
344342
compiled/
345343
python/flowcat.egg-info/
@@ -358,7 +356,6 @@ java-package/brainflow/.settings/org.eclipse.jdt.apt.core.prefs
358356
java-package/brainflow/.settings/org.eclipse.jdt.core.prefs
359357
java-package/brainflow/.settings/org.eclipse.m2e.core.prefs
360358
java-package/brainflow/src/main/resources/
361-
matlab-package/lib/brainflow_boards.json
362359
matlab-package/brainflow/inc/
363360
matlab-package/brainflow/lib/
364361
python-package/brainflow/lib/

csharp-package/brainflow/brainflow/board_controller_library.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ public enum BoardIds
7070
GALEA_SERIAL_BOARD = 20,
7171
MUSE_S_BLED_BOARD = 21,
7272
MUSE_2_BLED_BOARD = 22,
73-
CROWN_BOARD = 23
73+
CROWN_BOARD = 23,
74+
ANT_NEURO_EE_410_BOARD = 24,
75+
ANT_NEURO_EE_411_BOARD = 25,
76+
ANT_NEURO_EE_430_BOARD = 26
7477
};
7578

7679

docs/SupportedBoards.rst

Lines changed: 85 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ To create an instance of BoardShim class for your board check required inputs in
3131
"MuseSBLED", "BoardIds.MUSE_S_BLED_BOARD (21)", "dongle serial port", "-", "-", "-", "-", "-", "-", "Optional: device name", "-"
3232
"Muse2BLED", "BoardIds.MUSE_2_BLED_BOARD (22)", "dongle serial port", "-", "-", "-", "-", "-", "-", "Optional: device name", "-"
3333
"Crown", "BoardIds.CROWN_BOARD (23)", "-", "-", "-", "-", "-", "-", "-", "Optional: serial number", "-"
34+
"AntNeuroBoardEE410", "BoardIds.ANT_NEURO_EE_410_BOARD (24)", "-", "-", "-", "-", "-", "-", "-", "-", "-"
35+
"AntNeuroBoardEE411", "BoardIds.ANT_NEURO_EE_411_BOARD (25)", "-", "-", "-", "-", "-", "-", "-", "-", "-"
36+
"AntNeuroBoardEE430", "BoardIds.ANT_NEURO_EE_430_BOARD (26)", "-", "-", "-", "-", "-", "-", "-", "-", "-"
3437

3538

3639
Playback File Board
@@ -159,7 +162,7 @@ Cyton
159162
:width: 200px
160163
:height: 200px
161164

162-
`Cyton Getting Started Guide from OpenBCI <https://docs.openbci.com/docs/01GettingStarted/01-Boards/CytonGS>`_
165+
`Cyton Getting Started Guide from OpenBCI <https://docs.openbci.com/GettingStarted/Boards/CytonGS/>`_
163166

164167
To choose this board in BoardShim constructor please specify:
165168

@@ -191,7 +194,7 @@ Ganglion
191194
:width: 400px
192195
:height: 230px
193196

194-
`Ganglion Getting Started Guide from OpenBCI <https://docs.openbci.com/docs/01GettingStarted/01-Boards/GanglionGS>`_
197+
`Ganglion Getting Started Guide from OpenBCI <https://docs.openbci.com/GettingStarted/Boards/GanglionGS/>`_
195198

196199
**To use Ganglion board you need a** `dongle <https://shop.openbci.com/collections/frontpage/products/ganglion-dongle>`_
197200

@@ -231,7 +234,7 @@ Cyton Daisy
231234
:width: 400px
232235
:height: 394px
233236

234-
`CytonDaisy Getting Started Guide from OpenBCI <https://docs.openbci.com/docs/01GettingStarted/01-Boards/DaisyGS>`_
237+
`CytonDaisy Getting Started Guide from OpenBCI <https://docs.openbci.com/GettingStarted/Boards/DaisyGS/>`_
235238

236239
To choose this board in BoardShim constructor please specify:
237240

@@ -264,9 +267,9 @@ Ganglion with WIFI Shield
264267
:width: 300px
265268
:height: 300px
266269

267-
`WIFI Shield Getting Started Guide from OpenBCI <https://docs.openbci.com/docs/01GettingStarted/01-Boards/WiFiGS>`_
270+
`WIFI Shield Getting Started Guide from OpenBCI <https://docs.openbci.com/GettingStarted/Boards/WiFiGS/>`_
268271

269-
`WIFI Shield Programming Guide from OpenBCI <https://docs.openbci.com/docs/05ThirdParty/03-WiFiShield/WiFiProgam>`_
272+
`WIFI Shield Programming Guide from OpenBCI <https://docs.openbci.com/ThirdParty/WiFiShield/WiFiProgam/>`_
270273

271274
To choose this board in BoardShim constructor please specify:
272275

@@ -296,9 +299,9 @@ Cyton with WIFI Shield
296299
:width: 400px
297300
:height: 325px
298301

299-
`WIFI shield Getting Started Guide from OpenBCI <https://docs.openbci.com/docs/01GettingStarted/01-Boards/WiFiGS>`_
302+
`WIFI shield Getting Started Guide from OpenBCI <https://docs.openbci.com/GettingStarted/Boards/WiFiGS/>`_
300303

301-
`WIFI shield Programming Guide from OpenBCI <https://docs.openbci.com/docs/05ThirdParty/03-WiFiShield/WiFiProgam>`_
304+
`WIFI shield Programming Guide from OpenBCI <https://docs.openbci.com/ThirdParty/WiFiShield/WiFiProgam/>`_
302305

303306
To choose this board in BoardShim constructor please specify:
304307

@@ -329,9 +332,9 @@ CytonDaisy with WIFI Shield
329332
:width: 400px
330333
:height: 400px
331334

332-
`WIFI Shield Getting Started Guide from OpenBCI <https://docs.openbci.com/docs/01GettingStarted/01-Boards/WiFiGS>`_
335+
`WIFI Shield Getting Started Guide from OpenBCI <https://docs.openbci.com/GettingStarted/Boards/WiFiGS/>`_
333336

334-
`WIFI Shield Programming Guide from OpenBCI <https://docs.openbci.com/docs/05ThirdParty/03-WiFiShield/WiFiProgam>`_
337+
`WIFI Shield Programming Guide from OpenBCI <https://docs.openbci.com/ThirdParty/WiFiShield/WiFiProgam/>`_
335338

336339
To choose this board in BoardShim constructor please specify:
337340

@@ -720,4 +723,76 @@ Board Spec:
720723
- num eeg channels: 4
721724
- num acceleration channels: 3
722725
- sampling rate: 250
723-
- communication: Bluetooth Low Energy with serial port dongle
726+
- communication: Bluetooth Low Energy with serial port dongle
727+
728+
Ant Neuro
729+
----------
730+
731+
Ant Neuro EE 410
732+
~~~~~~~~~~~~~~~~~
733+
734+
.. image:: https://live.staticflickr.com/65535/51331462280_580d890535.jpg
735+
:width: 500px
736+
:height: 490px
737+
738+
`Ant Website <https://www.ant-neuro.com/products>`_
739+
740+
To choose this board in BoardShim constructor please specify:
741+
742+
- board_id: 24
743+
744+
Supported platforms:
745+
746+
- Windows
747+
- Linux
748+
749+
Board Spec:
750+
751+
- num eeg channels: 8
752+
- sampling rate: 2000
753+
754+
Ant Neuro EE 411
755+
~~~~~~~~~~~~~~~~~
756+
757+
.. image:: https://live.staticflickr.com/65535/51331191524_5cea43c2f2.jpg
758+
:width: 500px
759+
:height: 399px
760+
761+
`Ant Website <https://www.ant-neuro.com/products>`_
762+
763+
To choose this board in BoardShim constructor please specify:
764+
765+
- board_id: 25
766+
767+
Supported platforms:
768+
769+
- Windows
770+
- Linux
771+
772+
Board Spec:
773+
774+
- num eeg channels: 8
775+
- sampling rate: 2000
776+
777+
Ant Neuro EE 430
778+
~~~~~~~~~~~~~~~~~
779+
780+
.. image:: https://live.staticflickr.com/65535/51329836457_6438dce763.jpg
781+
:width: 500px
782+
:height: 438px
783+
784+
`Ant Website <https://www.ant-neuro.com/products>`_
785+
786+
To choose this board in BoardShim constructor please specify:
787+
788+
- board_id: 26
789+
790+
Supported platforms:
791+
792+
- Windows
793+
- Linux
794+
795+
Board Spec:
796+
797+
- num eeg channels: 8
798+
- sampling rate: 512

java-package/brainflow/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@
7373
<include>MuseLib.dll</include>
7474
<include>libMuseLib.so</include>
7575
<include>libMuseLib.dylib</include>
76+
<include>eego-SDK32.dll</include>
77+
<include>eego-SDK.dll</include>
78+
<include>libeego-SDK.so</include>
79+
<include>libeego-SDK32.so</include>
7680
</includes>
7781
</resource>
7882
</resources>

java-package/brainflow/src/main/java/brainflow/BoardIds.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ public enum BoardIds
3434
GALEA_SERIAL_BOARD (20),
3535
MUSE_S_BLED_BOARD (21),
3636
MUSE_2_BLED_BOARD (22),
37-
CROWN_BOARD (23);
37+
CROWN_BOARD (23),
38+
ANT_NEURO_EE_410_BOARD (24),
39+
ANT_NEURO_EE_411_BOARD (25),
40+
ANT_NEURO_EE_430_BOARD (26);
3841

3942
private final int board_id;
4043
private static final Map<Integer, BoardIds> bi_map = new HashMap<Integer, BoardIds> ();

julia-package/brainflow/src/board_shim.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ export BrainFlowInputParams
3030
MUSE_S_BLED_BOARD = 21
3131
MUSE_2_BLED_BOARD = 22
3232
CROWN_BOARD = 23
33+
ANT_NEURO_EE_410_BOARD = 24
34+
ANT_NEURO_EE_411_BOARD = 25
35+
ANT_NEURO_EE_430_BOARD = 26
3336

3437
end
3538

matlab-package/brainflow/BoardIDs.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,8 @@
2828
MUSE_S_BLED_BOARD(21)
2929
MUSE_2_BLED_BOARD(22)
3030
CROWN_BOARD(23)
31+
ANT_NEURO_EE_410_BOARD(24)
32+
ANT_NEURO_EE_411_BOARD(25)
33+
ANT_NEURO_EE_430_BOARD(26)
3134
end
3235
end

python-package/brainflow/board_shim.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ class BoardIds(enum.IntEnum):
4646
MUSE_S_BLED_BOARD = 21 #:
4747
MUSE_2_BLED_BOARD = 22 #:
4848
CROWN_BOARD = 23 #:
49+
ANT_NEURO_EE_410_BOARD = 24 #:
50+
ANT_NEURO_EE_411_BOARD = 25 #:
51+
ANT_NEURO_EE_430_BOARD = 26 #:
4952

5053

5154
class LogLevels(enum.IntEnum):

python-package/setup.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@
5656
os.path.join('lib', 'MuseLib.dll'),
5757
os.path.join('lib', 'MuseLib32.dll'),
5858
os.path.join('lib', 'libMuseLib.so'),
59-
os.path.join('lib', 'libMuseLib.dylib')
59+
os.path.join('lib', 'libMuseLib.dylib'),
60+
os.path.join('lib', 'eego-SDK32.dll'),
61+
os.path.join('lib', 'eego-SDK.dll'),
62+
os.path.join('lib', 'libeego-SDK.so'),
63+
os.path.join('lib', 'libeego-SDK32.so')
6064
]
6165
},
6266
zip_safe=True,

0 commit comments

Comments
 (0)