I need some more information about the specs of the different possible cards (K8055, K8055N, VM110 and VM110N).
I’m a new user of this card. Just created an c# interface using an old P8055 board (factory assembled) and want to get my own card.
To my current knowledge:
The K8055 an VM110 and comparable
The K8055N an VM110N and comparable
The new K8055N and VM110N according the specs should be boards with a much better reaction time on events. From somebody who used the 140 that should be faster either I heard that the delaytime is just slightly better than with the original K8055 (Not 4ms according the spec but 40ms. Compared with the 50ms for the K8055 this is just a minor improvement).
The K8055N is not available in factory assembled version (e.g. ready to use)
The VM110N should no longer requires a K8055_X Library but is seen as an keyboard extension (some strange story I read somewhere)
Company who sell a VM110N according their website deliver a VM110 as the VM110N is still rare. (Conrad.nl)
If you agree that the VM110N is the best pick; do you know some webstores that really can deliver one.
The K8055N and VM110N analog input sampling interval should be about 2ms.
What kind of test code was used to get 40ms interval?
Here is a code snippet to show how to get the 2ms analog input sampling interval:
procedure TForm1.Button12Click(Sender: TObject);
var i, Data1, Data2: integer;
sdata1: array[0..100] of integer;
sdata2: array[0..100] of integer;
begin
Memo1.clear;
for i:=0 to 99 do
begin
ReadAllAnalog(Data1,Data2);
sdata1[i]:=Data1;
sdata2[i]:=Data2;
end;
for i:=0 to 99 do
begin
Memo1.lines.add(inttostr(i)+chr(9)+inttostr(sdata1[i])+chr(9)+inttostr(sdata2[i]))
end;
Memo1.selectall;
Memo1.copytoclipboard;
end;
I connected 10Hz signal to the analog inputs of the K8055N and run the test.
Here are the results plotted on an Excel chart:
The result shows that 100 samples from analog inputs 1 and 2 are taken in 200ms.
I.e. the sampling interval is about 2ms.
The 40ms was about the delaytime between the moment an digital event occurs and the card informs you something was knocking on your door. BTW. interval time in the program is 1 ms.
OK - I see.
Is the delaytime always 40ms or does it vary?
I made a test and got varying delay results between 4ms and about 10ms:
I connected two K8055N cards to the PC.
The software monitors continuously the digital inputs of card 1 and transfers immediately the data to the digital outputs of card 2.
I connected oscilloscope to the digital input of card 1 and to the digital output of card 2 to check the delay.
The “best” delay was only about 4ms. This is the “theoretical” minimum using 1ms sampling period of the full speed USB.
The delay seems to vary a little - being about 10ms max.
This delay includes the delay of two K8055N cards + the PC’s USB data handling delay.
I repeated the test several times with an old desktop PC and with new laptop. The results are similar with both PCs.
Here is a snippet of the test software:
procedure TForm1.Button17Click(Sender: TObject);
var tmp,i:integer;
begin
for i:=0 to 5000 do
begin
SetCurrentDevice(0);
tmp:=ReadAllDigital;
SetCurrentDevice(1);
WriteAllDigital(tmp);
end;
end;
Here is an oscilloscope screenshot illustrating the test result:
Here are the results with 10Hz square wave fed to the digital input of card 1:
I compared the time difference between a straight hardware RS232 connection and the delay I could measure on my PC before I got the same input spike from the USB board.
BTW I compared time against the CPU clock, not the PC clock.