Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates on adding Synchroni Devices #754

Open
wants to merge 47 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
ec6a2ca
Synchroni Board setup incomplete
AranRhiod Aug 1, 2024
57fc0ff
reconfigure to add Synchroni Trio board
AranRhiod Aug 1, 2024
a02013d
adding synchroni to cmake
AranRhiod Aug 1, 2024
0603f58
Synchroni board info added
AranRhiod Aug 1, 2024
786de8a
build.cmake update
AranRhiod Aug 12, 2024
8535f3b
read_data development
AranRhiod Aug 12, 2024
db31e3e
definition of known fields and more
AranRhiod Aug 13, 2024
e7f491b
read_data update
AranRhiod Aug 13, 2024
e57de14
start_stream update
AranRhiod Aug 13, 2024
4101311
Update for synchroni intergration
AranRhiod Aug 21, 2024
3f2d800
Build successful
AranRhiod Sep 2, 2024
fb080bd
wip: bump simpleble and add syncroni device
Andrey1994 Sep 15, 2024
a3bbe08
bump upload artifact to v3
Andrey1994 Sep 15, 2024
df382a8
stuff
AranRhiod Sep 21, 2024
db9f21b
Merge branch 'Synchroni_Device_Setup' of https://github.com/Synchroni…
AranRhiod Sep 21, 2024
d44f2d1
Data Parsing
AranRhiod Oct 4, 2024
03fbcdf
Merge branch 'Synchroni_Device_Setup' of https://github.com/Synchroni…
AranRhiod Oct 4, 2024
ffd34dc
Revert "stuff"
AranRhiod Oct 4, 2024
cd3b491
Merge branch 'syncroni' into Synchroni_Device_Setup
AranRhiod Oct 4, 2024
522da1c
test mac version
yecq Nov 8, 2024
82877ac
try windows version
yecq Dec 2, 2024
2e1d9f9
forgot dylib
yecq Dec 3, 2024
4e77a44
fix windows build
yecq Dec 6, 2024
92e0d58
fix release session
yecq Dec 6, 2024
fb940f7
support OB3000
yecq Dec 7, 2024
81aacfc
add more test
yecq Dec 9, 2024
5d42765
fix crash
yecq Dec 13, 2024
fcaf827
fix crash
yecq Dec 19, 2024
46fdcf5
fix set ecg
yecq Dec 19, 2024
73e1841
change board ids
yecq Dec 21, 2024
45d79ef
fix bugs
yecq Dec 25, 2024
e37ecf3
fix destory bug
yecq Dec 27, 2024
ca855a2
fix disconnect bug
yecq Dec 27, 2024
b2f3c01
Merge branch 'Synchroni_Device_Setup'
yecq Dec 30, 2024
283d9ee
forgot
yecq Dec 31, 2024
0da143b
Adding Synchroni devices
AranRhiod Dec 31, 2024
055c439
Merge branch 'Synchroni_Device_Setup'
AranRhiod Jan 4, 2025
f5216c8
Merge remote-tracking branch 'upstream/master'
AranRhiod Jan 4, 2025
ec33752
Dropping tests
AranRhiod Jan 5, 2025
24c0ce0
Drropping tests
AranRhiod Jan 5, 2025
9db0634
revert simpleBLE to #753
AranRhiod Jan 7, 2025
c9f2edc
Remove from git ignore
AranRhiod Jan 7, 2025
a0d9d64
cleanup synchroni_board.cpp
AranRhiod Jan 7, 2025
3b4bead
removing changes in brainflow_get_data.py
AranRhiod Jan 7, 2025
3f84870
ID fixes and fixing example
AranRhiod Jan 7, 2025
31514f6
Delete accidentally copy pasted file
AranRhiod Jan 7, 2025
314a68c
reset plot real time file
AranRhiod Jan 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -379,4 +379,6 @@ Makefile
CMakeSettings.json
._.gitignore

build/
build/
*.DS_Store
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be removed

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed and discarding changes resulted from changes in gitignore

/tryinstall/
10 changes: 8 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
cmake_minimum_required (VERSION 3.13)
if (APPLE)
cmake_minimum_required (VERSION 3.28)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is it changed?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because MAC version requires XCFramework (new format of library), so it will require latest version of CMake

else (APPLE)
cmake_minimum_required (VERSION 3.16)
endif (APPLE)

project (brainflow)

