Skip to content

Commit 3821b6b

Browse files
authored
add ironbci 32 board (#790)
* add ironbci 32 board Signed-off-by: Andrey Parfenov <a1994ndrey@gmail.com>
1 parent d74ed66 commit 3821b6b

File tree

15 files changed

+87
-26
lines changed

15 files changed

+87
-26
lines changed

.github/workflows/conan.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ jobs:
1717
uses: actions/checkout@v2
1818
- name: Add msbuild to PATH
1919
uses: microsoft/setup-msbuild@v1.0.2
20+
- name: install Python
21+
uses: actions/setup-python@v5
22+
with:
23+
python-version: "3.10"
2024
- name: Get Conan
2125
uses: turtlebrowser/get-conan@main
2226
with:

.github/workflows/deploy_cpp_libs.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
max-parallel: 16
6060
matrix:
6161
build_type: [Release, Debug]
62-
os: [ubuntu-latest, macos-13]
62+
os: [ubuntu-latest, macos-14]
6363

6464
steps:
6565
- name: Clone Repository
@@ -69,13 +69,13 @@ jobs:
6969
with:
7070
cmake-version: '3.21.x'
7171
- name: Install Ninja
72-
if: (matrix.os == 'macos-13')
72+
if: (matrix.os == 'macos-14')
7373
uses: seanmiddleditch/gha-setup-ninja@master
7474
with:
7575
version: 1.10.2
7676
# build simpleble outside from brainflow because of different deployment targets
7777
- name: Compile SimpleBLE MacOS
78-
if: (matrix.os == 'macos-13')
78+
if: (matrix.os == 'macos-14')
7979
run: |
8080
mkdir $GITHUB_WORKSPACE/third_party/SimpleBLE/simpleble/build
8181
cd $GITHUB_WORKSPACE/third_party/SimpleBLE/simpleble/build
@@ -86,7 +86,7 @@ jobs:
8686
env:
8787
BUILD: ${{ matrix.build_type }}
8888
- name: Compile BrainFlow for MacOS
89-
if: (matrix.os == 'macos-13')
89+
if: (matrix.os == 'macos-14')
9090
run: |
9191
mkdir $GITHUB_WORKSPACE/build
9292
cd $GITHUB_WORKSPACE/build

.github/workflows/run_unix.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
fail-fast: false
1111
max-parallel: 4
1212
matrix:
13-
os: [ubuntu-latest, macos-13]
13+
os: [ubuntu-latest, macos-14]
1414

1515
steps:
1616
# compile and prepare env
@@ -44,14 +44,15 @@ jobs:
4444
run: |
4545
npm install -g ts-node
4646
- name: Install Ninja
47-
if: (matrix.os == 'macos-13')
47+
if: (matrix.os == 'macos-14')
4848
uses: seanmiddleditch/gha-setup-ninja@master
4949
with:
5050
version: 1.10.2
5151
- name: Install Julia
52-
uses: julia-actions/setup-julia@v1
52+
uses: julia-actions/setup-julia@v2
5353
with:
54-
version: 1.3.1
54+
version: '1'
55+
arch: 'default'
5556
- name: Setup Cmake
5657
uses: jwlawson/actions-setup-cmake@v1.13
5758
with:
@@ -62,15 +63,15 @@ jobs:
6263
java-version: 11.0.3
6364
# build simpleble outside from brainflow because of different deployment targets
6465
- name: Compile SimpleBLE MacOS
65-
if: (matrix.os == 'macos-13')
66+
if: (matrix.os == 'macos-14')
6667
run: |
6768
mkdir $GITHUB_WORKSPACE/third_party/SimpleBLE/simpleble/build
6869
cd $GITHUB_WORKSPACE/third_party/SimpleBLE/simpleble/build
6970
cmake -G Ninja -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/installed -DCMAKE_BUILD_TYPE=Release ..
7071
ninja
7172
ninja install
7273
- name: Compile BrainFlow MacOS
73-
if: (matrix.os == 'macos-13')
74+
if: (matrix.os == 'macos-14')
7475
run: |
7576
mkdir $GITHUB_WORKSPACE/build
7677
cd $GITHUB_WORKSPACE/build
@@ -153,7 +154,7 @@ jobs:
153154
- name: Run unit tests
154155
run: $GITHUB_WORKSPACE/build/tests/brainflow_tests
155156
- name: Synthetic C# Test MacOS
156-
if: (matrix.os == 'macos-13')
157+
if: (matrix.os == 'macos-14')
157158
run: |
158159
cd $GITHUB_WORKSPACE/csharp_package/brainflow/examples/brainflow_get_data/bin/Release/net7.0
159160
cp $GITHUB_WORKSPACE/installed/lib/libBoardController.dylib $GITHUB_WORKSPACE/csharp_package/brainflow/examples/brainflow_get_data/bin/Release/net7.0/
@@ -163,7 +164,7 @@ jobs:
163164
LD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib
164165
DYLD_LIBRARY_PATH: ${{ github.workspace }}/installed/lib
165166
- name: EEG Metrics C# Test MacOS
166-
if: (matrix.os == 'macos-13')
167+
if: (matrix.os == 'macos-14')
167168
run: |
168169
cd $GITHUB_WORKSPACE/csharp_package/brainflow/examples/eeg_metrics/bin/Release/net7.0
169170
cp $GITHUB_WORKSPACE/installed/lib/libBoardController.dylib $GITHUB_WORKSPACE/csharp_package/brainflow/examples/eeg_metrics/bin/Release/net7.0/
@@ -412,7 +413,7 @@ jobs:
412413
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
413414
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
414415
- name: Push Libraries MacOS Dev
415-
if: ${{ github.event_name == 'push' && matrix.os == 'macos-13' && github.repository == 'brainflow-dev/brainflow' }}
416+
if: ${{ github.event_name == 'push' && matrix.os == 'macos-14' && github.repository == 'brainflow-dev/brainflow' }}
416417
run: |
417418
aws s3 cp $GITHUB_WORKSPACE/installed/lib/ s3://brainflow/$GITHUB_SHA/macos_release --recursive
418419
env:

csharp_package/brainflow/brainflow/board_controller_library.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public enum BoardIds
121121
SYNCHRONI_UNO_1_CHANNELS_BOARD = 62,
122122
OB3000_24_CHANNELS_BOARD = 63,
123123
BIOLISTENER_BOARD = 64,
124+
IRONBBCI_32_BOARD = 65
124125
};
125126

