Thread Tools  
sklein
Junior Member
 
Join Date: Aug 2015
sklein is on a distinguished road Posts: 7
RB-530 vs. RB-540, Posted August 14th, 2015 #1
We have a Matlab script that uses a Cedrus Response Pad for user input. The script works fine with an RB-530, but hangs with an RB-540. We've tried two different RB-540's so it doesn't appear to be a broken hardware issue.

Further info:

1. The dip switches are all down on all RB devices (XID protocol).
2. On the RB-530, the LED on the back is lit, but on the RB-540 it flashes twice when plugged in, but otherwise remains off.
3. Our script is using this function to talk to the response pad: http://docs.psychtoolbox.org/CedrusResponseBox
4. Our script hangs executing: CedrusResponseBox('RoundTripTest', crb_handle);
5. Pressing any key on the response pad during the hang results in this error: 'Roundtrip test did not receive "X" char as expected', so clearly the code is executing, but not receiving the character that was sent.

Questions:

1. I can't find any documentation specific to the RB-540. Does that exist?
2. Is there any documentation of any protocol differences between the RB-530 and RB-540?
3. Any thoughts on what might be going on?

Thanks in advance for any suggestions!

--Steve Klein
Reply With Quote
Hisham
Founder
 
Join Date: Aug 2006
Location: San Pedro, CA
Hisham is on a distinguished road Posts: 1,124
Posted August 14th, 2015 #2
Under Windows Vista and 7, the USB driver should be automatically recognized, but that’s not always the case, unfortunately.

You can download the USB driver from http://www.ftdichip.com/Drivers/VCP.htm. Select the link that says “setup executable” in the Comments column; it’s the easiest way.

Regarding the DIP switch settings, they are different. The RB-540 has a brand new feature that allows it to work in keyboard mode. DIP switch 1 sets keyboard mode when it’s up. DIP switches 2 to 4 on the RB-540 are the same as DIP switches 1 to 3 on the RB-530.
Reply With Quote
sklein
Junior Member
 
Join Date: Aug 2015
sklein is on a distinguished road Posts: 7
Posted August 14th, 2015 #3
Thanks for the response. We are using Windows XP and the driver seems to be fine since (a) it works with the RB-530 and (b) we also have a StimTracker on the system which is working correctly.

With respect to the DIP switches, for the RB-530, switches 1&2 down = XID and switch 3 down = 115Kbaud.

From your description of the DIP switches for the RB-540, all switches down would be the same configuration (XID, 115Kbaud), correct?

If so, I still don't see why there is any difference in operation between the RB-530 and RB-540 on the same computer with the same driver yet the RB-540 doesn't behave the same.

--Steve
Reply With Quote
Hisham
Founder
 
Join Date: Aug 2006
Location: San Pedro, CA
Hisham is on a distinguished road Posts: 1,124
Posted August 14th, 2015 #4
The answer on RB-530 vs. RB-540 drivers is “it depends”. If your RB-530 was purchased after June 2011, then yes, the USB drivers should be the same. But if it was purchased before that date, then the drivers are different. You can make them use the same USB drivers by following the steps on this page, “Reconfiguring RB Series Response Pads

Yes, all switches down means XID, 115k baud.
Reply With Quote
sklein
Junior Member
 
Join Date: Aug 2015
sklein is on a distinguished road Posts: 7
Posted August 14th, 2015 #5
The RB-530 was purchased well after June 2011, and it is the device that works perfectly, so I don't see how this is a driver problem.

The RB-540 doesn't appear to work correctly for the RoundTripTest (e4) command.

Here is the relevant code that is trying to exercise the RoundTripTest function:

function roundtrip = RoundTripTestDev(handle)
global ptb_cedrus_devices;

% Flush the queue:
FlushEvents(handle);

% Perform 100 measurement trials:
roundtrip = zeros(1,100);
for i=0:100
% Wait a bit between each trial:
WaitSecs(0.100);

% Send 'e4' code to initiate procedure:
WriteDev(handle, 'e4');

% Wait for receive completion:
while BytesAvailable(handle) < 1
end;

% Send echo, optimistically assuming we received a 'X':
WriteDev(handle, 'X');

% Get the really received byte and check:
if char(ReadDev(handle, 1))~='X'
error('Roundtrip test did not receive "X" char as expected!');
end

% Wait for receipt of timestamp:
while BytesAvailable(handle) < 4
end;

response = ReadDev(handle, 4);

if response(1)~='P' || response(2)~='T'
error('Roundtrip test did not receive "PT" marker as expected!');
end

response = double(response);

% We throw away the first trial:
if i > 0
roundtrip(i) = 0.001 * (response(3) + 256 * response(4));
end
end

% Store median and stddev of roundtrip time in device struct:
ptb_cedrus_devices{handle}.roundtriptime = median(roundtrip);
ptb_cedrus_devices{handle}.roundtripstddev = std(roundtrip);

return;


That code appears to hang waiting for a response from the RB-540 after sending the 'e4'. If I press any button at that point (during the hang) I get the following error message:

Roundtrip test did not receive "X" char as expected!

This says to me that (a) the driver is working, and (b) the RB-540 is sending a character when a key is pressed, but NOT sending the 'X' character that should be sent after receiving the 'e4'.

Thoughts?

--Steve
Reply With Quote
Hisham
Founder
 
Join Date: Aug 2006
Location: San Pedro, CA
Hisham is on a distinguished road Posts: 1,124
Posted August 17th, 2015 #6
Alas, you are correct that the ‘e4’ command is no longer supported in XID 2.0 or later. This would apply to the RB-x40 response pads and Lumina 3G controller.
Reply With Quote
Bandanna
Junior Member
 
Join Date: Dec 2015
Bandanna is on a distinguished road Posts: 1
Posted January 19th, 2016 #7
Quote:
Originally Posted by Hisham View Post
Alas, you are correct that the ‘e4’ command is no longer supported in XID 2.0 or later. This would apply to the RB-x40 response pads and Lumina 3G controller.
So if the e4 command no longer works what is the alternative?
Reply With Quote
Hisham
Founder
 
Join Date: Aug 2006
Location: San Pedro, CA
Hisham is on a distinguished road Posts: 1,124
Posted January 19th, 2016 #8
One command has been implemented but not yet publicly released. It works differently. There will be more information about it when a firmware update is released, but I don’t know yet when that will be.
Reply With Quote
Thread Tools
Posting Rules
Forum Jump:
© Copyright Cedrus Corporation, 1991-2014.
All times are GMT -7. The time now is 11:42 PM.