diff --git a/csharp_package/brainflow/brainflow/board_controller_library.cs b/csharp_package/brainflow/brainflow/board_controller_library.cs index 2419f9ba1..b667c75b4 100644 --- a/csharp_package/brainflow/brainflow/board_controller_library.cs +++ b/csharp_package/brainflow/brainflow/board_controller_library.cs @@ -112,7 +112,9 @@ public enum BoardIds NTL_WIFI_BOARD = 50, ANT_NEURO_EE_511_BOARD = 51, FREEEEG128_BOARD = 52, - AAVAA_V3_BOARD = 53 + AAVAA_V3_BOARD = 53, + EXPLORE_PLUS_8_CHAN_BOARD = 54, + EXPLORE_PLUS_32_CHAN_BOARD = 55, }; diff --git a/java_package/brainflow/src/main/java/brainflow/BoardIds.java b/java_package/brainflow/src/main/java/brainflow/BoardIds.java index 653f61486..20bfa815d 100644 --- a/java_package/brainflow/src/main/java/brainflow/BoardIds.java +++ b/java_package/brainflow/src/main/java/brainflow/BoardIds.java @@ -62,7 +62,9 @@ public enum BoardIds NTL_WIFI_BOARD (50), ANT_NEURO_EE_511_BOARD (51), FREEEEG128_BOARD (52), - AAVAA_V3_BOARD(53); + AAVAA_V3_BOARD(53), + EXPLORE_PLUS_8_CHAN_BOARD(54), + EXPLORE_PLUS_32_CHAN_BOARD(55); private final int board_id; private static final Map bi_map = new HashMap (); diff --git a/julia_package/brainflow/src/board_shim.jl b/julia_package/brainflow/src/board_shim.jl index dc3cd1b7f..a4ccbd5a0 100644 --- a/julia_package/brainflow/src/board_shim.jl +++ b/julia_package/brainflow/src/board_shim.jl @@ -58,6 +58,8 @@ export BrainFlowInputParams ANT_NEURO_EE_511_BOARD = 51 FREEEEG128_BOARD = 52 AAVAA_V3_BOARD = 53 + EXPLORE_PLUS_8_CHAN_BOARD = 54 + EXPLORE_PLUS_32_CHAN_BOARD = 55 end diff --git a/matlab_package/brainflow/BoardIds.m b/matlab_package/brainflow/BoardIds.m index 7d817cc72..0fba24e7f 100644 --- a/matlab_package/brainflow/BoardIds.m +++ b/matlab_package/brainflow/BoardIds.m @@ -56,5 +56,7 @@ ANT_NEURO_EE_511_BOARD(51) FREEEEG128_BOARD(52) AAVAA_V3_BOARD(53) + EXPLORE_PLUS_8_CHAN_BOARD(54) + EXPLORE_PLUS_32_CHAN_BOARD(55) end end \ No newline at end of file diff --git a/python_package/brainflow/board_shim.py b/python_package/brainflow/board_shim.py index 73603bb2e..6dbc0e334 100644 --- a/python_package/brainflow/board_shim.py +++ b/python_package/brainflow/board_shim.py @@ -72,6 +72,8 @@ class BoardIds(enum.IntEnum): ANT_NEURO_EE_511_BOARD = 51 #: FREEEEG128_BOARD = 52 #: AAVAA_V3_BOARD = 53 #: + EXPLORE_PLUS_8_CHAN_BOARD = 54 #: + EXPLORE_PLUS_32_CHAN_BOARD = 55 #: class IpProtocolTypes(enum.IntEnum): diff --git a/src/board_controller/board_controller.cpp b/src/board_controller/board_controller.cpp index b9436135a..055bd949b 100644 --- a/src/board_controller/board_controller.cpp +++ b/src/board_controller/board_controller.cpp @@ -271,6 +271,12 @@ int prepare_session (int board_id, const char *json_brainflow_input_params) case BoardIds::AAVAA_V3_BOARD: board = std::shared_ptr (new AAVAAv3 (params)); break; + case BoardIds::EXPLORE_PLUS_8_CHAN_BOARD: + board = std::shared_ptr (new Explore (board_id, params)); + break; + case BoardIds::EXPLORE_PLUS_32_CHAN_BOARD: + board = std::shared_ptr (new Explore (board_id, params)); + break; default: return (int)BrainFlowExitCodes::UNSUPPORTED_BOARD_ERROR; } diff --git a/src/board_controller/brainflow_boards.cpp b/src/board_controller/brainflow_boards.cpp index debae12a1..32b9c84c2 100644 --- a/src/board_controller/brainflow_boards.cpp +++ b/src/board_controller/brainflow_boards.cpp @@ -1008,6 +1008,80 @@ BrainFlowBoards::BrainFlowBoards() {"battery_channel", 12}, {"other_channels", {13, 14}} }; + brainflow_boards_json["boards"]["54"]["default"] = + { + {"name", "ExplorePlus8Channels"}, + {"sampling_rate", 250}, + {"timestamp_channel", 10}, + {"marker_channel", 11}, + {"package_num_channel", 0}, + {"num_rows", 12}, + {"eeg_channels", {1, 2, 3, 4, 5, 6, 7, 8}}, + {"emg_channels", {1, 2, 3, 4, 5, 6, 7, 8}}, + {"ecg_channels", {1, 2, 3, 4, 5, 6, 7, 8}}, + {"other_channels", {9}} // data status + }; + brainflow_boards_json["boards"]["54"]["auxiliary"] = + { + {"name", "ExplorePlus8Channels"}, + {"sampling_rate", 20}, + {"timestamp_channel", 10}, + {"marker_channel", 11}, + {"package_num_channel", 0}, + {"num_rows", 12}, + {"accel_channels", {1, 2, 3}}, + {"gyro_channels", {4, 5, 6}}, + {"magnetometer_channels", {7, 8, 9}} + }; + brainflow_boards_json["boards"]["54"]["ancillary"] = + { + {"name", "ExplorePlus8Channels"}, + {"sampling_rate", 1}, + {"timestamp_channel", 4}, + {"marker_channel", 5}, + {"package_num_channel", 0}, + {"num_rows", 6}, + {"temperature_channels", {1}}, + {"battery_channel", 2}, + {"other_channels", {3}} + }; + brainflow_boards_json["boards"]["55"]["default"] = + { + {"name", "ExplorePlus32Channels"}, + {"sampling_rate", 250}, + {"timestamp_channel", 34}, + {"marker_channel", 35}, + {"package_num_channel", 0}, + {"num_rows", 36}, + {"eeg_channels", {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}}, + {"emg_channels", {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}}, + {"ecg_channels", {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}}, + {"other_channels", {33}} // data status + }; + brainflow_boards_json["boards"]["55"]["auxiliary"] = + { + {"name", "ExplorePlus32Channels"}, + {"sampling_rate", 20}, + {"timestamp_channel", 10}, + {"marker_channel", 11}, + {"package_num_channel", 0}, + {"num_rows", 12}, + {"accel_channels", {1, 2, 3}}, + {"gyro_channels", {4, 5, 6}}, + {"magnetometer_channels", {7, 8, 9}} + }; + brainflow_boards_json["boards"]["55"]["ancillary"] = + { + {"name", "ExplorePlus32Channels"}, + {"sampling_rate", 1}, + {"timestamp_channel", 4}, + {"marker_channel", 5}, + {"package_num_channel", 0}, + {"num_rows", 6}, + {"temperature_channels", {1}}, + {"battery_channel", 2}, + {"other_channels", {3}} + }; } BrainFlowBoards boards_struct; diff --git a/src/board_controller/mentalab/explore.cpp b/src/board_controller/mentalab/explore.cpp index 80593cfe6..aa483a541 100644 --- a/src/board_controller/mentalab/explore.cpp +++ b/src/board_controller/mentalab/explore.cpp @@ -306,6 +306,12 @@ void Explore::read_thread () case 0x1e: // eeg99s parse_eeg_data (&header, package_exg, payload_buffer, 4.5, 16); break; + case 0x96: // eeg98 plus + parse_eeg_data (&header, package_exg, payload_buffer, 2.4, 16); + break; + case 0x94: // eeg32 plus + parse_eeg_data (&header, package_exg, payload_buffer, 2.4, 4); + break; case 0x13: // env parse_env_data (&header, package_anc, payload_buffer); break; diff --git a/src/utils/inc/brainflow_constants.h b/src/utils/inc/brainflow_constants.h index 6eb4ce971..185be7794 100644 --- a/src/utils/inc/brainflow_constants.h +++ b/src/utils/inc/brainflow_constants.h @@ -85,9 +85,11 @@ enum class BoardIds : int ANT_NEURO_EE_511_BOARD = 51, FREEEEG128_BOARD = 52, AAVAA_V3_BOARD = 53, + EXPLORE_PLUS_8_CHAN_BOARD = 54, + EXPLORE_PLUS_32_CHAN_BOARD = 55, // use it to iterate FIRST = PLAYBACK_FILE_BOARD, - LAST = AAVAA_V3_BOARD + LAST = EXPLORE_PLUS_32_CHAN_BOARD }; enum class IpProtocolTypes : int