126127

docs/SupportedBoards.rst

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1481,3 +1481,37 @@ Available :ref:`presets-label`:
14811481

14821482
- :code:`BrainFlowPresets.DEFAULT_PRESET`, it contains EEG (EMG, ECG, EOG) data
14831483
- :code:`BrainFlowPresets.AUXILIARY_PRESET`, it contains Gyro, Accel, battery and ESP32 chip temperature data
1484+
1485+
IronBCI
1486+
--------
1487+
1488+
IronBCI32
1489+
~~~~~~~~~~
1490+
1491+
.. image:: https://live.staticflickr.com/65535/55036534734_d467ed741e.jpg
1492+
:width: 500px
1493+
:height: 389px
1494+
1495+
`Github <https://github.com/pieeg-club/ironbci-32>`_
1496+
1497+
To create such board you need to specify the following board ID and fields of BrainFlowInputParams object:
1498+
1499+
- :code:`BoardIds.IRONBCI_32_BOARD`
1500+
- :code:`serial_port`, e.g. COM3
1501+
1502+
Initialization Example:
1503+
1504+
.. code-block:: python
1505+
1506+
params = BrainFlowInputParams()
1507+
params.serial_port = "COM3"
1508+
board = BoardShim(BoardIds.IRONBCI_32_BOARD, params)
1509+
1510+
**On Unix-like systems you may need to configure permissions for serial port or run with sudo.**
1511+
1512+
Supported platforms:
1513+
1514+
- Windows
1515+
- Linux
1516+
- MacOS
1517+
- Devices like Raspberry Pi

java_package/brainflow/src/main/java/brainflow/BoardIds.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ public enum BoardIds
7070
SYNCHRONI_PENTO_8_CHANNELS_BOARD(61),
7171
SYNCHRONI_UNO_1_CHANNELS_BOARD(62),
7272
OB3000_24_CHANNELS_BOARD(63),
73-
BIOLISTENER_BOARD(64);
73+
BIOLISTENER_BOARD(64),
74+
IRONBBCI_32_BOARD(65);
7475

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

julia_package/brainflow/src/board_shim.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export BrainFlowInputParams
6666
SYNCHRONI_UNO_1_CHANNELS_BOARD = 62
6767
OB3000_24_CHANNELS_BOARD = 63
6868
BIOLISTENER_BOARD = 64
69+
IRONBBCI_32_BOARD = 65
6970

7071
end
7172

matlab_package/brainflow/BoardIds.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,6 @@
6464
SYNCHRONI_UNO_1_CHANNELS_BOARD(62)
6565
OB3000_24_CHANNELS_BOARD(63)
6666
BIOLISTENER_BOARD(64)
67+
IRONBBCI_32_BOARD(65)
6768
end
6869
end

nodejs_package/brainflow/brainflow.types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ export enum BoardIds {
7373
SYNCHRONI_PENTO_8_CHANNELS_BOARD = 61,
7474
SYNCHRONI_UNO_1_CHANNELS_BOARD = 62,
7575
OB3000_24_CHANNELS_BOARD = 63,
76-
BIOLISTENER_BOARD = 64
76+
BIOLISTENER_BOARD = 64,
77+
IRONBBCI_32_BOARD = 65
7778
}
7879

7980
export enum IpProtocolTypes {

python_package/brainflow/board_shim.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class BoardIds(enum.IntEnum):
7979
SYNCHRONI_UNO_1_CHANNELS_BOARD = 62 #:
8080
OB3000_24_CHANNELS_BOARD = 63 #:
8181
BIOLISTENER_BOARD = 64 #:
82+
IRONBBCI_32_BOARD = 65 #:
8283

8384

8485
class IpProtocolTypes(enum.IntEnum):

0 commit comments

Comments
 (0)