SET (CMAKE_CXX_STANDARD 11)
Expand All @@ -20,6 +25,7 @@ option (USE_LIBFTDI "USE_LIBFTDI" OFF)
option (USE_OPENMP "USE_OPENMP" OFF)
option (WARNINGS_AS_ERRORS "WARNINGS_AS_ERRORS" OFF)
option (BUILD_OYMOTION_SDK "BUILD_OYMOTION_SDK" OFF)
option (BUILD_SYNCHRONI_SDK "BUILD_SYNCHRONI_SDK" ON)
option (BUILD_BLUETOOTH "BUILD_BLUETOOTH" OFF)
option (BUILD_BLE "BUILD_BLE" OFF)
option (BUILD_ONNX "BUILD_ONNX" OFF)
Expand Down Expand Up @@ -72,4 +78,4 @@ install (
EXPORT ${TARGETS_EXPORT_NAME}
NAMESPACE brainflow::
DESTINATION ${CONFIG_INSTALL_DIR}
)
)
2 changes: 2 additions & 0 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ def build(self):
cmake.definitions["BUILD_BLUETOOTH"] = "ON"
if self.options.ble:
cmake.definitions["BUILD_BLE"] = "ON"
if self.options.synchroni:
cmake.definitions["BUILD_SYNCHRONI_SDK"] = "ON"
if self.settings.os != "Windows" and self.options.periphery:
cmake.definitions["USE_PERIPHERY"] = "ON"
if self.settings.os == "Windows" and self.options.oymotion:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,12 @@ public enum BoardIds
EXPLORE_PLUS_32_CHAN_BOARD = 55,
PIEEG_BOARD = 56,
NEUROPAWN_KNIGHT_BOARD = 57
SYNCHRONI_TRIO_3_CHANNELS_BOARD = 58,
SYNCHRONI_OCTO_8_CHANNELS_BOARD = 59,
OB5000_8_CHANNELS_BOARD = 60,
SYNCHRONI_PENTO_8_CHANNELS_BOARD = 61,
SYNCHRONI_UNO_1_CHANNELS_BOARD = 62,

};


Expand Down
7 changes: 6 additions & 1 deletion java_package/brainflow/src/main/java/brainflow/BoardIds.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,12 @@ public enum BoardIds
EXPLORE_PLUS_8_CHAN_BOARD(54),
EXPLORE_PLUS_32_CHAN_BOARD(55),
PIEEG_BOARD(56),
NEUROPAWN_KNIGHT_BOARD(57);
NEUROPAWN_KNIGHT_BOARD(57),
SYNCHRONI_TRIO_3_CHANNELS_BOARD(58),
SYNCHRONI_OCTO_8_CHANNELS_BOARD(59),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

60 is missed, such ids should match each other among languages otherwise it will not work

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed id in new commit

SYNCHRONI_PENTO_8_CHANNELS_BOARD(61),
SYNCHRONI_UNO_1_CHANNELS_BOARD(62);


private final int board_id;
private static final Map<Integer, BoardIds> bi_map = new HashMap<Integer, BoardIds> ();
Expand Down
7 changes: 7 additions & 0 deletions julia_package/brainflow/src/board_shim.jl
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,14 @@ export BrainFlowInputParams
EXPLORE_PLUS_8_CHAN_BOARD = 54
EXPLORE_PLUS_32_CHAN_BOARD = 55
PIEEG_BOARD = 56

NEUROPAWN_KNIGHT_BOARD = 57
SYNCHRONI_TRIO_3_CHANNELS_BOARD = 58
SYNCHRONI_OCTO_8_CHANNELS_BOARD = 59
SYNCHRONI_PENTO_8_CHANNELS_BOARD = 62
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

60 and 61 are missed, see no reasons for such gaps, so please change board ids

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed ID in new commit

SYNCHRONI_UNO_1_CHANNELS_BOARD = 63



end

Expand Down
7 changes: 7 additions & 0 deletions matlab_package/brainflow/BoardIds.m
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@
EXPLORE_PLUS_8_CHAN_BOARD(54)
EXPLORE_PLUS_32_CHAN_BOARD(55)
PIEEG_BOARD(56)

NEUROPAWN_KNIGHT_BOARD(57)
SYNCHRONI_TRIO_3_CHANNELS_BOARD(58)
SYNCHRONI_OCTO_8_CHANNELS_BOARD(59)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

60 is missed

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed ID in new commit

