still in a bit of trouble, very nearly works
data returned @6000 rpm is 0x2a,0x9d for table[4],table[5]

very good
but table[5] is interpreted as signed so 0x2a * 256 =10752 + 0x9d needs to be 10909 not 10653
I think this is happening to the setspeed calcs too
how can I get to use unsigned values ?
code
global GetVfdSpeed = function( )
{
CRC=0xffff;
vfd={1,4,3,1,0,0};
for (inx=0;inx<tableCount(vfd);inx+=1)
{
CRC=Crc16(CRC,vfd[inx]);
};
// print("the CRC " + CRC);
vfd[7]=ToInt(CRC/256);
vfd[6]=ToInt(CRC%256);
myser.Table = vfd;
myser.SendTable();
//sleep(1);
while( myser.DataWaiting() <8) { yield();};
print("buff depth " + myser.DataWaiting() );
//str = myser.GetData();
//print( "buffer "+str );
bd=myser.DataWaiting();
string = myser.ReadData(bd );
vfdrpm=(myser.Table[bd-4]*256+myser.Table[bd-3])*55/100;
print("high " + myser.Table[4] + " low " + myser.Table[5] );
print("Rpm read " + vfdrpm );
return vfdrpm;
};