Oh, also, i believe a similar change is required in WriteRegistersRequest at line 59: data = new byte[ModbusUtils.popByte(queue)]; ... should be: data = new byte[ModbusUtils.popUnsignedByte(queue)];