SYNCHRONI_PENTO_8_CHANNELS_BOARD(61)
SYNCHRONI_UNO_1_CHANNELS_BOARD(62)

end
end
9 changes: 7 additions & 2 deletions nodejs_package/brainflow/brainflow.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,14 @@ export enum BoardIds {
EXPLORE_PLUS_8_CHAN_BOARD = 54,
EXPLORE_PLUS_32_CHAN_BOARD = 55,
PIEEG_BOARD = 56,
NEUROPAWN_KNIGHT_BOARD = 57
}

NEUROPAWN_KNIGHT_BOARD = 57,
SYNCHRONI_TRIO_3_CHANNELS_BOARD = 58,
SYNCHRONI_OCTO_CHANNELS_BOARD = 59,
SYNCHRONI_PENTO_8_CHANNELS_BOARD = 61,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

60 is missed

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed id in new commit

SYNCHRONI_UNO_1_CHANNELS_BOARD = 62

}
export enum IpProtocolTypes {
NO_IP_PROTOCOL = 0,
UDP = 1,
Expand Down
10 changes: 10 additions & 0 deletions python_package/brainflow/board_shim.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,12 @@ class BoardIds(enum.IntEnum):
EXPLORE_PLUS_32_CHAN_BOARD = 55 #:
PIEEG_BOARD = 56 #:
NEUROPAWN_KNIGHT_BOARD = 57 #:
SYNCHRONI_TRIO_3_CHANNELS_BOARD = 58 #:
SYNCHRONI_OCTO_8_CHANNELS_BOARD = 59 #:
OB5000_8_CHANNELS_BOARD = 60 #:
SYNCHRONI_PENTO_8_CHANNELS_BOARD = 61 #:
SYNCHRONI_UNO_1_CHANNELS_BOARD = 62 #:



class IpProtocolTypes(enum.IntEnum):
Expand Down Expand Up @@ -577,6 +583,10 @@ def __init__(self, board_id: int, input_params: BrainFlowInputParams) -> None:
else:
self._master_board_id = self.board_id

def __del__(self) -> None:
if self.is_prepared():
self.release_session()

@classmethod
def set_log_level(cls, log_level: int) -> None:
"""set BrainFlow log level, use it only if you want to write your own messages to BrainFlow logger,
Expand Down
4 changes: 3 additions & 1 deletion python_package/examples/enophone/enophone_streaming.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ def main():
params.mac_address = args.mac_address

try:
board_shim = BoardShim(BoardIds.ENOPHONE_BOARD, params)
# board_shim = BoardShim(BoardIds.ENOPHONE_BOARD, params)
# board_shim = BoardShim(BoardIds.SYNCHRONI_8_CHANNELS_BOARD, params)
board_shim = BoardShim(BoardIds.SYNCHRONI_3_CHANNELS_BOARD, params)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do not change example from other boards

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed back to enophone

board_shim.prepare_session()
board_shim.start_stream(450000, '')
Graph(board_shim)
Expand Down
41 changes: 41 additions & 0 deletions python_package/examples/plot_real_time/downsampling.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import time
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file should not be here and why is it copypasted?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

file deleted, seems to be accidentally copy pasted, sorry about that


from brainflow.board_shim import BoardShim, BrainFlowInputParams, LogLevels, BoardIds
from brainflow.data_filter import DataFilter, AggOperations


def main():
BoardShim.enable_dev_board_logger()

# use synthetic board for demo
params = BrainFlowInputParams()
params.mac_address = '84:BA:20:6E:3C:1E'#'60:77:71:74:E6:B7'#
params.timeout = 40 # board = BoardShim(BoardIds.SYNTHETIC_BOARD.value, params)
board = BoardShim(59, params)
board.prepare_session()
board.start_stream()
BoardShim.log_message(LogLevels.LEVEL_INFO.value, 'start sleeping in the main thread')
time.sleep(10)
data = board.get_board_data(20)
print(data)
board.stop_stream()
board.release_session()

# eeg_channels = BoardShim.get_eeg_channels(BoardIds.SYNTHETIC_BOARD.value)
eeg_channels = BoardShim.get_eeg_channels(59)
# demo for downsampling, it just aggregates data
for count, channel in enumerate(eeg_channels):
print('Original data for channel %d:' % channel)
print(data[channel])
if count == 0:
downsampled_data = DataFilter.perform_downsampling(data[channel], 3, AggOperations.MEDIAN.value)
elif count == 1:
downsampled_data = DataFilter.perform_downsampling(data[channel], 2, AggOperations.MEAN.value)
else:
downsampled_data = DataFilter.perform_downsampling(data[channel], 2, AggOperations.EACH.value)
print('Downsampled data for channel %d:' % channel)
print(downsampled_data)


if __name__ == "__main__":
main()
9 changes: 8 additions & 1 deletion python_package/examples/plot_real_time/plot_real_time.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,14 @@
from brainflow.data_filter import DataFilter, FilterTypes, WindowOperations, DetrendOperations
from pyqtgraph.Qt import QtGui, QtCore

#python d:\workspace\brainflow\python_package\examples\plot_real_time\plot_real_time.py --board-id=57 --mac-address=C4:64:E3:D8:E6:C6
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is it? revert it

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reverted file


#python d:\workspace\brainflow\python_package\examples\plot_real_time\plot_real_time.py --board-id=57 --mac-address=C4:64:E3:D8:E4:8D

#python d:\workspace\brainflow\python_package\examples\plot_real_time\plot_real_time.py --board-id=58 --mac-address=60:77:71:74:E6:B7

#python d:\workspace\brainflow\python_package\examples\plot_real_time\plot_real_time.py --board-id=59 --mac-address=00:3C:84:22:30:F5

class Graph:
def __init__(self, board_shim):
pg.setConfigOption('background', 'w')
Expand Down Expand Up @@ -36,7 +43,7 @@ def __init__(self, board_shim):
def _init_pens(self):
self.pens = list()
self.brushes = list()
colors = ['#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F']
colors = ['#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F','#A54E4E', '#A473B6', '#5B45A4', '#2079D2', '#32B798', '#2FA537', '#9DA52F', '#A57E2F', '#A53B2F']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this also not needed

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reverted file

for i in range(len(colors)):
pen = pg.mkPen({'color': colors[i], 'width': 2})
self.pens.append(pen)
Expand Down
15 changes: 10 additions & 5 deletions python_package/examples/tests/brainflow_get_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,22 @@ def main():
params.timeout = args.timeout
params.file = args.file
params.master_board = args.master_board

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this file should not be changed

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes removed

board = BoardShim(args.board_id, params)

board.prepare_session()
board.start_stream ()
time.sleep(10)
# data = board.get_current_board_data (256) # get latest 256 packages or less, doesnt remove them from internal buffer

time.sleep(0)
print("The following is data")
#data = board.get_current_board_data (256) # get latest 256 packages or less, doesnt remove them from internal buffer
data = board.get_board_data() # get all data and remove it from internal buffer

print(data)
board.stop_stream()
board.release_session()

print(data)



if __name__ == "__main__":
Expand Down
3 changes: 3 additions & 0 deletions python_package/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@
os.path.join('lib', 'gForceSDKWrapper.dll'),
os.path.join('lib', 'gforce64.dll'),
os.path.join('lib', 'gforce32.dll'),
os.path.join('lib', 'sensor.dll'),
os.path.join('lib', 'SynchroniLib.dll'),
os.path.join('lib', 'libneurosdk-shared.dylib'),
os.path.join('lib', 'libunicorn.so'),
os.path.join('lib', 'libunicorn_raspberry.so'),
Expand All @@ -62,6 +64,7 @@
os.path.join('lib', 'BrainFlowBluetooth32.dll'),
os.path.join('lib', 'libBrainFlowBluetooth.so'),
os.path.join('lib', 'libBrainFlowBluetooth.dylib'),
os.path.join('lib', 'libSynchroniLib.dylib'),
os.path.join('lib', 'simpleble-c.dll'),
os.path.join('lib', 'simpleble-c32.dll'),
os.path.join('lib', 'libsimpleble-c.so'),
Expand Down
5 changes: 5 additions & 0 deletions rust_package/brainflow/src/ffi/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ pub enum BoardIds {
ExplorePlus32ChanBoard = 55,
PieegBoard = 56,
NeuropawnKnightBoard = 57,
SynchroniTrio3ChannelsBoard = 58,
SynchroniOcto8ChannelsBoard = 59,
OB50008CHannelsBoard= 60 ,
SynchroniPento8ChannelsBoard = 61,
SynchroniUno1ChannelsBoard = 62
}
#[repr(i32)]
#[derive(FromPrimitive, ToPrimitive, Debug, Copy, Clone, Hash, PartialEq, Eq)]
Expand Down
15 changes: 15 additions & 0 deletions src/board_controller/board_controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
#include "pieeg_board.h"
#include "playback_file_board.h"
#include "streaming_board.h"
#include "synchroni_board.h"
#include "synthetic_board.h"
#include "unicorn_board.h"

Expand Down Expand Up @@ -281,6 +282,20 @@ int prepare_session (int board_id, const char *json_brainflow_input_params)
case BoardIds::PIEEG_BOARD:
board = std::shared_ptr<Board> (new PIEEGBoard (board_id, params));
break;
case BoardIds::SYNCHRONI_TRIO_3_CHANNELS_BOARD:
board = std::shared_ptr<Board> (new SynchroniBoard (board_id, params));
break;
case BoardIds::SYNCHRONI_OCTO_8_CHANNELS_BOARD:
board = std::shared_ptr<Board> (new SynchroniBoard (board_id, params));
break;
case BoardIds::SYNCHRONI_NEO_8_CHANNELS_BOARD:
board = std::shared_ptr<Board> (new SynchroniBoard (board_id, params));
break;
case BoardIds::SYNCHRONI_UNO_1_CHANNELS_BOARD:
board = std::shared_ptr<Board> (new SynchroniBoard (board_id, params));
break;
case BoardIds::OB5000_8_CHANNELS_BOARD:
board = std::shared_ptr<Board> (new SynchroniBoard (board_id, params));
case BoardIds::NEUROPAWN_KNIGHT_BOARD:
board =
std::shared_ptr<Board> (new Knight ((int)BoardIds::NEUROPAWN_KNIGHT_BOARD, params));
Expand Down
55 changes: 54 additions & 1 deletion src/board_controller/brainflow_boards.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,13 @@ BrainFlowBoards::BrainFlowBoards()
{"54", json::object()},
{"55", json::object()},
{"56", json::object()},
{"57", json::object()}
{"57", json::object()},
{"58", json::object()},
{"59", json::object()},
{"60", json::object()},
{"61", json::object()},
{"62", json::object()}

}
}};

Expand Down Expand Up @@ -1107,6 +1113,53 @@ BrainFlowBoards::BrainFlowBoards()
{"eeg_channels", {1, 2, 3, 4, 5, 6, 7, 8}},
{"other_channels", {9, 10}}
};
brainflow_boards_json["boards"]["58"]["default"] = {
{"name", "Sync-Trio"},
{"sampling_rate", 250},
{"package_num_channel", 0},
{"timestamp_channel", 4},
{"marker_channel", 5},
{"num_rows", 6},
{"eeg_channels", {1, 2}},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it really ecg channel only? for the cases where electrode can be connected to everything and there is no way to know it in front we just write eeg_channels emg_channels and ecg_channels to the same values(e.g. openbci ganglion)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We recommend user use according to IFU

{"ecg_channels", {3}}
};
brainflow_boards_json["boards"]["59"]["default"] = {
{"name", "Sync-Octo"},
{"sampling_rate", 250},
{"package_num_channel", 0},
{"timestamp_channel", 9},
{"marker_channel", 10},
{"num_rows", 11},
{"eeg_channels", {1, 2, 3, 4, 5, 6, 7}},
{"ecg_channels", {8}}
};
brainflow_boards_json["boards"]["60"]["default"] = {
{"name", "OB5000MAX"},
{"sampling_rate", 250},
{"package_num_channel", 0},
{"timestamp_channel", 9},
{"marker_channel", 10},
{"num_rows", 11},
{"eeg_channels", {1, 2, 3, 4, 5, 6, 7, 8}},
};
brainflow_boards_json["boards"]["61"]["default"] = {
{"name", "Sync-Neo"},
{"sampling_rate", 250},
{"package_num_channel", 0},
{"timestamp_channel", 9},
{"marker_channel", 10},
{"num_rows", 11},
{"eeg_channels", {1, 2, 3, 4, 5, 6, 7, 8}}
};
brainflow_boards_json["boards"]["62"]["default"] = {
{"name", "Sync-Uno"},
{"sampling_rate", 250},
{"package_num_channel", 0},
{"timestamp_channel", 2},
{"marker_channel", 3},
{"num_rows", 4},
{"eeg_channels", {1}}
};
}

BrainFlowBoards boards_struct;
Loading
Loading