How many channels would be needed for my EEG device to create a biometric application? - biometrics

I'm looking to buy an EEG device that has a range in how many channels it provides. For example, Muse S has 4 channels, while Neurosity has 8. Others have 32 channels, etc.
Is there a specific number of channels I would need to be looking for in my EEG device to successfully build a biometric application around EEG.

Related

Can I send sensor (couple of bytes) over beacon?

I want to send some sensor data over BLE to multiple nodes.
I thought of changing advertising data at 4Hz. Can it be done?
Yes! It is a common approach to use a BLE beacon packet to advertise sensor data. A few points:
Embedded BLE platforms typically allow advertising at a minimum of 10Hz, and let you change the advertisement between transmissions. I have done this on the Nordic 52x chips, but hopefully STM32 supports it as well.
BLE 4.0 advertising packets are limited to 23 usable data bytes, but you typically need to reserve a few to indicate it is "your" transmission. There are significant further restrictions if you intend to use iOS devices to scan the transmissions. If using Android, Linux, or other embedded system scanners you can use nearly the full 23 bytes.
Keep in mind that anybody in radio range can scan for these advertisements and read the data. Make sure the sensor data are not sensitive enough to warrant a security layer.

In BLE is there any limitation of Number of BLE devices interacting on Advertise / scan topology or what are the possible limitations?

Recently i have started working on BLE for a upcoming project. i will describe the overall system first.
We have a approx 100 BLE device placed in small compartment (all are within the radio range of each other), and have one central device / gateway which will also has BLE and wifi (within the range of all 100 BLE device). we want to update some small amount of data from all 100 BLE devices to cloud through central device / gateway and vice versa. So the question is :-
which BLE network topology would be best suitable for such application?
If i am going for ADVERTISE / SCAN topology, is it possible to collect the data of all the 100 BLE
device ?
For such number of device is over the air firmware update possible through single gateway ?
IS it possible that gateway can request each BLE device one by on and collect data ?
Basically is it possible to collect data of applox. 100 BLE devicesin connection less mode ?
As we are new to BLE development, correct me if my understating is wrong.
Thanks In Advance !!

Using BLE Notify characteristic characteristic to send a list of data?

I am working on a BLE interface to setup wifi on a device. I need to send a list of available networks back from the device. Should I have 10 characteristics (one for each available SSID) or just one characteristic which I send 10 notifies on.
What is the risk of using one option vs. the other? How reliable are the notifications of the values? I assume repeated notifications on one characteristic are likely as reliable as a single notification on multiple characteristics?
My recommendation is to use one characteristic for this purpose. It's not really about the risk as option 1 and option 2 should work fine, but it is more about the architecture of your code; i.e. If a new network is found, it is relatively easier and more logical to send data on one characteristic than associate the found SSID with a new characteristic. Moreover, you would have unutilized characteristics if you end up finding less than 10 SSIDs. Finally, if you wanted to expand the functionality of your device, you can than start using other characteristics for new features which will make things more modular for the remote device.
As both you and Emil have said, having a single characteristic firing notifications should not be an issue on any platform.

Doing BLE pairing and communication remotely

I tried looking everywhere to understand how BLE pairing works but unable to find answers. Lets say I have a small device, like a raspberry pi with a BLE dongle. What I'd like to do is to allow BLE pairing and then subsequent communication with a BLE peripheral (such as a BLE temperature sensor) using software only.
My aim is to try and see if I can control the pairing and then getting the temperature, without touching the sensor at all, so that in future, I can just remotely log into the raspberry pi, turn on bluetooth, obtain the temperature reading and then afterwards turn it off again. And in future if I need to obtain the reading again, I'll repeat the process.
So:
Can this "simple" scenario be achieved using some software based control?
If not, then which parts require manual input and then which don't?
The BLE sensor should not be in advertisement mode or broadcasting the information. It should only send the data to paired devices.
Any and all answers appreciated! :-)
Most Bluetooth low energy devices do not require pairing at all so check first that your sensors do have this requirement. If they do then you need to determine which specific pairing procedure is required. Bluetooth defines various ways to authenticate during pairing and these generally relate to the I/O capabilities of the two devices and are called Association Models. In some cases, pairing "just works" (the name of the simplest association model) and no user interaction is required. In others, say if one device has a keyboard but the other has a display and no keyboard, the second device will display a random 6 digit number and the user must key that number into the first device. All of this is defined in the Bluetooth Core specification.
In your case the pairing procedure will be defined for your sesnors in the manufacturer documentation so check there first. Not that you should only have to do this once per device, not every time you want to read the sensor.
Accessing sensor data remotely needs a gateway which I guess is what your Pi will do. The Bluetooth SIG defined a set of RESTFul HTTP APIs for exactly this purpose. See https://www.bluetooth.com/develop-with-bluetooth/white-papers
The SIG also provides a gateway developer resource for Raspberry Pi which you can download including source code which is written in node.js. See https://www.bluetooth.com/develop-with-bluetooth/developer-resources-tools
Good luck

zigbee module talks to humidity / temperature sensor

I just bought a gateway equipped with the zigbee module (zigbee pro stack ). Also, I bought a zigbee humidity / temperature sensor as well.
It's HA profile and humidity / temperature cluster Id.
There is an operating system (WindRiver) running on this gateway.
To write an application to read the value sent from zigbee sensor, where should I get to start?
Is there any document available? like defining the data structure for the temperature / humidity ?
Thanks
Start with the Gateway documentation. The company selling it should provide enough information to you that you can discover devices (like the sensor) that have joined the network, and then discover the endpoints, clusters and attributes on those devices.
The ZigBee Alliance has documentation for various layers of their network stack that you'll want to understand if you're going to work with the ZigBee Home Automation profile.
The ZigBee Cluster Library (ZCL) defines attributes and general functions for discovery, reading, writing and reporting on them. You should have a basic understanding of ZCL as a foundation for working with ZigBee.
For the Home Automation Profile, you may need to join the ZigBee Alliance to gain access to the specification. I wasn't able to find it with some quick Google Searches. It will list all of the attributes, their data types, and what values they represent. From that, you can create ZCL Read Attribute Requests to read the values and process the responses.
Sorry, but without knowing the gateway that you are using it is impossible to know the API and what the functions are for joining, discovering and controlling devices. There is no "Standard ZigBee Gateway API", each gateway will implement its own. Some may offer a high level interface with API's for controlling devices, others will send "raw" messages where you will need to form the ZCL command your self. The ZigBee Gateway here:
Free SW SDK (Z-STACK-LINUX-GATEWAY): http://www.ti.com/tool/z-stack
HW Reference Design: http://www.ti.com/tool/CC2531EM-IOT-HOME-GATEWAY-RD
Has a well documented API with features like:
- Open Network
- Close network
- Device discovery
- Turn Light On/Off
- Read Temperature
- Read Humidity
It has an open source node.js example application which offer a local web interface and connects to a cloud service (this also includes connecting to and configuring reports for humidity and temperature sensors, as well as connecting to and controlling Philips Hue Lights):
https://git.ti.com/zigbee-iot-agent/zigbee-iot-agent
An example JAVA application is also available:
https://git.ti.com/zigbee-iot-agent/ti-zstack-linux-gateway-java-cmdline-example
Regards,
TC.

Resources