Hi,
I've already implemented the "QDS NFB 256" protocol, but to move on I should know few more things.
At the OpenEEG mailing list it was said this QDS protocol might be a good new standard for open hardware devices, since it accepts 16-bit data (instead of 10-bit like in the Modular P2 protocol). But the problem is that not all the devices have the same characteristics... There are 2 main parameters which change: the number of bits used, and the full scale voltage.
That's the reason I've added 2 new Spin Buttons to configure the driver: the number of bits and the full scale voltage. That's what you can see at the image.
The thing is: at the driver side we end up to have a vector of int32 called "m_vChannelBuffer" which are directly the number of bits when the QDS protocol is already parsed. But which is the voltage value the OpenViBE software takes for a single step? (i.e. the quantum)
e.g.:
0x0000 = 0uV
0x0001 = ?
Could you please answer it? I might look at the source code, but I don't really know where to start... hehe And I'd also like to hear what you think about it.
Summarizing, the idea is to configure the driver so that it can work with devices with different resolution and full scale voltages, but with the same protocol (the QDS). Using this implementation I would modify the "m_vChannelBuffer" data with the new value which represents the correct voltage. It would be great to know whether there is any global var to know that quantum voltage.
Thank you!
Bernat Albet
QDS Driver
Re: QDS Driver
Hi again,
I'm a bit confused... I've run some tests, and I've seen OpenViBE doesn't have voltage levels assigned to a quantum bit, am I wrong?
One test dealt about modifying the driver and filling the first channel with a uin32 dummy var which I incremented at each new packet received (a sawtooth signal). At the OpenViBE software I saw the data went from -512 to 512 when I used 10 bits (applying a mask to the dummy var of 0x03FF), but if I used 12 bits (masking the var with 0x0FFF), the data went from -512 to 3583.
My conclusion is that OpenViBE is only thought to deal with 10-bit data (to be self centered at 0). Then I guess it should be added a new processing box with the offset and gain to get the correct voltage, is that right? Well, if that's right the work I did with the full scale voltage and the resolution was done for nothing... hehe
Thank you,
Bernat Albet
I'm a bit confused... I've run some tests, and I've seen OpenViBE doesn't have voltage levels assigned to a quantum bit, am I wrong?
One test dealt about modifying the driver and filling the first channel with a uin32 dummy var which I incremented at each new packet received (a sawtooth signal). At the OpenViBE software I saw the data went from -512 to 512 when I used 10 bits (applying a mask to the dummy var of 0x03FF), but if I used 12 bits (masking the var with 0x0FFF), the data went from -512 to 3583.
My conclusion is that OpenViBE is only thought to deal with 10-bit data (to be self centered at 0). Then I guess it should be added a new processing box with the offset and gain to get the correct voltage, is that right? Well, if that's right the work I did with the full scale voltage and the resolution was done for nothing... hehe
Thank you,
Bernat Albet
Re: QDS Driver
Hi Bernat and welcome on board !
I am sorry for the late reply, but your questions were a bit out of my area of expertise (I'm computer engineer, and I don't have much knowledge in electronic and acquisition hardware stuff).
I didn't investigate this much, and I'm afraid I won't have enough time anytime soon to do it, I'm sorry...
If anyone else in the community is willing to help, please do so !
Laurent
I am sorry for the late reply, but your questions were a bit out of my area of expertise (I'm computer engineer, and I don't have much knowledge in electronic and acquisition hardware stuff).
I don't know. On my point of view, the driver fills the buffers with float 32 bits values and these values are given to the acquisition client. I never did further test, and never checked the voltage levels.I've seen OpenViBE doesn't have voltage levels assigned to a quantum bit, am I wrong?
Your tests seemed to say so.My conclusion is that OpenViBE is only thought to deal with 10-bit data (to be self centered at 0).
I didn't investigate this much, and I'm afraid I won't have enough time anytime soon to do it, I'm sorry...
If anyone else in the community is willing to help, please do so !
Laurent
Re: QDS Driver
Dear bernat, dear Laurent,
OpenViBE actually does not handle a physical unit with acquired data so far. Each driver is free to use whatever matches its needs. The Brain Products Brainamp driver for instance, has a scaling parameter included in its configuration dialog. By the way, you can use the full 32 bits floating point range if you need to (just remember it does not behave as integers would do )
Hope this helps and sorry for late reply too.
Regards,
Yann
OpenViBE actually does not handle a physical unit with acquired data so far. Each driver is free to use whatever matches its needs. The Brain Products Brainamp driver for instance, has a scaling parameter included in its configuration dialog. By the way, you can use the full 32 bits floating point range if you need to (just remember it does not behave as integers would do )
Hope this helps and sorry for late reply too.
Regards,
Yann